数据链路层功能——封装成帧&&差错控制

  从本节开始介绍数据链路层的内容,数据链路层属于计算机网络的低层,需要对其上层网络层提供服务。本文主要介绍数据链路层的一些基本概念和数据链路层的两个功能:封装成帧和差错控制。

  (1) 节点 :主要是指主机、路由器。
  (2) 链路 :网络中两个节点之间的 物理通道
  (3) 数据链路 :网络中两个节点之间的 逻辑通道 ,把实现控制数据传输 协议 的硬件和软件加到链路上就构成了数据链路。
  (4) :链路层的协议数据单元,封装网络层的数据报。

  数据链路层的功能:在物理层提供服务的基础上 向网络层提供服务 ,其最基本的服务是将源自网络层来的数据可靠的传输到相邻节点的目标机网络层。其主要作用是 加强物理层传输原始比特流的功能 ,将物理层提供的可能出错的物理连接改造成 逻辑上无差错的数据链路 ,使之对网络层表现为一条无差错的链路。

   组装成帧就是在一段数据的前后部分添加首部和尾部,这样就构成了一个帧 。帧是数据链路层的数据传送单元。接收端再收到物理层上交的比特流后,就能根据首部和尾部的标记,从收到的比特流中识别帧的开始和结束。

  首部和尾部包含很多控制信息,其中一个重要作用就是: 帧定界(确定帧的界限)
   帧同步 :接收方应当能够从接收到的二进制比特流中区分出帧的起始和终止。
   帧长 :帧的数据部分长度加上帧首部和帧尾部的长度。
   最大传送单元(MUT,Maximum Transfer Unit) :每一种链路层都规定了所能传送帧的数据部分长度上限。
  组帧的四种方式: 字符计数法、字符填充法、零比特填充法、违规编码法。
   透明传输 :指不管所传数据是什么样的比特组合,都应当能够在链路上传送。因此,链路层就看不见有什么妨碍数据传输的东西。
  当所传的数据中的比特组恰巧与某一个控制信息完全一样时,就必须采取适当的措施,使接收方不会将这样的错误认为是某种控制信息。这样才能保证数据链路层的传输是透明的。

  字符计数法:帧首部使用一个计数字段(第一个字节)来表明帧的长度。在接收时根据帧首部的字数计数就可以知道一个帧的长度。

  缺点:如果其中某个帧的计数错误,那么会导致之后传输的数据全部错误。

  当数据时由可打印的ASCII码组成的文本文件时,帧定界可以使用特殊的 帧定界符 。控制字符 SOH(Start Of Header) 放在一帧的最前面,表示帧的首部开始。另一个控制符 EOT(End Of Transmission) 表示帧结束。SOH和EOT是控制符的名称,它们的二进制编码分别是0000 0001和0000 0100。

  零比特填充法: 在发送端,扫描整个信息字段,只要有连续的5个1,就立即填入1个0。在接收端收到一个帧时,先找到标志字段确定边界,再用硬件对比特流进行扫描。发现连续5个1时,就把后面的0删除。

   零比特填充保证了透明传输,在传送的比特流中可以传送任意比特组合,而不会引起对帧边界的判断错误。

  在曼彻斯特编码中,一个码元可以用前高后低表示1,前低后高表示0,只有这两种情况,不存在前高后高和前低后低这两种情况。所以可以使用这两种不存在的情况作为定界帧的起始和终止。

  由于字节计数法中的count字段的脆弱性(其值若有差错将导致灾难性后果)及字符填充实现上的复杂性和不兼容性,目前普遍使用的是 比特填充 违规编码法

  差错的由来:现实中的通信链路都不会是理想的,由于噪声的存在,比特在传输的过程可能会产生差错。
  噪声分为全局性和局部性。

  在数据传输过程中,差错可以分为 位错和帧错

  差错控制方法: 检错编码和纠错编码

  奇偶检验码分为 奇检验码和偶检验码 。由n-1位信息元和在数据信息前的1位校验元组成。

  奇偶检验码的特点:
  (1) 奇偶检验码可以检测比特错,但是不能检测到是哪个比特出现差错。

  (2) 奇偶校验码只能检测出奇数个比特错误,检错能力为50%。

   冗余编码 :在数据发送前,先按某种关系附加上一定的冗余位,构成一个符合某一规则的码字后再发送。当要发送的有效数据变化时,相应的冗余位也随之变化,使码字遵从不变的规则。接收端根据收到的码字是否仍符合原规则,从而判断是否出错。
   循环冗余检验原理 :在发送端,假设要发送k个比特,CRC运算就是在这k个比特后添加供查错检验的n位冗余码,n位冗余码又称为 帧检验序列FCS(Frame Check Sequence) ,然后构成一个帧发送出去,一共发送(k + n)个位。这n位冗余码可以通过发送的数据和一个数相除得来,这个数是收发双发事先约定好的数。接收端收到发送端发送的(k + n)位比特后,需要将这些比特位和FCS相除,如果余数是0,表示没有差错就接收,反之,则丢弃。
  举例说明:如果客户端要发送的数据是M = 101001,除数多项式P = 1101。

  FCS的生成以及接收端CRC检验都是由硬件实现的,处理很迅速,因此不会延误数据的传输。
  在数据链路层仅仅使用循环冗余检验CRC差错检测技术,只能做到对帧的无差错接收,即凡是接收端数据链路层接受的帧,都可以以非非常接近1的概率认为这些帧在传输过程中没有产生差错。接收端丢弃的帧虽然曾经接收到了,但最终还是因为有差错被丢弃。所以通常可以认为: 凡是接收端数据链路层接收的帧均为无差错

  海明码可以发现双比特错, 纠正单比特错
  工作流程:

  (1) 确定校验码的位数r

  加入要发送的数据D = 101101,数据位数k = 6,带入海明不等式,满足不等式的r最小值为4。即D = 101101的海明码应该有10(6 + 4)位。其中6位是数据位,4位是检验码位。

  (2) 确定校验码和数据的位置
  假设4为检验码分配为P 1 、P 2 、P 3 、P 4 ;数据从左到右分别为D 1 、D 2 ....D 6
  检验码要放在2的n次幂的位置,即1、2、4、8这四个位置。

  (3) 求出检验码的值

   对于每一个校验码都可以检验一个或多个数字。

  所以求出数据的海明码位 00 1 0 011 1 01。

  (4) 检错并纠错
  假设在数据的传输过程中第5位出错,因此接收到的数据位就是0010111101。接收端接收到数据后,会进行检错,分别计算检验码与检验的位的异或的值。

  将上述的值逆序组成一个二进制数:0101,其所对应的十进制数就是5,即第5位发生了错误,所以直接将第5位的数变为0即可实现纠错的功能。



  • 缃戠粶灞傜殑涓昏鍔熻兘鏄粈涔?
    绛旓細鏁版嵁閾捐矾灞鐨勪富瑕鍔熻兘:1銆佸皢鏁版嵁缁勫悎鎴愭暟鎹鍧,灏佽鎴愬抚;2銆佸樊閿欐帶鍒;3銆佹祦閲忔帶鍒;4銆侀摼璺帶鍒;5銆丮AC瀵诲潃;6銆佸尯鍒嗘暟鎹拰鎺у埗淇℃伅;7銆侀忔槑浼犺緭銆 鏁版嵁閾捐矾灞 鏈暀绋嬫搷浣滅幆澧:windows10绯荤粺銆丏ell G3鐢佃剳銆 鏁版嵁閾捐矾灞傜殑涓昏鍔熻兘 1. 鎴愬抚(甯у悓姝)---灏嗘暟鎹粍鍚堟垚鏁版嵁鍧,灏佽鎴愬抚 涓轰簡鍚戠綉缁滃眰鎻愪緵鏈嶅姟,鏁版嵁...
  • 鏁版嵁閾捐矾灞鐨勪富瑕鍔熻兘
    绛旓細涓昏鍔熻兘鏈夊皢鏁版嵁缁勫悎鎴愭暟鎹鍧楋紝灏佽鎴愬抚銆佸樊閿欐帶鍒躲佹祦閲忔帶鍒躲侀摼璺帶鍒躲丮AC瀵诲潃銆佸尯鍒嗘暟鎹拰鎺у埗淇℃伅銆侀忔槑浼犺緭銆1銆佸皢鏁版嵁缁勫悎鎴愭暟鎹潡锛屽皝瑁呮垚甯э細涓轰簡鍚戠綉缁滃眰鎻愪緵鏈嶅姟锛鏁版嵁閾捐矾灞蹇呴』浣跨敤鐗╃悊灞傛彁渚涚殑鏈嶅姟銆2銆佸樊閿欐帶鍒讹細鍦ㄦ暟鎹氫俊杩囩▼涓彲鑳戒細鍥犵墿鐞嗛摼璺ц兘鍜岀綉缁滈氫俊鐜绛夊洜绱狅紝闅惧厤浼氬嚭鐜颁竴浜涗紶...
  • 鏁版嵁閾捐矾灞涓殑閾捐矾鐨勪笁涓熀鏈棶棰(甯瀹氱晫銆侀忔槑浼犺緭鍜屽樊閿欐娴)涓轰粈涔...
    绛旓細鏁版嵁閾捐矾灞骞朵笉闇瑕佺粰缃戠粶灞傛彁渚涒滃彲闈犱紶杈撯濈殑鏈嶅姟锛屽繀椤昏鏁版嵁閾捐矾灞傚悜涓婃彁渚涘彲闈犱紶杈撱傚洜姝ゅ湪CRC鐨勫熀纭涓婏紝澧炲姞浜嗗抚缂栧彿銆佺‘璁ゅ拰閲嶄紶鏈哄埗銆
  • 鏁版嵁閾捐矾灞鍗忚PPP涓昏鐨鍔熻兘鏄粈涔?PPP甯濡備綍瀹炵幇閫忔槑浼犺緭?
    绛旓細PPP甯х殑灏佽锛 鏁版嵁閾捐矾灞浼氭妸浠 缃戠粶灞 浜や粯涓嬫潵鐨 鍒嗙粍(packet) 娣诲姞鎺у埗淇℃伅(header棣栭儴 鍜 灏鹃儴銆傚湪鏍囪瘑瀛楁F(Flag)閲岋紝鍒嗗埆鏍囧織鐫甯х殑寮濮嬨佺粨鏉)灏佽鎴愬抚銆傚湪鏁版嵁閾捐矾灞傞噷娣诲姞鐨勬帶鍒朵俊鎭槸8姣旂壒缁勫悎锛氬紑濮婼OH(00000001)銆佺粨鏉烢OH(00000100).鍦ㄦ暟鎹摼璺眰杩涜鏁版嵁浼犺緭鏃讹紝濡傛灉鏁版嵁涓殑鏌愪釜瀛楄妭浜...
  • 璁$畻鏈虹綉缁-鏁版嵁閾捐矾灞-灏佽鎴愬抚
    绛旓細鍥3-4琛ㄧず鐢ㄥ抚棣栭儴鍜屽抚灏鹃儴灏佽鎴愬抚鐨勪竴鑸蹇点傛垜浠煡閬擄紝鍒嗙粍浜ゆ崲鐨勪竴涓噸瑕佹蹇靛氨鏄細鎵鏈夊湪浜掕仈缃戜笂浼犻佺殑鏁版嵁閮戒互鍒嗙粍锛堝嵆IP鏁版嵁鎶ワ級涓轰紶閫佸崟浣嶃傜綉缁滃眰鐨処P鏁版嵁鎶ヤ紶閫佸埌鏁版嵁閾捐矾灞灏辨垚涓哄抚鐨勬暟鎹儴鍒嗐 鍦ㄥ抚鐨勬暟鎹儴鍒嗙殑鍓嶉潰鍜屽悗闈㈠垎鍒坊鍔犱笂棣栭儴鍜屽熬閮紝鏋勬垚浜嗕竴涓畬鏁寸殑甯с 杩欐牱鐨勫抚灏 鏄...
  • 灏鏁版嵁鍖灏佽鎴愬抚鐨勪富瑕浣滅敤鏄粈涔
    绛旓細浣跨敤甯鐨勪富瑕浣滅敤鏄暟鎹鍒嗘垚鍙仮澶嶇殑鍖哄潡骞朵笖鍙互寰堝鏄撳湴妫鏌ヨ繖浜涘尯鍧楁槸鍚﹁鐮村潖銆備紶杈撹繃绋嬩腑鐨勬晠闅滀細鐮村潖鏌愪簺甯с傚彧鏈変涪澶辩殑甯ц屼笉鏄暣缁勬暟鎹渶瑕侀噸鏂颁紶杈撱傗滈敊璇娴嬪拰绾犳鈥濅腑璁鸿堪浜嗛敊璇殑妫娴嬪拰绾犳銆傚抚鏄竴绯诲垪鏍囧噯鍖栫殑鏁版嵁浣嶏紝鏄綉缁滈氫俊鐨勫熀鏈崟鍏冦備负浜嗚揪鍒板鐞嗕紶杈撻敊璇殑鐩殑锛鏁版嵁閾捐矾灞瑕佸皢...
  • 鏁版嵁閾捐矾灞傚姛鑳解斺斿皝瑁呮垚甯&&宸敊鎺у埗
    绛旓細(4) 甯 :閾捐矾灞傜殑鍗忚鏁版嵁鍗曞厓,灏佽缃戠粶灞傜殑鏁版嵁鎶ャ 鏁版嵁閾捐矾灞鐨鍔熻兘:鍦ㄧ墿鐞嗗眰鎻愪緵鏈嶅姟鐨勫熀纭涓 鍚戠綉缁滃眰鎻愪緵鏈嶅姟 ,鍏舵渶鍩烘湰鐨勬湇鍔℃槸灏嗘簮鑷綉缁滃眰鏉ョ殑鏁版嵁鍙潬鐨勪紶杈撳埌鐩搁偦鑺傜偣鐨勭洰鏍囨満缃戠粶灞傘傚叾涓昏浣滅敤鏄 鍔犲己鐗╃悊灞備紶杈撳師濮嬫瘮鐗规祦鐨勫姛鑳 ,灏嗙墿鐞嗗眰鎻愪緵鐨勫彲鑳藉嚭閿欑殑鐗╃悊杩炴帴鏀归犳垚 閫昏緫涓婃棤宸敊鐨勬暟鎹摼璺 ...
  • 甯鍦╫si涓冨眰妯″瀷閲,灞炰簬鍝竴灞傜殑鏁版嵁鏍煎紡
    绛旓細甯у湪OSI涓冨眰妯″瀷涓紝灞炰簬鏁版嵁閾捐矾灞鐨勬暟鎹牸寮忋侽SI涓冨眰妯″瀷鏄竴绉嶇綉缁滈氫俊鍗忚鐨勫垎灞備綋绯伙紝瀹冨皢缃戠粶閫氫俊杩囩▼鍒嗕负涓冧釜灞傛锛屾瘡涓眰娆¢兘鏈夌壒瀹氱殑鍔熻兘鍜屼换鍔°傚叾涓紝鏁版嵁閾捐矾灞傛槸OSI妯″瀷涓殑绗簩灞傦紝涓昏璐熻矗灏嗙綉缁滃眰浼犱笅鏉ョ殑鏁版嵁鍖灏佽鎴愬抚锛屽苟杩涜宸敊鎺у埗鍜屾祦閲忔帶鍒剁瓑鎿嶄綔銆傚湪鏁版嵁閾捐矾灞備腑锛屽抚鏄渶鍩烘湰...
  • 銆愮綉缁溿慣CP/IP-鏁版嵁閾捐矾灞
    绛旓細棣栧厛鎴戜滑鐪嬬湅TCP/IP缃戠粶妯″瀷涓鏁版嵁閾捐矾灞鐨鍔熻兘瀹氫箟:閫忔槑浼犺緭,宸敊妫娴,灏佽鎴愬抚 鏁版嵁閾捐矾灞傝繘绋嬬殑浠诲姟鏄湪涓や釜缃戠粶灞傝繘绋嬩箣闂存彁渚涙棤閿欒鐨,閫忔槑鐨勯氫俊 1 鎻愪緵宸敊妫娴嬫満鍒(澶勭悊浼犺緭閿欒) 2浣跨敤婊戝姩绐楀彛鏈哄埗杩涜娴侀噺鎺у埗 (璋冭妭鏁版嵁娴,纭繚鎱㈤熺殑鎺ユ敹鏂逛笉浼氳鍙戦佹柟娣规病) 3 鍚戠綉缁滃眰鎻愪緵涓涓畾涔夎壇濂界殑缃戠粶鎺ュ彛 鍦∣S...
  • 璁$畻鏈虹綉缁滅瑪璁鈥斺旀暟鎹摼璺眰
    绛旓細灏佽鎴愬抚 锛氬湪涓娈鏁版嵁鐨勫墠鍚庨儴鍒嗘坊鍔 棣栭儴 鍜 灏鹃儴 锛岃繖鏍峰氨鏋勬垚浜嗕竴涓抚銆 鎺ユ敹绔湪鏀跺埌鐗╃悊灞備笂浜ょ殑姣旂壒娴佸悗锛屽氨鑳芥牴鎹閮ㄥ拰灏鹃儴鐨勬爣璁帮紝浠庢敹鍒扮殑姣旂壒娴佷腑璇嗗埆甯х殑寮濮嬪拰缁撴潫.棣栭儴鍜屽熬閮ㄥ寘鍚澶氱殑鎺у埗淇℃伅锛屼粬浠殑涓涓噸瑕浣滅敤锛 甯у畾鐣 锛堢‘瀹氬抚鐨勭晫闄愶級銆傚抚鍚屾 锛氭帴鏀舵柟搴斿綋鑳戒粠...
  • 扩展阅读:中国芯片封装龙头排名 ... 封装的三个步骤 ... 常见的spc五种控制图 ... 芯片封装实现的5个功能 ... 一张图看懂ic芯片 ... 芯片封装公司排名 ... 常见的10大芯片封装类型 ... cpu c states 要不要关 ... cpu c states要打开吗 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网