TCP/IP协议:链路层

1、引言

在TCP/IP协议簇中,链路层的目的有三个:

(1)为IP模块 发送和接收IP数据 报

(2)为ARP模块发送ARP请求和接收ARP应答

(3) 为RARP模块发送RARP请求和接收RARP应答

TCP/IP支持多种不同的链路层协议,取决于网络所使用的硬件,如以太网、令牌环网、FDDI(光纤分布式数据接口)及RS-232串行线路等。

2、以太网和IEEE802封装

帧格式采用48bit的目的地址和源地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射。


802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不是包括CRC检验码。以太网的类型字段定义的后续数据的类型。在802标准定义的帧格式 中,类型字段由后续 的子网接入协议(SNAP)的首部给出。

以太网帧格式中,类型字段后是数据;在802帧格式中,跟随在后面的是3字节的802.2 LLC和5字节的802.5 SNAP。目的服务访问点(Destination Service Access Point)和源服务访问点(Source Service Access Point)r 的值都设置为0xaa。Ctrl字段的值设置为0x03。随后的3个字节org code设置0,再接下来的2字节与以太网的格式一样。

CRC字段用于帧内后续字节差错的循环冗余检验,也称为FCS

802标准定义的帧和以太网的帧都有最小长度要求。802规定数据部分必须至少为38字节,而以太网规定最少为46字节。为了保证这一点,对于不满足的空间插入填充字节。

3、SLIP:串行线路IP

全称Serial Line IP,是一种在串行线路上对IP数据报封装的简单形式,其帧格式为:
(1)IP数据报以一个称作END(0xc0)的特殊字符结束。在数据报的开始处也传一个END字符。

(2)如果IP报文中某个字符为END,就用连续的两个字符0xdb和0xdc来取代它。0xdb字符也称作SLIP的ESC字符。

(3)如果IP报文中某个字符为ESC,就用连续两个字符0xdb和0xdd来取代。

TCP/IP协议:链路层_第1张图片

其缺陷:

(1)每一端必须知道对方的IP地址。没有办法将本端的IP地址通知给另一端

(2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它就不能用于其它协议。

(3)没有在数据帧中加入检验和,只能通过上层协议来实现。

4、PPP:点对点协议

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

(1)在串行线路上封装IP数据报的方法。既支持数据为8位和无奇偶检验位的异步模式,也支持面向比特的同步连接。

(2)建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)

(3)针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)

每一帧以标志字符0x7e开始和结束。紧接是一个地址字节,值始终是0xff,然后是一个值为0x03的控制字节,接下来是类型字段,类似于以太网中的类型字段的功能,当它的值 为0x0021时, 表示信息字段是一个IP数据报,值 为0xc021时,表示信息字段链路控制数据,值为0x8021时,表示信息字段是网络控制数据。

TCP/IP协议:链路层_第2张图片

由于标志字符的值是0x7e,当字符出现在信息字段中,需要转义

(1)当遇到字符0x7e时,需连续传送两个字符,0x7d和0x5e

(2)当遇到转义字符0x7dJF ,需连续传送两个字符,0x7d和0x5d,以实现转义字符的转义

(3)默认情况下,如果字符的值小于0x20,一般都要进行转义。

5、最大 传输单元MTU

以太网和802.3对数据帧的长度都 有一个限制,最大值 分别为1500和1492字节。链路上的这个特性称作MTU,最大传输单元。如果IP层的数据比链路层的MTU大,IP层需要进行分片。



你可能感兴趣的:(TCP/IP协议:链路层)