当前位置:首页 » 网络连接 » 计算机网络各层差错控制
扩展阅读
网络信号极佳但很慢 2025-05-04 13:43:31

计算机网络各层差错控制

发布时间: 2025-05-04 10:16:23

计算机网络笔记——数据链路层(停等协议、GBN、SR)

流量控制:防止发送端发送和接收端接收速度不匹配造成传输错误

传输层和数据链路层均有流量控制,但是控制手法不一样

传输层:端到端,接收端向发送端发送一个窗口公告。告诉发送端目前我能接收多少
数据链路层:点到点,接收端接收不下的就不回复确认(ack),让发送端自己重传

涉及协议较多分批写

优点 :最简单的控制协议
缺点 :但是性能较弱,信道利用率低

控制方法
发送方:发送一个帧
接收方:接收到帧后返回改帧的ack
发送方:接收到ack后发送下一个帧

差错控制

注意

滑动窗口协议是基于停止等待协议的优化版本
停止等待协议性能是因为需要等待ack之后才能发送下一个帧,在传送的很长时间内信道一直在等待状态
滑动窗口则利用缓冲思想,允许连续发送(未收到ack之前)多个帧,以加强信道利用

窗口 :其实就是缓冲帧的一个容器,将处理好的帧发送到缓冲到窗口,可以发送时就可以直接发送,借此优化性能。一个帧对应一个窗口。

GBN是滑动窗口中的一种,其中 发送窗口 > 1 , 接收窗口=1 因发送错误后需要退回到最后正确连续帧位置开始重发,故而得名。

控制方法
发送端:在将发送窗口内的数据连续发送
接收端:收到一个之后向接收端发送累计确认的ack
发送端:收到ack后窗口后移发送后面的数据

累计确认 :累计确认允许接收端一段时间内发送一次ack而不是每一个帧都需要发送ack。该确认方式确认代表其前面的帧都以正确接收到
eg:发送端发送了编号 0,1,2,3,4,5 的帧,等待一段时间后(超过3的超时计时器)累计收到的ack对应 0,2 帧,则证明已经成功 0,1,2 均已经成功接收, 3 传输错误。并且哪怕 4,5 两个帧接收成功后也不会返回 4,5 的ack会一直等待从 3 开始重传

差错控制

发送帧丢失、ack丢失、ack迟到 等处理方法基本和停等协议相同,不同的是采用累计确认恢复的方式,当前面的帧出错之后后面帧无论是否发送成功都要重传

优点:信道利用率高(利用窗口有增加发送端占用,并且减少ack回复次数)
缺点:累计确认使得该方法只接收正确顺序的帧,而不接受乱序的帧,错误重传浪费严重

发送窗口大小问题
窗口理论上是越多性能越好,但是窗口不能无限大,n比特编码最大只能2^(n-1)个窗口,否则会造成帧无法区分(本质就是留了一个比特区分两组帧)

SR协议可以说是GBN的plus版本,在GBN的基础上改回每一个帧都要确认的机制,解决了累计确认只接收顺序帧的弊端只需要重发错误帧。
其中 发送窗口 > 1 , 接收窗口 > 1 , 接收窗口 > 发送窗口 (建议接 收窗口 = 发送窗口 接收窗口少了溢出多了浪费).

控制方法
发送端:将窗口内的数据连续发送
接收端:收到一个帧就将该帧缓存到窗口中并回复一个ack
接收端:接收到顺序帧后将数据提交给上层并接收窗口后移(若接收到的帧不是连续的顺序帧时接收窗口不移动)
发送端:接收到顺序帧的ack后发送窗口后移(同理发送窗口接收到的ack不连续也不移动)

差错控制

发送帧丢失、ack丢失、ack迟到 三类处理方式仍然和停等协议相同,不同的是SR向上层提交的是多个连续帧,停等只提交一个帧(不连续的帧要等接收或重传完成后才会提交)

发送窗口大小问题
同GBN一样,发送窗口和接收窗口都不能无限多,且不说缓存容量问题,当两组帧同时发送时会造成无法区分,大小上限仍然是2^(n-1)个窗口(本质就是留了一个比特写组号)

窗口大小这里留一张截图,方便理解
假设窗口大小都为3(图中编号到了3是借4窗口的图,正常应编号到2,但是不妨碍理解)
左边是错误重发,第一组的0帧ack丢失了
右边是正常收发

三种协议对比:
停等协议:单线程的傻子,简单不易出错,但是效率极其低下
GBN:假的多线程(接收端太坑啦),接收端是情种,只等待自己哪一个帧,丢弃了后来的帧
SR:多线程,接收端有收藏癖,等待集齐一套召唤神龙(提交给上层这只神龙……)

② 差错控制的基本工作方式有哪几种各有什么特点

号称网络硬件三剑客的集线器(Hub)、交换机(Switch)与路由器(Router)一直都是网络界的活跃分子,但让很多初入网络之门的菜鸟恼火的是,它们三者不仅外观相似,而且经常呆在一起,要想分清谁是谁,感觉有点难!就让我们一起来看看它们之间有什么区别和联系吧!

三剑客的工作原理

一、集线器

1.什么是集线器

在认识集线器之前,必须先了解一下中继器。在我们接触到的网络中,最简单的就是两台电脑通过两块网卡构成“双机互连”,两块网卡之间一般是由非屏蔽双绞线来充当信号线的。由于双绞线在传输信号时信号功率会逐渐衰减,当信号衰减到一定程度时将造成信号失真,因此在保证信号质量的前提下,双绞线的最大传输距离为100米。当两台电脑之间的距离超过100米时,为了实现双机互连,人们便在这两台电脑之间安装一个“中继器”,它的作用就是将已经衰减得不完整的信号经过整理,重新产生出完整的信号再继续传送。

中继器就是普通集线器的前身,集线器实际就是一种多端口的中继器。集线器一般有4、8、16、24、32等数量的RJ45接口,通过这些接口,集线器便能为相应数量的电脑完成“中继”功能。由于它在网络中处于一种“中心”位置,因此集线器也叫做“Hub”。

2.集线器的工作原理

集线器的工作原理很简单,以图2为例,图中是一个具备8个端口的集线器,共连接了8台电脑。集线器处于网络的“中心”,通过集线器对信号进行转发,8台电脑之间可以互连互通。具体通信过程是这样的:假如计算机1要将一条信息发送给计算机8,当计算机1的网卡将信息通过双绞线送到集线器上时,集线器并不会直接将信息送给计算机8,它会将信息进行“广播”--将信息同时发送给8个端口,当8个端口上的计算机接收到这条广播信息时,会对信息进行检查,如果发现该信息是发给自己的,则接收,否则不予理睬。由于该信息是计算机1发给计算机8的,因此最终计算机8会接收该信息,而其它7台电脑看完信息后,会因为信息不是自己的而不接收该信息。

3.集线器的特点

1)共享带宽

集线器的带宽是指它通信时能够达到的最大速度。目前市面上用于中小型局域网的集线器主要有10Mbps、100Mbps和10/100Mbps自适应三种。

10Mb带宽的集线器的传输速度最大为10Mbps,即使与它连接的计算机使用的是100Mbps网卡,在传输数据时速度仍然只有10Mbps。10/100Mbps自适应集线器能够根据与端口相连的网卡速度自动调整带宽,当与10Mbps的网卡相连时,其带宽为10Mb;与100Mbps的网卡相连时,其带宽为100Mb,因此这种集线器也叫做“双速集线器”。

集线器是一种“共享”设备,集线器本身不能识别目的地址,当同一局域网内的A主机给B主机传输数据时,数据包在以集线器为架构的网络上是以广播方式传输的,由每一台终端通过验证数据包头的地址信息来确定是否接收。

由于集线器在一个时钟周期中只能传输一组信息,如果一台集线器连接的机器数目较多,并且多台机器经常需要同时通信时,将导致集线器的工作效率很差,如发生信息堵塞、碰撞等。

为什么会这样呢?打给比方,以图2为例,当计算机1正在通过集线器发信息给计算机8时,如果此时计算机2也想通过集线器将信息发给计算机7,当它试图与集线器联系时,却发现集线器正在忙计算机1的事情,于是计算机2便会“带”着数据站在集线器的面前等待,并时时要求集线器停下计算机1的活来帮自己干。如果计算机2成功地将集线器“抢”过来了(由于集线器是“共享”的,因此很容易抢到手),此时正处于传输状态的计算机1的数据便会停止,于是计算机1也会去“抢”集线器……

可见,集线器上每个端口的真实速度除了与集线器的带宽有关外,与同时工作的设备数量也有关。比如说一个带宽为10Mb的集线器上连接了8台计算机,当这8台计算机同时工作时,则每台计算机真正所拥有的带宽是10/8=1.25Mb!

2半双工

先说说全双工:两台设备在发送和接收数据时,通信双方都能在同一时刻进行发送或接收操作,这样的传送方式就是全双工。而处于半双工传送方式的设备,当其中一台设备在发送数据时,另一台只能接收,而不能同时将自己的数据发送出去。

由于集线器采取的是“广播”传输信息的方式,因此集线器传送数据时只能工作在半双工状态下,比如说计算机1与计算机8需要相互传送一些数据,当计算机1在发送数据时,计算机8只能接收计算机1发过来的数据,只有等计算机1停止发送并做好了接收准备,它才能将自己的信息发送给计算机1或其它计算机。

二、交换机

1.什么是交换机

交换机也叫交换式集线器,它通过对信息进行重新生成,并经过内部处理后转发至指定端口,具备自动寻址能力和交换作用,由于交换机根据所传递信息包的目的地址,将每一信息包独立地从源端口送至目的端口,避免了和其他端口发生碰撞。广义的交换机就是一种在通信系统中完成信息交换功能的设备。

2.交换机的工作原理

在计算机网络系统中,交换机是针对共享工作模式的弱点而推出的。集线器是采用共享工作模式的代表,如果把集线器比作一个邮递员,那么这个邮递员是个不认识字的“傻瓜”--要他去送信,他不知道直接根据信件上的地址将信件送给收信人,只会拿着信分发给所有的人,然后让接收的人根据地址信息来判断是不是自己的!而交换机则是一个“聪明”的邮递员--交换机拥有一条高带宽的背部总线和内部交换矩阵。交换机的所有的端口都挂接在这条背部总线上,当控制电路收到数据包以后,处理端口会查找内存中的地址对照表以确定目的MAC(网卡的硬件地址)的NIC(网卡)挂接在哪个端口上,通过内部交换矩阵迅速将数据包传送到目的端口。目的MAC若不存在,交换机才广播到所有的端口,接收端口回应后交换机会“学习”新的地址,并把它添加入内部地址表中。

可见,交换机在收到某个网卡发过来的“信件”时,会根据上面的地址信息,以及自己掌握的“常住居民户口簿”快速将信件送到收信人的手中。万一收信人的地址不在“户口簿”上,交换机才会像集线器一样将信分发给所有的人,然后从中找到收信人。而找到收信人之后,交换机会立刻将这个人的信息登记到“户口簿”上,这样以后再为该客户服务时,就可以迅速将信件送达了。

3.交换机的性能特点

1)独享带宽

由于交换机能够智能化地根据地址信息将数据快速送到目的地,因此它不会像集线器那样在传输数据时“打扰”那些非收信人。这样一来,交换机在同一时刻可进行多个端口组之间的数据传输。并且每个端口都可视为是独立的网段,相互通信的双方独自享有全部的带宽,无须同其他设备竞争使用。比如说,当A主机向D主机发送数据时,B主机可同时向C主机发送数据,而且这两个传输都享有网络的全部带宽--假设此时它们使用的是10Mb的交换机,那么该交换机此时的总流通量就等于2×10Mb=20Mb。

2)全双工

当交换机上的两个端口在通信时,由于它们之间的通道是相对独立的,因此它们可以实现全双工通信。

三、集线器与交换机的区别

从两者的工作原理来看,交换机和集线器是有很大差别的。首先,从OSI体系结构来看,集线器属于OSI的第一层物理层设备,而交换机属于OSI的第二层数据链路层设备。

其次,从工作方式来看,集线器采用一种“广播”模式,因此很容易产生“广播风暴”,当网络规模较大时性能会受到很大的影响。而当交换机工作的时候,只有发出请求的端口和目的端口之间相互响应而不影响其他端口,因此交换机能够在一定程度上隔离冲突域和有效抑制“广播风暴”的产生。

另外,从带宽来看,集线器不管有多少个端口,所有端口都是共享一条带宽,在同一时刻只能有两个端口传送数据,其他端口只能等待,同时集线器只能工作在半双工模式下;而对于交换机而言,每个端口都有一条独占的带宽,当两个端口工作时并不影响其他端口的工作,同时交换机不但可以工作在半双工模式下而且可以工作在全双工模式下。

如果用最简单的语言叙述交换机与集线器的区别,那就应该是智能与非智能的区别。集线器说白了只是连接多个计算机的网络设备,它只能起到信号放大和传输的作用,不能对信号中的碎片进行处理,所以在传输过程中容易出错。而交换机则可以看作为是一种智能型的集线器,它除了拥有集线器的所有特性外,还具有自动寻址、交换、处理的功能。并且在数据传递过程中,发送端与接受端独立工作,不与其它端口发生关系,从而达到防止数据丢失和提高吞吐量的目的。

③ osi鍙傝冩ā鍨嬬殑绗涓銆佷簩銆 涓夊眰鍒嗗埆鏄浠涔堬纻钖勮嚜镄勫姛鑳芥槸浠涔

osi鍙傝冩ā鍨嬬殑绗涓銆佷簩銆 涓夊眰鍙婂悇镊镄勫姛鑳斤细

绗涓灞傦细鐗╃悊灞傦纴涓昏佸姛鑳芥槸鍒╃敤鐗╃悊浼犺緭浠嬭川涓烘暟鎹阈捐矾灞傛彁渚涚墿鐞呜繛鎺ワ纴浠ヤ究阃忔槑镄勪紶阃佹瘆鐗规祦銆傚父鐢ㄨ惧囨湁锛埚悇绉岖墿鐞呜惧囷级钖寮娄紞缃戝崱銆侀泦绾垮櫒銆佷腑缁у櫒銆佽皟鍒惰В璋冨櫒銆佺绣绾裤佽皥鎴栧弻缁炵嚎銆佸悓鍗灭函杞寸数缂嗐

绗浜屽眰锛氭暟鎹阈捐矾灞傦纴鍦ㄦゅ眰灏嗘暟鎹鍒嗗抚锛屽苟澶勭悊娴佹带鍒躲傚睆钄界墿鐞嗗眰锛屼负缃戠粶灞傛彁渚涗竴涓鏁版嵁阈捐矾镄勮繛鎺ワ纴鍦ㄤ竴𨱒℃湁鍙鑳藉嚭宸阌欑殑鐗╃悊杩炴帴涓婏纴杩涜屽嚑涔庢棤宸阌欑殑鏁版嵁浼犺緭锛埚樊阌欐带鍒讹级銆傛湰灞傛寚瀹氭嫇镓戠粨鏋勫苟鎻愪緵纭浠跺诲潃銆傚父鐢ㄨ惧囨湁缃戞ˉ銆佷氦鎹㈡満

绗涓夊眰锛氱绣缁滃眰锛屾湰灞傞氲繃瀵诲潃𨱒ュ缓绔嬩袱涓鑺傜偣涔嬮棿镄勮繛鎺ワ纴涓烘簮绔镄勮繍杈揿眰阃佹潵镄勫垎缁勶纴阃夋嫨钖堥傜殑璺鐢卞拰浜ゆ崲鑺傜偣锛屾g‘镞犺鍦版寜镦у湴鍧浼犻佺粰鐩镄勭镄勮繍杈揿眰銆

瀹冨寘𨰾阃氲繃浜掕繛缃戠粶𨱒ヨ矾鐢卞拰涓缁ф暟鎹 锛涢櫎浜嗛夋嫨璺鐢变箣澶栵纴缃戠粶灞傝缮璐熻矗寤虹珛鍜岀淮鎶よ繛鎺ワ纴鎺у埗缃戠粶涓婄殑𨰾ュ炰互鍙婂湪蹇呰佺殑镞跺欑敓鎴愯¤垂淇℃伅銆

镓╁𪾢璧勬枡锛

锲介檯镙囧嗳鍖栫粍缁呕SO浜1984骞存彁鍑轰简OSI RM锛圤penSystem Interconnection Reference Model锛屽紑鏀剧郴缁熶簰杩炲弬钥冩ā鍨嬶级銆侽SI 鍙傝冩ā鍨嫔緢蹇鎴愪负璁$畻链虹绣缁滈氢俊镄勫熀纭妯″瀷銆

鍦ㄨ捐OSI 鍙傝冩ā鍨嬫椂锛岄伒寰浜嗕互涓嫔师鍒欙细钖勪釜灞备箣闂存湁娓呮榈镄勮竟鐣岋纴瀹炵幇鐗瑰畾镄勫姛鑳斤绂灞傛$殑鍒掑垎链夊埄浜庡浗闄呮爣鍑嗗岗璁镄勫埗瀹氾绂灞傜殑鏁扮洰搴旇ヨ冻澶熷氾纴浠ラ伩鍏嶅悇涓灞傚姛鑳介吨澶嶃

阃氩父OSI鍙傝冩ā鍨1-3灞傜О涓哄簳灞傦纸lower layer锛夛纴鍙埚彨浠嬭川灞傦纸media layer锛夛纴搴曞眰璐熻矗鏁版嵁鍦ㄧ绣缁滀腑镄勪紶阃侊纴缃戠粶浜掕繛璁惧囧线寰浣崭簬涓嬩笁灞傦纴浠ョ‖浠跺拰杞浠剁殑鏂瑰纺𨱒ュ疄鐜般

OSI鍙傝冩ā鍨嬬殑绗浜斿眰鍒扮涓冨眰绉颁负楂桦眰锛坲pper layer锛夛纴鍙埚彨浣忓嚑灞傦纸host layer锛夛纴楂桦眰鐢ㄤ簬淇濋㱩鏁版嵁镄勬g‘浼犺緭锛屼互杞浠舵柟寮忔潵瀹炵幇銆

鍙傝冭祫鏂欐潵婧愶细锏惧害锏剧-OSI鍙傝冩ā鍨