第2章 链路层

2.1 引言

  1.链路层有三个目的:

    A. 为IP模块发送和接收数据报。

    B. 为ARP模块发送ARP请求和接收ARP答应。

    C. 为RARP发送RARP请求和RARP答应。

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

  两个串行接口链路层协议(SLIP和PPP),以及大多数实现都包含的环回(loopback)驱动程序。(以太网和SLIP是本书中大多数例子使用的链路层。对MTU(最大传输单元)进行了介绍,这个概念在本书的后面章节中将多次遇到。我们还讨论了如何串行线路选择MTU。)

 

2.2 以太网和IEEE 802封装

  以太网这个术语一般是指数字设备公司(Digital Equipment Corp.)、因特尔公司(Intel Corp.)和Xerox公司在1982年联合公布的一个标准。它是当今TCP/IP采用的主要局域网技术。它采用一种称作CSMA/CD的媒体接入方法,其意思是:带冲突检测的载波侦听多路接入(Carrier Sense,Multiple Access with Collision Detection)。它的速率为10Mb/s,地址为48bit。

  几年后,IEEE(电子电气工程师协会)802委员会公布了一个稍有不同的标准集。其中,

    ⑴ 802.3针对整个CSMA/CD网络,

    ⑵ 802.4针对令牌总线网络,

    ⑶ 802.5针对令牌环网络。

  这三者的共同特性由802.2标准来定义,那就是802网络共有的逻辑链路控制(LLC)。

  不幸的是,802.2和802.3定义了一个与以太网不同的帧格式。(文献【Stallings 1987】对所有的IEEE 802标准进行了详细的介绍。)

  在TCP/IP世界中,

    ⑴ 以太网IP数据报的封装是在RFC 894[Hornig 1984]中定义的。

    ⑵ IEEE 802网络的IP数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。

  主机需求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连接:

    ① 必须能发送和接收采用RFC 894(以太网)封装格式的分组。

    ② 应该能接收与RFC 894混合的RFC 1042(IEEE 802)封装格式的分组。

    ③ 也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须    是RFC 894分组。

   最常使用的封装格式是RFC 894定义的格式。

  下图显示了两种不同形式的封装格式,图中每个方框下面的数字是它们的字节长度。

tcp-ip封装格式

  两种帧格式都采用48bit(6字节)的目的地址和源地址(802.3允许使用16bit的地址,但一般是48bit地址)。这就是我们在本书中所称的硬件地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射。

  接下来的两个字节在两种帧格式中互不相同。幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。

    ⑴ 在802标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括CRC检验码。

    ⑵ 以太网的类型字段定义了后续数据的类型。(802标准定义的帧格式中,类型字段则由后续的子网接入协议(Sub-network Access Protocol,SNAP)的首部给出)

  在以太网帧格式中,类型字段之后就是数据;而在802帧格式中,跟随后面的是3字节的802.2 LLC和5字节的802.2 SNAP。目的服务访问点(Destination Service Access Point,DSAP)和源服务访问点(Source Service Access Point,SSAP)的值都设为0xaa。Ctrl字段的值设为3。随后的3个字节org code都置为0.在接下来2个字节类型字段和以太网帧格式一样(其他类型字段值可以参见RFC 1340 [Reynolds and Postel 1992])。

  

posted @ 2015-12-19 14:04  被盗的小偷  阅读(117)  评论(0)    收藏  举报