zoukankan      html  css  js  c++  java
  • 【计算机网络】第五章 数据链路层(1)

    一.数据链路层服务

    1. 概述

    1)术语

      ·主机和路由器:结点

      ·连接相邻结点的通信信道:链路(有线、无线、局域网)

      ·链路层数据分组:帧

    2)数据链路层主要任务:通过一条链路从一个结点向另一个物理链路直接相连的相邻结点传送数据报

    2. 链路层服务

    1)组帧

      ·封装数据报构成数据帧,加首部和尾部

      ·实现帧同步:从比特流中识别数据帧,通常在数据帧首位增加特殊比特串,通过填充转译辨别该比特串是否属于数据

    2)链路接入

      ·如果是共享介质,需要解决信道接入(多个结点使用同一段链路)

      ·帧首部中的MAC地址,用于标识帧的源和目的(不同于IP地址)

    3)相邻结点间可靠交付

      ·在低误码率的有线链路上很少采用(如光纤)

      ·高误码率的无线链路中需要可靠交付

    4)流量控制:协调相邻的发送结点和接收结点

    5)差错检测

      ·信号衰减和噪声会引起差错

      ·接收端检测到差错后通知发送端重传或直接丢弃

    (6)差错纠正:接收端直接纠正比特差错

    (7)全双工和半双工通信控制:链路两端结点同时(交替)双向传输

    3. 具体实现

    1)链路层在网络适配卡或芯片中实现

    2)链接主机的系统总线由硬件、软件与固件组成

     

     

    二.差错编码

    1. 基本原理:在数据基础上增加冗余信息,D -> DRR为差错检测与纠正比特

     

    2. 分类

    (1)分组码:线性、非线性

    (2)卷积码

    3. 检错能力:不保证100%可靠

    (1)汉明距离:对应两个比特的不同位,编码集的汉明距离位=为集中任两比特汉明距离的最小值

    (2)检错码

      ·若编码集的汉明距离ds = r + 1,则该差错编码可以检测r位的差错

      ·举例:编码集{0000, 0101, 1010, 1111}汉明距离ds = 2,可100%检测1比特差错

    (3)纠错码

      ·若编码集的汉明距离ds = 2r + 1,则该差错编码可以纠正r位的差错

      ·举例:编码集{000000, 010101, 101010, 111111}汉明距离ds = 3,可纠正1比特差错,如100010纠正为101010

    4. 奇偶校验码

    11比特校验位:检测奇数位差错,50%

    2)二维奇偶校验:检测奇数位差错、部分偶数位差错,纠正同一行/列的奇数位差错

    5. Internet校验和

    1)发送端:将数据划分为16位的二进制整数序列,补码求和,高位加回,取反放入分组校验和字段

    2)接收端:相同方法计算,取反全0,不取反全1,否则有错

    6. 循环冗余校验码(CRC):检错能力更强大的差错编码

    1)将数据比特D视为一个二进制数

    2)选择一个r+1位的比特模式G(生成比特模式)

    3)目标:选择r位的CRC比特R,满足:

      ·<D, R> 刚好可以被G整除,即模2

      ·接收端检错:利用G<D, R>,如果余式全0则无错

      ·可以检测所有突发长度小于r+1位的差错

    (4)广泛应用于实际网络

    (5)举例:

     

  • 相关阅读:
    运行.bat批处理,CMD窗口隐藏,并制作为EXE文件
    TinyXML:一个优秀的C++ XML解析器(转载)
    2013编程之美资格赛【传话游戏】
    linux GTK教程(消息机制/标签/按钮/图像/文本/对话框/菜单/容器)
    c++强制类型转换(总结)
    string与char*的转换(转载)
    网络数据包捕获函数库Libpcap安装与使用(非常强大)
    Linux 高级Socket编程
    linux GTK 安装
    .dll和.lib文件的生成和使用 c++
  • 原文地址:https://www.cnblogs.com/zhangyushuqing/p/9914564.html
Copyright © 2011-2022 走看看