TCP/IP详解 卷1:协议 第2章 链路层 - SLIP/PPP协议与MTU详解

Executive Summary

核心观点(金字塔原理)

结论先行: 链路层承担IP数据报发送接收、ARP/RARP请求响应三大职责,SLIP和PPP协议通过压缩机制提高低速链路性能,MTU是影响网络传输效率的关键参数。

支撑论点:

  1. 三大核心功能: 为IP模块收发数据报、为ARP模块收发请求应答、为RARP模块收发请求应答
  2. 封装协议对比: SLIP简单但功能有限,PPP支持多协议、有CRC校验、支持IP动态协商,代价是每帧增加3字节
  3. MTU机制: 路径MTU取决于通信路径上的最小MTU值,且双向路径MTU可能不同

SWOT 分析

维度 分析
S 优势 CSLIP可将40字节首部压缩到3-5字节,PPP支持多协议和CRC校验,环回接口支持本地进程通信
W 劣势 压缩算法增加处理复杂度,纠错机制增加传输时间,PPP每帧需额外3字节开销
O 机会 适用于低速串行链路的性能优化,本地开发测试使用环回接口
T 威胁 MTU不匹配导致分片影响性能,路径MTU变化可能导致传输问题

适用场景

  • 低速串行链路的协议选型(SLIP vs PPP)
  • 网络性能调优时的MTU配置
  • 本地服务开发测试使用127.0.0.1环回地址

链路层的三个主要作用
  1. 为IP模块发送和接收IP数据报
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP发送RARP请求和接收RARP应答
SLIP(Serial Line IP)
  • 一种在串行线路上对IP数据报进行封装的简单形式,以END(0xc0)的特殊字符结束,同时为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个END字符,当出现线路噪声,那么END字符将结束这份错误的报文,这样当前的报文得以正确地传输,而前一个错误报文交给上层处理,会发现内容毫无意义而被丢弃。
CSLIP(压缩的SLIP) 通常对于有堆多小的TCP分组,为了1字节的数据,需要20个字节的IP首部和20个字节的TCP首部,CSLIP可将40个字节压缩到3/5个字节。
PPP 点对点协议(补充修改了SLIP协议中的缺陷)优势总结如下:
  1. PPP支持在单根串行线路上运行多种协议,不只是IP协议
  2. 每一帧都有循环冗余娇艳
  3. 通信双方可以进行IP的动态协商(使用IP网络控制协议)
  4. 与CSLIP类似对TCP/IP报文首部进行压缩
  5. 链路控制协议可以对多个数据链路选项进行设置
    • 为了以上优势付出的代价是每一帧首部增加3个字节,当建立链路时需要发送几帧协商数据,以及更为复杂的实现
      环回接口
    • 允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信;A类网络号127就是为环回接口预留的。127.0.0.1/localhost 就是为换回接口预留的,一个传给环回接口的IP数据报不能在任何网络上出现。
      最大传输单元MTU
    • 以太网和802.3对数据帧的长度都有一个限制,其最大值分别是1500和1492字节,链路层的这个特性称作MTC最大传输单元,不同类型的网络大多数都有一个上限。
      路径MTU
    • 当两台主机相互通信时,该网络中的MTU非常重要,重要的是两台通信主机路径中的最小MTU,被称为路径MTU。两台机器A->B的最小MTU与B->A的最小MTU有可能不同,因为有可能路由是不同的。
      串行线路吞吐量计算
    • 思考: 所谓的压缩算法比如SLIP和PPP的封装格式,的确减少了在线路上传输的字节数,但是纠错机制又会增加传输的时间,如何进行合理决策的入口呢?
      总结
    • SLIP和PPP用于低俗的链路,提供了压缩报文的方法,使得交互性能得到提高
    • 环回接口,127.0.0.1 通过发送IP数据报给主机,当环回数据回到上层的协议栈中,它以及经过传输层和IP完成的处理过程。
    • MTU,路径MTU,最小路径MTU