第二章 链路层

TCP/IP协议族中,链路层主要有三个目的1IP模块发送和 接收IP数据报;( 2)为ARP模块发送 ARP请求和接收 ARP应答;( 3)为RARP发送RARP 求和接收 RARP应答。TCP/IP支持多种不同的链路层协议,这取决于网络所使用的硬件,如以 太网、令牌环网、 FDDI(光纤分布式数据接口)及 RS - 232串行线路等。

2.2  以太网和IEEE 802封装

以太网这个术语一般是指数字设备公司 Digital Equipment Corp. 、英特尔公司 Intel Corp.)和 Xerox公司在 1982年联合公布的一个标准。它是当今 TCP/IP采用的主要的局域网技 术。它采用一种称作 CSMA/CD的媒体接入方法,其意思是带冲突检测的载波侦听多路接入Carrier Sense, Multiple Access with Collision Detection)。它的速率 10 Mb/s,地址为 48 bit 几年后, IEEE(电子电气工程师协会) 802委员会公布了一个稍有不同的标准集,其中802.3针对整个 CSMA/CD网络,802.4针对令牌总线网络, 802.5针对令牌环网络。这三者的共 同特性由 802.2标准来定义,那就是 802网络共有的逻辑链路控制( LLC)。不幸的是 802.2 802.3定义了一个与以太网不同的帧格式。

2.4     SLIP:串行线路IP

SLIP的全称是 Serial Line IP。它是一种在串行线路上对 IP数据报进行封装的简单形式,在 RFC 1055[Romkey 1988]中有详细描述。

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

1) IP 数据报以一个称作 END0xc0)的特殊字符结束。同时,为了防止数据报到来之前 的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END字符(如果有线 路噪声,那么 END字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个 错误报文交给上层后,会发现其内容毫无意义而被丢弃)。

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

0xdb这个特殊字符被称作 SLIPESC字符,但是它的值与 ASCII码的ESC字符(0x1b)不同。

3) 如果IP报文中某个字符为 SLIPESC字符,那么就要连续传输两个字节 0xdb0xdd 取代它。

 

2.6     PPP:点对点协议

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

1) 在串行链路上封装 IP数据报的方法。 PPP既支持数据为 8位和无奇偶检验的异步模式

(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链接。

2) 建立、配置及测试数据链路的链路控制协议( LCPLink Control Protocol)。它允许通 信双方进行协商,以确定不同的选项。

3) 针对不同网络层协议的网络控制协议 NCPNetwork Control Protocol体系。当前 RFC定义的网络层有 IPOSI网络层、 DECnet以及AppleTalk

每一帧都以标志字符 0x7e开始和结束。紧接着是一个地址字节,值始终是 0xff,然后是一 个值为0x03的控制字节。

总的来说, PPPSLIP具有下面这些优点: (1) PPP支持在单根串行线路上运行多种协议, 不只是 IP协议; (2)  每一帧都有循环冗余检验; (3)  通信双方可以进行 IP地址的动态协商(使用 IP网络控制协议) (4)  CSLIP类似,对 TCPIP报文首部进行压缩; (5) 链路控制协议可以 对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加 3个字节,当建 立链路时要发送几帧协商数据,以及更为复杂的实现。

 

2.7     环回接口

大多数的产品都支持环回接口( Loopback Interface,以允许运行在同一台主机上的客户 程序和服务器程序通过 TCP/IP进行通信。 A类网络号 127就是为环回接口预留的。根据惯例, 大多数系统把 IP地址127.0.0.1分配给这个接口,并命名为 localhost。一个传给环回接口的 IP 据报不能在任何网络上出现。

2.8     最大传输单元MTU

 

以太网和 802.3对数据帧的长度都有一个限制,其最大值分别是 15001492字节。链路层的这个特性称作MTU,最大传输单元。如果 I P层有一个数据报要传,而且数 据的长度比链路层的 MTU还大,那么 IP 就需要进行分片( fragmentation,把数据报分成若干片,这样每一片都小于 M T U

 

2.9  路径MTU

当在同一个网络上的两台主机互相进行通信时,该网络的 MTU是非常重要的。但是如果 两台主机之间的通信要通过多个网络,那么每个网络的链路层就可能有不同的 MTU。重要的 不是两台主机所在网络的 MTU的值,重要的是两台通信主机路径中的最小 MTU。它被称作路 MTU

两台主机之间的路径 MTU不一定是个常数。它取决于当时所选择的路由。而选路不一定 是对称的(从 AB的路由可能与从 BA的路由不同),因此路径 MTU在两个方向上不一定是 一致的。

RFC 1191[Mogul and Deering 1990] 描述了路径 MTU 的发现机制,即在任何时候确定路径 MTU 的方法。

你可能感兴趣的:(第二章 链路层)