现在的位置: 首页 > 综合 > 正文

TCP/IP链路层详解

2017年12月04日 ⁄ 综合 ⁄ 共 2508字 ⁄ 字号 评论关闭

在TCP/IP协议簇中,链路层主要有三个目的:
⑴ 为IP模块发送和接收IP数据报。
⑵ 为ARP模块发送ARP请求和接收ARP应答。
⑶ 为RARP发送RARP请求和接收RARP应答。

以太网与IEEE802.3的比较
以太网是DECIntelXerox公司在1982年联合公布的一个标准。它是当今TCP/IP采用的主要的LAN技术。以太网的核心思想是CSMA/CDCarrier SenseMultiple Access with Collision Detection)。它的速率是10Mb/s,地址为48bit
IEEE802委员会发布了一个与以太网稍有不同的标准集。其中802.3针对CSMA/CD802.4针对TokenBus802.5针对TokenRing。这三者的共同特性由802.2标准定义,那就是802网络共有的逻辑链路控制(LLC)。
 
以太网和IEEE802不同的帧格式
由于以太帧最小为46字节,所以在不足的空间插入填充字节PAD
 
目的地址&源地址48bit6字节。
长度:指它后序数据的字节长度(不包括CRC码)。
DSAP:目的服务访问点,值为0xaa
SSAP:源服务访问点,值为0xaa
Ctrl:值置为3
Org code3位均置为0
类型:与以太网类型字段作用相同。由SNAP的首部给出。0800IP0806ARP8035RARP
CRC:用于帧内后续字节差错的循环冗余校验。
 
802.3规定数据部分至少为38字节,而以太网则要求最少为46字节。(所差8字节为802.3帧内的802.2LLC802.2SNAP字段,以太网的类型字段位置在802.3帧中由长度字段代替,而802.3帧中的类型字端则由802.2SNAP字段的头三位给出)。
 
SLIPPPP
SLIP的全称为Serial Line IP(串行线路IP)。它是一种在串行线路上对IP数据报进行封装的简单形式。                                                       
SLIP协议定义的帧格式规则:
IP数据报以一个称作END0xc0)的特殊字符结束。同时为了防止数据报传输之前的线路噪音被误认为是数据报内容,在数据报开始处添加一个END字符。
如果IP数据中含有END字符,就连续传输0xdb0xdc来取代它。0xdbSLIPESC字符,但它的值与ASC码中的ESC0x1b)不同。
如果IP数据中含有ESC字符,就连续传输0xdb0xdd来取代它。
被封装前的IP数据报:
 
SLIP的缺陷:
每一端必须知道对端的IP地址,没有办法把本端IP地址传递给对端。
数据帧中无类型字段,当一条串行线路使用SLIP时则不能使用其他协议。
SLIP数据帧中无checksum,只能依靠上层协议来发现和纠正错误。
 
压缩的SLIPCSLIP):
SLIP线路上有许多小的TCP分组进行交换,为传送1个字节的数据需要20个字节的IP首部和20个字节的TCP首部。CSLIP能把这40个字节压缩到35个字节。这些被压缩的首部大大缩短了交互响应时间。
 
PPP协议
PPP协议修改了SLIP协议中的所有缺陷。PPP包括以下三个部分:
PPP在串行链路上封装IP数据报既支持数据为8位和无奇偶校验的异步模式,还支持面向比特的同步链接。
通过LCP(链路控制协议)允许双方进行协商。
通过NCP(网络控制协议)允许双方在网络层上进行协商。
 
PPP帧以标志字符0x7e开始和结束,紧接着是一个值为0xff的地址字节,然后是一个值为0x03的控制字节。
 
PPP的转义字符:
由于标志字符是0x7e,当它出现在信息字段中时,需要连续传送0x7d0x5e来替代它。
当在信息字段中遇到0x7d时,需要连续传送0x7d0x5d来替代它。
默认情况下,如果字符的值小于0x20,需要连续传送0x7d0x21来替代它。
这样做的原因是由于双方主机的串口驱动程序或Modem会把这些特定的字符解释成特殊的含义,防止与其它控制字符起冲突或帧被解释的不正确。
 
PPP的压缩:
PPP的压缩可以减少每一帧的字节数,降低应用程序的交互时延。
通过LCP,大多数的产品通过协商可以省略标志位和地址位,并把协议字段由2字节减少到1字节。这样一来,与SLIP相比,只增加了3个字节(协议字段和CRC校验)。此外,通信双方通过NCP可以协商采用报文首部压缩,减小IPTCP首部长度。
 
PPPSLIP相比具有下列优点:
PPP支持在单根串行线路上运行多种网络层协议。
每一帧都有CRC校验。
通信双方可以用NCP进行IP地址的动态协商。
可以类似于CSLIPTCPIP首部进行压缩。
LCP可以对多个数据链路选项进行设置。
 
Loopback接口
通过Loopback接口允许同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。一个传给环回接口的IP数据报不能在任何网络上出现。
环回接口处理IP数据报的过程:
 
MTU
以太网和802.3对数据帧长度都有一个限制,其最大值分别是15001492字节。链路层的这个特性称作MTU,即最大传输单元不同类型的大多数网络都有一个上限。
如果IP层有一个数据报要传,并且数据的长度比链路层的MTU大,那么IP层就需要进行分片,把数据报分为若干片,使每一片都小于MTU
点对点的链路的MTU是一个逻辑限制而非网络介质的物理限制。其目的是为交互使用提供足够快的响应时间。
MTU分为接口MTU和路径MTU。接口MTU为所指定的接口所允许的发送最大的数据包的值。路径MTU指两台通信主机路径中最小的MTU值。路径MTU是非对称的,它取决于当时所选择的路由。而选路不一定是对称的。所以它在两个方向上不一定是一致的。
 
 
 
参考书籍:
Stevens,W.R.TCP/IP Illustrated,Vol.1.Reading
Comer,D.E.Internetworking with TCP/IP,Vol.1
Jeff Doyle.Routing TCP/IP Vol.1 Second Edition
 

抱歉!评论已关闭.