IP数据包格式
数据封装的时候在网络层会封装ip地址的头部,形成ip 数据包
IP数据包格式(分为20字节的固定部分,表示每个ip数 据包必须包含的部分,和40字节的可变长部分)
版本号(4bit):指IP协议版本。并且通信双方使用 的版本必须一致,目前我们使用的是IPv4,表示为 0100
首部长度(4):IP数据包的包头长度(不包括数据)
优先级与服务类型(8):该字段用于表示数据包的 优先级和服务类型。通过在数据包中划分一定的优先 级,用于实现 QoS(服务质量)的要求。
总长度(16):IP数据包的总长度,最长为 65535 字 节,包括包头和数据。
标识符(16):该字段用于表示IP数据包的标识符。 当IP对上层数据进行分片时,它将给所有的分片数据 分配一组编号,然后将这些编号放入标识符字段中, 保证分片不会被错误地重组。标识符字段用于标志一 个数据包,以便接收节点可以重组被分片的数据包
标志(3):和标识符一起传递,指示不可以被分片 或者最后一个分片是否发出(完整)
段偏移量(13):在一个分片序列中如何将各分片连 接起来,按什么顺序连接起来
TTL(time to live)生命周期(8):可以防止一个 数据包在网络中无限循环的转发下去,每经过一个路 由器 -1,当TTL的值为0时,该数据包将被丢弃 0-255
协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
首部校验和(16):这个字段只检验数据报的首部, 不包括数据部分。这是因为数据报每经过一次路由 器,都要重新计算一下首部校验和(因为,一些字段 如生存时间、标志、片偏移等可能发生变化)
源地址(32):源ip地址,表示发送端的IP地址
目标地址(32):目标ip地址,表示接收端的IP地址
可选项:选项字段根据实际情况可变长,可以和IP一 起使用的选项有多个。例如,可以输入创建该数据包 的时间等。在可选项之后,就是上层数据
ICMP协议
Internet控制消息协议ICMP (Internet Control Message Protocol)是IP协议的辅助协议
ICMP协议用来在网络设备间传递各种差错和控制信息,对于收集各种网络信息、诊断和排除各种
网络故障等方面起着至关重要的作用。
1ping命令的常用选项
- ping -t ping指定的主机 直到中断 若要停止ctrl+c
- ping --help 显示帮助
- ping -l(小写的L)指定包的大小(1600 2000) ip地址
- ping -w 指定等待时间(默认是秒:2) IP地址
- ping -n 制定的次数(5) ip地址
- ping -r count 在“记录路由”字段中记录传出和返回数据包的路由
2常见的ICMP报文格式
Type | Code | 描述 |
0 | 0 | Echo Reply(回送相应关系) |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
5 | 0 | 重定向 |
8 | 0 | Echo Request(回送请求消息) |
冲突域与广播域
冲突域:两台设备同时发送消息,互相干扰 ,那他们就处于冲突域
广播域:所有能接收到广播的机器,我们认为他在同一广播域
交换机每个接口属于同一广播域
路由器:各个接口不属于同一个广播域 每个接口属于一个广播
ARP协议
ARP工作原理
(1)当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在。
(2)如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机,该帧中包括源主机PC1的IP、MAC地址和PC2的IP地址、广播MAC地址(FF-FF-FF-FF-FF-FF)。本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
(3)主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地ARP缓存表中。
(4)主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
(5)主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,ARP缓存表默认有效时间120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息。
windows当中如何查看arp缓存表(静态arp和动态arp)