2.网络层介绍

1.交换处理过程

161116_bLFi_2270918.png

上述模型当中,像路由器这样的连接设备担当着交换机的作用。当一个分组从某个端口到达路由器后,通过另一个端口转发给下一部交换机,称为交换的处理过程发生在连接设备上


2.交换

2.1 电路交换

报文传递之前,报文的源点和终点之间先要建立一条物理电路或信道。在电路已经建立的前提下,报文完整地从源点传送到终点,然后源点可以通知网络传输已经完成。在电话交换中,完整的、没有被分割成分组的报文从源点发送到终点。电路交换从未在网络层上应用过,主要用于物理层

2.2 分组交换

在分组交换网中,源点在传送之前先要将报文分割成便于管理的分组,这些分组到达终点后被重新组装。目前因特网的网络层就是一个分组交换网,连接设备需要判断如何为分组选择路由使之到达终点。目前,分组交换网为分组选择路由的方式有两种:数据报方式和虚电路方式


3.网络层的分组交换

网络层被设计为一个分组交换网:报文要在源点被分割成便于管理的分组,通常称为数据报,然后逐个地将每个数据报从源点传送到终点。终点接收到的数据报经过组装后重新生成原始的报文

3.1 无连接服务

网络层的协议独立地对待每一个分组,分组之间没有任何关联。一个报文的所有分组可能会沿着不同的路径抵达终点

161308_1tcB_2270918.png

每个分组选择路由时都要依据首部的信息:源地址和目的地址。路由器根据目的地址选择路由。源地址可用于报文丢弃的时候向源点发送差错消息。在无连接分组交换网中,转发判决的依据是该分组的目的地址。

161327_FP59_2270918.png

无连接网络中的时延

161345_f67L_2270918.png

3.2 面向连接服务

面向连接的服务中,属于同一个报文的所有分组之间是有关联的。在一个报文的数据报被发送之前,首先建立一条虚连接指定数据报的传送路径。分组不仅包含源地址和目的地址,同时包含一个虚电路标识符,用来指定分组应当采用的虚路径

161358_7pW8_2270918.png

在面向连接的分组交换网络中,转发判决的依据是该分组的虚电路标识符

161411_w20Q_2270918.png

要建立面向连接的服务必须经过三个阶段的处理过程:建立链路、数据传送和拆掉链路。建立链路阶段,发送方的源地址和接收方的目的地址用来生成面向连接服务路由表的一个表项。拆掉链路阶段,源点和终点通知路由器删除相应的表项。

3.2.1 建立链路阶段

在建链阶段,路由器需要为一条虚拟电路创建一个表项,在发送方和接收方之间需要交换两个辅助分组:请求分组和确认分组

请求分组

路由器在路由表中为虚电路创建一个表项,表项填写三列:入端口、入标号、出端口,出标号需要等到确认阶段才知道

161431_oTxt_2270918.png

确认分组

161442_SZ5b_2270918.png

3.2.2 数据传送阶段

当所有路由器都为特定的虚电路创建了各自的路由表项之后,属于同一个报文的所有网络层分组可以一个接一个地发送出去。报文的所有分组都遵循相同的标号序列抵达终点,终点处,分组是按序到达的

161453_LcdF_2270918.png

3.2.3 拆掉链路阶段

在拆链阶段,源点在向终点发送了所有的分组后会发送一个称为拆链分组的特殊分组,终点用一个确认分组响应。所有的路由器从各自的路由表中将对应的表项删除

3.2.4 无连接网络中的时延

161509_wMU1_2270918.png


4.网络层的服务

4.1 源计算机提供的服务

源计算机上的网络层提供四种服务:分组化处理、查找下一跳的逻辑地址、查找下一跳的物理地址、对数据报进行必要的分片处理

221457_hYw4_2270918.png

网络层接收来自上层的几个信息:数据、数据长度、逻辑地址、目的地址、协议标志号、服务类型。网络层对这些信息进行处理后生产一组数据报片以及下一跳的MAC地址,将它们一起交付给数据链路层

  • 分组化处理:网络层将来自上层的数据封装到一个数据报:为数据添加一个首部,包括分组的逻辑源地址和逻辑目的地址、分片相关信息、请求此服务的协议标号、数据长度,再加上其它一些可能选项

  • 查找下一跳的逻辑地址:数据报的源地址和目的地址没有关于下一跳逻辑地址的任何线索,源计算机上的网络层需要咨询路由表找出下一跳的逻辑地址

  • 查找下一跳的物理地址:网络层并不是真的将数据报交付给下一跳,而是由数据链路层负责真正的交付。数据链路层需要下一跳的物理地址才能向其交付。网络层通过地址解析协议获得逻辑地址对应的物理地址

  •  分片:大多数局域网和广域网都会对一个帧所携带的数据最大长度加以限制。如果网络层准备传送的数据报长度超过限制,在被传递到数据链路层之前,数据报需要被分割为更小的单元。分片操作必须要保留数据报首部中的信息

4.2 各路由器提供的服务

一个数据报涉及到路由器上的两个接口:入接口和出接口。路由器上的网络层需要与两个数据链路层打交道:入接口的数据链路层和出接口的数据链路层。网络层负载接收来自入接口数据链路层的数据报,如有必要需进行分片处理,然后将数据报片交付给出接口的数据链路层

221510_wgS4_2270918.png

4.3 目的计算机提供的服务

目的计算机向终点交付数据之前需要重组数据报片。在检查过数据报片的有效性后,从中提取数据保存。当所有的数据报片都到齐后,数据重组并交付给上层,同时网络层设置一个重组定时器。如果定时器超时,所有的数据报片都会被销毁,并发送一个差错报文,所有的数据报片需要被重新传送

221521_hkuY_2270918.png


5. 网络层相关的问题

5.1 差错控制

差错控制包括对损坏、丢失以及重复的数据报进行检测的机制,还包括检测到错误之后的纠错机制。网络层不提供真正意义上的差错控制,因为数据链路层实现了逐跳的差错控制。然而,逐跳的差错控制保护数据报并不够彻底,比如路由器处理数据报时出现的差错,数据链路层无法检测出来

221531_6UqT_2270918.png

网络层之所以忽略差错检测的另一个理由与分片有关。由于数据很可能在路由器上被分片,使得部分网络层的数据可能会被改变。如果使用差错控制,必须在每个路由器上检测是否有分片,导致网络层上的差错检测变得非常低效。不过,网络层的设计者在数据报上增加了校验和字段,可以控制首部出现的任何损坏,而不是针对整个数据报。另外,虽然网络层没有直接提供差错控制,但是如果数据报被丢弃或者首部含有一些不可知的信息,ICMP协议会提供某种程度的差错控制

5.2 流量控制

流量控制用于调整源点发送的数据量以免接收方超载。如果源计算机上层应用产生数据的速度比目的计算机上层应用吸收数据的速度快,接收方会被数据淹没。为了控制数据的流量,接收方需要向发送方发送某些反馈,通知发送方自己被数据淹没。但是,因特网的网络层并不直接提供任何流量控制。首先,网络层没有差错控制,接收方网络层工作简单,以致很少出现超载现象。其次,使用网络层服务的上层协议可以部署缓存,某种程度上加强接收数据速度。再次,网络层服务的上层协议都会提供流量控制

5.3 拥塞控制

如果网络中源计算机发送数据报的数量超过网络或路由器的容量,有可能发送拥塞现象。这种情况下,某些路由器可能丢弃一些数据报,导致发送方可能重新发送被丢弃的分组副本,拥塞情况更严重。如果拥塞持续下去,某一时刻达到极点,导致系统崩溃,没有任何数据报能被交付

无连接网络的拥塞控制

  • 无连接网络可以通过信令控制拥塞的形成:反向信令是在运动方向与拥塞方向相反的数据报中设置一个比特,通知发送方拥塞正在形成,发送方应当放慢分组的速度。

  • 无连接网络可以通过扼流分组控制拥塞的形成:遇到拥塞时由路由器向发送方发送一个特殊的分组。向源点发送一个ICMP分组使其放慢速度

面向连接网络的拥塞控制

建立链路阶段进行提前协商:发送方和接收方可以在建立虚拟电路时对通信量的级别达成一致意见。这个通信量级别可以由允许建立虚电路的路由器指定




转载于:https://my.oschina.net/keeplearn/blog/344031

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值