说明:本文为《TCP/IP详解,卷1:协议》的第二章“链路层”的学习笔记。
一. 引言
1. 链路层的目的
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应答。
2. 本章学习内容
将详细讨论以太网链路层协议,两个串行接口链路层协议( S L I P和P P P),
以及大多数实现都包含的环回( l o o p b a c k)驱动程序。
二. 以太网和IEEE 802封装
1. 以太网术语解释
以太网这个术语一般是指数字设备公司( Digital Equipment Corp.)、英特尔公司( I n t e lC o r p .)和X e r o x公司在1 9 8 2年联合公布的一个标准。它是当今T C P / I P采用的主要的局域网技术。它采用一种称作C S M A / C D的媒体接入方法,其意思是带冲突检测的载波侦听多路接入(Carrier Sense, Multiple Access with Collision Detection)。它的速率为10 Mb/s,地址为48 bit。
在T C P / I P世界中,以太网I P数据报的封装是在RFC 894[Hornig 1984]中定义的,IEEE 802网络的I P数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。
2. 封装格式
1) IEEE 802.2/802.3封装
2) 以太网封装
以太网封装是最常见的封装格式。
三. 尾部封装
它是一个早期B S D系统在DEC VA X机上运行时的试验格式,它通过调整I P数据报中字段的次序来提高性能。在以太网数据帧中,开始的那部分是变长的字段(I P首部和T C P首部)。把它们移到尾部(在C R C之前),这样当把数据复制到内核时,就可以把数据帧中的数据部分映射到一个硬件页面,节省内存到内存的复制过程。
尾部封装已遭到反对。
四. SLIP:串行线路IP
全称:Serial Line IP。它是一种简单的帧封装方法。它是一种在串行线路上对I P数据报进行封装的简单形式,在RFC 1055[Romkey 1988]中有详细描述。S L I P适用于家庭中每台计算机几乎都有的R S - 2 3 2串行端口和高速调制解调器接入I n t e r n e t。
S L I P协议定义的帧格式如下:
1.IP数据报以一个称作E N D(0 x c 0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声被当成数据报内容,大多数实现在数据报的开始处也传一个E N D字符(如果有线路噪声,那么E N D字符将结束这份错误的报文)。
2.如果I P报文中某个字符为E N D,那么就要连续传输两个字节0 x d b和0 x d c来取代它。
0 x d b这个特殊字符被称作S L I P的E S C字符。
3.如果I P报文中某个字符为S L I P的E S C字符,那么就要连续传输两个字节0 x d b和0 x d d来取代它。
SLIP的缺陷如下:
1. 每一端必须知道对方的I P地址。没有办法把本端的I P地址通知给另一端。
2. 数据帧中没有类型字段(类似于以太网中的类型字段)。如果一条串行线路用于S L I P,
那么它不能同时使用其他协议。
3. S L I P没有在数据帧中加上检验和(类似于以太网中的C R C字段)。如果S L I P传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现(另一种方法是,新型的调制解调器可以检测并纠正错误报文)。
五. 压缩的SLIP
C S L I P(即压缩S L I P)在RFC 1144[Jacobson 1990a]中被详细描述。它能在C S L I P的每一端维持多达1 6个T C P连接,并且知道其中每个连接的首部中的某些字段一般不会发生变化。对于那些发生变化的字段,大多数只是一些小的数字和的改变。这些被压缩的首部大大地缩短了交互响应时间。
六. PPP:点到点协议
点对点协议修改了S L I P协议中的所有缺陷。P P P包括以下三个部分:
1.在串行链路上封装I P数据报的方法。P P P既支持数据为8位和无奇偶检验的异步模式
(如大多数计算机上都普遍存在的串行接口),还支持面向比特的同步链;
2.建立、配置及测试数据链路的链路控制协议( L C P:Link Control Protocol)。它允许通
信双方进行协商,以确定不同的选项。
3.针对不同网络层协议的网络控制协议( N C P:Network Control Protocol)体系。
PPP数据桢的格式如下图:
与S L I P类似,由于P P P经常用于低速的串行链路,因此减少每一帧的字节数可以降低应用程序的交互时延。
总的来说, 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) 链路控制协议可以对多个数据链路选项进行设置。
七. 环回接口
大多数的产品都支持环回接口( 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. 传给环回地址(一般是1 2 7 . 0 . 0 . 1)的任何数据均作为I P输入;
2. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上;
3. 任何传给该主机I P地址的数据均送到环回接口。
八. 最大传输单元MTU
以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是1 5 0 0和1 4 9 2字节。链路层的这个特性称作M T U,最大传输单元。
如果I P层有一个数据报要传,而且数据的长度比链路层的M T U还大,那么I P层就需要进行分片( f r a g m e n t a t i o n),
九. 路径MTU
当在同一个网络上的两台主机互相进行通信时, 两台通信主机路径中的最小M T U。被称作路径M T U。
两台主机之间的路径M T U不一定是个常数。它取决于当时所选择的路由。而选路不一定
是对称的(从A到B的路由可能与从B到A的路由不同),因此路径M T U在两个方向上不一定是一致的。
十. 串行电路吞土量计算
关于人的有关研究表明,交互响应时间超过1 0 0~200 ms就被认为是不好的。
十一. 小结
本章讨论了I n t e r n e t协议族中的最底层协议,链路层协议。我们比较了以太网和I E E E
8 0 2 . 2 / 8 0 2 . 3的封装格式,以及S L I P和P P P的封装格式。由于S L I P和P P P经常用于低速的链路,二者都提供了压缩不常变化的公共字段的方法。这使交互性能得到提高。
大多数的实现都提供环回接口。访问这个接口可以通过特殊的环回地址,一般为1 2 7 . 0 . 0 . 1。也可以通过发送I P数据报给主机所拥有的任一I P地址。当环回数据回到上层的协议
栈中时,它已经过传输层和I P层完整的处理过程。
我们描述了很多链路都具有的一个重要特性, M T U,相关的一个概念是路径M T U。根据典型的串行线路M T U,对S L I P和C S L I P链路的传输时延进行了计算。
本章的内容只覆盖了当今T C P / I P所采用的部分数据链路公共技术。T C P / I P成功的原因之一是它几乎能在任何数据链路技术上
posted on 2007-08-22 18:46
阿蜜果 阅读(1366)
评论(2) 编辑 收藏 所属分类:
网络通信相关