网络层

(一)网络层的功能

数据交换方式

电路交换

报文交换

分组交换(数据报方式/虚电路方式)

数据报方式

虚电路(数据报+电路交换)

(二)路由算法

1.静态路由与动态路由

2.距离-向量路由算法/RIP算法

3.链路状态路由算法/OSPF算法

4.分层次的路由选择协议/层次路由

(三)IPv4

1.IPv4分组

TCP/IP协议栈

 

IP数据报格式

 

IP数据报分片

 

2.IPv4地址

6种特殊地址:

私有IP地址

网络地址转换NAT

3.子网划分与子网掩码

子网掩码

子网分组转发

4.CIDR/无分类域间路由选择(构成超网)

构成超网

最长前缀匹配

5.ARP协议/地址解析协议

发送数据过程

ARP四种典型情况:

6.DHCP协议/动态主机配置协议

7.网际控制报文协议ICMP

ICMP差错报告报文分类

ICMP差错报告报文数据字段

不应发送ICMP差错报文的情况

ICMP询问报文分类

ICMP应用

(四)IPv6

1.IPv6的主要特点

2.IPv6数据报格式

3.IPv4和IPv6

4.IPv6地址

5.IPv6基本地址类型

6.IPv6与IPv4通信

(五)路由选择协议

内部网关协议IGP

外部网关协议EGP

距离-向量算法RIP协议

RIP三要点

距离-向量算法

RIP报文格式

RIP优缺点

开放最短路径优先协议OSPF

OSPF的5种分组类型

链路状态路由算法

OSPF区域

OSPF分组

OSPF其他特点

RIP和OSPF比较

1.协议参数

2.收敛速度

3.分层

4.负载平衡

5.灵活性

6.以组播地址发送报文

BGP边界路由协议

BGP协议报文格式

BGP-4的四种报文

RIP OSPF BGP比较

(六)IP组播

IP数据报的三种传输方式

 

IP组播地址

IP组播分类

组播地址与MAC地址转换

网际组管理协议IGMP

IGMP工作的两个阶段

组播路由选择协议

组播路由选择协议的算法

(七)移动IP

实现移动IP的实体

实现移动IP的技术

移动IP和动态IP

移动IP的通信过程

(八)网络层设备

路由器

输入端口

 

输出端口 

三层设备的区别

路由表和路由转发

计算机网络


网络层_第1张图片

(一)网络层的功能

主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务。

网络层传输单位是数据报

功能一.异构网络互联

    将网络互连起来需要中间设备(中继系统)根据中继系统所在层次分为:

  1.     物理层中继系统:中继器或集线器
  2.     数据链路层的中继系统:网桥或交换机
  3.     网络层的中继系统:路由器
  4.     网络层以上中继系统:网关

    “尽最大努力交付”

  1. 不保证源主机发送出来的IP数据报一定无差错地交付给目的主机
  2. 不保证源主机发送的IP数据报都在某一规定时间内交付给目的主机。
  3. 不保证源主机发送的IP数据报一定按序交付给目的主机。
  4. 不保证源主机发送的IP数据报不会重复交付给目的主机。
  5. 不故意丢弃IP数据报。(丢弃情况:路由器检测首部检验和有错误;网络中通信量过大;路由器或目的主机中的缓存已满。

 

 

功能二.路由选择与分组转发

     路由选择:根据路由算法确定一个分组应该被传送到哪一条输出路线。

        如果子网内部使用数据报,对每一个分组都需要重新选择路径。

        如果子网内部使用虚电路,只有当创建一个新的虚电路是,才需要确定路由路径。

    分组转发:路由器根据转发表发表将用户的IP数据报从合适的端口转发出去。

    能否使用很大的Switch代替互联网中很多的路由器?

 

    路由表只给出到目的地址网络的下一跳路由器的IP地址,这种方法有什么好处?

 

功能三.拥塞控制:  如果所有结点都来不及接收分钟,而丢弃大量分组,网络就会处于拥塞状态。采用合理的拥塞控制,网络就不易出现拥塞和死锁现象。代价是提供的负载较小时,有拥塞控制的网络吞吐量减小。

拥塞控制分为开环控制(静态)或闭环控制(动态)。

    开环控制:网络系统设计时,事先考虑到有关发送拥塞的各种因素。一旦系统启动运行,不需要中途进行修改。

        控制手段包括(在做决定时不考虑当前网络状态)确定何时接收新流量、确定何时可丢弃分组及丢弃哪些分组、确定各种调度决策等。

    闭环控制:事先不考虑有关发生拥塞的各种因素,采用监视系统,将拥塞信息传到合适的地方以便调整系统运行。

        主要措施包括检测拥塞、报告拥塞和调整措施。

数据交换方式

 电路交换:传输时延最小,传送的数据量很大,且传送时间远大于呼叫时间。
 
 分组交换:当端到端的通路 由很多段的链路组成时。
 
 报文交换和分组交换:都采用存储转发,提高整个网络的信道利用率,分组交换的时延较小,适用计算机间突发式的数据通信。

 

在这里插入图片描述

电路交换

 在通信之前要在通信双方之间建立一条被双方独占的物理通路(由通信双方之间的交换设备和链路逐段连接而成)。
 建立连接⇒通信⇒释放连接
 优点:通信时延小,实时性强,有序传输,适用范围广,避免冲突。
 缺点:建立时间长,独占线路,信道利用率低,缺乏统一标准,灵活性差,无差错控制能力。

 

报文交换

数据交换单位为报文,报文携带有目标地址,源地址等信息,报文交换在交换结点采用存储转发的传输方式。

优点:无需建立连接,存储转发,动态分配线路,提高可靠性,提高线路利用率,提供多目标服务。
缺点:存储转发时延,报文大小不定,要求网络节点有较大的存储空间。

分组交换(数据报方式/虚电路方式)

分组交换采样存储转发方式,但将一个长报文分割成若干个较短的分组(携带源地址,目的地址和编号信息)逐个地发送。

优点:无需建立连接,存储转发,动态分配线路,可靠性较高,信道利用率较高,简化存储管理,减少出错几率和重发数据量
缺点:存储转发时延,需要传输额外的信息量,分组失序需要排列重组。

           当为数据报时,会出现失序,丢失或重复分组现象
           当为虚电路时,虽然无失序问题,但有呼叫建立,数据传输和虚电路释放三个过程。

数据报方式

无连接服务:失序抵达。即不事先为分组的传输确定传输路径,不同分组传输路径不同。

每个分组携带有源地址和目的地址

路由器根据分组的目的地址转发分组:基于路由协议/算法构建转发表

在这里插入图片描述

 数据报方式优点
  发送分组前无需建立连接
  
  网络尽最大努力交付,传输不保证可靠性,有可能丢失。每个分组都被独立处理,所以转发的路径可能相同,因此不一定按序到达。
  
  在具有多个分组的报文中,交换机尚未接收完第二个分组,已经收到第一个分组就可以转发出去,不仅减少时延,而且提高吞吐量。
  
  当某一台交换机或一段链路故障时,可相应的更新转发表,寻找另一条替代路径转发分组,对故障适用能力强。
  
  发送方和接收方不独占某一链路,资源利用率高。

虚电路(数据报+电路交换)

虚电路:一条源主机到目的主机类似电路的路径(逻辑连接),路径上所有结点都维持这条虚电路的建立,维持一张虚电路表,每一项记录一个打开的虚电路的信息。

连接服务:建立连接⇒通信⇒释放连接

在这里插入图片描述

主机A先出一个特殊的“呼叫请求”分组,该分组通过中间交换机送往主机B,如果同意连接,主机B就发送“呼叫应答”分组进行确认,虚电路就建立了。

虚电路建立后(全双工通信),主机A就可以向主机B发送分组,由于所有分组都是走相同的路径,因此分组是按序到达的。

分组传输结束后,主机通过发送“释放请求”分组,由网络清除该虚连接。
常见的编码方式

虚电路方式优点
  用户之间通信必须建立连接,数据传输过程中不再需要寻找路径,相对数据报方式时延较小。
  通常分组走相同路径,分组按序到达主机。
  分组首部不包含目的地址,包含虚电路标志符,相对数据报方式开销小。
  当某交换机或链路出现故障而彻底失效,所经过该交换机或链路的虚电路遭到破坏。

网络层_第2张图片

(二)路由算法

1.静态路由与动态路由

静态路由选择/非自适应路由算法:管理员手工配置路由信息,简单开销小,但不能及时适用网络状态的变化。对于很小的网络,完全可以采用静态路由选择,手动配置路由。

动态路由选择/自适应路由算法:路由器之间彼此交换信息,按照路由算法优化出路由表项,能够较好地适用网络状态的变化,及时响应链路费用或网络拓扑变化。实现较复杂,开销大,适用于较复杂的网络。

目前通常使用动态路由选择分为两种基本类型:

分散性距离-向量路由算法 RIP:路由器只掌握物理相连的邻居及链路费用。

全局性链路状态路由算法 OSPF:所有路由器掌握完整的网络拓扑和链路费用信息。

 

2.距离-向量路由算法/RIP算法

所以的结点都定期地将它们整个路由器选择表传送给所有与之直接相邻的结点。

这种路由选择表包含每条路径的目的地址(另一个结点)和路径的代价(距离,RIP采用跳数作为距离的代价)。

该路由算法中,所有结点必须参与距离-向量交换,以保证路由的有效性和一致性。即所有结点都监听从其他结点传送来的路由选择更新信息,并更新路由表,使得更新为最佳路由。

更新条件

  1. 被通告一条新的路由,该路由在本地结点的路由表中不存在,则本地节点加入该新的路由
  2. 通过发送路由信息的结点有一条达到某个目的地的路由,该路由比当前使用的路由有更短的距离(RIP为更小的跳数)用经过发送路由信息的结点的新路由替换路由表中达到那个目的地的现有路由

3.链路状态路由算法/OSPF算法

要求参与该算法的结点都有完全的网络拓扑信息。结点执行的任务为:

1)主动测试所有邻接结点的状态。俩个共享一条链接的结点是相邻结点,连接到同一条链路。

2)定期地将链路状态传播给所有其他结点(路由结点)

在一个链路状态路由选择中,一个结点检查所有直接链路的状态,并将所得的状态信息发送到网上所有其他的结点,而不仅是发送给那些直接相连的结点。每个结点都使用该方式,所有其他结点从网上接收包含直接链路状态的路由选择信息。

每当链路状态报文到达时,路由结点使用这些状态信息更新自己的网络拓扑和状态"视野图"一旦链路状态发生变化,结点对更新的网络图利用Dijkstra最短路径算法重新计算路由,从单一结点出发计算到达所有目的节点的最短路径。

三大特征

  1. 使用洪泛法向本自治系统中的所有路由器发送信息。
  2. 发送的信息就是与本路由器相邻的所有路由器的链路状态,但只是路由器所知道的部分信息。对于OSPF算法,链路状态的“度量”主要表示复用、距离、时延、带宽等。
  3. 只有当链路状态发送变化时,路由器才使用洪泛法向所有路由器发送信息。

 

4.分层次的路由选择协议/层次路由

以太网将整个互联网划分为许多较小的自治系统,每个自治系统有权自主地决定本系统内应采用何种路由选择协议。

路由选择协议:

  1.  一个自治系统内部所使用的路由选择协议(域内路由选择协议)称为内部网关协议(IGP)具体的协议有RIP和OSPF等。
  2. 自治系统之间使用的路由选择协议(域间路由选择协议)称为外部网关协议(EGP)主要在不同自治系统的路由器之间交换路由信息,并负责为分组在不同自治系统之间选择最优的路径,具体的协议有BGP

 

网络层_第3张图片

对于非常大的网络,OSPF协议将一个自治系统划分为若干个区域。划分区域的好处是把利用洪泛法交换链路状态信息的范围局限于一个区域而不是整个自治系统,从而减少整个网络上的通信量。

在一个区域内部的路由器只知道本区域的完整网络拓扑,不知道其他区域的网络拓扑情况。

为了使每个区域能够与其他区域进行通信,骨干区域的标识符规定为0.0.0.0。骨干区域用于连通其他在下层的区域。

从其他区域来的信息由区域边界路由器进行概括。每个区域至少有一个区域边界路由器。

骨干区域内的路由器为骨干路由器,一个骨干路由器可以同时是区域边界路由器。

在骨干区域中还要有一个自治系统边界路由器,专门与其他自治系统交换路由信息。

 

采用分层次划分区域的方法使交换信息的种类增多,也使OSPF协议更复杂,但使得每个区域内部交换路由信息的通信量大大降低,高效应用于大规模的自治系统。

(三)IPv4

1.IPv4分组

TCP/IP协议栈

网络层_第4张图片

 

IP数据报格式

网络层_第5张图片

 

  1. 版本:占4bit,区分IP数据报是IPv4/IPv6,通信双方的版本必须一致。
  2. 首部长度:占4bit表示范围0-15,单位为4B。IP数据报的首部最小20B(固定部分),所以首部长度最小为5(0101)。
  3. 区分服务:占1B,只是期望获得哪种类型服务。
  4. 总长度:占16bit,指首部和数据之和的长度,单位为字节/B,因此数据报最大长度(2¹⁶ ー1)字节(65535B),以太网帧的最大传送单元MTU为1500B,因此当一个IP数据报封装成帧时,数据报的总长度一定不能超过下面数据链路层的MTU值。
  5. 标识:占2B,计时器,用于产生IP数据报的标识,同一数据报的分片使用同一标识。
  6. 标志:占3bit,目前只有2位有意义(X DF MF)。DF=1(禁止分片)DF=0(允许分片)MF=1(还有分片)MF=0(最后一个分片)
  7. 片偏移:占13bit,指出较长的分组在分片后,某一片在原分组中的相对位置,片偏移以8B为偏移单位,即除最后一个分片,每个分片的长度为8B(64bit)的整数倍。
  8. 生存时间TTL:占8bit,IP分组每经过一次路由器减一。防止一个数据报一直在网络中转圈,网络资源会造成浪费,所以设置生存时间(Time To Live TTL)即数据报在网络中可通过的路由器数的最大值。
  9. 协议:占8bit,数据部分的协议。当接收端收到数据报,交付给传输层的某个协议去处理(TCP/6 或 UDP/17)需要由此标志给定。                        

     

  10. 首部校验和:占16bit,只校验数据报的首部,不检验数据部分。
  11. 源地址:占32bit,发送端主机的IP地址
  12. 目的地址:占32bit,接收端主机的IP地址
  13. 可选字段:0-40B,用于支持排错、测量以及安全等措施。
  14. 填充字段:全0,将首部补成4B的整数倍。

IP数据报分片

最大传送单元MTU:链路层数据帧可封装数据的上限。以太网的MTU是1500B。

网络层_第6张图片

 

 

2.IPv4地址

网络层_第7张图片

A类地址:

前8bit为A类地址的网络号,第一位规定为0。

规定网络地址全0的IP地址是保留地址,即本网络。

主机号全1表示广播地址如xx.255.255.255

B类地址:

前16bit为B类地址的网络号,前2bit规定为100,由于前16bit不可能全0,

但是128.0.0.0不指派,可以指派最小网络地址为(128.1.0.0)

C类地址:

前24bit为C类地址的网络号,前3bit规定为110,由于网络地址不可能全0,

但是(192.0.0.0)不指派,最小网络地址(192.0.1.0)

6种特殊地址:

网络层_第8张图片

直接广播地址

在ABC类地址中,主机号全1,则给地址为直接广播地址。

路由器使用该地址把一个分组发送到一个特点网络上的所有主机,所以主机都会收到具有该类型目的地址的分组。

受限广播地址

IP地址为255.255.255.255,该地址用于定义当前网络(非整个因特网)上的广播地址,一个主机如想把报文发送给其他主机,就可以使用这样的地址作为分组中的目的地址,但是路由器隔离广播域,会把这种类型的地址阻拦,使这样的广播仅局限于本地局域网。

该网络的该主机

IP地址为0.0.0.0表示这个网络上的主机。主机运行程序却不知道自己的IP地址,引导服务器发送IP分组,使用该地址为源地址,并且使用255.255.255.255作为目的地址。

该网络的特点主机

具有全0的网络号的IP地址表示在该网络上的特定主机,用于当某个主机向同一网络上的其他主机发送报文。

因为分组被路由器阻挡,所以这是把分组限制在本地网络的一种方法。

回环地址

网络号第一个字节等于127,主机号非全0或非全1的IP地址作为回环地址,用于测试机器的软件。

使用该地址,分组无法离开该机器,分组简单地返回到协议软件,可以用于测试IP软件。

私有IP地址

网络层_第9张图片

路由器对目的地址是私有IP地址的数据报一律不进行转发。 

网络地址转换NAT

专用网内部使用的本地IP地址转换成有效的外部全球IP地址,使得整个专用网只需要一个全球IP地址就可以与因特网联通。

专用网连接到因特网的路由器上安装NAT软件,使(NAT路由器)至少有一个有效的外部全球IP地址

工作原理:

网络层_第10张图片

3.子网划分与子网掩码

子网划分基本思路:

网络层_第11张图片

从主机号借若干个比特作为子网号,而主机号也就相应减少了若干个比特,网络号不变。

三级的IP地址:{<网络号>,<子网号>,<主机号>}

某单位划分子网后,对外仍表现为一个网络,即本单位外的网络看不见本单位内子网的划分。

网络层_第12张图片

凡是从其他网络发送给本单位某个主机的IP分组,根据IP分组的网络号找到连接该网络上的路由器,由路由器在收到IP分组后,按目的网络号和子网号找到目的子网,将该IP分组直接交付给目的主机。

为什么CIDR的子网号就可以使用全0或全1?

子网掩码

一个与IP地址相对应的32位的二进制串,由一串1和0组成。

1对应IP地址中的网络号和子网号,0对应IP地址中的主机号。

将子网掩码与IP地址进行与运算得到网络号。

不论有没有划分子网,将子网掩码与IP地址进行逐位与运算,一定能得到网络号。

子网分组转发

使用子网掩码后,路由要的主要内容是目的网络地址、目的网络子网掩码和下一跳地址。

此时,路由器的分组转发算法

网络层_第13张图片

  1. 从收到的分组首部提取目的IP地址。
  2. 将目的地址与路由器直接相连的网络的子网掩码进行与运算,若与网络地址匹配,直接交付。否则间接交付。
  3. 若路由表中有目的地址的特定主机路由,则将分组传送给指定的下一跳路由器,否则执行下一步。
  4. 将路由表中每一行的子网掩码和目的地址逐位与。若结果与该行的网络地址匹配,则将分组传送给指定的下一跳路由器。否则执行下一步。
  5. 若路由表中有一个默认路由,则将分组传送给路由表中所指定的路由器。否则执行下一步。
  6. 报告转发分组出错。

4.CIDR/无分类域间路由选择(构成超网)

(1)CIDR消除了传统的A、B、C类地址以及子网划分的概念,更有效地分配IPv4的地址空间。

使用各种长度的网络前缀代替网络号和子网号。(定长的子网掩码⇒变长的子网掩码)

IP地址由三级编址回到两级编址。

IP地址::={<网络前缀>,<主机号>}

网络层_第14张图片

采用“斜线记法”区分网络前缀,即IP地址/网络前缀所占数。

(128.14.32.0/20)表示的地址块共有2¹²个地址。(32位-20位)

地址块:128.14.32.0/20或“/20地址块”。

最小地址:128.14.32.0

最大地址:128.14.47.255

地址掩码(子网掩码):1111 1111 1111 1111 1111 0000 0000 0000

构成超网

将网络前缀都相同的连续的IP地址组成“CIDR地址块”这种地址的聚合称为路由聚合(也称构成超网)。

缩短网络前缀,将多个子网聚合成一个较大的子网,缩短路由表。(206.1.0.0/16表示206.1.0.0/17和206.1.128.0/17)

使得路由表中的一个项目可以表示很多个传统分类地址的路由,缩短路由表,减小路由器之间选择信息的交换,提高网络性能。

最长前缀匹配

在使用CIDR时,路由表中的每个项目由网络前缀和下一条地址组成。导致查找路由表可能得到不止一个匹配结果,选择具有最长网络前缀的路由,网络前缀越长其地址块越小,路由就越具体(最长前缀匹配原则/最长匹配/最佳匹配)

5.ARP协议/地址解析协议

ARP协议:完成主机或路由器IP地址到MAC地址的映射。

网络层_第15张图片

发送数据过程

  1. 在应用层,发送的文件形成报文
  2. 在传输层分段形成报文段
  3. 在网络层将其中一个报文段进行封装,首部加上源IP地址和目的IP地址。
  4. 在链路层,将IP数据报进行封装成分组。首部加上源MAC地址和目的MAC地址(通过ARP协议返回的目的MAC地址(同一局域网)或下一跳路由器默认网关的MAC地址(不同局域网)),尾部再加上帧检验系列FCS
  5. 在物理层,形成数字信号或模拟信号在链路上进行传输
  6. 抵达下一跳路由器,通过解封装到网络层(路由层为三层设备)再封装(源和目的IP地址不变,源和目的MAC地址(点对点目的MAC地址为全1否则使用ARP协议返回的下一跳路由器MAC地址)

每个主机中都有一个ARP高速缓存(存放所在局域网的各个主机和路由器的IP地址到硬件地址的映射表)ARP负责动态维护该映射表。

当源主机向本局域网上的某个目标主机发送IP分组时,先在其ARP高速缓存中查看有没有目标主机的IP地址。

如果有,找到对应的硬件地址写入MAC帧,通过局域网将该MAC帧发送到该硬件地址

如果没有,通过广播ARP请求分组(源IP地址,目的IP地址,源MAC地址,FF-FF-FF-FF-FF-FF),获得同一局域网的目标主机的单播ARP响应分组(目的IP地址,目的MAC地址)后,将目标主机的硬件地址写入ARP高速缓存,建立目标主机的IP地址达到硬件地址的映射关系。

ARP四种典型情况:

  1. 发送方是主机,把IP数据报发送到本网络上的另一个主机,使用ARP找到目的主机的硬件地址
  2. 发送方是主机,把IP数据报发送到另一个网络的一个主机,使用ARP找到本网络上的一个路由器(网关)的硬件地址,剩下交由路由器完成
  3. 发送方是路由器,把IP数据报转发到本网络上的一个主机,使用ARP找到目的主机的硬件地址。
  4. 发送方是路由器,把IP数据报转发到另一个网络上的一个主机,使用ARP找到本网络上的一个路由器(网关)的硬件地址,剩下交由路由器完成

6.DHCP协议/动态主机配置协议

静态配置:IP地址、子网掩码、默认网关

DHCP服务器常用于给主机动态分配IP地址。

提供即插即用联网的机制,允许一台计算机加入新的网络和获取IP地址,允许地址重用,支持移动用户加入网络,支持在用地址续租,不需要手工参与。

DHCP是应用层协议,使用客户/服务器方式,客户端和服务端通过广播方式进行交互,DHCP报文基于UDP传输

工作原理

需要IP地址的主机在启动时广播发送报文,DHCP服务器发送提供报文。

DHCP服务器先在其数据库查找计算机的配置信息。

若找到则返回信息,否则从服务器的IP地址池中取一个地址分配该主机。

DHCP服务器和DHCP客户端的交换过程

DHCP客户机广播DHCP发现报文,试图找到网络中的DHCP服务器,服务器获得一个IP地址。

DHCP服务器收到发送报文后,就像网络中广播DHCP提供报文,包括提供DHCP客户机的IP地址和相关配置信息。

DHCP客户机收到提供报文,如果接受DHCP服务器所以懂得相关参数,则通过广播DHCP请求报文向DHCP服务器请求提供IP地址。

DHCP服务器广播DHCP确认报文,将IP地址分配给DHCP客户机。

 

7.网际控制报文协议ICMP

ICMP报文包括ICMP差错报告报文和ICMP询问报文。

ICMP差错报告报文分类

  1. 终点不可达:无法交付。当路由器或主机不能交付数据报时就会向源点发送终点不可达报文。
  2. 源点抑制:拥塞丢数据。当路由器或主机由于拥塞而丢弃数据报时,就向源点发送源点抑制报文,使源点知道应当把数据报的发送速率放慢。
  3. 时间超过:TTL=0。当路由器收到生存时间TTL=0的数据报时,除了丢弃该数据报,还要向源点发送时间超过报文。当终点在预先规定的时间内不能收到一个数据报的全部数据报片时,就把已收到的数据报片都丢弃,并向源点发送时间超过报文。
  4. 参数问题:首部字段问题。当路由器或目的主机收到的数据报的首部中有的字段的值不正确,就丢弃该数据报,并向源点发送参数问题报文。
  5. 改变路由(重定向):有值得更好的路由。路由器把改变路由报文发送给主机,让主机知道下次应该将数据报发送给另外的路由器(可通过更好的路由)

ICMP差错报告报文数据字段

网络层_第16张图片

不应发送ICMP差错报文的情况

  1. ICMP差错报告报文不再发送ICMP差错报告报文
  2. 对第一个分片的数据报片的所有后续数据报片都不发送ICMP差错报告报文
  3. 对具有组播地址的数据报都不发送ICMP差错报告报文

  4. 对具有特殊地址(如127.0.0.0或0.0.0.0)的数据报不发送ICMP差错报告报文

ICMP询问报文分类

  1. 回送请求和回答报文:测试目的站是否可达以及了解其相关状态。主机或路由器向特定目的主机发出的询问,收到此报文的主机必须给源主机或路由器发送ICMP回送回答报文。
  2. 时间戳请求和回答报文:用于进行时钟同步和的测量时间。请某个主机或路由器回答当前的日期和时间。
  3. 掩码地址请求和回答报文
  4. 路由器询问和通告报文

ICMP应用

PING:测试两个主机之间的连通性,使用ICMP回送请求和回答报文

Traceroute:跟踪一个分组从源点到终点的路径,使用ICMP时间超过差错报告报文

(四)IPv6

网络层_第17张图片

使用CIDR和NAT延缓IP分配殆尽的时间。

1.IPv6的主要特点

  1. 更大的地址空间
  2. 扩展的地址层次结构
  3. 灵活的首部格式
  4. 改进的选项
  5. 允许协议继续扩冲突
  6. 支持即插即用(自动配置)
  7. 支持资源的预分配

2.IPv6数据报格式

网络层_第18张图片

网络层_第19张图片

版本:指明协议的版本,IPv6(总是6)

优先级:区分数据报的类别和优先级

流标签:(流:互联网络上从特定源点到特定终点的一系列数据报)所有属于同一个流的数据报都具有相同的流标签

有效载荷长度:(区分IPv4的首部长度字段和总长度字段(首部+数据部分)) IPv6:扩展首部+数据长度

下一个首部:标识下一个扩展首部或上层协议首部

跳数限制:相当于IPv4的生存时间,跳数到达0,路由器把该数据报丢弃,返回ICMP差错报告报文。

源地址和目的地址:128位

3.IPv4和IPv6

IPv6将地址从32位(4B)扩大到128位(16B),地址空间是IPv4的2¹²⁸⁻³²=2⁹⁶ 倍。

IPv6将IPv4的校验和字段删除,减少每跳的处理时间。

IPv6将IPv4的可选字段移除首部,变成了扩展首部,更好地支持选项,分组首部以前必要的段现在变成可选,包含8个段(IPv4有12个段)使得路由器能够简单的跳过与他们无关的选项码,使得路由器能更快处理分组,提高吞吐率。

IPv6首部长度必须是8B的整数倍,IPv4首部长度必须是4B的整数倍。

IPv6支持即插即用(即自动配置),不需要DHCP协议。

IPv6只能在主机处分片,IPv4可以在路由器和主机处分片。

IPv6支持资源的预分配,支持实时视像等要求,保证一定的带宽和时延的应用。

IPv6取消了协议字段,改成下一个首部字段。

IPv6取消了总长度字段,改用有效荷长度字段。

IPv6取消了服务类型字段。

4.IPv6地址

一般形式 冒号十六进制记法: 4BF5:AA12:9216:FEBC:BA5F:039A:BE9A:2170

压缩形式 4BF5:0000:0000:0000:BA5F:039A:000A:2176 ⇒ 4BF5:0:0:0:BA5F:039A:A:2176

零压缩 双冒号表示法(一连串连续的0可以被一对冒号取代;在一个地址中仅可出现一次):FF05:0:0:0:0:0:0:B3 ⇒ FF05::B3

5.IPv6基本地址类型

单播 一对一通信 可作为源地址+目的地址

多播 一对多通信 可作为目的地址

任播 IPv6独有的,一对多中的一个通信 可作为目的地址

6.IPv6与IPv4通信

即IPv6与IPv4过渡的策略

双栈协议

指在一台设备上同时启动IPv4协议栈和IPv6协议栈。该设备即能和IPv4网络通信,又能和IPv6通信。

若该设备是一台路由器,该路由器的不同接口上,分别配置了IPv4地址和IPv6地址,分别连接了IPv4网络和IPv6网络。

若该设备是一台计算机,该计算机同时拥有IPv4地址和IPv6地址,并具备同时处理这两个协议地址的功能。

隧道技术

通过使用互联网络的基础设施在网络之间传递数据的方式,使用隧道传递的数据(或负载)可以是不同协议的数据帧或包。隧道协议将其他协议的数据帧或包重新封装然后通过隧道发送

 

(五)路由选择协议

内部网关协议IGP

内部网关协议是一个自治系统内部使用的路由选择协议,与互联网中其他自治系统先用什么路由选择协议无关。

目前这类路由选择协议使用最多如RIP和OSPF路由选择协议

外部网关协议EGP

如源站和目的站处在不同的自治系统中,但是举报传到另一个自治系统的边界时,(这俩个自治系统可能使用不同的内部网关协议)这是需要使用一种协议将路由选择信息传递到另一个自治系统中。

网络层_第20张图片

  • 距离-向量算法RIP协议

网络层_第21张图片

RIP是一种分布式的基于距离向量的路由选择协议,因特网的协议标准。

RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录(即一组距离)

距离:通常为跳数,即从源端口到目的端口所经过的路由器的个数、经过一个路由器跳数加一。

RIP允许一条路径最多只能包含15个路由器,“距离”的最大值为16表示网络不可达。

RIP只适合用于小型网络,不能在两个网络之间同时使用多条路由。

RIP只选择一个具有最少路由器的路由(最短路由),哪怕存在高速(低时延)但路由器较多的路由。

RIP三要点

who 仅和相邻路由器交换信息

what 交换的信息是当前本路由器所知道的全部信息(自己的路由表)

when 按规定的时间间隔交换路由信息(30s交换一次路由信息,超过180s取消该相邻路由器)

收敛:经过若干次更新,所有路由器最终都会知道到达本自治系统任何一个网络的最短距离和下一跳路由器的地址。

距离-向量算法

  1. 修改相邻地址为x的路由器发来的RIP报文中所有表项:把下一跳字段中的地址都改为X,并把所有的距离字段都加1
  2. 对修改后的RIP报文中的每一个项目,重复以下步骤:
  • if(项目中的目的网络不再路由表中){把该项目加入路由表中}
  • else if (下一跳字段给出的路由器地址是同样的){把收到的项目已化为源路由表中的项目}//更新最新信息
  • else if(收到项目中的距离小于路由表中的距离){进行更新}
  • else{什么都不做}

    3. 若超过RIP默认超时时间还没有收到相邻路由器x的更新路由表,则把此相邻路由器x记为不可达路由器,将距离设置为16。

RIP报文格式

RIP报文分为首部和路由两部分

网络层_第22张图片

RIP优缺点

优点:实现简单,开销小,收敛过程较快。

缺点:RIP限制了网络的规模,能使用的最大距离为15。

           路由器之间交换的路由信息是路由器中完整的路由表,随网络规模扩大开销变大。

           慢收敛:但网络出现故障时,RIP要经过较长的时间才能将信息传送到所有路由器,既坏消息传播得慢,使得更新过程的收敛时间长。

 

开放最短路径优先协议OSPF

使用Dijkstra提出的最短路径算法SPF,使用分布式的链路状态协议

who 路由器使用洪泛法自治系统内所有路由器发送信息,即路由器通过输出端口向所有相临的路由器发送信息,而每一个路由器又再次将此信息发往其所有的相临路由器。最终整个区域内所有路由器都得到该信息的副本。

what 发送的信息就是与本路由器相邻的所有路由器的链路状态(本路由器与那些路由器相临以及该链路的宽度/代价-费用、距离、时延、带宽等)

when 只有当链路状态发生变化时,路由器才向所有路由器洪泛法发送此信息

最后所有路由器都能建立一个链路状态数据库,即全网拓扑图

OSPF的5种分组类型

  1. HELLO问候分组
  2. 数据库描述分组
  3. 链路状态请求分组
  4. 链路状态更新分组
  5. 链路状态确认分组

链路状态路由算法

  1. 每个路由器发现相邻结点的HELLO问候分组,并了解相邻结点的网络地址
  2. 设置带每个相临结点的成本度量metric
  3. 构造DD数据库描述分组,向临站给出自己的链路状态数据库中所有链路状态项目的摘要信息。
  4. 如果DD分组中的摘要自己有,则邻站不做处理;没有或需要更新的,则发送LSR链路状态请求分组,请求信息更新。
  5. 收到邻站的LSR分组后,发送LSU链路状态更新分组进行更新。
  6. 更新完毕,邻站返回一个LSAck链路状态确认分组进行确认。

只有一个路由器的链路状态发生变化

  1. 使用洪泛法发送LSU链路状态更新分组进行更新。
  2. 更新完毕,其他站返回一个LSAck链路状态确认分组进行确认。
  3. 使用Dijkstra根据自己的链路状态数据库构造到其他节点间的最短路径。

OSPF区域

网络层_第23张图片

每个区域都有一个32为的区域标识符(点分十进制表示) ,一个区域内路由器不超过200个。

对于非常大的网络,OSPF协议将一个自治系统划分为若干个区域。划分区域的好处是把利用洪泛法交换链路状态信息的范围局限于一个区域而不是整个自治系统,从而减少整个网络上的通信量。

在一个区域内部的路由器只知道本区域的完整网络拓扑,不知道其他区域的网络拓扑情况。

为了使每个区域能够与其他区域进行通信,骨干区域的标识符规定为0.0.0.0。骨干区域用于连通其他在下层的区域。

从其他区域来的信息由区域边界路由器进行概括。每个区域至少有一个区域边界路由器。

骨干区域内的路由器为骨干路由器,一个骨干路由器可以同时是区域边界路由器。

在骨干区域中还要有一个自治系统边界路由器,专门与其他自治系统交换路由信息。

 

采用分层次划分区域的方法使交换信息的种类增多,也使OSPF协议更复杂,但使得每个区域内部交换路由信息的通信量大大降低,高效应用于大规模的自治系统。

OSPF分组

OSPF分组用IP数据报传送。

OSPF分组为传输层的数据单元在网络层进行封装成IP数据报传送。

网络层_第24张图片

OSPF其他特点

  1. 每隔30min,刷新一次数据库中的链路状态。
  2. 由于一个路由器的链路状态只涉及到与相临路由器的连通状态,因而与整个互联网的规模无直接关系。因此当互联网规模较大时,OSPF协议比距离-响量协议RIP适合。
  3. OSPF不存在坏消息传得慢问题,使用Dijkstra算法计算出最短路径,收敛速度很快。

 

RIP和OSPF比较

1.协议参数

RIP中用于表示目的网络远近的参数为跳数,即到达目的网络所要经过的路由器的个数。

在RIP中,高参数被限制为最大15,在OSPF路由协议,路由表中表示目的网络的参数为费用(如时延)该参数为虚机值,与网络中链路的带宽等相关,即OSPF路由器信息不受物理跳数的限制。

2.收敛速度

RIP周期性地将整个路由表作为路由信息广播至网络中,该广播周期为30s。在较大的网络中,RIP产生很大的广播信息,占较多的网络带宽资源,30s的广播周期影响RIP的收敛,甚至可能不收敛

OSPF是一种链路状态的路由协议,网络稳定时路由信息较少,广播也不是周期性的,OSPF能够在大型网络中较快的收敛。

3.分层

在RIP中,网络是平面的概念,无区域及边界等的定义。

在OSPF路由协议中,一个网络或一个自治系统可以划分为多个区域,每个区域通过OSPF边界路由器相连。

4.负载平衡

在OSPF路由选择协议中,如果同一个目的网罗有多条相同代价的路径,那么将通信量分配给这些路径。(多路径间的负载平衡)

在RIP中,只能按照一条路径传送数据。

5.灵活性

OSPF协议对不同的链路可根据IP分组的不同服务类型而设置不同的代价,对于不同类型的业务可以计算出不同的路由。

RIP没有。

6.以组播地址发送报文

OSPF使用224.0.0.5来发送,采用组播地址来发送,只有运行OSPF协议的设备才会接收发送来的报文,其他设备不接收。

EIGRP使用224.0.0.2来发送。
 

BGP边界路由协议

who 与其他自治系统AS的邻站边界路由器BGP发言人交换信息。

what 交换网络可达性信息,即要到达某个网络所要经过的一系列自治系统AS

when 发生变化时更新有变化的部分。

不同自治系统的路由器之间交换理由信息的协议。

采用路径-向量路由选择协议

只是力求寻找一条能够到达目的网络且比较好的路由(不能转圈),并非寻找最佳路由

BGP协议报文格式

原理:

每个自治系统的管理员设置至少一个BGP路由器,该BGP路由器与其他自治系统的BGP路由器交换路由信息。

建立TCP连接(即BGP报文是TCP报文的数据部分),交换BGP报文建立BGP会话,利用BGP会话交换路由信息

各BGP路由器互相交换网络可达性的信息后,BGP路由器就可以找出到达其他自治系统较好的路由。

网络层_第25张图片

特点:

  1. BGP交换路由信息的结点数量级是自治系统数的量级,比自治系统中的网络数少很多。
  2. 每个自治系统中BGP路由器(边界路由器)的数量是很少的,所以自治系统之间的路由选择不复杂。
  3. BGP支持CIDR,因此BGP路由表也应当包括目的网络前缀、下一跳路由器以及到达目的网络所要经过的各个自治系统系列。
  4. 在BGP运行时,BGP的邻站是交换整个的BGP路由表,但以后只需要在发生变化时更新有变化的部分。节省网络带宽和减少路由器的处理开销。

BGP-4的四种报文

  1. 打开(OPEN)报文:用于与相邻的另一个边界路由器建立关系,并认证发送方
  2. 更新(Update)报文:用于发送某一路由的信息以及列出要撤销的多条路由。
  3. 保活(Keepalive)报文:在无Update时,周期性证实邻站的连通性;也用于确认打开报文。
  4. 通知(Notification)报文:用于发送检测到的差错;也用于关闭TCP连接。

RIP OSPF BGP比较

RIP是一种分布式的基于距离向量的内部网关路由选择协议,通过广播UDP报文交换信息。

OSPF是一个内部网关协议,交换的信息量较大,应使报文的长度尽可能短,所以不使用传输层协议(UDP或TCP),而是直接采用IP

BGP是一个外部网关协议,在不同的自治系统之间交换路由信息,由于网络环境复杂,需要保证可靠传输,所以采用TCP

网络层_第26张图片

网络层_第27张图片

 

(六)IP组播

网络层_第28张图片

IP数据报的三种传输方式

单播:用于发送数据报到单个目的地址,且每发送一份单播报文都使用一个单播IP地址作为目的地址,是一种点对点传输方式。

广播:指发送数据报到同一广播域或子网内的所有设备的一种数据传输方式,是一种点对多点传输方式。

组播/多播:当网络中的某些用户需要特定数据时,组播数据发送者仅发送一次数据,借助组播路由协议为组播数据报建立组播组播分发树,被传递的数据到达距离用户端尽可能近的节点才开始复制和分发,是一种点对多点传输方式。

源主机只发送一份数据,该数据中的目的地址为组播的组地址,组播地址标识一组主机。网络把这个分组复制后传递给孩子中所有主机。组地址中所有接收者都可以收到同样的数据副本,并且只有组播内的主机可以接受数据。

 

网络层_第29张图片

与广播不同,主机组播时仅发送一份数据,只在传送路径分叉时才将数据复制后继续转发。

组播需要组播路由器的支持,即需要能够运行主播协议的路由器。

IP组播地址

IP使用D类地址支持组播。D类IP地址前缀为1110,地址范围(224.0.0.0,239.255.255.255),每个D类地址标识一组主机。

  1. 组播地址只能用于目的地址。
  2. 组播数据报只能尽最大努力交付,不提供可靠交付,应用于UDP
  3. 对组播数据报不产生ICMP差错报文,即PING该组播地址没有响应。
  4. 并非所有D类地址都可以作为组播地址

IP组播分类

  1. 只在本局域网上进行硬件组播。大部分主机通过局域网接入因特网,在因特网上进行组播的最后阶段,把组播数据报在局域网上用硬件组播交付给组播组的所有成员。
  2. 因特网的范围内进行组播(IGMP协议、组播路由选择协议)

组播地址与MAC地址转换

网络层_第30张图片

  1. 将组播IP地址转换成二进制,只映射后23位。(因为MAC地址用十六进制表示,把二进制IP地址四位组合,第二十四位取0)
  2. 在前面加上固定的首部即01-00-5E

224.215.145.230⇒1110 0000.1101 0111.1001 0001.1110 011001-00-5E-0101 0111.1001 0001.1110 0110⇒01-00-5E-57-91-E6

有五位是不用的,即有32种组合的IP地址,映射成同样的MAC地址,可能在局域网内由两个组播组的变为一个组播组的。

所以收到多播数据报的主机,在IP层利用软件进行过滤,把不是本主机要接收的数据报进行丢弃。

网际组管理协议IGMP

IGMP协议让路由器知道本局域网上是否有主机(的进程)参加或退出了某个组播组。

和ICMP处于网络层的最上层,都是网络层协议,使用IP数据报传递报文。

网络层_第31张图片

IGMP工作的两个阶段

一、某主机要加入组播组时,向组播组的组播地址发送IGMP报文,声明自己为该组播组的成员,本地组播路由器接收到IGMP报文,利用组播路由选择协议把这组成员关系发给因特网上其他组播路由器。

二、本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器认为该组是活跃;如果经过几次探询后没有一个主机响应,组播路由器认为本网络上没有此组播组的主机,因此不在发送该组的成员关系给其他组播路由器。

组播路由选择协议

目的是找出以源主机为根节点的组播转发树

构造树可以避免路由器绕圈。

对不同的多播组应对应不同的对播转发树;同一个多播组,对不同的源点也会有不同的多播转发树。

网络层_第32张图片

组播路由选择协议的算法

 基于链路状态的路由选择

基于距离-向量的路由选择

协议无关的组播(稀疏/密集)

(七)移动IP

移动IP技术是移动结点(计算机/服务器)等以固定的网络IP地址,实现跨越不同网段的漫游功能,并保证基于网络IP的网络权限在漫游过程中不改变任何变化。

永久地址(归属地址/主地址):移动站点在归属网络中的原始地址

转交地址(辅地址):移动结点在外部网络使用的临时地址。

实现移动IP的实体

移动结点:具有永久IP地址的移动结点

归属代理/本地代理:有一个端口与移动结点本地链路相连的路由器,根据移动用户的转交地址,采用隧道技术转交移动结点的数据报

外部代理/外地代理:移动结点的漫游链路上的路由器,移动结点漫游链路的默认路由器,通知本地用户代理自己的转交地址。

实现移动IP的技术

代理搜索:让计算机知道自己是否处于漫游

申请转让地址:

登陆:移动结点到达外网时进行一系列认证、注册、建立隧道的过程

隧道:本对代理和外部代理之间建立的双向数据通道。

移动IP和动态IP

动态IP:通过使用DHCP协议在一个局域网内部的某主机可以动态获得IP地址。ming

移动IP的通信过程

 

  1. 移动结点在本地网时,按传统的TCP/IP方式进行通信。
  2. 移动结点漫游到另一个外地网络时,使用固定IP地址进行通信。接收端需要向本地代理注册当前的位置地址(即转交地址,可以是外部代理的地址或者动态配置的地址)以收到通信对端发来的IP分组。
  3. 本地代理接收来自转交地址的注册后,构建通向转交地址的隧道,将截获的IP分组通过隧道送到转交地址。
  4. 转交地址解除隧道封装,恢复出原始IP分组,送至移动结点。这样移动结点在外网就能够收到IP分组。
  5. 移动结点在外网通过的外网的路由器或者外代理向通信对端发送IP数据报。
  6. 当移动结点开到另一个外网时,需要向本地代理更新注册转交地址以继续通信。
  7. 当移动结点回到本地网时,移动结点向本地代理注销转交地址,移动结点又将使用TCP/IP方式进行通信。

A进入外部网络

在外部代理登记获得一个转交地址,离开时注销。

B给A发送数据报

本地代理截获数据报

本地代理再封装数据报,新的数据报目的地址是转交地址,发给外部代理(隧道)

外部代理拆封数据报发给A

A给B发送数据报

A用自己的主地址作为数据报源地址,用B的IP地址作为数据报的目的地址。

A移动到下一个网络

新的外部代理登记注册一个转交地址

新外部代理给本地代理发送新的转交地址(覆盖旧的)

通信

A回到归属网络

A向本地代理注销转交地址

按原始方式通信

(八)网络层设备

路由器

工作在网络层,实质上是一个多输入多输出端口的专用计算机,任务为连接不同的网络转发分组。

路由器的结构划分为路由选择分组转发

网络层_第33张图片

路由选择:根据所选定的路由选择协议构造出路由表,同时经常或定期的和相邻路由器交换路由信息而不断地更新和维护路由表。 

输入端口

在输入端口的查找和转发功能在路由器的交换功能中是最重要的。

网络层_第34张图片

 

输出端口 

若路由器处理分组的速率跟不上分组进入队列的速率,则队列的存储空间最终减少到零,使后面再进入队列的分组由于没有存储空间而被丢弃。

 

网络层_第35张图片

交换结构:根据转发表对分组进行转发

若收到RIP/OSPF分组,把分组送到路由选择处理机;若收到数据分组,则查找转发表并输出。

路由器中输入或输出队列产生溢出是造成分组丢失的重要原因。

三层设备的区别

路由器:可以互联两个不同网络层协议的网段

网桥:可以互联两个物理层和链路层不同的网段

集线器:不能互联两个物理层不同的网段

网络层_第36张图片

只有路由器可以隔离广播域。

网桥、交换机和路由器可以隔离冲突域。 

路由表和路由转发

转发:路由器根据转发表将用户IP数据报从合适的端口转发出去

路由选择:按分布式算法,根据从个相邻路由器得到的关于网络拓扑的变化情况,动态改变所选择的路由

路由表:根据路由选择算法所得到的,由软件实现。

转发表:由路由表所得到的,可以由软件或特殊硬件实现。必须包含完成转发功能是必须的信息,在转发表的每一行必须包括从要到达的目的网络到输出端口和某些MAC地址信息的映射。

 

计算机网络

你可能感兴趣的:(计算机网络)