1. IP基本认识⚓
1.1 作用⚓
IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。
网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
1.2 网络层与数据链路层的关系⚓
MAC 的作用则是实现「直连」的两个设备之间通信,而 IP 则负责在「没有直连」的两个网络之间进行通信传输。
在网络中数据包传输中,源 IP 地址和目标 IP 地址在传输过程中是不会变化的(NAT 除外),只有源 MAC 地址和目标 MAC 一直在变化。
1.3 ping⚓
ping 命令实现机制: 可以向对端主机发送回送请求的消息(ICMP Echo Request Message,类型 8),也可以接收对端主机发回来的回送应答消息(ICMP Echo Reply Message,类型 0)。
注意⚠️:ICMP 报文是封装在 IP 包里面的。即ICMP报文需要带上IP报文头才能发挥作用,IP报文头部有个协议字段,1 就表示 ICMP 协议。
相比原生的 ICMP,这里多了两个字段:
- 标识符:用以区分是哪个应用程序发 ICMP 包,比如用进程 PID 作为标识符;
- 序号:序列号从 0 开始,每发送一次新的回送请求就会加 1,可以用来确认网络包是否有丢失。
在选项数据中,ping 还会存放发送请求的时间值,来计算往返时间,说明路程的长短。
1.4 ping 本地⚓
ping 本机 IP 跟 ping 回环地址一样,相关的网络数据,都是走的 lo0,本地回环接口。
只要走了本地回环接口,那数据都不会发送到网络中,在本机网络协议栈中兜一圈,就发回来了。因此 ping 回环地址和 ping 本机地址没有区别。
执行 ping 0.0.0.0
,是会失败的,因为它在IPV4中表示的是无效的目标地址。