我是靠谱客的博主 幽默麦片,这篇文章主要介绍TCP/IP链路层详解,现在分享给大家,希望可以做个参考。

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

以太网与 IEEE802.3 的比较
以太网是 DEC , Intel , Xerox 公司在 1982 年联合公布的一个标准。它是当今 TCP/IP 采用的主要的 LAN 技术。以太网的核心思想是 CSMA/CD ( Carrier Sense , Multiple Access with Collision Detection )。它的速率是 10Mb/s ,地址为 48bit 。
IEEE802 委员会发布了一个与以太网稍有不同的标准集。其中 802.3 针对 CSMA/CD , 802.4 针对 TokenBus , 802.5 针对 TokenRing 。这三者的共同特性由 802.2 标准定义,那就是 802 网络共有的逻辑链路控制( LLC )。
 
以太网和 IEEE802 不同的帧格式
由于以太帧最小为 46 字节,所以在不足的空间插入填充字节 PAD
 
目的地址 & 源地址 : 48bit , 6 字节。
长度 :指它后序数据的字节长度(不包括 CRC 码)。
DSAP :目的服务访问点,值为 0xaa 。
SSAP :源服务访问点,值为 0xaa 。
Ctrl :值置为 3 。
Org code : 3 位均置为 0 。
类型 :与以太网类型字段作用相同。由 SNAP 的首部给出。 0800 为 IP , 0806 为 ARP , 8035 为 RARP 。
CRC :用于帧内后续字节差错的循环冗余校验。
 
802.3 规定数据部分至少为 38 字节,而以太网则要求最少为 46 字节。(所差 8 字节为 802.3 帧内的 802.2LLC 和 802.2SNAP 字段,以太网的类型字段位置在 802.3 帧中由长度字段代替,而 802.3 帧中的类型字端则由 802.2SNAP 字段的头三位给出)。
 
SLIP 与 PPP
SLIP 的全称为 Serial Line IP (串行线路 IP )。它是一种在串行线路上对 IP 数据报进行封装的简单形式。                                                        
SLIP 协议定义的帧格式规则:
⑴ IP 数据报以一个称作 END ( 0xc0 )的特殊字符结束。同时为了防止数据报传输之前的线路噪音被误认为是数据报内容,在数据报开始处添加一个 END 字符。
⑵ 如果 IP 数据中含有 END 字符,就连续传输 0xdb 和 0xdc 来取代它。 0xdb 是 SLIP 的 ESC 字符,但它的值与 ASC Ⅱ 码中的 ESC ( 0x1b )不同。
⑶ 如果 IP 数据中含有 ESC 字符,就连续传输 0xdb 和 0xdd 来取代它。
被封装前的 IP 数据报:
 
SLIP 的缺陷:
⑴ 每一端必须知道对端的 IP 地址,没有办法把本端 IP 地址传递给对端。
⑵ 数据帧中无类型字段,当一条串行线路使用 SLIP 时则不能使用其他协议。
⑶ SLIP 数据帧中无 checksum ,只能依靠上层协议来发现和纠正错误。
 
压缩的 SLIP ( CSLIP ):
在 SLIP 线路上有许多小的 TCP 分组进行交换,为传送 1 个字节的数据需要 20 个字节的 IP 首部和 20 个字节的 TCP 首部。 CSLIP 能把这 40 个字节压缩到 3 或 5 个字节。这些被压缩的首部大大缩短了交互响应时间。
 
PPP 协议
PPP 协议修改了 SLIP 协议中的所有缺陷。 PPP 包括以下三个部分:
⑴ PPP 在串行链路上封装 IP 数据报既支持数据为 8 位和无奇偶校验的异步模式,还支持面向比特的同步链接。
⑵ 通过 LCP (链路控制协议)允许双方进行协商。
⑶ 通过 NCP (网络控制协议)允许双方在网络层上进行协商。
 
PPP 帧以标志字符 0x7e 开始和结束,紧接着是一个值为 0xff 的地址字节,然后是一个值为 0x03 的控制字节。
 
PPP 的转义字符:
⑴ 由于标志字符是 0x7e ,当它出现在信息字段中时,需要连续传送 0x7d 和 0x5e 来替代它。
⑵ 当在信息字段中遇到 0x7d 时,需要连续传送 0x7d 和 0x5d 来替代它。
⑶ 默认情况下,如果字符的值小于 0x20 ,需要连续传送 0x7d 和 0x21 来替代它。
这样做的原因是由于双方主机的串口驱动程序或 Modem 会把这些特定的字符解释成特殊的含义,防止与其它控制字符起冲突或帧被解释的不正确。
 
PPP 的压缩:
PPP 的压缩可以减少每一帧的字节数,降低应用程序的交互时延。
通过 LCP ,大多数的产品通过协商可以省略标志位和地址位,并把协议字段由 2 字节减少到 1 字节。这样一来,与 SLIP 相比,只增加了 3 个字节(协议字段和 CRC 校验)。此外,通信双方通过 NCP 可以协商采用报文首部压缩,减小 IP 和 TCP 首部长度。
 
PPP 与 SLIP 相比具有下列优点:
⑴ PPP 支持在单根串行线路上运行多种网络层协议。
⑵ 每一帧都有 CRC 校验。
⑶ 通信双方可以用 NCP 进行 IP 地址的动态协商。
⑷ 可以类似于 CSLIP 对 TCP 和 IP 首部进行压缩。
⑸ LCP 可以对多个数据链路选项进行设置。
 
Loopback 接口
通过 Loopback 接口允许同一台主机上的客户程序和服务器程序通过 TCP/IP 进行通信。一个传给环回接口的 IP 数据报不能在任何网络上出现。
环回接口处理 IP 数据报的过程:
 
MTU
以太网和 802.3 对数据帧长度都有一个限制,其最大值分别是 1500 和 1492 字节。链路层的这个特性称作 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
 

最后

以上就是幽默麦片最近收集整理的关于TCP/IP链路层详解的全部内容,更多相关TCP/IP链路层详解内容请搜索靠谱客的其他文章。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(262)

评论列表共有 0 条评论

立即
投稿
返回
顶部