《TCP/IP详解 卷1:协议》读书笔记 第2章 链路层

一、引言

链路层主要有三个目的:

  1. 为IP模块发送和接收IP数据包
  2. 为ARP模块发送ARP请求和接收ARP应答
  3. 为RARP发送RARP请求和接收RARP应答

二、以太网和IEEE802封装

以太网是一个标准,是当今TCP/IP采用的主要的局域网技术。它的速率为10Mb/s,地址为48bit。
而IEEE是一个与以太网稍有不同的标准集。
以太网IP数据报的封装实在RFC894(最常用的)中定义的,IEEE802则是RFC1042。
两种帧格式都采用48bit的目的地址和源地址(硬件地址)。其封装格式如下:

链路层封装格式

  • 在802标准定义的帧格式中,长度指的是后续数据的字节长度,不包括CRC检验码。而以太网的类型字段定义了后续数据的类型。802中的类型字段则由后续的子网接入协议(SNAP)给出。
  • 幸运的是,802定义的有效长度值和以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
  • CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)。
  • 两种帧都有最小长度要求,802至少要38字节,以太网最小要46字节。
  • 以太网是最为常见的封装格式。

三、尾部封装

RFC893定义的一种以太网的封装格式,它通过调整IP数据报中字段的次序来提高性能。
不过现在尾部封装已遭到反对!= =


四、SLIP:串行线路IP(Serial Line IP)

它是一种在串行线路上对IP数据报进行封装的简单形式。
下面描述SLIP的帧格式:

  1. IP数据报以一个称作END(0xc0)的特殊字符结束。大多数实现在数据报的开始出也传一个END字符,防止噪声影响。
  2. 如果IP报文中某个字符为END,那么用0xdb0xdc来取代它。0xdb被称作SLIP的ESC字符,但是它与ASCII码的ESC字符(0x1b)不同。
  3. 如果IP报文中某个字符为SLIP的ESC字符,就要连续传输两个字节0xdb和0xdd来取代它。
    这里写图片描述

SLIP是一种简单的帧封装方法,有一些缺陷:

  1. 必须知道对方的IP,没办法把本端的IP地址通知给另一端。
  2. 数据帧中没有类型字段,如果一条串行线路用于SLIP,那么它不能同时使用其它协议。(无法判断是什么协议,所以只能用一种)
  3. 没有检验和,只能通过上层协议来发现错误。(其实新型的调制解调器可以检测并纠正错误报文)

尽管如此,SLIP仍然被广泛使用。


五、压缩的SLIP(CSLIP)

可以压缩TCP、IP首部。
为了传送1个字节,需要40个字节的TCP+IP部首。
CSLIP一般能把上面的40个字节压缩到3或5个字节,能在CSLIP的每一端维持多达16个TCP连接。


六、PPP:点对点协议

PPP修改了SLIP中所有的缺陷,它包括三个部分:

  1. 在串行链路上封装IP数据报的方法。既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接。
  2. 建立、配置及测试数据链路的链路控制协议(LCP)。它允许通信双方进行协商,以确定不同的选项。
  3. 针对不同网络层协议的网络控制协议(NCP)。例如允许双方商定是否对报文首部进行压缩,类似于CSLIP。

PPP数据帧的格式:
PPP数据帧的格式

  • 由于标志字符为0x7e,如果在信息字段中出现该字符,需要对其进行转义。
  • 利用链路控制协议,大多数的产品通过协商可以省略标识符和地址字段,并把协议字段由2个字节减少到1个字节。PPP与SLIP相比,只增加了3个额外的字节:1个协议字段,2个CRC字段。
  • 使用网络控制协议,可以减小IP和TCP首部长度。

总的来说,PPP比SLIP具有以下优点:

  1. PPP支持在单根串行线路上运行多种协议(因为有协议字段了)。
  2. 每一帧都有循环冗余检验。(有了CRC字段)
  3. 通信双方可以进行IP地址的动态协商(使用IP网络控制协议)。
  4. 与CSLIP类似,对TCP和IP报文首保进行压缩。
  5. 链路控制协议可以对多个数据链路选项进行设置。

七、环回接口

环回接口允许运行在同一主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127就是为环回接口预留的。127.0.0.1就是localhost,大多数系统把127.0.0.1分配给环回接口。
一个传给环回接口的数据报不能在任何网络上出现,但是它还是会通过协议栈进行封装,封装完再返回给自己。
环回接口


八、最大传输单元MTU

如果数据的长度比链路层的MTU要大,那么IP层就需要进行分片,分成每一片都小于MTU。
以太网的MTU为1500字节,802.3的MTU为1492字节。


九、路径MTU

如果两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的MTU。两台通信主机路径的最小MTU被称作路径MTU。
因为两台主机之间的来回选路不一定是对称的,往返可能是两条不同的路。


十、串行线路吞吐量计算

如果用SLIP同时运行一个交互式应用程序和一个FTP之类的传输程序。一般要等FTP传输了一半(533ms),才能把交互式应用程序的分组数据发送出去。
等待533ms太久了,于是要缩减MTU,这样一次要传递的数据量小了,传输一个数据的时间就短了。
一般SLIP把MTU缩减到256.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值