TCP/IP详解 卷I:协议 の链路层

链路层的三个目的

  • 为ip模块发送和接收IP数据包
  • 为ARP发送ARP请求和接收ARP应答
  • 为RARP发送RARP请求和接收RARP应答

    TCP/IP支持不同的链路层协议这取决于链路层所使用硬件如 以太网、令牌网、FDDI 以及Rs232等
    以太网IP数据包的封装(链路层上完成)

    两种不同的封装:以太网帧和IEE802帧在TCP/IP世界中,以太网IP数据报的封装是RFC894[Hornig 1984]中定义的,IEEE802网络的IP数据报封装是在RFC 1042[Postel and Reynolds 1988]中定义的。
    最常用的是以太网帧即RFC894定义的格式。图1显示了两者的区别:
    TCP/IP详解 卷I:协议 の链路层_第1张图片
    图1 IEEE802.2/IEEE802.3 (RFC1042)和以太网帧的封装区别
    两种帧格式都采用48bit(6字节)的目的地址和源地址这就是我们所说的硬件地址在链路层封装上,ARP和RARP对32bit的IP地址和硬件地址进行映射。
    SLIP和PPP协议
    SLIP串行线路上对IP进行封装的一种简单形式。
    一种简单帧封装方法,在原IP报文上增加少量字节即可。但具有一些缺陷:
    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首部及其数据的检验和却是可选的。
    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]描述了报文封装的方法和链路控制协议。RFC1332[McGregor1 9 9 2 ]描述了针对I 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个字节,当建立链路时要发送几帧协商数据,以及更为复杂的实现。
最大传输单元MTU
如图1那样,以太网和802.3对数据帧都有一个限制,其最大值分别是1500和1492字节。链路层的这个特性称作MTU 最大传输单元。不同类型网络都有一个传输上限。
IP层的分片
IP层传输一数据,而且数的长度,比链路层的MTU还要大,那么IP层需要进行分片,把数据的报文分成若干片,每一片都小于链路层MTU。点到点的链路层(如S L I P和P P P)的M T U并非指的是网络媒体的物理特性。相反,它是一个逻辑限制,目的是为交互使用提供足够快的响应时间。
路径MTU
如果两台主机之间需要通过不同网络进行通信,那么每个网络的链路层MTU大小会不一样,此时两台主机所在网络的MTU不再重要,重要的是两台主机路径中的最小MTU,即路径MTU两台主机之间的路径M T U不一定是个常数。它取决于当时所选择的路由。而选路不一定是对称的(从A到B的路由可能与从B到A的路由不同),因此路径M T U在两个方向上不一定是
一致的。

你可能感兴趣的:(以太网)