目录

一、网络拥塞控制

(一)拥塞控制Congestion Control与流量控制Flow Control

1.产生拥塞的主要原因

2.解决拥塞的方法

(二)死锁及其预防

1.存储转发死锁及其防止

2.重装死锁及其防止

二、三层交换机与三层交换

(一)三层交换机硬件结构

1.纯软件路由模块的三层交换机

2.纯硬件路由模块的三层交换机

3.软硬件结合路由模块的三层交换机

(二)三层交换原理


一、网络拥塞控制

网络拥塞现象是指到达通信子网中某一部分的数据报数量过多,来不及处理(子网中所承受的负荷,超出了网络的吞吐能力(包数/秒)),引起这部分乃至整个网络性能下降的现象。当拥塞严重时,甚至会导致网络通信业务陷入停顿,即出现死锁现象。

在一个出现拥塞现象的网络中,到达某个结点的数据报将会遇到无缓冲区可用的情况,出现丢弃现象,从而使这些数据报不得不由源结点重传,从而使通信子网的有效吞吐量下降。由此引起而行循环,使通信子网的局部甚至全部处于死锁状态,最终导致网络有效吞吐量接近为零。

(一)拥塞控制Congestion Control与流量控制Flow Control

拥塞控制需要确保通信子网能够承载用户提交的通信量,是一个全局性问题,设计主机、路由器、以及与降低网络传输性能有关的所有因素等。

流量控制与点到点通信量有关,主要解决快速发送方与慢速接收方的问题,是局部问题,控制方式是抑制发送端发送数据的速率,以便使接收端来得及接收或处理,一般都是基于反馈的控制。

1.产生拥塞的主要原因

有3方面:结点缓冲区容量太小、输出链路的通信带宽不够、处理机的速度不够快。

2.解决拥塞的方法

有3种:

1.缓冲区预分配法Buffer Preallocation

常用于虚电路分组交换网。在虚电路建立时,要求呼叫请求分组所途经的每个结点为此条虚电路预先分配一个或多个数据缓冲区(即每个结点都要有缓冲区用于分配)。若某个结点当前没有可用的缓冲区(应答信号为“忙”),则在建立虚电路时让呼叫请求分组选择其他路径来建立虚电路。这样,通过途径的各个结点就可以为每条虚电路开设永久性的缓冲区(直到虚电路拆除),就总能有空间来接纳并转送经过的数据报。当结点收到一个数据报并将它转发出去之后,该结点向发送结点返回一个确认信息(告知发送结点已发送可以再发一个过来)。该确认信息一方面接收结点已正确收到数据报,另一方面告诉发送结点,该结点已空出缓冲区以备接收下一个数据报。

若结点之间的协议允许多个未处理的数据报存在,则为了完全消除拥塞,每个结点要为每条虚电路保留窗口大小数量的缓冲区,而不管实际上有没有通信量。这样,就会以后非常多的资源被某个连接占用,网络资源的有效利用率较低。

该拥塞控制方法主要用于高带宽、低延迟的场合,如数字化语音。

2.分组丢弃法Packet Dropping

不必预先为数据报预留缓冲区,而是在路由器的缓冲区被占满时将后面来的数据报丢弃,仅在缓冲区腾出空间后再重新接收数据分组。

若网络采用数据报服务(不需要确认应答),采用该方法来防止拥塞不会引发大的影响:因为数据报服务的分组报文种每个分组都有完整的路由地址信息,可以独立地选择最佳路由,当发现原来的路径性能不佳时,会自动重新以其他更好的路径进行分组交换;再者,在数据报服务中不需要接收结点在接收到分组后进行确认,所以及时丢弃了,也不会引起发送结点长时间等待确认应答。

若网络采用虚电路服务(需要有确认应答),则必须在某个前面的结点种保存被丢弃数据报的备份,以便拥塞解决后重新发送。

3.定额控制法。

在通信子网中设置适当数量,即称为“许可证”的特殊信息来实现的。其中一部分许可证在通信子网开始工作前预先以某种策略分配给各个源结点,另一部分则在子网开始工作后在王忠四处环游。当源结点要发送来自源端系统的数据报时,它必须首先拥有许可证,并且每发送一个数据报注销一张许可证。目的结点方则每收到一个数据报并将其提交给目的端系统后,便生成一张许可证。这样可确保子网中的数据报数量不会超过许可证的数量,从而防止拥塞的发生。但网络的传输效率可能不能发挥到最佳。

这种控制方法有点像令牌环网上的介质争用解决方案。在令牌环网中,源结点要发送数据必须要获取网络中唯一的令牌,不同的是这里的证书不是唯一的,可以有许多(数据是一定的)。

(二)死锁及其预防

死锁就是一些结点由于没有空闲缓冲区而无法接收和转发数据报(转发时也需要一定的缓冲空间),这样的结果是结点间互相等待,都既不能接收数据报也不能转发数据报,并一直保持这一僵局,严重时甚至导致整个网络瘫痪。

常见死锁情况及预防方法

1.存储转发死锁及其防止

最常见的死锁是发生在两个结点之间的直接存储转发死锁。如A\B\C三个几点的缓存区都满了,A发往B,B满了要往外发一些分组释放空间后才能发送;B发往C,C也满了;C发往A,A也满了。这样A等B清缓冲区,B等C,C等A,但事实上当前情况下这3点结点的缓冲区都已无法清空了。当一个结点处于死锁状态时,所有与之相连的链路将完全被拥塞。

解决方案:

1.为每个结点设置m+1个缓冲区并顺序编号,m为通信子网的直径,即从任一源结点到任一目的结点间的最大链路段数。每个源结点仅当其0号缓冲区可用时才能接收源端系统来的数据报,而此数据报仅能转发给1号缓冲区空闲的相邻结点,再由该结点将数据报转发给它的2号缓冲区空闲的相邻结点。依此类推。最后,该数据报或顺利到达目的结点,或到了某个几点编号为m的缓冲区就无法转发了,此时一定发生了循环,应该秀气。由于每个数据报都是按编号递增规则分配缓冲区,所以结点之间不会相互等待空闲缓冲区而发生死锁。该方法不足之处在于当某个结点虽然由空闲缓冲,但正巧没有所需要的特定编号的缓冲区,数据报仍要等待,从而造成缓冲区和链路的浪费。

2.每一个数据报都携带一个全局性的唯一的“时间戳”,每个结点要为每条链路保留一个特殊的缓冲区,而其他缓冲区均可用于存放中转数据报,按每条输出链路队列上的数据报时间戳顺序排队。例如,A发往B,B没有空闲缓冲区,但正巧由要送到A的数据报,此时A\B可通过特殊的接收缓冲区交换数据报;若B既没有空闲缓冲区,也没有要发到A的数据报,B结点只好强行将一个出路方向大致与A结点方向相同的数据报与A结点数据报互相交换,但此时A结点中的数据报必须比B中的具有更早的时间戳,这样才能保证子网中某个最早的数据报不受阻挡地转发到目的地。这样,每个数据报最终总会一步一步的发送到目的结点,以此来避免死锁现象的发生。

2.重装死锁及其防止

就是在数据分组重新组装、恢复成原来数据报的过程中发生的死锁。

若目的结点用于重装报文的缓冲区空间有限,而且它无法知道正在接收的报文究竟被拆成多少个数据分组,则可能发生死锁,因为它没办法完成整个分组的重装,在缓冲的分组就不能被发送出去,而此时相邻结点仍在不断地向它传送数据分组,因没有可用的缓冲空间,本结点就无法继续接收后续的分组了。虽然相邻结点可以重发,但目的结点的缓冲区始终得不到清空,这样源结点在经过多次尝试后,相邻结点就会绕道从其他途径再向该目的端系统传送分组,但这样又会造成周边区域也发生拥塞。

解决方法:

1.允许目的结点将不完整的报文提交给目的端系统,只要按顺序发送即可,完整组装的任务交给目的端系统。该方法可能使端系统接收到不完整的数据报而使整个数据无效。

2.检测出不能完整重装的报文,然后要求源端系统重新发送。该方法复杂化了,同时家中了源端的负担。

3.每个结点配备一个专门的缓冲空间,用以暂存不完整的报文。该方法增加每个结点的开销,影响性能。

二、三层交换机与三层交换

大多数三层交换机采用ASIC硬件芯片来完成转发,ASIC芯片内部集成了IP三层转发的功能,包括检查IP报文头、修改存货时间TTL参数、重新计算IP头校验和、IP数据报的数据链路封装等。

(一)三层交换机硬件结构

1.纯软件路由模块的三层交换机

早期、目前比较低档的。通过CPU调用相关的软件功能,查询存储在内存中的CAM(Content Addressable Memory,内容可寻址记忆)表来获取对应目的IP地址的MAC地址。

2.纯硬件路由模块的三层交换机

技术复杂、成本高,但速度快、性能好、带负载能力强。其原理是采用专门的ASIC芯片进行路由表的查找和刷新。

与纯软件不同的是,在进行路由选择转发时采用的时ASICApplication Specific Integrated Circuit,应用专用集成电路)芯片,路由表信息存储在ASIC芯片中,执行效率高。

3.软硬件结合路由模块的三层交换机

目前更多采用。在ASIC芯片中同时存储二层CAM表和三层转发表,在内存中存储软件路由表和ARP映射表,由CPU调用,即利用硬件模块的高速交换性能,又利用软件模块的灵活性。

CPU主要用于转发的控制,维护一些软件表项(包括软件路由表、软件ARP表等),并根据软件表项的转发信息来配置ASIC的硬件三层转发表。

真正决定高速交换转发的是ASIC中的二、三层硬件表项。

(二)三层交换原理

总体原理:一次路由(第一个数据报由CPU的路由表转发并建立三层转发表项),多次交换(后续数据报由ASIC的三层转发表转发)。

深入理解计算机网络-8网络层5相关推荐

  1. 史上最通俗的《深入理解计算机网络》目录

    自我公布历时一年多时间创作的<深入理解计算机网络>这部书创作完成并交付机械工业出版社出版以来,得到许多读者读者朋友的高度关注.几乎不间断地有读者向我询问什么时候在博客中发布这本书的目录及试 ...

  2. 图文轻松理解计算机网络五层架构

    博主:爱码叔 个人博客站点: icodebook 公众号:漫话软件设计 专注于软件设计与架构.技术管理.擅长用通俗易懂的语言讲解技术.对技术管理工作有自己的一定见解.文章会第一时间首发在个站上,欢迎大 ...

  3. 【深入理解计算机网络】讲师解读计算机网络原理视频课程(下)-王达-专题视频课程...

    [深入理解计算机网络]讲师解读计算机网络原理视频课程(下)-9276人已学习 课程介绍         本课程专门介绍计算机网络体系结构"应用层"主要的应用服务协议工作原理. 课程 ...

  4. 【计算机网络】网络层 : 总结 ( 功能 | 数据交换 | IP 数据报 | IPv4 地址 | IPv6 地址 | 路由选择协议 | 路由算法 )★★★

    文章目录 一.网络层功能 二.数据交换方式 ★ 三.IP 数据报 ★ 四. IPv4 地址 ★★ 1 . IP 地址 发展 : 2 . 分类 IP 地址 3 . NAT 转换 4 . 子网划分 5 . ...

  5. 视频教程-【深入理解计算机网络】“数制”视频课程-网络技术

    [深入理解计算机网络]"数制"视频课程 国内IT图书作者,网络技术讲师,华为授权讲师.共著有近60部计算机网络著作,新代表作:<Cisco/H3C交换机|路由器"豪 ...

  6. 《深入理解计算机网络》迷你书

    <深入理解计算机网络>迷你书 深入理解计算机网络>结合最新计算机网络技术,全面.系统.深入地阐述了计算机网络的体系结构.工作原理,以及各种通信协议实现原理...更多<<

  7. 计算机网络之网络层7

    系列文章目录 第五章计算机网络之网络层7 计算机网络之网络层 系列文章目录 一.网络层服务 网络层 网络层核心功能转发与路由 网络层核心功能-连接和建立 网络层服务模型 二.连接服务与无连接服务 三. ...

  8. 计算机网络自顶向下--网络层

    本书结构是自顶向下的,所以请按下列顺序阅读: 1.计算机网络自顶向下–应用层 2.计算机网络自顶向下–运输层 3.计算机网络自顶向下–网络层 4.计算机网络自顶向下–链路层 网络层 概述 转发和路由选 ...

  9. 计算机网络:网络层部分习题解答(学习笔记)

    计算机网络:网络层部分习题解答(学习笔记) 1.试辨认以下IP地址的网络类别. (1)128.36.199.3 (2)21.12.240.17 (3)183.194.76.253 (4)192.12. ...

最新文章

  1. ReactiveCocoa代码实践之-更多思考
  2. scrapy爬虫框架初相识
  3. 周星驰的10个华人记录
  4. 实验中遇到的Quartus II的Warning的解释、原因以及解决方法
  5. 高可用集群中的选举机制
  6. latex中空一整行,新的一行顶格写
  7. 【numpy求和】numpy.sum()求和
  8. 关于T-SQL中exists或者not exists子查询的“伪优化”的做法
  9. ReactJS实用技巧(1):JSX与HTML的那些不同
  10. 十大排序算法——堆排序(C语言)
  11. 经典算法归纳(c语言)
  12. 怎样用比较器实现信号的衰减和饱和_小器件大功用之变频器输入滤波器
  13. 虚拟钢琴键盘音源合集 Toontrack EZkeys Complete 1.2.5 WiN-MAC
  14. 计算机中h是几进制,16进制后面用H表示,其他进制的用什么表示
  15. 【模型 6.0】以前的你遇事不知所措,现在的你可以镇定自若,靠它!
  16. Python入门篇(二)
  17. iOS10.3.3 iPhone5使用爱思助手越狱后安装完openssl,afc2失效的解决办法
  18. Java面试题目大汇总(附参考答案)
  19. 使用selenium解决12306的登录问题
  20. Open Compound Domain Adaptation

热门文章

  1. MySQL优化之超大分页查询
  2. 用户体验的5个注意事项
  3. Loadrunner之关联——用小故事理解
  4. 转载:关于NERO7刻录软件的使用
  5. m1 Mac zshrc 环境变量
  6. androidBasic
  7. bga焊盘怎么做_焊接焊盘和BGA设计规则
  8. 3、S32K14X学习笔记(三):MDK5/Keil5下安装恩智浦-NXP S32K11X和S32K14X系列pack包
  9. 【我们是冠军】2021年大数据领域第一名の博客之星活动复盘
  10. Markdown格式