TCP/IP四层模型之链路层学习笔记

从之前的学习来看,链路层必须具备以下功能:

  • 将数据封装成帧,帧是数据链路层的传送单位
  • 控制帧的传输,包括处理传输差错,调节发送速率与接收方相匹配
  • 在两个网络实体之间提供数据链路通路的建立、维持和释放的管理

1.差错控制

接收方通过CRC码或者奇偶校验检查可以判定帧在传输过程中是否发生差错。一旦发送差错,一般会采用反馈重发的方法来纠正。接收方接收到帧时就会给发送发发送一个信息以告知是否需要重发,否则一直重发直到成功。

为了避免传输过程停滞不前,通常使用计时器来限定接收方发回反馈消息的时间间隔。当发送发发送一帧的时候就开始计时,若在规定时间内未能接收到接收方的反馈信息,则判定超时,就需要重新发送。

为了避免同一帧被多次收发,对帧进行了编号,赋予每个帧一个序号,接收方可以通过序号来判定这是新发送的还是重新发送的帧,以此来确定是否需要接收提交给网络层。

2.流量控制

由于发送发和接受发的设备等硬件条件或者网络问题的不同,导致双发的收发速率不可能完美相等,所以可能导致发送了巨多巨多的帧以至于接收方被“淹没”,从而导致帧丢失。流量控制主要是限制发送方的发送速率,告知发送发什么时候可以接着发送,什么时候需要暂停发送等待反馈信息。

3.以太网

  1. DEC、intel和Xerox公司联合发布的标准
  2. IEEE802提供的标准集802.3

4.PPP协议

同等单元之间传输数据而设计的链路层协议,支持全双工操作,并按照顺序传输数据。

5.SLIP与PPP协议

SLIP,serial line IP 串行线路IP,是一种对IP数据包进行封装的简单形式。

IP数据包以一个称作END(0xc0)的特殊字符结束,同时为了防止数据包传输之时的线路噪音被误认为时数据包内容,在数据包开始处添加了一个END字符。如果在IP数据包中包含有END字符,则用连续的0xdb和0xdc来取代。如果在IP数据包中包含有ESC字符,就用连续的0xdb和0xdd来取代。

SLIP缺陷:

  • 每一端必须知道对端的IP地址,但又没办法把本端IP地址传给对端。
  • 数据帧中无类型字段,当一条串行线路使用SLIP时则不能使用其他协议。
  • SLIP数据帧中午checksum,只能依靠上层协议来发现和纠正错误。

PPP 协议修改了 SLIP 协议中的缺陷,包括以下三个部分:

  • PPP 封装 IP 数据报既支持数据为 8 位和无奇偶校验的异步模式,又支持面向比特的同步链接;

  • 通过 LCP(链路控制协议)允许双方进行协商;

  • 通过 NCP(网络控制协议)允许双方在网络层上进行协商。

PPP 协议的字符规则与 SLIP 有所不同:

  • PPP 帧以标志字符 0x7e 开始和结束,紧接着是一个值为 0xff 的地址字节,然后是一个值为 0x03 的控制字节;

  • 由于标志字符是 0x7e,当它出现在信息字段中时,需要连续传送 0x7d 和 0x5e 来替代它;

  • 当在信息字段中遇到 0x7d 时,需要连续传送 0x7d 和 0x5d 来替代它。

  • 默认情况下,如果字符的值小于 0x20,需要连续传送 0x7d 和 0x21 来替代它。

PPP 与 SLIP 相比具有下列优点:

  • PPP 支持在单根串行线路上运行多种网络层协议;

  • 每一帧都有 CRC 校验;

  • 通信双方可以用 NCP 进行 IP 地址的动态协商;

  • 可以类似于 CSLIP 对 TCP 和 IP 首部进行压缩;

  • LCP 可以对多个数据链路选项进行设置。

6.MTU

为了提供足够快的响应时间,以太网和 IEEE802.3 对数据帧长度都有限制,其最大值分别为 1500 字节和 1492 字节,链路层的这个特性称作 MTU ,即 最大传输单元

当网络层传下来一个 IP 数据报,并且其长度比链路层的 MTU 大,那么网络层就需要对数据报进行分片,使每一片都小于 MTU。

MTU 分为接口 MTU 和路径 MTU:接口 MTU 是所指定的接口所允许发送的最大数据长度;路径 MTU 指两台通信主机路径中最小的 MTU 值。路径 MTU 是不对称的,它在两个方向上不一定一致。

在Linxu系统下可以用命令netstat -in来查看网络接口的MTU

猜你喜欢

转载自blog.csdn.net/BaconC/article/details/81087855
今日推荐