TCP/IP详解 卷1:协议 第2章 链路层 - SLIP/PPP协议与MTU详解
Executive Summary
核心观点(金字塔原理)
结论先行: 链路层承担IP数据报发送接收、ARP/RARP请求响应三大职责,SLIP和PPP协议通过压缩机制提高低速链路性能,MTU是影响网络传输效率的关键参数。
支撑论点:
- 三大核心功能: 为IP模块收发数据报、为ARP模块收发请求应答、为RARP模块收发请求应答
- 封装协议对比: SLIP简单但功能有限,PPP支持多协议、有CRC校验、支持IP动态协商,代价是每帧增加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环回地址
链路层的三个主要作用
- 为IP模块发送和接收IP数据报
- 为ARP模块发送ARP请求和接收ARP应答
- 为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协议中的缺陷)优势总结如下:
- PPP支持在单根串行线路上运行多种协议,不只是IP协议
- 每一帧都有循环冗余娇艳
- 通信双方可以进行IP的动态协商(使用IP网络控制协议)
- 与CSLIP类似对TCP/IP报文首部进行压缩
- 链路控制协议可以对多个数据链路选项进行设置
- 为了以上优势付出的代价是每一帧首部增加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
- 为了以上优势付出的代价是每一帧首部增加3个字节,当建立链路时需要发送几帧协商数据,以及更为复杂的实现