环回接口以及MTU

Posted tempt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了环回接口以及MTU相关的知识,希望对你有一定的参考价值。

一、环回接口
1.环回接口出现的目的
为了解决客户机使用网络协议(如TCP/IP协议)与同一台计算机上的服务器通信的需求,实现了工作在网络层的虚拟的环回网络接口。
它不是真正的网络接口,实际上是一种由操作系统提供的专用软件,可通过TCP/IP与统一主机的其他服务器进行通信。
 
2.地址选择
A类地址段127.0.0.0默认被用作本地环回地址,其实只要是127开头的所有地址均是环回地址。
这个地址是用于标志本机的localhost。也就是说当要向本机发送数据时,就会用到环回地址。
 
具体事例说明:
    就拿pc来说,pc的网卡就相当于路由器的一个接口。如一台pc网卡上设置的地址为220.172.115.50,网卡连接正常时,协议状态up,在dos命令行状态下输入ipconfig便可看到该网卡上的IP地址。此时在主机上ping其网卡地址的过程如下:主机发送一个icmp包,目的地址为220.172.115.50,请求对方回答;主机根据默认环回主机路由发现数据包目的地址的下一跳指向其loopback接口(主机事先并不知道该地址就在其网卡上),于是将数据包发往其loopback接口(即直接发往cpu);之后主机收到源IP为220.172.114.50的ping包,于是对该数据包进行回答,回应包亦根据环回路由原路返回。从该过程可看出,该数据包的始发点和被接收点都在同一个接口(即主机本身的loopback接口),寻址过程为一个环回过程,因此该接口称之为“环回接口”当网卡连接断开时,协议down下,用ipconfig便发现“media disconnected”等提示,无IP地址显示。ping 220.172.115.50便出现“destination unreachable”等提示(由于网卡协议没起来,主机没能发现相应路由,无法做出转发决定,从而提示路由不可达)。但此时ping 127.0.0.0/8网段的IP均能ping通,因为一般pc默认把127.0.0.0/8网段IP作为loopback地址,当主机发现该数据包的目的地址为其自身的环回地址时,便将该数据包直接送往其cpu。由此可看出ping通环回地址并不表示就能ping通网卡地址,因此不要拿ping 127.0.0.1来检测网卡的好坏,这样做是行不通的。
  这是因为当收到数据包时,判断若目的IP地址与本机IP地址一致(或者收到多播、广播地址,且本机属于多播、广播地址)时,网卡就会将数据发送给环回接口。此时数据包还是会经过协议栈,只是到网络层时,会传到环回接口。所以环回一般会被用于检测本机协议栈是否正常(环回接口不会经过网卡)。
 
二、MTU和路径MTU
    在很多链路层网络中,携带高层协议PDU的帧大小是有限的。链路层的这种特征被称为最大传输单元(MTU)
    当同一网络中的两台主机之间通信时,本地链路的MTU在会话期间对数据报大小有直接影响。当两台主机之间跨越多个网络通信时,每条链路可能有不同大小的MTU,在包含所有链路的整个网络路径上,最小的MTU称为路径MTU。
    任何两台主机之间的路径MTU不会永远不变、这取决于当时使用的路径。如果网络中的路由器或链路故障,MTU可能改变。路径通常不对称,路径MTU不需要再两个方向上相同

以上是关于环回接口以及MTU的主要内容,如果未能解决你的问题,请参考以下文章

TCP/IP协议第一卷第二章

linux上的环回接口地址是多少?

ospf中提到环回接口是啥?怎样设置环回接口?

环回接口---loopback

SIOCGIFCONF 只返回环回接口

ngrep环回接口数据抓取方法,使用-d lo参数