计算机网络基础知识 - 网络层

                                               第四章 网络层

1. 为什么要在体系中构建网络层?

  • 不同类型网络的转换:网络层设备通常是支持多种不同网络层通信协议
  • 网络寻址:在不同计算机网络间的通信中,源节点要确定目的节点在哪个网络中必须通过三层地址来寻址
  • 网络路由:路由是由不同的路由协议生成的,是为数据在不同网络间转发指定转发路径

 2. 网络层的主要作用

  • 屏蔽网络差异,提供透明传输:网络层就是为了解决网络差异,寻找一个不同网络之间能共同遵守的网络通信规范,以便不同网络之间能互相识别并接受对方的访问请求
  • 为网络通信提供路由选择:路由选择是根据一定的原则和路由选择算法在多个节点的通信子网中选择一条到达目的节点的最佳路径
  • 数据报封装和解封装
  • 拥塞控制:针对网络传输路径中不同网络之间的数据传输控制,使不同网络间的数据传输速率尽可能匹配,以免造成数据溢出

 3. 网络层数据交换及相关技术

  • 电路交换、报文交换和分组交换

          

电路交换:整个报文的比特流连续的从源点直达终点,好像在一个管道中传送。即生活中打电话的时候,要想实现双方的通信,就需要建立连接,然后再进行通话,最后再挂断。建立连接就是电路交换中占用通信资源的开始,通话时期一直占用通信资源,就算双方不说话也会一直占用,挂断就是释放资源的行为。所以,电路交换的整个过程即:建立连接(占用通信资源)->通话(一直占用通信资源)->释放连接(归还通信资源)

报文交换:整个报文先传输到相邻的结点,全部存储下来后查找转发表,转发到下一个结点。报文是指计算机要发送或接受的那一串数据。它采用的是存储转发技术,即在各个路由器之间存储再转发。

分组交换:单个分组(报文的一部分)传送到相邻结点,存储下来后查找转发表,转发到下一个结点。把整个报文分成若干组进行存储转发。为了识别到底哪些分组才是一个整体的报文,在分组的同时在数据段的前面加上了一些控制消息组成了首部,这样就是一个完整的分组了。

  • 数据报服务和虚电路服务

虚电路服务(可靠)

                       

  1. 应当先建立连接,以保证通信双方所需的一切网络资源
  2. 然后双方就沿着已建立的虚电路发送分组
  3. 这样分组的首部就不需要填写完整的目的主机地址,而只需填写这条虚电路的编号,因而减少了分组的开销
  4. 如果这种通信方式再使用可靠传输的网络协议,就可使所发送的分组无差错按序地到达终点,当然也不丢失、不重复
  5. 在通信结束后,要释放建立的虚电路

数据报服务(不可靠)

                             

  1. 网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。网络在发送分组时不需要先建立连接,每个分组(也就是IP数据报)独立发送,与其前后的分组无关。
  2. 网络层不提供服务质量的承诺。也就是说所传送的分组,可能出错、丢失、重复或失序,当然也不保证分组交付的时限。

对比

                    

 4. 存储转发原理

定义:存储转发是一种大概念上的三层数据交换机制,总的特点是网络节点设备在接收到数据后,可以根据设备CPU或对应转发路径下的出接口的当前状态决定是否转发

特点:

  1. 存储转发系统中的节点设备具有数据缓存功能,可以在接收到数据后对来不及处理或转发的数据先进行缓存,这样就可以很大程度上避免了因为网路传输速率或者设备性能不匹配造成的数据丢失,大大提高了数据传输的可靠性和拥塞控制能力
  2. 存储转发中通信线路是事先建立好的,且在同一条通信线路中可以同时建立多条通信会话,每条通信会话占有其中一部分带宽
  3. 报文交换和分组交换属于存储转发机制

 5. IPv4IPv6的区别

IPv4的不足

  1. 地址空间面临枯竭
  2. 骨干路由器维护的路由表数量过大
  3. 地址结构不合理
  4. 配置复杂
  5. 不支持端到端安全

    

  1. IPv6地址为128位长,但通常写作8组,每组为四个十六进制数的形式
  2. 每个地址段的前导0可以省略,如果该段全为0,可以只写一个0
  3. 可以用双冒号转换连续的0,但是只能使用一次

 5. IPv4数据报的封装与解封装

IPv4数据报的封装:发送端接收到来自传输层的数据段经过网络层需要进行网络层IP协议头部封装,以便数据报在网络中传输时能根据报文中的“目的IP地址”选择适宜的路由表选项一级一级地向目的网络转发

IPv4数据报的解封装:到达网络层的数据报还需要继续向上面的传输层传输时,要去掉IP数据报中的IP协议头,还原在发送端传输层发送的原始数据

IP数据报无论经过多少个网络,整个数据报内容都是不会改变的,包括IP协议头部的源/目的IP地址信息,但是IP数据报每经过一个IP网络向下一个网络发送时都需要经过重新的数据帧封装,此时帧中的源/目的MAC地址都将改变。

6. IPv4数据报的分段与重组

原因:来自网络层的IP数据报大小必须要小于等于对应链路层的最大传输单元MTU

分段:当原来的IP数据报长度大于对应网络链路的MTU时,就必须对这个大的IP数据包进行拆分,分成多个符合对应网络链路MTU要求的小的数据分段。分段后的每个IP包分段都需要进行单独的路由,所以必须要有相应的IP包头信息

重组:在路由器或主机上对IP数据报进行了拆分后,在最终的目的主机上要将接收到的所有分段进行重新组装,这就是IP数据报分段的重组过程。IP数据分段的重组是根据数据报的标识符、段偏移、标志等字段进行的,按照原来的拆分拼接起来,但拼接时只保留第一个分段的报头信息,分段的报头被去掉,同时修改第一个分段报头信息,不设置标志字段和段偏移字段。

IP分段的缺点

  1. 即使只丢失一片数据也要重传整个数据报。
  2. 安全隐患:Ping of Death, teardrop等攻击可能导致某些系统在重组IP分片的过程中宕机或者重新启动。

分段发生在主机或者路由器;重组发生在目的主机。

7. ARP协议&RARP协议

ARP是地址解析协议,ARP不是一个单纯的数据链路层协议,而是一个介于数据链路层和网络层之间的协议。

ARP协议的作用:

  1. ARP协议建立了主机IP地址和MAC地址的映射关系
  2. 在网络通讯时,源主机的应用程序知道目的主机的IP地址和端口号,却不知道目的主机的硬件地址
  3. 数据包首先被网卡接收到再去处理上层协议的,如果接收到的数据包的硬件地址与主机不符,则直接丢弃
  4. 因此在通讯前必须获得目的主机的硬件地址

APR协议的工作原理

  1. 首先,每个主机都会在自己的ARP缓冲区中建立一个ARP列表,以表示IP地址和MAC地址之间的对应关系。
  2. 当源主机要发送数据时,首先检查ARP列表中是否有对应IP地址的目的主机的MAC地址,如果有,则直接发送数据,如果没有,就向本网段的所有主机发送ARP数据包,该数据包包括的内容有:源主机IP地址,源主机MAC地址,目的主机的IP地址
  3. 当本网络的所有主机收到该ARP数据包时,首先检查数据包中的IP地址是否是自己的IP地址,如果不是,则忽略该数据包,如果是,则首先从数据包中取出源主机的IPMAC地址写入到ARP列表中,如果已经存在,则覆盖,然后将自己的MAC地址写入ARP响应包中,告诉源主机自己是它想要找的MAC地址。
  4. 源主机收到ARP响应包后。将目的主机的IPMAC地址写入ARP列表,并利用此信息发送数据。如果源主机一直没有收到ARP响应数据包,表示ARP查询失败。

广播发送ARP请求,单播发送ARP响应。

ARP协议报文格式

                                   

硬件类型:这是一个16位字段,用来定义运行ARP协议的网络类型,比如:以太网类型为1则说明ARP可用于物理网络上。

协议类型:也是一个16位字段,用于指定协议类型。

硬件长度:该字段占用8bit位,用来定义物理地址的长度,即mac地址长度,以字节为单位。对于以太网来说,这个值一般是6

协议长度:该字段占用8bit位,用来定义逻辑地址的长度,即ip地址长度,以字节为单位。对于IPv4协议来说,这个值是4

操作:这是一个16位长度的字段,用于定义ARP数据包类型,即1ARP请求,2ARP响应。

发送方硬件地址:这是一个可变长度字段,用来定义发送方的物理地址,即mac地址。

发送方协议地址:这是一个可变长度字段,用来定义发送方的逻辑地址,即ip地址。

目标硬件地址:这是一个可变长度字段,用来定义目标的物理地址(mac地址),对于ARP请求报文来说,这个字段是全部以0来填充,因为发送方并不知道目标方的物理地址。

目标协议地址:这是一个可变长度字段,用来定义目标的逻辑地址(ip地址)。

ARP协议帧格式

             

以太网目的地址:目的主机的硬件地址。目的地址全为1的特殊地址是广播地址。

以太网源地址:源主机的硬件地址。

帧类型:对于ARP协议,该字段为0x0806。对于RARP协议,该字段为0x8035

硬件类型:表示硬件地址的类型。值为1时表示以太网地址。也就是说ARP协议不仅仅应用于以太网协议,还可以支持别的链路层协议。

协议类型:表示要映射的协议地址类型。值为0x0800时表示IP协议。

硬件地址长度:与硬件类型对应的硬件地址的长度,以字节为单位。如果是以太网,则是6字节(MAC长度)。

协议地址长度:与协议类型对应的协议地址长度,以字节为单位。如果是IP协议,则是4字节(IP地址长度)。

操作类型op):四中操作类型。ARP请求(1),ARP应答(2),RARP请求(3),RARP应答(4)。

发送端硬件地址:如果是以太网,则是源主机以太网地址,此处和以太网头中的源地址对应。

发送端协议地址:如果是IP协议,则表示源主机的IP地址。

目的端硬件地址:如果是以太网,则是目的以太网地址,和以太网头中的目的地址对应。

目的端协议地址:如果是IP协议,则表示源主机要请求硬件地址的IP地址。

RARP协议

RARP是逆地址解析协议:作用是完成MAC地址到IP地址的映射,主要用于无盘工作站,因为无盘工作站配置的IP地址不能保存。

工作流程:在网络中配置一台RARP服务器,里面保存着IP地址和MAC地址的映射关系,当无盘工作站启动后,就封装一个RARP数据包,里面有MAC地址,然后广播到网络上去,当服务器收到请求包后,就查找对应的MAC地址的IP地址装入响应报文中发回给请求者。因为需要广播请求报文,因此RARP只能用于具有广播能力的网络。

8. ICMP协议

定义:ICMP是(Internet Control Message ProtocolInternet控制报文协议。ICMP协议是一种面向无连接的协议,它是TCP/IP协议族的一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。这些控制消息虽然并不传输用户数据,但是对于用户数据的传递和网络安全具有极其重要的意义。

主要功能:确认IP包是否成功到达目标地址;通知在发送过程中IP包被丢弃的原因

为什么需要ICMP消息:从网络的角度来说,ICMP协议服务于IP协议,主要用于实现数据在网络链路传输的消息报告。IP分组传送不可靠,可能会遭遇各种问题,如丢包,发生堵塞,产生很大的延迟,抖动等。ICMP用来向源报告这些问题或者状况,也可以用来测试网络。

ICMP报文格式:

               

ICMP消息格式:

                                              

ICMP消息类型:

           

常见的ICMP应用:

  • Ping命令

功能能验证网络的连通性;会统计响应时间和TTL(生存周期)

如何验证ping命令会先发送一个ICMP Echo Request给对端;对端接收到之后,会返回一个ICMP Echo Reply;若没有返回,就是超时了,会认为指定的网络地址不存在

  • Tracert命令

功能:通过向目标计算机发送具有不同生存时间的ICMP数据包,来确定至目标计算机的路由,也就是说用来跟踪一个消息从一台计算机到另一台计算机所走的路径

如何诊断:诊断实用程序将包含不同生存时间(TTL)值的Internet控制消息协议(ICMP)回显数据包发送到目标,以决定到达目标采用的路由。每经过一个路由器,TTL的值减一,直到变为零,就会向源主机发送一个ICMP时间超过的差错报文。

  • Ping操作可以简单直观地知道结果是否到达;tracert操作则可以更加详细的显示数据报的转发路径,可以找到故障点

 9. 路由协议

路由选择协议的任务就是要确定数据报在源与目的地之间采用的路径。

路由的分类

直连路由:三层设备上直接连接的网段的路由,不需要配置,也不需要借助其他路由协议,直接生成,而且优先级最高

静态路由事先设置好路由器和主机中并将路由信息固定的一种方法。静态路由手动设置。一旦发送故障,管理员手动修改,适用于小型网络

动态路由由路由协议在运行过程中自动地设置路由控制信息的一种方法。动态路由管理员必须设置好路由协议,如果要追加一个新的网络到原有的网络中,只需在新增加网络的路由器上进行一个动态路由的设置即可。

动态路由的基础

                       

路由算法:路由算法是提高路由协议功能,减少路由时开销的一种算法。它的目的是找到源路由器到目的路由器的最佳路径。最典型的有距离向量算法和链路状态算法。

距离向量算法:每个路由器维护一个距离矢量表,然后通过相邻路由器之间的距离矢量通告进行距离矢量表的更新。每隔一段时间,路由器会向所有邻居节点发送它到每个目的节点的距离表,同时它也接收每个邻居节点发来的距离表。(和邻居节点交换整张路由表)

                                   

  1. 优点:处理简单。
  2. 缺点:因其只有距离和方向的信息,所以当网络构造变得分外复杂时,在获得稳定的路由信息之前需要消耗一定时间,也极易发送路由循环。

链路状态算法:在了解网络整体连接状态的基础上生成路由控制表的一种方法。该方法中,每个路由器必须保持同样的信息才能进行正确的路由选择。

  1. 优点:即使网络结构变得复杂,每个路由器也能够保持正确的路由信息、进行稳定的路由选择。
  2. 缺点:当网络结构很复杂时,需要从网络代理获取路由信息表,路由信息表的管理和处理代理信息需要高速CPU处理能力和大量的内存

从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。

路由表

路由表是一个存储在路由器或者互联网计算机中的电子表格或者类似的数据库

路由表存储着指向特定网络地址的路径和度量值,可以使路由器根据路由表计算出到达网路周边的拓扑信息

路由表建立的主要目的是为了路由选择,路由器通常依靠所建立以及维护的路由表来决定具体的数据如何转发

常见的路由协议

根据路由控制的范围常使用IGP(内部网关协议)和EGP(外部网关协议)两种类型的路由协议。

内部网关协议IGP:在区域网络内部进行主机识别。

外部网关协议EGP:在区域网络之间进行路由选择。

       

  1. RIP协议RIP协议要求网络中每一个路由器都要维护从它自己到其他每一个目的网络的距离记录。RIP协议将“距离”定义为:从一路由器到直接连接的网络的距离定义为1。从一路由器到非直接连接的网络的距离定义为每经过一个路由器则距离加1。“距离”也称为“跳数”RIP允许一条路径最多只能包含15个路由器,因此,距离等于16时即为不可达。RIP协议规定仅和相邻的路由器交换信息,相邻路由器得到路由信息后,按照距离矢量算法(最短路径原则,实现最佳性),建立或更新路由表。
  2. RIP2协议RIPv1使用分类路由,在它的路由更新中并不带有子网的资讯,因此它无法支援可变长度子网掩码。因为RIPv1的缺陷,RIPv2在被提出,与RIP1最大的不同是RIP2为一个无类别路由协议,其更新消息中携带子网掩码,它支持VLSMCIDR、认证和多播RIP中当路由器之间交换路由信息是采用的是广播的形式,而RIP2中改用多播。这样不仅减少了网络的流量,还缩小了对无关主机的影响。
  3. OSPF协议OSPF要求每个路由器周期性的发送链路状态信息,使得区域内所有路由器最终都能形成一个跟踪网络链路状态的链路状态数据库。利用链路状态数据库,每一个路由器都可以以自己为“根”,建立一个最短路径优先树,用来描述以自己出发,到达每个目的网络所需的开销。

邻居建立阶段OSPF路由器发送HELLO报文,建立和维护邻居关系)

路由交换阶段OSPF路由器发送DBD报文描述自己的LSDB,再用LSR(请求特定的LSA的报文),LSU(承载LSA的报文)交换自己缺少的LSA,使得双方的LSDB达到一致,即所有路由器知道网络的全局拓扑关系图。双方LSDB一致的标志是邻居达到FULL状态)路由计算阶段(通过SPF算法计算出去往各个网段的最佳路由。并添加到路由表中)

      4. BGP协议BGP的主要功能是与其他BGP系统交换网络可达性信息。该网络可达性信息包括有关流量必须通过以到达这些网络的自治系统(AS)的信息。该信息足以构建AS连接的图,从该图可以修剪路由环路并且可以实施AS级别的策略决策。

                            

 10. 网络拥塞控制&流量控制

网络拥塞现象:指到达通信子网中某一部分的数据报数量过多,使得该部分网络来不及处理,以致于引起这部分网络乃至整个网络性能下降的现象,严重时会出现死锁现象。之所以会出现网络拥塞现象,是因为通信子网中所承受的负荷超出了网络的吞吐能力。

控制方法:

  1. 缓冲区与分配法:多用于虚电路分组交换网。在虚电路建立时,要求呼叫请求分组所途径的每个节点为此条虚电路预先分配一个或多个数据缓冲区
  2. 分组丢弃法:不必预先为数据报预留缓冲区,而是在路由器的缓冲区已经被占满的情况时只需要将后面到来的数据报丢弃
  3. 定额控制法:发送数据报需要拥有许可证,这样就可以确保子网中的数据报数量不会超过许可证的数量,从而防止拥塞的发生

流量控制:如果发送者发送数据过快,接收者来不及接收,那么就会有分组丢失。为了避免分组丢失,控制发送者的发送速度,使得接收者来得及接收,这就是流量控制。

控制方法:滑动窗口协议(连续ARQ协议)实现。滑动窗口协议既保证了分组无差错、有序接收,也实现了流量控制。主要的方式就是接收方返回的ACK中会包含自己的接收窗口的大小,并且利用大小来控制发送方的数据发送。

区别:拥塞控制的任务是确保子网可以承载所到达的流量。这是一个全局性问题,涉及到各方面的行为,包含全部的主机、全部的路由器、路由器内部的存储转发处理过程,以及全部可能会削弱子网承载容量的其他因素。

与此相反,流量控制仅仅与特定的发送方和特定的接收方之间的点到点流量有关。它的任务是,确保一个高速的发送方不会持续地以超过接收方接收能力的速率数据传输。流量控制通常涉及到的做法是,接收方向发送方提供某种直接的反馈,以便告诉发送方别人一端的情形究竟怎么样。拥塞控制是作用于网络;流量控制是作用于发送者的。

11. IP地址

IP协议定义:IP协议是一个无连接的协议(即在通信之前不需要事先建立连接),负责在源地址和目的地址之间传送数据报,然后为了适应不同网络对分组大小的要求,需要对上层传来的报文进行分割,最后调用本地网络协议将数据报传送到下一个网关或目的计算机

IP协议主要功能:寻址;数据报的封装;分段与重组

IP地址分类:

A类地址:以0开头,   第一个字节范围:1~1271.0.0.0 - 127.255.255.255);

B类地址:以10开头,  第一个字节范围:128~191128.0.0.0 - 191.255.255.255);

C类地址:以110开头, 第一个字节范围:192~223192.0.0.0 - 223.255.255.255);

D类地址:以1110开头,第一个字节范围:224~239224.0.0.0 - 239.255.255.255);(作为多播使用)

E类地址:保留            其中ABC是基本类,DE类作为多播和保留使用。

其他特殊IP地址:

  1. 网络地址:IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。
  2. 直接广播地址:广播地址与网络地址的主机号正好相反,广播地址中,主机号为全1。当向某个网络的广播地址发送消息时,该网络内的所有主机都能收到该广播消息。
  3. 组播地址:D类地址就是组播地址。
  4. 受限广播地址:255.255.255.255。受限广播地址与一般广播地址(直接广播地址)的区别在于,受限广播地址只能用于本地网络,路由器不会转发以受限广播地址为目的地址的分组;一般广播地址既可在本地广播,也可跨网段广播。
  5. 0.0.0.0常用于寻找自己的IP地址。
  6. 回环地址:127.0.0.0/8被用作回环地址,回环地址表示本机的地址,常用于对本机的测试,用的最多的是127.0.0.1
  7. ABC类私有地址:

私有地址也叫专用地址,它们不会在全球使用,只具有本地意义。

A类私有地址:10.0.0.0/8,范围是:10.0.0.0~10.255.255.255

B类私有地址:172.16.0.0/12,范围是:172.16.0.0~172.31.255.255

C类私有地址:192.168.0.0/16,范围是:192.168.0.0~192.168.255.255

12. 子网划分和聚合的方法

VLSM子网划分的方法

题目需要我们将192.168.5.0/24这个网络地址划分成能容纳101/54/2个主机的子网。因此我们要先确定主机位,然后根据主机位决定网络位,最后确定详细的IP地址。

  • 确定主机位

将所需要的主机数自大而小的排列出来:101/54/2,然后根据网络拥有的IP数目确定每个子网的主机位:如果2n-2≥该网段的IP数目,那么主机位就等于n。于是,得到:n=7/6/2

  • 根据主机位决定网络位

32减去主机位剩下的数值就是网络位,得到:25/26/30

  • 确定详细的IP地址

在二进制中用网络位数值掩盖IP前面相应的位数,然后后面的为IP位。选取每个子网的第一个IP为网络地址,最后一个为广播地址,之间的为有效IP。得到:

网络地址

有效IP

广播地址

192.168.5.0

192.168.5.1-192.168.5.126

192.168.5.127

192.168.5.128

192.168.5.129-192.168.5.190

192.168.5.191

192.168.5.192

192.168.5.193-192.168.5.194

192.168.5.195

各个子网的子网网络地址和子网广播地址不适宜分配给主机使用。

第一组起始位0(网络位),有效地址起始位为1,结束地址为0+27-2=126,广播位IP127

第二组起始位128(网络位),有效地址起始为129,结束地址为128+26-2=190,广播位IP191

第三组起始位192(网络位),有效IP起始193,结束IP192+22-2=194,广播位IP195

CIDR子网聚合的方法

比较字节位,从第一个字节位开始,直到不同的字节位,然后尾部填充0

:设有两个子网202.118.133.0/24,202.118.130.0/24,如果进行路由汇聚,得到的网络地址是?

  • 首先比较字节位

两个子网直到第三个字节发生不同。我们把第三个字节以二进制表示:

202.118.10000 101.0

202.118.10000 010.0

通过比较我们发现前5bit一致,接着我们把不同bit填充0,得出:10000 000,十进制表示为128

  • 结合

将前面两个一样的byte结合起来,得出结果,路由汇聚之后的网络地址为:202.118.128.0/21

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

殊彦_sy

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值