美文网首页计算机网络程序员
TCP/IP 卷Ⅰ协议-数据链路层

TCP/IP 卷Ⅰ协议-数据链路层

作者: 谁吃了我的薯条 | 来源:发表于2018-01-11 00:28 被阅读30次

    链路层

    简介:从前一章节可以看出,TCP/IP协议族中,链路层主要有三个目的:

    1. IP模块接收和发送数据报
    2. ARP模块发送ARP请求和接收ARP应答
    3. RARP模块发送RARP请求和接收RARP应答

    TCP/IP支持多种类型的链路层协议,这取决于网络所使用的硬件,如以太网令牌环网等。
    本文主要讨论的是以太网链路层协议,两个串行接口链路层协议(SLIPPPP ),以及大部数实现都包含的环回(loop back) 驱动程序。

    1.、以太网IEEE 802封装

    在TCP/IP族中,以太网IP数据报的封装是在 RFC 894中定义的,IEEE 802网络的IP数据报分装实在RFC 1042中定义的。主机需求RFC要求每台Internet主机都与一个10Mb/s的以太网电缆相连接:

    1. 必须能发送和接收采用RFC 894封装格式的分组
    2. 应该能接收与RFC 894混合的RFC 1042封装格式的分组
    3. 也许能够发送采用RFC 1042格式封装的分组。如果主机能同时发送两种类型的分组数据,那么发送的分组必须是可以设置,而且默认条件下必须是RFC 894分组。

    最常使用的封装格式是RFC 894定义的格式。

    下图显示了两种不同形式的封装格式;

    封装格式

    两种帧格式都采用48bit(6字节)的目的地址源地址,这就是我们在本书中所称的硬件地址。ARPRARP32 bitIP地址48 bit硬件地址进行映射;
    接下来的两个字节在两种帧格式中互不相同。在802标准定义的帧格式中,长度字段表示它后续字段的字节长度,但不包括CRC检验码。以太网的类型字段的定义了后续数据的类型。在802标准定义的帧格式中,类型字段则由后续的子网接入协议( Sub-network Access Protocol,SNAP)的首部给出。幸运的是,802定义的有效长度值与以太网的有效类型值无一相同,这样,就可以对两种帧格式进行区分.
    在以太网帧格式中,类型字段之后就是数据;而在 802帧格式中,跟随在后面的是 3字节的802.2 LLC和5字节的802.2 SNAP。目的服务访问点( Destination Service Access Point,D S A P)和源服务访问点(Source Service Access Point, SSAP)的值都设为0xaaCtrl字段的值设为3。随后的3个字节orgcode都置为0。再接下来的2个字节类型字段和以太网帧格式一样(其他类型字段值可以参见 RFC 1340 [Reynolds and Postel 1992])。CRC字段用于帧内后续字节差错的循环冗余码检验(检验和)(它也被称为FCS或帧检验序列)。802.3标准定义的帧和以太网的帧都有最小长度要求。802.3规定数据部分必须至少为 38字节,而对于以太网,则要求最少要有 46字节。为了保证这一点,必须在不足的空间插入填充(pad)字节。在开始观察线路上的分组时将遇到这种最小长度的情况。在本书中,我们在需要的时候将给出以太网的封装格式,因为这是最为常见的封装格式。

    2、尾部封装

    现在已经遭到反对,故不再讲解;

    3、SLIP:串行线路IP

    SLIP全称为:Serial Line Ip 。它是一种在串行线路上对IP数据报进行封装的简单形式,

    它的要求如下:

    1. IP数据报以一个称作 END (0xc0) 的特殊字符结束;同时为防止线程噪声的干扰,大多数实现在数据报的开始也加入一个END字符。
    2. 如果IP报文中含有END字符,则使用连续传输两个字节 0xdb (也被称为SLIPESC字符)和0xdc来取代它.
    3. 如果报文中某个字符为SLIPESC字符,那么就要连续传输两个字节0xdb0xdd取代它。

    一个简单的例子如下:


    SLIP

    SLIP是一种简单的帧封装方法,还有一些值得一提的缺陷:

    1. 每一端都必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。
    2. 数据帧中没有类型字段,类似于以太网中的类型字段,如果一条串行线路用于SLIP,它就不能同时使用其他协议;
    3. SLIP没有校验和,类似于以太网的CRC字段,如果传输报文受到线路噪声影响而发生错误,只能通过上层协议来实现。

    4、PPP:点对点协议

    点对点协议,修改了SLIP协议中的所有缺陷;

    5、环回接口

    大多是产品都支持环回接口,以允许运行在同一台主机上的客户程序与服务器程序通过TCP/IP进行通信。A 类网络好 127就是为环回接口预留的。大多显示系统把IP 地址为 127.0.0.0分配给环回接口,命名为localhost
    一旦传输层检测到目的端地址为环回地址时,可以省掉部分传输层与所有网络层的逻辑操作。

    下面时环回接口处理IP数据报的简单过程:

    环回接口

    关键点

    1. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。
    2. 任何传给该主机IP地址的数据均送到环回接口。
    3. 传给环回地址的任何数据均作为IP输入。

    6、最大传输单元 MTU

    以太网和802.3 对数据帧的长度都有一个限制,其最大值分别为1500 和1492字节。链路层的这个特性称作MTU,最大传输单元。
    如果IP层有一个数据报长度比链路层的MTU要大,则要对该数据报进行分片操作,要求每一片都小于MTU

    7、路径MTU

    当在同一网络上的两台主机进行互相通信时,该网络的MTU就会很重要了。此时,两台通信主机路径中的最小MTU,被称为此路径的路径MTU
    详细内会在后续章节进行解读;

    8、穿行线路吞吐量计算

    线路速度为 V b/s,而一个字节为 a bit ,再加上其实和结束 bit,则线路的速率为 v= V/(a+2) B/s. 而一个分组为 m 字节,则需要时间为: m/v ms;

    相关文章

      网友评论

        本文标题:TCP/IP 卷Ⅰ协议-数据链路层

        本文链接:https://www.haomeiwen.com/subject/jziiextx.html