有一特殊的A类IP地址,网络地址是127,这类地址称作环回地址。但是我们经常使用的是127.0.0.1这个地址,且赋给它一个名字:localhost。使用环回地址,可以帮助我们在同一台主机上实现client和server的功能。
传给自己的数据报,能否省略一些传输层和所有网络层逻辑?在TCP/IP Illustration中说到对于大多数的实现,在网络层和传输层还是要经过完整的处理过程,只有在IP数据报离开网络层的时候才返回给自己,IP数据报的处理如图所示,
关于此图,
- 任何的数据都以IP输入的的形式传给环回地址;
- 发给广播地址或多播地址的数据发给以太网的时候也会发给环回地址;
- 所有发给主机自己IP的数据都会送到环回地址。
虽然环回数据经过所有的传输层和IP层处理显得效率不高,但是通过将环回接口看作到达网络层的另一个链路层,可以简化设计。
====================================================================================
在Linux,通过ifconfig得到的环回地址,
lo Link encap
:Local
Loopback
inet addr: 127.0 . 0.1 Mask: 255.0 . 0.0
inet6 addr: :: 1/128 Scope:Host
UP LOOPBACK RUNNING MTU: 16436 Metric: 1
RX packets: 2631 errors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 2631 errors: 0 dropped: 0 overruns: 0 carrier: 0
collisions: 0 txqueuelen: 0
RX bytes: 3414348 ( 3.2 MiB ) TX bytes: 3414348 ( 3.2 MiB )
inet addr: 127.0 . 0.1 Mask: 255.0 . 0.0
inet6 addr: :: 1/128 Scope:Host
UP LOOPBACK RUNNING MTU: 16436 Metric: 1
RX packets: 2631 errors: 0 dropped: 0 overruns: 0 frame: 0
TX packets: 2631 errors: 0 dropped: 0 overruns: 0 carrier: 0
collisions: 0 txqueuelen: 0
RX bytes: 3414348 ( 3.2 MiB ) TX bytes: 3414348 ( 3.2 MiB )