作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。

目前几乎所有的应用都会跟网络打交道,所以我们了解和熟悉网络对我们后续的排错是很有必要的,我这里讲解的部分主要是我个人理解来进行讲解。
前面介绍了ARP协议,一般我们把他划归为2.5层协议,他只能在局域网内进行通信,但是整个互联网是通信是全世界进行通信,所以今天我们来介绍应用层(三层)的协议:IP协议。
IP 协议,即 Internet Protocol(互联网协议),是互联网整个通信体系的核心。它定义了数据在网络中传输的基本单元和寻址方式。
可以把 IP 协议想象成邮政系统里的信封和地址规范。它不关心信的内容(那是上层协议如 TCP/UDP 的事),只关心如何把信(数据包)从寄件人准确、高效地送到收件人。
IP 协议工作在网络层(TCP/IP 模型的第二层),其主要作用是:

这里一般的物理设备(也可能是虚拟机)的网卡一般都是1500,如果里面还涉及到容器网络,这个的MTU一般小于1500,如果容器的网络也等于1500则可能会引发网络故障。
IP 协议发送的数据单元叫 IP 数据报。它由两部分组成:首部 和 数据。
以下是 IPv4 的首部结构(通常为 20 字节,不含选项字段):
4位版本 | 4位首部长度 | 8位服务类型(TOS) | 16位总长度(字节数) |
|---|---|---|---|
16位标识 | 3位标志 | 13位片偏移 | |
8位生存时间(TTL) | 8位协议 | 16位首部检验和 | |
32位源IP地址 | |||
32位目的IP地址 | |||
选项(如果有) | |||
数据 |
关键字段解释:
#这个是我本地直接抓取的报文 (当然这里显示的TCP层面的报文)
18:14:48.256086 IP 192.168.31.47.ssh > 192.168.31.73.61869: Flags [P.], seq 3252:3512, ack 1, win 249, length 260
18:14:48.309205 IP 192.168.31.73.61869 > 192.168.31.47.ssh: Flags [.], ack 3512, win 1023, length 0
18:14:48.360066 IP 192.168.31.47.ssh > 192.168.31.73.61869: Flags [P.], seq 3512:3772, ack 1, win 249, length 260
18:14:48.402443 IP 192.168.31.73.61869 > 192.168.31.47.ssh: Flags [.], ack 3772, win 1022, length 0另存为抓包文件,可以使用win下的软件Wireshark进行分析可以看到各个层的报文。

IP协议报文
