Ch2:链路层

来源:互联网 发布:行业数据哪里找 编辑:程序博客网 时间:2024/04/30 14:20


一、 概述

本章讨论了Internet协议族中的最底层协议,链路层协议。我们比较了以太网和IEEE802.2/802.3的封装格式,以及SLIP和PPP的封装格式。由于SLIP和PPP经常用于低速的链路,二者都提供了压缩不常变化的公共字段的方法。这使交互性能得到提高。

大多数的实现都提供环回接口。访问这个接口可以通过特殊的环回地址,一般为127.0.0.1。也可以通过发送IP数据报给主机所拥有的任一IP地址。当环回数据回到上层的协议栈中时,它已经过传输层和IP层完整的处理过程。


二、 链路层功能

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

  • 为IP模块发送和接收IP数据报;
  • 为ARP模块发送ARP请求和接收ARP应答;
  • 为RARP发送RARP请求和接收RARP应答。


三、 以太网和IEEE 802封装


图1. IEEE802.2/802.3和以太网的封装格式

IEEE802.2标准帧比以太网帧多一个802.2 LLC和802.2 SNAP域。

802.2规定帧数据部分至少为38字节,而以太网则要求至少为46字节。


四、 SLIP:串行线路IP

SLIP(Serial Line IP,串行线路IP),它是一种在串行线路上对IP数据报进行封装的简单形式。

下面的规则描述了SLIP协议定义的帧格式:

1) IP数据报以一个称作END(0xc0)的特殊字符结束。大多数实现在数据报的开始处也传一个END字符。

2) 如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它。

3) 如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它。


图2. SLIP报文的封装


SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:

  • 每一端必须知道对方的IP地址。没有办法把本端的IP地址通知给另一端。
  • 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。
  • SLIP没有在数据帧中加上检验和(类似于以太网中的CRC字段)。


五、 PPP:点对点协议

PPP(Point-to-Point Protocol),点对点协议修改了SLIP协议中的所有缺陷。PPP包括以下三个部分:

  1. 在串行链路上封装IP数据报的方法。PPP既支持数据为8位和无奇偶检验的异步模式,还支持面向比特的同步链接。
  2. 建立、配置及测试数据链路的链路控制协议(Link Control Protocol)。它允许通信双方进行协商,以确定不同的选项。
  3. 针对不同网络层协议的网络控制协议(Network Control Protocol)体系。

PPP协议对数据的具体实现过程如下:

  • 当遇到字符0x7e时,需连续传送两个字符: 0x7d和0x5e,以实现标志字符的转义。
  • 当遇到转义字符0x7d时,需连续传送两个字符: 0x7d和0x5d,以实现转义字符的转义。
  • 默认情况下,如果字符的值小于0x20(比如,一个ASCII控制字符),一般都要进行转义。


图3. PPP数据帧的定义

PPP的帧格式与SLIP帧格式相比只增加了3个额外的字节:1个字节留给协议字段,另外2个给CRC字段。

PPP帧封装却具有如下方面的优势:

  1. PPP支持在单根串行线路上运行多种协议,不只是IP协议;
  2. 每一帧都有循环冗余检验; 
  3. 通信双方可以进行IP地址的动态协商(使用IP网络控制协议); 
  4. 与CSLIP类似,对TCP和IP报文首部进行压缩; 
  5. 链路控制协议可以对多个数据链路选项进行设置。

六、 环回接口

环回接口( Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过TCP/IP进行通信。

其对IP数据报的处理过程如下图所示。


图4. 环回接口处理IP数据报的过程

根据上图,环回接口数据输入:

  1. 传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。
  2. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
  3. 任何传给该主机IP地址的数据均送到环回接口。


七、 MTU

MTU(Maximum Transfer Unit,最大传输单元),是指链路层对传输的数据帧长度的上限限制。

以太网的MTU为1500,而IEEE802.2/802.3帧的MTU为1492。

线路MTU为两台通信主机线路中的最小MTU值。


(完)

0 0
原创粉丝点击