TCP/IP详解notes:02数据链路层

TCP/IP详解notes:02数据链路层

2.1 引言

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

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

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

在本章中,我们将详细讨论以太网链路层协议,两个串行接口链路层协议(SLIP和PPP),以及大多数实现都包含的环回(loopback)驱动程序.

2.2 以太网和IEEE 802封装

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

2.3 尾部封装

RFC 893[Leffler and Karels 1984]描述了另一种用于以太网的封装格式,称作尾部封装(trailer encapsulation). 现在,尾部封装已遭到反对.

2.4 SLIP:串行线路IP

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

SLIP协议定义的帧格式

  1. IP数据报以一个称作END(0xc0)的特殊字符结束.同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个END字符(如果有线路噪声,那么END字符将结束这份错误的报文.这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃).
  2. 如果IP报文中某个字符为END,那么就要连续传输两个字节0xdb和0xdc来取代它.0xdb这个特殊字符被称作SLIP的ESC字符,但是它的值与ASCII码的ESC字符(0x1b)不同.
  3. 如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节0xdb和0xdd来取代它. 图2-2中的例子就是含有一个END字符和一个ESC字符的IP报文.在这个例子中,在串行线路上传输的总字节数是原IP报文长度再加4个字节.
目录