美文网首页
TCP-IP详解卷1:协议读书笔记_2

TCP-IP详解卷1:协议读书笔记_2

作者: MR_Model | 来源:发表于2019-08-20 11:08 被阅读0次

    在TCP/IP协议族中,链路层主要有三个目的:
    (1)为IP模块发送和接受IP数据报
    (2)为ARP模块发送ARP请求和接受ARP应答
    (3)为RARP发送RARP请求和接收RARP应答

    以太网和IEEE802封装

    以太网是当今TCP/IP采用的主要的局域网技术。它采用一种称作CSMA/CD的额媒体接入方法,其意思是带冲突检测的载波侦听多路接入。它的速率为10MB/S,地址为48bit。

    主机需求RFC要求每个Internet主机都与10MB/s的以太网电缆相连接:
    1)必须能发送和接受采用RFC894(以太网)封装格式的分组
    2)应该能接受与RFC894混合的RFC1024(IEEE082)封装格式的分组
    3)也许能够发送采用RFC1024格式封装的分组

    最常使用的封装格式是RFC 894定义的格式。下图显示了两种形式的封装格式。图中每个方框下面的数字是它们的字节长度。


    RFC1024 和RFC 894数据报的封装格式

    两种帧格式都采用48bit(6字节)的目的地址和源地址。ARP和RARP协议对32位bit的IP地址和48bit的硬件地址进行映射。

    接下来两个字节在两种帧格式中互不相同。RFC1024定义的长度字段是指它后续数据的字节长度,但不包括CRC校验码。RFC894定义了后续数据的类型。RFC1024的有效长度和RFC894有效类型值都不相同,所以,可以对两种帧格式进行区分。

    RFC894类型后面就是数据;而RFC1024后有哦3个字节的802.2LLC和5个字节的802.2SNAP。目的服务访问点和源服务访问点的值都设为0Xaa。Ctrl字段的值设为3。随后的3个字节org code都置为0。再接下来两个字节类型和以太网格式一样。

    CRC字段用于帧内后续字节差错的循环冗余码检验。

    尾部封装

    RFC893描述了另一种用于以太网的封装格式,称作尾部封装。
    在以太网数据帧中,开始的那部分是边长的字段;将其移动到尾部(CRC之前),这样将数据复制到内核时,就可以把数据帧的数据部分映射到一个硬件页面,节省内存到内存的赋值过程

    SLIP: 串行线路IP

    SLIP全称是Serial Line IP。它是一种在串行线路行对IP数据报进行封装的简单形式。SLIP适用于家庭中每台计算机几乎都有的RS-232串行端口和高速调制解调器接入Internet。
    下面的规则描述了SLIP协议定义的帧格式:
    1)IP数据报以一个END(0xc0)的特殊字符结束。同时,为了防止数据报到来之前的线路噪声也被当成数据报内容,大多数实现在数据报的开始处也传一个END字符。
    2)如果IP数据报的某个数据是END,那么就要联系传输两个字节0xdb和0Xdc来取代它。0xdb称为SLIP的ESC字符,但是它的值和ASCII码的ESC字符0x1b不同。
    3)如果IP报文中某个字符为SLIP的ESC字符,那么就要连续传输两个0xdb和0xdd来取代它。

    SLIP的图示:


    SLIP封装格式

    SLIP的缺陷:
    1)每一段必须知道对方的IP地址,没有办法把本端的IP地址通知给另一端。
    2)数据帧中没有类型字段。如果一条串行线路用于SLIP,那么它不能同时使用其他协议。
    3)SLIP没有在数据帧中加上校验和。

    压缩的SLIP

    SLIP线路行有许多小的TCP分组进行交换。为了传送1个字节的数据需要20个字节的IP首部和20个字节的TCP首部,总数超过40个字节。
    于是有了CSLIP的新协议,即压缩SLIP。一般可以把上面40个字节压缩到3-5个字节。

    PPP:点对点协议

    PPP点对点协议,包含了一下三个部分:
    1)在串行链路上封装IP数据报的方法。PPP既支持数据为8位的无奇偶校验的异步模式,还支持面向比特的同步链接。
    2)建立、配置以及测试数据链路的链路控制协议(LCP)。它允许通信双发进行协商,以确定不同的选项。
    3)针对不同网络层协议的网络控制协议体系。

    PPP封装格式

    PPP数据帧都是以标志字符0x7e开始和结束。紧接着是一个地址字节,值始终为0x03的字节字符。
    接下来是协议字段,类似于以太网中类型字段的功能。0X0021代表IP数据报;0XV021代表链路控制数据;0x8021代表信息是网络控制数据。
    CRC字段,是一个循环冗余校验码,以检测数据帧中的错误。

    总的来说,PPP比SLIP具有以下优点:
    1.PPP支持单根串行线路上运行多种协议;
    2.每一帧都有循环冗余校验;
    3.通信双方可以进行IP地质的动态协商(使用IP网络控制协议);
    4.与CSLIP类似,对TCP和IP报文首部进行压缩;
    5.链路控制协议可以对多个数据链路选项进行设置。

    环回接口

    大多数产品都支持环回接口,以允许运行在同一主机上的客户程序和服务器程序通过TCP/IP进行通信。A类网络号127是为环回接口预留的。根据惯例,大多数系统把IP地址127.0.0.1分配给这个接口,并命名为localhost。

    环回接口处理IP数据报的过程

    图中的关键点是:
    1)传给环回地址(一般是127.0.0.1)的任何数据均作为IP输入。
    2)创个广播地址和多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义包含主机本身。
    3)任何传给主机地址的数据均送到环回接口。

    最大传输单元MTU

    链路层的数据帧的最大传输字节称作MTU,最大传输单元。不同类型的网络大多数都有一个上限。
    如果IP层有一个数据报要传,而且数据的长度比链路层的MTU还大,那么IP层就需要进行分片,把数据报分成若干份,这样每一片都小于MTU。

    路径MTU

    当在同一网络的两台主机互相进行通信时,该网络的MTU是非常重要的。但是两台主机的通信要通过多阿哥网络,那么每个网络的链路层可能有不同的MTU,重要的就不是两台主机所在网络的MTU了,而是两台通信主机路径中的最小MTU。它被称作路径MTU。

    相关文章

      网友评论

          本文标题:TCP-IP详解卷1:协议读书笔记_2

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