设计师作品集网站,建筑方案设计考试,wordpress 制作落地页,蓬莱做网站价格网络入门 一、网络发展二、网络协议初识1、认识协议2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型 三、网络传输基本流程1、同局域网的两台主机通信2、跨网络的两台主机通信 四、网络中的地址管理1、IP地址2、认识MAC地址 一、网络发展 独立模式#xff1a… 网络入门 一、网络发展二、网络协议初识1、认识协议2、协议分层3、OSI七层模型4、TCP/IP五层(或四层)模型 三、网络传输基本流程1、同局域网的两台主机通信2、跨网络的两台主机通信 四、网络中的地址管理1、IP地址2、认识MAC地址 一、网络发展 独立模式计算机之间相互独立
在早期的时候计算机之间是相互独立的此时如果多个计算机要协同完成某种业务那么就只能等一台计算机处理完后再将数据传递给下一台计算机然后下一台计算机再进行相应的业务处理效率非常低下。 网络互联: 多台计算机连接在一起, 完成数据共享;
这时就有人就设法将这些计算机连接在一起当某个业务需要多台计算机协同完成时就可以将共享的数据放到服务器中进行集中管理此时各个计算机就都能获取到这些共享的数据所以各个业务在处理就能随时进行切换了。 局域网LAN: 计算机数量更多了, 通过交换机连接在一起;
网络雏形逐渐发展连入这个网络中的机器变得越来越多于是就出现了局域网的概念。
在局域网中有一种设备叫做交换机交换机主要完成局域网内数据的转发工作也就是在局域网内将数据从一台主机转发给另一台主机。各个局域网之间通过路由器连接起来路由器主要完成数据的路由转发工作。 广域网WAN: 将远隔千里的计算机都连在一起
各个局域网之间通过路由器相互连接在一起便组成了一个更大的网络结构我们将其称之为广域网。实际局域网和广域网是一种相对的概念我们也可以将广域网看作一个比较大的局域网。 二、网络协议初识
1、认识协议
计算机之间的传输媒介是光信号和电信号. 通过 “频率” 和 “强弱” 来表示 0 和 1 这样的信息要想传递各种不同的信息, 就需要约定好双方的数据格式。
“协议” 的本质是一种约定通信双方只要曾经做过某种约定之后就可以使用这种约定来完成某种事情有了协议我们通信的数据才能被正常识别通信才有意义。
为了让计算机能够相互顺畅的通信 需要约定一个共同的标准大家都来遵守这就是网络协议。
2、协议分层
为了定制好协议我们应该先分析网络通信的时候有哪些问题会产生有哪些需求要解决要为什么会产生这些问题? 问题
怎么定位一台目标主机怎么进行数据转发路径(路由)选择的问题长距离传输数据异常的问题(丢失)
为什么会产生上面的问题单纯的是传输的距离变长了
需求
定位一台目标主机路径选择解决数据异常的问题(丢失)
仔细分析需求我们就会发现上面的需求的不同类型的需求而且它们的问题解决是要有先后顺序的只有定位了一台目标主机才会有路径选择的问题路径选择的问题解决了才会有数据异常的问题(丢失)的问题
所以我们在解决问题时要把相关的问题放在一起做出解决方案而不是眉毛胡子一把抓这样我们做出的方案才是高内聚低耦合的解决方案又由于上面的问题解决是要有先后顺序的所以我们的解决方案一定是层状的每一层都是高内聚低耦合的 分层最大的好处在于“封装”在分层情况下将某层的协议进行替换后通信双方之间是不会受到影响的。
3、OSI七层模型
OSIOpen System Interconnection开放系统互连七层网络模型称为开放式系统互联参考模型是一个逻辑上的定义和规范;OSI把网络从逻辑上分为了7层. 每一层都有相关、相对应的物理设备比如路由器交换机;OSI 七层模型是一种框架性的设计方法其最主要的功能就是帮助不同类型的主机实现数据传输;OSI最大优点是将服务、接口和协议这三个概念明确地区分开来概念清楚理论也比较完整. 通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯;但是OSI既复杂又不实用所以后来在具体实现的时候就对其进行了调整于是就有了我们现在看到的TCP/IP四层协议。
OSI七层模型如下
分层名称功能每层功能概览应用层针对特定应用的协议表示层设备固有数据格式和网络标准数据格式的转换会话层通信管理、负责建立和断开通信连接数据流动的逻辑通路、管理传输层以下的分层传输层管理两个节点之间的数据传输、负责可靠性传输确保数据被可靠地传送到目标地址网络层地址管理与路由选择数据链路层互联设备之间传送和识别数据帧物理层以0/1代表电压的高低以及灯光的闪灭、界定连接器和网线的规格
———————————————— 版权声明图片来自于为CSDN博主「2021dragon」的原创文章。
4、TCP/IP五层(或四层)模型
TCP/IP是一组协议的代名词它还包括许多协议组成了TCP/IP协议簇. TCP/IP通讯协议采用了5层的层级结构将OSI的会话层表示层应用层三层进行压缩为一层统一称为应用层每一层都呼叫它的下一层所提供的网络来完成自己的需求.
物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.数据链路层: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.网络层: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.传输层: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.应用层: 负责应用程序间沟通如简单电子邮件传输SMTP、文件传输协议FTP、网络远程访问协议Telnet等. 我们的网络编程主要就是针对应用层. TCP/IP模型和计算机体系结构是什么关系呢 对于网络协议栈的的传输层最经典的协议是TCP协议对于网络层最经典的协议是IP协议所以TCP/IP协议其是在操作系统内部实现的这两部分所有的操作系统都要相同这样才能保证网络能够正常通信但是对于网络协议的其他部分的实现就可以有不同只要能够使传输层和网络层能正常工作就行。 操作系统没有网络管理的大类但是由于一切皆文件的思想网卡在操作系统看来也是一种文件所以从网卡中拿取数据就好像从文件中拿取数据一样所以网络管理是隶属于文件管理的 OSI参考模型与TCP/IP模型和计算机体系结构的关系 物理层我们考虑的比较少. 因此很多时候也可以称为 TCP/IP四层模型. 一般而言:
对于一台主机, 它的操作系统内核实现了从传输层到物理层的内容;对于一台路由器, 它实现了从网络层到物理层;对于一台交换机, 它实现了从数据链路层到物理层;对于集线器, 它只实现了物理层;
但是并不绝对. 很多交换机也实现了网络层的转发; 很多路由器也实现了部分传输层的内容(比如端口转发); 集线器
电磁信号在长距离传输过程中信号是会衰减的而集线器的主要功能就是对接收到的信号进行再生整形放大以扩大网络的传输距离同时把所有节点集中在以它为中心的节点上。
需要注意的是集线器属于纯硬件网络底层设备基本上不具有类似于交换机的“智能记忆”能力和“学习”能力也不具备交换机所具有的MAC地址表所以它发送数据时都是没有针对性的而是采用广播方式发送也就是说当集线器要向某节点发送数据时不是直接把数据发送到目的节点而是把数据包发送到与集线器相连的所有节点。 三、网络传输基本流程 两台主机进行文件传输为例此时各层对应的协议有以下协议 两个主机通信的本质是两个主机的OS与网络协议栈在通信在网络通信时每层都要有自己的协议!协议的表现形式: 协议报头。
类比到我们日常的网购中我们买了东西最后并不是直接收到了买到的商品而是一个包裹包裹上面贴着快递单。虽然这个快递单对于我们自己来说不是必须的但是对于快递员来说是必须要有的。在物流体系中快递单 商品才是物流的主体。同理在每一层协议中协议报头 有效载荷才是协议的主体
数据包封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame).应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation).首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息.数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理.
1、同局域网的两台主机通信 当用户要将文件传输给另一台主机前该文件数据需要先通过网络协议栈进行封装
文件数据先交给应用层应用层添加上对应应用层协议的报头信息后将数据再交给传输层。传输层收到数据后再添加上对应传输层协议的报头信息并将数据继续向下进行交付。网络层收到数据后再添加上对应网络层协议的报头信息接着将数据再交给链路层。链路层收到数据后最后再添加上对应链路层协议的报头信息至此数据封装完毕。
下图为数据封装的过程
数据封装完毕后就可以通过局域网将其发送给对端主机了而当对端主机收到数据后对应也需要通过网络协议栈对该数据进行解包与分用
链路层收到数据后先将数据中对应链路层协议的报头信息提取出来然后将剩下的数据交给网络层。网络层收到该数据后再将数据中对应网络层协议的报头信息提取出来然后将剩下的数据继续向上进行交付。传输层收到该数据后再将数据中对应传输层协议的报头信息提取出来然后将剩下的数据再交付给应用层。应用层收到数据后最后将数据中对应应用层协议的报头信息提取出来至此便完成了数据的解包与分用。
下图为数据解包与分用的过程 总结
任何一台主机在发送数据之前该数据都要先自顶向下贯穿协议栈来完成数据的封装。在这个过程中每一层协议都会都会把上层交给自己的数据作为自己的有效载荷然后添加上自己对应的报头信息继续向下传递。而任何一台主机收到数据后都要先自底向上贯穿协议栈来完成数据的解包和分用在这个过程中每一层协议都会将对应的报头信息提取出来。在逻辑上同层协议都认为自己在和对方的同层协议在通信同层看到的数据是一样的。同层协议能够互相认识对方的报头。能做到 将报头进行和有效载荷的分离解包。将有效载荷交付给上层的哪一个具体协议分用。 局域网内数据是怎么进行传输的
在一个局域网当中除了当前正在进行通信的A主机和B主机以外还可能会有其他的主机那A主机是如何将数据成功发送给B主机的呢 实际上局域网内传输数据时是通过广播的方式进行传输数据所以该局域网内的所有主机其实都能收到数据。 任何设备要通信都需要有唯一的标示符对于计算机也是如此每台计算机都配有网卡网卡在出厂时就在内部被写入了sn号也称MAC地址此地址全球唯一。 在局域网中发送的数据实际叫做MAC数据帧在这个MAC数据帧的报头当中会包含两个字段分别叫做源MAC地址和目的MAC地址。
在局域网中进行通信的时候每一个主机在收到一个MAC数据帧后都会提取该MAC数据帧的报头找到对应的目的MAC地址与自己的MAC地址进行比对。如果该MAC地址与自己的MAC地址不匹配则直接将该MAC数据帧丢弃只有MAC地址匹配时该主机才会将该数据帧的有效载荷继续向上进行交付处理。
什么是碰撞
当主机A在向主机B发送数据时其他主机彼此之间可能也正在进行通信甚至主机A在和主机B通信的同时也在和其他主机进行通信。 但同一局域网中的所有主机在通信时使用的都是一个共同的通信信道因此如果局域网内的多台主机同时进行通信此时这些数据之间就可能会相互干扰。
每一个局域网都可以看作是一个碰撞域如果某个主机发送出去的数据与其他主机发送的数据之间产生了干扰我们就称这两台主机在该碰撞域中发生了碰撞。
如何判断发送出去的数据是否发生了碰撞
因为发送到局域网当中的数据是所有主机都能够收到的因此当一个主机将数据发送出去后该主机本身也是能够收到这个数据的。当该主机收到该数据后就可以将其与之前发送出去的数据进行对比如果发现收到的数据与之前发送出去的数据不相同则说明在发送过程中发生了碰撞。
也就是说主机实际是能够通过某种方式知道曾经发送出去的数据是否发生了碰撞的。
发生碰撞后是如何处理的
当一个主机发现自己发送出去的数据产生了碰撞此时该主机就要执行“碰撞避免”算法。“碰撞避免”算法实际很简单当一个主机发送出去的数据产生了碰撞那么该主机可以选择等一段时间后再重新发送该数据。这就像现实生活中的两个人同时想要说话此时对方就都会说“你先说吧”这实际上就是一种碰撞避免。
需要注意的是实际在网络通信压力不大的时候发生碰撞的概率是不大的我们不要太小瞧计算机的处理速度也不要太小瞧网线传播数据的速度。
与碰撞相关的一种局域网攻击机制
如果局域网内的某台主机一直向该局域网内发送一些无用的数据那么其他主机一发数据就会产生碰撞此时该局域网也就瘫痪了这实际就是局域网本身的一个攻击原理。但需要注意的是这台一直发送“垃圾数据”的主机必须要通过某种方式绕过“碰撞避免”算法否则当其发送的数据产生碰撞后该主机自己也会执行“碰撞避免”算法。 2、跨网络的两台主机通信
上面说的都是同一局域网内的主机之间的通信那跨局域网的两台主机之间是如何进行通信的呢
局域网之间都是通过路由器连接起来的因此一个路由器至少能够横跨两个局域网。而这些被路由器链接的局域网都认为该路由器就是本局域网内的一台主机因此路由器可以和这些局域网内的任意一台主机进行直接通信。
跨网络的两台主机通信原理与局域网类似但是还有一些重要的问题
怎么确定我们要通信的两台主机是在同一个局域网内还是在两个不同的局域网内 在网络中我们可以使用IP地址来标识不同主机报文在自顶向下发送的时候会经过网络层在网络层中可以根据目的IP查询路由表确定目标主机与自己在不在同一个网络如果在就将报文发送给对应的主机如果不在报文就会通过内网被转发到路由器由路由器进行转发。
采用不同通信标准的两个局域网内的主机为什么能够正常通信
例如上面的的两台分别在以太网与令牌环网的主机当路由器接收到来自以太网的报文时会对对应的报头进行解包然后将剩下的数据向上交付给网络层在网络层进行路由确定目标IP所在的网络再将数据向下交付给对应的链路层此时在链路层当中就会给该数据添加上令牌环对应的报头信息然后再将该数据发送到令牌网当中此时该数据就能够在令牌环网当中正常传输和解包了。
IP地址的好处
IP地址的存在除了帮助数据路由以外还有一个很重要的作用那就是屏蔽了底层网络的差异。对于通信主机双方的IP层及其往上的协议来说它们并不需要关心底层采用的是以太网还是令牌环网它们认为只要填写了源IP地址和目的IP地址就能够将数据发送出去因此现在主流的网络也叫做“IP网络”。
四、网络中的地址管理
1、IP地址
IP协议有两个版本IPv4和IPv6.IP地址是在IP协议中, 用来标识网络中不同主机的地址;对于IPv4来说, IP地址是一个4字节, 32位的整数而IPv6用128个比特位来标识IP地址我们通常也使用 “点分十进制” 的字符串表示IP地址, 例如 192.168.0.1 ; 用点分割的每一个数字表示一个字节, 范围是 0 - 255。
2、认识MAC地址
MAC地址用来识别数据链路层中相连的节点;长度为48位, 6个字节. 一般用16进制数字加上冒号的形式来表示(例如: 08:00:27:03:fb:19)在网卡出厂时就确定了, 不能修改mac地址通常是唯一的(虚拟机中的mac地址不是真实的MAC地址, 可能会冲突; 也有些网卡支持用户配置MAC地址).
MAC地址与IP地址的区别 IP地址为报文定制最终地址在数据转发的路上根据IP地址进行路径选择。 MAC地址用来选择数据转发的下一站的设备地址所以数据一路转发的过程中转发数据的设备在变所以MAC地址也会变但是IP地址不会变。
在Linux中我们可以使用ifconfig命令可以查看当前主机所对应的的MAC地址和IP地址。