速读原著-TCP/IP(最大传输单元MTU)

第二章 链路层

2.7 环回接口

大多数的产品都支持环回接口( Loopback Interface),以允许运行在同一台主机上的客户程序和服务器程序通过 T C P / I P进行通信。A类网络号1 2 7就是为环回接口预留的。根据惯例,大多数系统把I P地址1 2 7 . 0 . 0 . 1分配给这个接口,并命名为 l o c a l h o s t。一个传给环回接口的 I P数据报不能在任何网络上出现。

我们想象,一旦传输层检测到目的端地址是环回地址时,应该可以省略部分传输层和所有网络层的逻辑操作。但是大多数的产品还是照样完成传输层和网络层的所有过程,只是当I P数据报离开网络层时把它返回给自己。图2 - 4是环回接口处理I P数据报的简单过程。

在这里插入图片描述
图中需要指出的关键点是:

  1. 传给环回地址(一般是1 2 7 . 0 . 0 . 1)的任何数据均作为I P输入。
  2. 传给广播地址或多播地址的数据报复制一份传给环回接口,然后送到以太网上。这是因为广播传送和多播传送的定义(第 1 2章)包含主机本身。
    3 ) 任何传给该主机I P地址的数据均送到环回接口。看上去用传输层和 I P层的方法来处理环回数据似乎效率不高,但它简化了设计,因为环回接口可以被看作是网络层下面的另一个链路层。网络层把一份数据报传送给环回接口,就像传给其他链路层一样,只不过环回接口把它返回到 I P的输入队列中。

在图2 - 4中,另一个隐含的意思是送给主机本身 I P地址的I P数据报一般不出现在相应的网络上。例如,在一个以太网上,分组一般不被传出去然后读回来。某些 B S D以太网的设备驱动程序的注释说明,许多以太网接口卡不能读回它们自己发送出去的数据。由于一台主机必须处理发送给自己的I P数据报,因此图2 - 4所示的过程是最为简单的处理办法。

4 . 4 B S D系统定义了变量u s e l o o p b a c k,并初始化为1。但是,如果这个变量置为 0,以太网驱动程序就会把本地分组送到网络,而不是送到环回接口上。它也许不能工作,这取决于所使用的以太网接口卡和设备驱动程序。

2.8 最大传输单元MTU

正如在图2 - 1看到的那样,以太网和8 0 2 . 3对数据帧的长度都有一个限制,其最大值分别是1 5 0 0和1 4 9 2字节。链路层的这个特性称作M T U,最大传输单元。不同类型的网络大多数都有一个上限。

如果 I P层有一个数据报要传,而且数据的长度比链路层的 M T U还大,那么 I P层就需要进行分片( f r a g m e n t a t i o n),把数据报分成若干片,这样每一片都小于 M T U。我们将在11 . 5节讨论I P分片的过程。

图2 - 5列出了一些典型的 M T U值,它们摘自RFC 1191[Mogul and Deering 1990]。点到点的链路层(如S L I P和P P P)的M T U并非指的是网络媒体的物理特性。相反,它是一个逻辑限制,目的是为交互使用提供足够快的响应时间。在2 . 1 0节中,我们将看到这个限制值是如何计算出来的。

在3 . 9节中,我们将用n e t s t a t命令打印出网络接口的M T U。
在这里插入图片描述

发布了1439 篇原创文章 · 获赞 1299 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/weixin_42528266/article/details/104530003