概述
在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链路层详解所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复