TCP/IP 2.链路层

链路层主要有三个目的:
(1)为I P模块发送和 接收I P数据报;
(2)为A R P模块发送A R P请求和接收A R P应答;
(3)为R A R P发送R A R P请 求和接收R A R P应答。
T C P / I P支持多种不同的链路层协议,这取决于网络所使用的硬件,如以 太网、令牌环网、F D D I(光纤分布式数据接口)及R S-2 3 2串行线路等。

以太网和IEEE 802封装

以太网这个术语一般是指数字设备公司(DigitalEquipment Corp. )、英特尔公司( IntelCorp.)和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定义了一个与以太网不同的帧格式。文献[Stallings 1987] 对所有的 IEEE 802 标准进行了 详细的介绍。
在TCP/IP世界中,以太网IP数据报的封装是在RFC 894[Hornig1984]中定义的, IEEE 802 网络的IP数据报封装是在RFC 1042[Posteland Reynolds 1988] 中定义的。主机需求 RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连接:
1) 必须能发送和接收采用 RFC 894(以太网)封装格式的分组。
2) 应该能接收与 RFC 894混合的 RFC 1042(IEEE 802)封装格式的分组。
3)也许能够发送采用RFC 1042 格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认条件下必须是RFC 894分组。
最常使用的封装格式是RFC894 定义的格式。图 2-1显示了两种不同形式的封装格式。图 中每个方框下面的数字是它们的字节长度。
两种帧格式都采用 48 bit(6字节)的目的地址和源地址(802.3允许使用 16bit的地址,但 一般是 48 bit地址)。这就是我们在本书中所称的硬件地址。 ARP和RARP协议(第4章和第5章) 对32 bit的IP地址和 48 bit的硬件地址进行映射。

SLIP:串行线路IP

SLIP的全称是 SerialLine IP。它是一种在串行线路上对 IP数据报进行封装的简单形式,在 RFC1055[Romkey 1988] 中有详细描述。 SLIP适用于家庭中每台计算机几乎都有的 RS-232串行端口和高速调制解调器接入 Internet。
下面的规则描述了 SLIP协议定义的帧格式:
1)IP 数据报以一个称作 END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前 的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个 END字符(如果有线 路噪声,那么END字符将结束这份错误的报文。这样当前的报文得以正确地传输,而前一个错误报文交给上层后,会发现其内容毫无意义而被丢弃)。
2) 如果 I P 报文中某个字符为 E N D ,那么就要连续传输两个字节 0 x d b和 0 x d c 来取代它。
0xdb这个特殊字符被称作 SLIP的ESC字符,但是它的值与 ASCII码的ESC字符( 0x1b)不同。
3)如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个字节 0xdb和0xdd来 取代它。
图2-2中的例子就是含有一个END字符和一个ESC字符的IP报文。在这个例子中,在串行 线路上传输的总字节数是原IP报文长度再加4个字节。

SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:
1) 每一端必须知道对方的 IP地址。没有办法把本端的 IP地址通知给另一端。
2) 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于SLIP, 那么它不能同时使用其他协议。
3)SLIP没有在数据帧中加上检验和(类似于以太网中的 CRC字段)。如果 SLIP传输的报 文被线路噪声影响而发生错误,只能通过上层协议来发现(另一种方法是,新型的调制解调 器可以检测并纠正错误报文)。这样,上层协议提供某种形式的CRC就显得很重要。在第3章 和第 17章中,我们将看到IP首部和TCP首部及其数据始终都有检验和。在第11章中,将看到 UDP首部及其数据的检验和却是可选的。
尽管存在这些缺点, SLIP仍然是一种广泛使用的协议。
SLIP的历史要追溯到 1984年,RickAdams第一次在4.2BSD系统中实现。尽管它本 身的描述是一种非标准的协议,但是随着调制解调器的速率和可靠性的提高, SLIP越 来越流行。现在,它的许多产品可以公开获得,而且很多厂家都支持这种协议。

PPP:点对点协议

PPP,点对点协议修改了SLIP协议中的所有缺陷。PPP包括以下三个部分:
1) 在串行链路上封装 IP数据报的方法。 PPP 既支持数据为 8位和无奇偶检验的异步模式
(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链接。
2)建立、配置及测试数据链路的链路控制协议(LCP:Link Control Protocol)。它允许通 信双方进行协商,以确定不同的选项。
3)针对不同网络层协议的网络控制协议(NCP:Network Control Protocol)体系。当前 RFC定义的网络层有IP、OSI网络层、 DECnet以及AppleTalk。

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

环回接口
大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户 程序和服务器程序通过 T C P / I P进行通信。A类网络号1 2 7就是为环回接口预留的。根据惯例, 大多数系统把I P地址1 2 7 . 0 . 0 . 1分配给这个接口,并命名为l o c a l h o s t。一个传给环回接口的I P数 据报不能在任何网络上出现。

图中需要指出的关键点是:
1) 传给环回地址(一般是 127.0.0.1)的任何数据均作为 IP输入。
2) 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义(第12章)包含主机本身。
3) 任何传给该主机 IP地址的数据均送到环回接口。

参考:http://blog.csdn.net/dlutbrucezhang/article/details/8700116

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