以太网和IEEE 802封装
最常使用的封装格式是RFC 894定义的格式。图2 - 1显示了两种不同形式的封装格式。图中每个方框下面的数字是它们的字节长度。
两种帧格式都采用48 bit(6字节)的目的地址和源地址(8 0 2 . 3允许使用16 bit的地址,但一般是48 bit地址) 。这就是我们在本书中所称的硬件地址。A R P和R A R P协议(第4章和第5章)对32 bit的I P地址和48 bit的硬件地址进行映射。接下来的2个字节在两种帧格式中互不相同。在 8 0 2标准定义的帧格式中,长度字段是指它后续数据的字节长度,但不包括 C R C检验码。以太网的类型字段定义了后续数据的类型。在8 0 2标准定义的帧格式中,类型字段则由后续的子网接入协议( Sub-network Access P r o t o c o l,S N A P)的首部给出。幸运的是,8 0 2定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分。
在以太网帧格式中,类型字段之后就是数据;而在 8 0 2帧格式中,跟随在后面的是 3字节的802.2 LLC和5字节的802.2 SNAP。目的服务访问点( Destination Service Access Point,D S A P)和源服务访问点(Source Service Access Point, SSAP)的值都设为0 x a a。Ct r l字段的值设为3。随后的3个字节o rg code都置为0。再接下来的2个字节类型字段和以太网帧格式一样(其他类型字段值可以参见RFC 1340 [Reynolds and Postel 1992]) 。
C R C字段用于帧内后续字节差错的循环冗余码检验(检验和) (它也被称为F C S或帧检验序列) 。
8 0 2 . 3标准定义的帧和以太网的帧都有最小长度要求。 8 0 2 . 3规定数据部分必须至少为3 8字节,而对于以太网,则要求最少要有 4 6字节。为了保证这一点,必须在不足的空间插入填充(p a d)字节。在开始观察线路上的分组时将遇到这种最小长度的情况。
SLIP:串行线路IP
S L I P的全称是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字符,但是它的值与A S C I I码的E S C字符(0 x 1 b)不同。
3) 如果I P报文中某个字符为S L I P的E S C字符,那么就要连续传输两个字节 0 x d b和0 x d d来取代它。
图2 - 2中的例子就是含有一个E N D字符和一个E S C字符的I P报文。在这个例子中,在串行线路上传输的总字节数是原I P报文长度再加4个字节。
S L I P是一种简单的帧封装方法,还有一些值得一提的缺陷:
1) 每一端必须知道对方的I P地址。没有办法把本端的I P地址通知给另一端。
2) 数据帧中没有类型字段(类似于以太网中的类型字段) 。如果一条串行线路用于S L I P,那么它不能同时使用其他协议。
3 ) S L I P没有在数据帧中加上检验和(类似于以太网中的 C R C字段) 。如果S L I P传输的报文被线路噪声影响而发生错误,只能通过上层协议来发现(另一种方法是,新型的调制解调器可以检测并纠正错误报文) 。这样,上层协议提供某种形式的 C R C就显得很重要。在第3章和第1 7章中,我们将看到I P首部和T C P首部及其数据始终都有检验和。在第 11章中,将看到U D P首部及其数据的检验和却是可选的。
PPP:点对点协议
P P P,点对点协议修改了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)体系。当前R F C定义的网络层有I P、O S I网络层、D E C n e t以及A p p l e Ta l k。例如,IP NCP允许双方商定是否对报文首部进行压缩,类似于C S L I P(缩写词N C P也可用在T C P的前面) 。
RFC 1548[Simpson 1993]描述了报文封装的方法和链路控制协议。 RFC 1332[McGregor1 9 9 2 ]描述了针对I P的网络控制协议。
P P P数据帧的格式看上去很像 I S O的H D L C(高层数据链路控制)标准。图 2 - 3是P P P数据帧的格式。
每一帧都以标志字符0 x 7 e开始和结束。紧接着是一个地址字节,值始终是 0 x ff,然后是一个值为0 x 0 3的控制字节。
接下来是协议字段,类似于以太网中类型字段的功能。当它的值为 0 x 0 0 2 1时,表示信息字段是一个I P数据报;值为0 x c 0 2 1时,表示信息字段是链路控制数据;值为 0 x 8 0 2 1时,表示信息字段是网络控制数据。
C R C字段(或F C S,帧检验序列)是一个循环冗余检验码,以检测数据帧中的错误。
由于标志字符的值是0 x 7 e,因此当该字符出现在信息字段中时, P P P需要对它进行转义。在同步链路中,该过程是通过一种称作比特填充 (bit stuff i n g )的硬件技术来完成的[ Ta n e n b a u m1 9 8 9 ]。在异步链路中,特殊字符 0 x 7 d用作转义字符。当它出现在 P P P数据帧中时,那么紧接着的字符的第6个比特要取其补码,具体实现过程如下:
1) 当遇到字符0 x 7 e时,需连续传送两个字符:0 x 7 d和0 x 5 e,以实现标志字符的转义。
2) 当遇到转义字符0 x 7 d时,需连续传送两个字符:0 x 7 d和0 x 5 d,以实现转义字符的转义。
3 ) 默认情况下,如果字符的值小于 0 x 2 0(比如,一个A S C I I控制字符) ,一般都要进行转义。例如,遇到字符0 x 0 1时需连续传送0 x 7 d和0 x 2 1两个字符(这时,第6个比特取补码后变为1,而前面两种情况均把它变为0) 。
这样做的原因是防止它们出现在双方主机的串行接口驱动程序或调制解调器中,因为有时它们会把这些控制字符解释成特殊的含义。另一种可能是用链路控制协议来指定是否需要对这3 2个字符中的某一些值进行转义。默认情况下是对所有的 3 2个字符都进行转义。
与S L I P类似,由于P P P经常用于低速的串行链路,因此减少每一帧的字节数可以降低应用程序的交互时延。利用链路控制协议,大多数的产品通过协商可以省略标志符和地址字段,并且把协议字段由2个字节减少到1个字节。如果我们把P P P的帧格式与前面的S L I P的帧格式(图2 - 2)进行比较会发现, P P P只增加了3个额外的字节: 1个字节留给协议字段,另 2个给C R C字段使用。另外,使用I P网络控制协议,大多数的产品可以通过协商采用 Van Jacobson报文首部压缩方法(对应于C S L I P压缩) ,减小I P和T C 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) 链路控制协议可以对多个数据链路选项进行设置。为这些优点付出的代价是在每一帧的首部增加 3个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。
- 大小: 92.1 KB
- 大小: 24.7 KB
- 大小: 31.6 KB
分享到:
相关推荐
计算机网络第五章链路层和局域网 链路层是计算机网络的第二层,位于网络层之下,物理层之上。链路层的主要功能是将网络层的数据报从一个节点传输到邻近的下一个节点,在这个过程中,链路层需要提供可靠的数据传输...
"计算机网络自顶向下方法第四版第5章链路层和局域网" 链路层是计算机网络中的第二层,负责在两个节点之间传输数据报。链路层的主要功能是将网络层的数据报封装成帧,并将其传输到下一个节点。链路层协议定义了帧的...
数据链路层是计算机网络中的一个重要层次,负责在两个相邻节点间建立和维护数据链路,确保数据的可靠传输。本章主要讨论了数据链路层的一些关键概念和功能。 首先,数据链路与链路之间的区别在于,数据链路不仅包含...
"计算机网络-自顶向下方法:第5章 链路层和局域网" 本章节主要介绍计算机网络中链路层和局域网的概念和原理。链路层是计算机网络中的一层,负责将数据报从一个节点传输到相邻的另一个节点。链路层协议规定了在链路...
主要内容 案例引入 数据链路层的基本概念 点对点协议PPP 多路访问控制协议 以太网 局域网扩展及VLAN 2 [课程讲义]计算机网络第三章数据链路层详解全文共110页,当前为第2页。 知识目标 数据链路层的三个基本问题 C ...
第五章主要探讨的是数据链路层及其在局域网中的应用。数据链路层是TCP/IP模型中的第二层,负责在网络的相邻节点间可靠地传输数据帧,它处理物理层提供的原始比特流,并在此基础上添加帧结构,进行错误检测、流量控制...
网络协议课件_第2章_链路层
【链路层协议分析】 链路层,又称为网络接口层,在TCP/IP协议栈中扮演着关键角色。...通过学习这一章,我们可以深入理解链路层如何协调IP、ARP和RARP等协议的工作,以及如何处理不同类型的网络接口和介质。
链路层作为OSI模型中的第二层,其主要功能是在相邻节点之间传输网络层的数据包。这一层通过链路实现节点之间的直接通信,并负责流量控制、错误检测与修正、物理地址定义等任务。 本部分知识点涉及到了一些关键概念...
数据链路层是计算机网络协议模型中的第二层,它位于物理层之上,网络层之下,主要负责在两个相邻节点间建立、维护数据链路,并确保数据的无差错传输。本套课件“计算机网络第7版课件-第3章-数据链路层”深入探讨了这...
数据链路层位于OSI模型的第二层,介于物理层和网络层之间,主要负责在两个相邻节点之间提供可靠的传输服务。下面我们将详细解析数据链路层的关键知识点。 ### 数据链路层的定义与功能 数据链路层的基本职责是为...
数据链路层是计算机网络协议层次中的第二层,主要负责在相邻节点间提供无差错的数据传输,确保数据帧从源节点可靠地传递到目的节点。这一层的任务包括差错检测、媒体访问控制以及在某些情况下实现可靠传输。 首先,...
第二章 链路层 第三章 IP 第四章 ARP 第五章 RARP 第六章 ICMP 第七章 Ping程序 第八章 Traceroute程序 第九章 IP选路 第十章 动态选路协议 第十一章 UDP 第十二章 多播与广播 第十三章 IGMP 第十四章 DNS 第十五章 ...
第2章 链路层 第3章 IP:网际协议 第4章 ARP:地址解析协议 第5章 RARP:逆地址解析协议 第6章 ICMP:Internet控制报文协议 第7章 Ping程序 第8章 Traceroute程序 第9章 IP选路 第10章 动态选路协议 第11章 UDP:...
第2章 链路层 15 第3章 IP:网际协议 24 第4章 ARP:地址解析协议 38 第5章 RARP:逆地址解析协议 47 第6章 ICMP:Internet控制报文协议 50 第7章 Ping程序 61 第8章 Traceroute程序 71 第9章 IP选路 83 第10章 动态...
第2章 链路层 第3章 IP:网际协议 第4章 ARP:地址解析协议 第5章 RARP:逆地址解析协议 第6章 ICMP:Internet控制报文协议 第7章 Ping程序 第8章 Traceroute程序 第9章 IP选路 第10章 动态选路协议 第11章 UDP:...
第2章 链路层 15 第3章 IP:网际协议 24 第4章 ARP:地址解析协议 38 第5章 RARP:逆地址解析协议 47 第6章 ICMP:Internet控制报文协议 50 第7章 Ping程序 61 第8章 Traceroute程序 71 第9章 IP选路 83 第10章 动态...
### 计算机网络数据链路层知识点详解 #### 数据链路层概述 计算机网络中的数据链路层是OSI七层...通过对本章的学习,我们可以深入理解数据链路层的基本原理和技术细节,为后续学习更高级别的网络协议打下坚实的基础。
数据链路层是OSI七层模型中的第二层,主要负责在物理层提供的比特流服务的基础上,通过差错控制、流量控制等机制,使有差错的物理线路变成无差错的数据链路。这一层的主要功能包括: - **链路管理**:建立和释放数据...