一数据链路层概述
TCP/IP协议族中,链路层有三个主要目的
1)为IP模块发送和接收IP数据报
2)为ARP模块发送ARP请求和接收APR应答
3)为RARP发送RARP请求和接收RARP应答
TCP/IP支持多种不同的链路层协议,这取决于网络使用的硬件如以太网,令牌环网,FDDI(光纤分布式数据接口)及RS-232串行线路等
接下来将详细讨论以太网数据链路层协议,两个串行接口链路层协议(SLIP和PPP)以及大多数实现都包含的环回(loopback)驱动程序。以太网和SLIP是后面大多数情况下用到的数据链路层。对于MTU(最大传输单元)进行介绍。这个概念在后面回多次遇到。同时还会讨论如何为串行线路选择MTU
二 以太网和IEEE802封装
1)以太网技术概述:他是TCP/IP采用的主要的局域网技术,它采用CSMA/CD的媒体接入方法,也就是带冲突检测和载波侦听多路接入,它的速率为10MB/S,地址48bit.
后来。IEEE(电子电器工程师协会)发布了一个稍有不同的标准集,
IEEE标准 | 针对网络 |
---|---|
802.2 | 下面三者的共同特性 :802网络的逻辑链路控制(LLC) |
802.3 | CSMA/CD |
802.4 | 令牌总线网络 |
802.5 | 令牌环网络 |
PS:其中802.2和802.3定义了一个与以太网不同的帧格式
在TCP/IP中,以太网IP数据报的封装是在RFC 894[Horing]中定义的,IEEE802网络的IP数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。主机需求RFC要求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆连接:
1)必须能发送和接收采用 RFC 894(以太网)封装格式的分组
2)应该能接收与RFC894混合的RFC 1042 (IEEE 802)封装格式的分组
3)也许能发送采用RFC 1042格式封装的分组。即如果主机同时能发送两种类型的分组数据,那么发送的分组必须是可以设置的,而且默认采用 RFC 894分组
最常用的分组帧的格式是RFC 894定义的格式。下面分别为两种帧的格式,图中每个方框下面的数字是它们的字节长度。
两种格帧的格式都采用48bit(6字节)的目的地址和源地址(802.3允许使用16bit的地址,但是一般是48bit地址)。这就是我们在本书中所称的硬件地址。ARP和RARP协议对32bit的IP地址和48bit的硬件地址进行映射;
IEEE802帧:
以太网帧:
从上图可以看到:
1)以太网的类型字段定义了后续数据的类型。而802标准定义的帧格式中,类型由后续的子网接入协议(SNAP)首部给出。
关于以太网帧或802帧数据类型可以分为3类:RARP请求/应答,ARP请求应/答,IP数据报,三种类型
2)802定义的有效长度和以太网的有效类型值无一相同,这样,就可以对两帧格式进行区分。
3)以太网格式帧中:类型字段之后就是数据;而802帧格式中,跟随在后面的是3字节的802.2LLC和5字节的802.2SNAP.目的服务访问点(DSAP)和源服务访问点(SSAP)值都设为0xaa,ctrl字段值设为3.随后的3个字节org code都置为0;接下来的2个字节类型和以太网帧格式一样(参见RFC 1340)
4)CRC字段用于帧内后续字节差的冗余码校验(校验和)(它被称为FCS和帧检验序列)
5)802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分至少为38字节。而以太网,至少46字节。为保证这一点,必须在不足的空间插入填充(pad)字节.在开始观察线路上的分组将遇到这种最小长度的情况。
三尾部封装
PS:以太网的封装不只一种封装格式;即其中一种帧;
RFC 893描述了另一种用于以太网的封装格式:尾部封装;
尾部封装ÿ