TCP/IP 第二章 链路层
链路层主要有三个目的:
(1)为IP模块发送和接收IP数据报。
(2)为ARP模块发送ARP请求和接收ARP应答。
(3)为RARP模块发送RARP请求和接收RARP应答。
48bit的目的地址和源地址(硬件地址)
(802的)长度字段,指定的是红框中的长度。2字节的范围:0000 ~ 05dc
(以太网的)类型字段,定义了数据的类型。
因为802的有效长度值和以太网的有效类型值无一相同,因此就能够区分两种帧。
在802帧格式中,长度字段后面紧跟着3字节的802.2 LLC和5字节的802.2 SNAP。
DSAP:目的服务访问点,值为0xaa。
SSAP:源服务访问点,值为0xaa。
cntl:控制字段,值为3
org code:值为0
类型:意义跟以太网的类型字段一样。
CRC:循环冗余码检验(检验和)(又称FCS或帧检验序列)
由于802帧和以太网帧对于数据长度都有最低要求,因此,必须在不满足要求时,通过填充的手段来满足要求。
802帧,最低38字节:
因为ARP请求和应答的长度只有28字节,因此,必须填充10个字节以达到最低要求38字节。
以太网帧也是如此,也要填充18字节,以达到最低要求46字节。
首先,是在原IP数据报的开头和结尾,添加END字符,值为c0
如果原IP数据报中有c0,为了和开头结尾的(c0)区分开,需要用db和dc来替代原IP数据报中的c0
db被称为SLIP的ESC字符,因此也是一个特殊字符,专属于SLIP的
所以,如果原IP数据报中有db,也得进行替换,这里是通过db和dd来替换的
在上图中,原IP数据报中,就包含了2个特殊字符,c0和db,因此要对这俩特殊字符进行转义
最终,转义后的封装结构,比原IP数据报多出了4个字节
SLIP的缺陷:
1、通信两端必须提前知道对方的IP地址,无法在后续动态知道彼此的IP地址。
2、由于在SLIP数据帧的结构中,没有类型字段一说,因此,如果一条串行线路被用于SLIP了,就无法再使用其他协议了。
3、SLIP没有在数据帧中加上校验和。
串行线路:同一时间,只准一个方向传递数据。也就是单向的。
你说一句,你就独占这个线路;然后轮到我回话,此时我独占这个线路。
这叫做交互式。
串行线路的速率:19200 (b/s)
为了传送1个字节的数据,需要20个字节的IP首部和20个字节的TCP首部,这有点大材小用了,或者说,杀鸡用了牛刀。
即,为了护送1个人,需要动用40位保镖。
CSLIP:压缩SLIP协议,能将40位保镖压缩到3~5位保镖。(节省人力成本)