TCP/IP详解卷1:第二章(链路层)

最后更新于:2022-04-01 14:49:16

## 1. 以太网和IEEE 802封装 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-20_57678b31805a5.jpg) ## 2. SLIP:串行线路IP    SLIP的全称是serial line IP。它是一种在串行线路上对IP数据报进行封装的简单形式。下列规格描述SLIP的帧格式: 1) IP数据报以一个称作END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当做数据报内容,大多数实现在数据报开始处也传一个END字符(如果有线路噪声,那么END字符将结束这份错误的报文。这样当前的报文得以正确的传输,而前一个错误报文上交给上层后,会发现其内容毫无意义而被丢弃) 2)如果IP报文中某个字符为END,那么就连续传输两个字节0xdb和0xdc来取代它。0xdb这个特殊的字符被称作SLIP的ESC字符,但是不同于ASCII的ESC字符 3) 如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-20_57678b31a1e48.jpg)    但是SLIP有以下缺陷: 1) 每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。 2) 数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。 3) SLIP没有在数据帧中加上校验和。 ## 3. PPP:点对点协议    PPP,点对点协议修改了SLIP协议中的所有缺陷。PPP包括以下三个部分: 1) 在串行链路上封装IP数据报的方法。 2) 建立,配置及测试数据链路的链路控制协议。 3) 针对不同网络层协议的网络控制协议体系。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-20_57678b31b6289.jpg)    具体实现过程如下: 1) 当遇到字符0x7e时,需连续传送两个字符:0x7d和0x5e,以实现标志字符的转义。 2) 当遇到转义字符0x7d时,需连续传送两个字符:0x7d和0x5d,以实现转义字符的转义。 3) 默认情况下,如果字符的值小于0x20,一般都要进行转义。    PPP比SLIP的优势如下: 1) PPP支持在单根串行线路上运行多种协议,不只是IP协议 2) 每一帧都有循环冗余校验 3) 通信双方可以进行IP地址的动态协商(使用IP网络控制协议) 4) 与CSLIP类似,对TCP和IP报文首部进行压缩 5) 链路控制协议可以对多个数据链路选项进行设置。 ## 4. 环回接口    环回接口:允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。 ![](https://docs.gechiui.com/gc-content/uploads/sites/kancloud/2016-06-20_57678b31ceaef.jpg) 1) 传给环回地址(一般为127.0.0.1)的任何数据均作为IP输入 2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。 3) 任何传给该主机IP地址的数据均送到环回接口。
';