第5章网络层5.1网络层概述网络层负责数据包经过多条链路、由信源到信宿传递过程,并保证每个数据包能够成功和有效率地从出发点到达目的地。
为实现端到端的传递,网络层提供了两种服务:线路交换和路由选择。
线路交换是在物理链路之间建立临时的连接,每个数据包都通过这个临时链路进行传输;路由选择是选择数据包传输的最佳路径,在这种情况下,每个数据包都可以通过不同的路由到达目的地,然后再在目的地重新按照原始顺序组装起来。
网络层是通信子网的最高层,对上层用户屏蔽了子网通信的细节,如子网类型、拓扑结构、子网数目,向上层提供一致的服务、统一的地址。
5.1.1网络层功能(1)为传输层提供建立、维持和释放网络连接的手段,完成路由选择、拥塞控制、网络互联等功能。
(2)根据传输层的要求选择网络服务质量。
服务质量的参数主要包括:残留差错率、服务可用性、可靠性、吞吐量、传输延迟等。
(3)对数据传输过程实现流量控制、差错控制以及顺序控制。
(4)提高资源子网主机节点与通信子网的接口,向传输层提供虚电路服务和数据报服务。
网络层的主要功能是完成网络中主机间的报文传输,其关键问题之一是使用数据链路层服务将每个报文从源端传输到目的端。
基本功能:实现端到端的网络连接,屏蔽不同子网技术的差异,向上层提供一致的服务。
主要功能:路由选择和转发通过网络连接在主机之间提供分组交换功能分组的分段与成块,差错控制、顺序化、流量控制5.1.2网络层服务的特点网络层的服务有如下特点:(1)最重要的特点是无连接(2)服务是不可靠的,传送过程中可能延迟、不按顺序到达或者丢失等(3)服务是尽力而为的。
网络层实现这种无连接服务的分组传送机制称为网际协议,通称IP协议。
网络层服务应遵循以下三个原则:(1)服务应与通信子网技术无关。
(2)通信子网的数量、类型和拓扑结构对传输层是隐蔽的。
(3)传输层能获得的网络地址应采用统一的编号形式,即使跨越多个LAN和WAN。
5.2路由算法路由算法是网络层软件的一部分,它负责确定一个进来的分组应该被传送到哪条输出线路上。
5.2.1路由算法选择的参考标准路由算法选择有以下参考标准:(1)正确性:沿着路由表所指引的路由,分组一定能够传输到最终到达的目的网络和目的主机。
(2)最优化:指路由算法选择最佳路径的能力。
(3)简洁性:算法设计简洁,利用最少的软件和开销,提供最有效的功能。
(4)坚固性:路由算法处于非正常或不可预料的环境时,如硬件故障、负载过高或操作失误时,都能正确运行。
(5)快速收敛:收敛是在最佳路径的判断上所有路由器到达一致的过程。
收敛慢的路由算法会造成路径循环或网络中断。
(6)灵活性:路由算法可以快速、准确地适应各种网络环境。
5.2.2路由算法种类路由算法可以分为两大类:非自适应的和自适应的。
非自适应路由算法,它是按照预先计算好的信息进行路由,它不会根据当前测量或者估计的流量和拓扑结构,来调整他们的路由决策。
非自适应路由算法主要包括静态路由算法、分散通信量以及洪泛算法。
自适应路由算法,它是根据网络拓扑结构和通信量的变化等改变路由。
主要有距离向量路由算法和链路状态路由算法等。
1.距离向量路由算法距离向量路由算法要求每个路由器发送其路由表全部或部分信息,但仅发送到邻近节点上。
从本质上来说,链路状态算法将少量更新信息发送至网络各处,而距离向量算法发送大量更新信息至邻接路由器。
距离向量路由算法属于动态路由算法。
缺陷:路由收敛速度慢,对好消息反应迅速,对坏消息反应迟钝;选择路由时,没有考虑线路带宽。
2.链路状态路由算法链路状态路由算法(也称最短路由算法)发送路由信息到互联网上所有的结点,然而对于每个路由器,仅发送它的路由表中描述了其自身链路状态的一部分。
该路由算法是以权值作为计算路由的基础的。
所谓权值是各种情况的综合考虑,主要包括路径长度、可靠性、路由延迟、负荷、通信代价等。
与距离向量路由不同,链路状态路由的信息交换准则是:每隔一定时间(大约30分钟),与所有的路由器交换自己邻居的信息。
优点:一次性可以获得网络上所有路由器的信息,而不需要逐点传递;该算法以权值作为基础,在计算路由时,考虑了多种因素,所以优于距离向量路由算法;在获得了所有路由器信息之后,每个路由器分别采用Dijkstra算法以得出它到其他各个路由器的最短路径。
二者的区别:这两种算法在大多数环境下都能很好的运行,除了以下区别:(1)链路状态算法收敛更快,因此在一定程度上比路由算法更不容易产生路由循环。
(2)链路状态算法要求比距离向量算法有更强的CPU能力和更多的内存空间,因此链路状态路由算法将会在实现时显得更昂贵一些。
(3)距离向量路由算法适用于简单的网络,而链路状态路由算法更适合于复杂程度较高的网络5.3网络层协议IP的任务是提供一种尽力投递的方法将数据报从源端传输到目标端,它并不关心源机器和目标将机器是否在同样的网络中,也不关心它们之间是否还有其他网络。
(P23协议数据单元)网络层是路由选择和负责网络寻址的层。
IP(网际协议)是最普通的网络层协议,提供无连接的数据报传输机制。
5.3.1IPv4协议IPv4的地址是32位长,由4个分段的十进制组成。
由网络号和主机号两部分构成。
1.IP地址的分类(P83)IP地址有如下特点:(1)网络号可用于将数据报路由到目的网络(2)主机号可用于将数据报交付到本网络的主机(3)简化了路由表子网(Subnet)划分:因特网规模的急剧增长,对IP地址的需求激增。
带来的问题是:(1)IP地址资源的严重匮乏(2)路由表规模的急速增长解决办法:从主机号部分拿出几位作为子网号这种在原来IP地址结构的基础上增加一级结构的方法称为子网划分。
前提:网络规模较小——IP地址空间没有全部利用。
例如:三个LAN,主机数为20,25,48,均少于C类地址允许的主机数。
为这三个LAN 申请3个C类IP地址显然有点浪费。
类别最大网络数网络号范围每个网络中最大主机数主机号范围IP地址范围A 126 1-126 0.0.1-255.255.2541.0.0.1- 126.255.255.254B 16382 128.1-191.254 65534 0.1-255.254 128.1.0.1-191.255.255.254C 192.0.1-223.255.254 254 1-254 192.0.1.1-233.255.255.2542.IP数据报的格式和内容每个IP数据报包含一个头部和一个正文部分。
头部有一个20字节的定长部分和一个可选的变长部分版本号:在处理每个接收到的IP数据报之前,首先要检验它的版本号,以确保用正确的协议版本来处理它。
长度字段:IP数据报之中有两个长度字段:头长度和总长度。
一个表示IP数据报头的长度,占用4位,另一个表示IP数据报的总长度,占用16位,它的值是以字节为单位的。
服务类型:结构示意图:1 2 3 4 5 6 7 8优先权 D T R C 保留优先权取值范围0-7,值越大,优先级越高。
D:Delay 要求有更低的时延。
T:Throughput 要求有更高的吞吐量R:Reliability 要求有更高的可靠性C:要求选择更低廉的路由数据报的分段和重组:IP数据报要放在物理帧中再进行传输,这一过程叫做封装。
一般来说,在传输过程中要跨越若干个物理网络,由于不同的物理网络采用的帧格式不一样,而且所允许的最大的帧长度不同,而IP数据报的最大长度可达64KB,远大于大多数物理网络的最大传输单元(MTU),因此IP协议需要一种分段机制,把一个大的IP数据报分成若干个小的分段进行传输,最后到达目的地再重新组合成原来的样子。
数据报生存周期(TTL):IP数据报传输的特点就是每个数据报单独寻址。
每个新生成的数据报中,其数据报头的生存周期字段被初始化设置为最大值255,该数据报每经过一个路由器,其生存周期就减1,以此来避免数据报在网络中无休止的循环。
协议类型:指出IP数据报中的数据部分是哪一种协议头检验和:用于保证数据的正确性源IP地址和目的IP地址:分别表示该数据报的发送者和接受者IP数据报选项:主要用于额外的控制和测试3.IP报文的转发当一个路由器收到主机A发送给主机B的IP数据报时,路由器的数据链路层根据帧中的以太网类型确定帧中的数据是IP报文,于是交给IP协议来处理,IP协议首先要校验IP 报文投中的各个域的正确性,包括版本号、校验以及长度等,如果发现错误,则丢弃该数据报;如果全部正确,则把TTL的值减1,。
若TTL的值为0,数据报到期,应该丢弃;TTL大于0,根据IP数据报中的目的地址查询路由器的路由表,如果找到合适的路由,把该数据向下一站转发,这需要知道下一站的MAC地址,进行帧封装;如果没有合适的路由,则丢弃该数据报。
4.IP路由表路由表中至少有目的地址、掩码、网关以及接口名称等。
目的地址和掩码是整个表的关键字,唯一地确定到某目的地的路由。
网关表示下一站路由器的地位,而接口名称则指出了应该向本机的哪个网络接口进行转发。
路由表中每个表项还有两个标志:标志H表示该路由器是主机路由,即该路由项指明了到一台主机的具体路由;G则表示该地址是个有效路由的地址。
确定一条路由是否符合要求的方法就是把IP报文中的目的地址跟路由表的每一项中的掩码做“与”运算,看其结果是否与相应的路由项中的目的子网地址相等。
在查找路由表时,要求使用最佳匹配原则。
因为在路由表中,每条路由的掩码长度不一样,如果有多条成功匹配的路由项,则选择掩码最长的项所对应的路由。
例题:路由器R的路由表如下现路由器收到下述分别发往6个目的主机的数据报,路由器如何交付?H1 20.134.245.78H2 166.111.64.129H3 166.111.35.72H4 166.111.31.168H5 166.111.60.129H6 192.36.8.73H1:20.134.245.78∧255.255.240.0=20.134.240.0 路由器通过R2端口2交付给Port1 H2:166.111.64.129∧255.255.240.0=166.111.64.0 路由器通过R1端口1交付给Port2 H3:166.111.35.72∧255.255.240.0=166.111.32.0 路由器直接交付给Port2H4:166.111.31.168∧255.255.240.0=166.111.16.0 路由器直接交付给Port1H5 :166.111.60.129∧255.255.240.0=166.111.48.0 路由器直接交付给Port3H6:192.36.8.73∧255.255.240.0=192.36.0.0 路由器通过R2端口2交付给Port15.3.2IPv6协议在IPv6的设计过程中除了一劳永逸地解决了地址短缺问题之外,还考虑了在IPv4中解决不好的其他问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。