Loopback Interface(环回接口)看这篇就够了
1、简介
作用:
1、使本机中的不同进程(client和server)直接通过TCP/IP协议栈进行通信,让数据报不离开本机,避免将报文暴露到外网
- 举例:通过浏览器本地预览 Axure 原型(见2 抓包)
2、排障(troubleshooting ):如果ping 127.0.0.1 不通,则表示主机的TCP/IP协议栈有问题
特点:
- 虚拟网络接口(virtual network interface )
- IPv4:127.0.0.0/8,通常使用127.0.0.1(主机名: localhost)
- linux系统查看:ifconfig(网卡名:lo)
2、举例
通过 win 浏览器本地预览 Axure 原型:
经过了TCP三次握手后,开始HTTP请求:
- client port:59972
- server port:32767
3、数据流程
当从以太网接收到数据帧后,开始进行拆解数据帧(demultiplexing),
- 如果是ARP报文,则直接通过ARP协议发送到以太网中
- 如果是IP报文,则放置到IP报文输入队列中,然后发送到IP输入函数。经过协议栈处理,发送到IP输出函数
- 如果目的地址是loopback地址,则直接发送给Loopback驱动的IP输入队列中
- 如果目的地址是广播或多播地址,拷贝一份到Loopback输入队列中,然后通过以太网发送出去
- 如果目的地址是本机IP,则发送给Loopback驱动的IP输入队列中
- 如果不是,则通过ARP协议发送到以太网,去获得目的MAC地址
关键点:
- 传给环回接口的报文都为IP报文
- 传给广播地址或多播地址的报文都会拷贝一份到Loopback,然后再发送给以太网,因为广播和多播包含主机本身
- 任何传给本机IP地址的报文都会送回Loopback(ping本机IP地址的报文,通过Lo网卡抓到包)
参考资料
1、书籍《TCP/IP Illustrated, Volume 1: The Protocols, W. Richard Stevens.》
2、What is the loopback device and how do I use it? - Eliah Kagan
3、环回接口(loopback interface)- jason_mai-****