IP数据包的组成
- 版本:该字段包含的是IP的版本号,目前IP的版本为4(即IPV4),4bit。
- 首部长度:该字段用于表示IP数据包头长度,IP数据包头最短为20字节,但其长度是可变的,具体长度取决于选项字段长度,4bit。
- 优先级与服务类型:该字段用于表示数据包的优先级和服务类型,通过在数据包中划分一定的优先级,用于实现QoS(服务质量)的要求,8bit
- 总长度:该字段用以指示整个 IP数据包的长度,最长为65535字节,包括包头和数据,16bit。
- 标识符:当IP对上层数据进行分片时它将给所有的分片分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组,16bit。
- 标志:标志字段,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时)或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出,3bit。
- 段偏移量:该字段用于表示段偏移量,段偏移量中包含的信息是指在一个分片序列中如何将各分片重新按照顺序连接起来,13bit。
- TTL:该字段用于表示IP数据包的生命周期,一个数据包每经过一个路由器,TTL将减去1,当TTL的值为0时,该数据包将被丢弃。可以防止一个数据包在网络中无限循环的转发下去,8bit。
- 协议号:协议字段,该字段用以指示在IP数据包中封装的时哪一个协议(TCP或UDP,TCP的协议号为6,UDP的协议号位17),8bit。
- 首部校验和:该字段用于表示校验和,接收方和网关用来校验数据有没有被改动过,16bit。
- 源IP地址:该字段用于表示数据包的源地址,32bit。
- 目标IP地址:该字段用于表示数据包的目的地址,32bit。
- 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有很多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
ICMP(互联网控制报文协议)
ICMP协议工作在网络层,是一个错误侦测与回馈机制,用来发送错误和控制消息来探测节点间的网络连通性。
常用命令有:ping,tracert/traceroute。
windows系统中ping命令常用参数
-t 参数会一直不停地执行ping
-a 参数可以显示主机名称
-l 参数可以设定ping包的大小
-n 参数可以指定发送包的个数
-s 参数可以指定源IP去ping
Linux系统中ping命令的常用参数
-s 参数可以设定ping包的大小
-c 参数可以指定发送包的个数
-l 参数可以指定源IP去ping
跟踪路由路径命令:
WIN:tracert IP/域名
Linux:traceroute IP/域名
ARP(地址解析协议)
ARP协议工作在网络层,用来通过IP地址解析出MAC地址
工作原理:
(1)PC1发送数据给PC2前,会先查询自己的ARP缓存表有没有对方主机的IP与MAC的记录,如果有直接单播通讯。
(2)若ARP缓存表中没有相关记录,则会通过广播的方式发送ARP请求消息(目的MAC地址为广播地址FF-FF-FF-FF-FF-FF)交换机接收到消息后会广播泛洪。
(3)只有拥有对应的IP的主机会接收ARP请求消息,其它主机则会丢弃ARP消息,目的主机会先根据ARP消息将源主机的IP和MAC地址保存到自己的ARP缓存表中。
(4)目的主机通过单播的方式回复ARP应答消息,交换机会根据MAC地址表进行转发。
(5)PC1将PC2的IP与MAC地址保存到ARP缓存表中,此后通过单播发送数据给CP2。
windows系统中ARP命令:
arp -a ###查看ARP缓存表
arp -d [IP] ###清除ARP缓存
arp -s IP MAC ###ARP静态绑定(解除静态绑定:netsh -c i i delete neighbors ‘Idx’)
动态学习到的ARP的老化时间是120s,并且静态绑定的ARP条目在计算机关机或重启后会消失。