网络层协议:IP、ICMP、ARP原理与应用

IP数据包格式

在这里插入图IP片描述IP数据包格式

IP包数据格式解析:

版本(Version): 该字段包含的是IP的版本号,4bit,目前的版本是4.(即代表IPV4)

首部长度(Header length):该字段用于表示IP地址包头长度,4bit。IP数据包头最短为20字节,但其长度是可变的,具体长度取决于可选项字段的长度。

优先级与服务类型(Priority & Type of service ): 该字段用于表现数字包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。

总长度(Total Length):该字段用以整个IP数据包的长度,16bit。当ip对上层数据进行分片时,它将给所有的分片配同一组编号,然后将这些编号放入标示符字段中,保证分片不会被错误的重组。

标志(Flags): 标志字段,3bit,对当前的包不能进行分片(当该包从一个以太网发送到另一个以太网时)或当一个包被分片后用以指示在一系列的分片中,最后一个分片是否已发出。

段偏移量(Fragment Offset):13bit,段偏移量中包含的信息是指在一个分片序列中如何将各分片重新连接起来。

TTL(Time to Live): 该字段表示IP数据包的生命周期,8bit,一个数据包每经过一个路由器,TTL将减1,当TTL为0时,该数据包被丢弃,可以防止一个数据包在网络中无限循环转发下去。

协议号(Protocol): 8bit,该字段用以指示在IP数据包中封装的是哪一个协议,是TCP还是UDP,TCP协议号为6,UDP协议号为17.

首部校验和(header checksum):该字段用于表示校验和,16bit,接受方和网关来校验数据有没有被改动过。

源IP地址(source ip address):该字段用于表示数据包的源地址。32bit

目标IP地址(Destination IP address):该字段用于表示数据包的目的地址。32bit。

可选项(Options):可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等,在可选项之后就是上层数据。

ICMP协议

ICMP采取“错误侦测与回馈机制”,通过IP数据包封装,用来发送错误和控制消息,其目的是使管理员能够掌握连通的状况。

在网络中,ICMP协议的使用是靠各种命令来实现的。下面以Ping命令为例,介绍ping命令的使用以及返回的信息。

ping 命令的基本格式如下:

C:\ping [-t] [-1 字节数] [-a] [-i] IP_Address | target_name

在检查网络连通性时,ping命令用的是最多的,当我们ping一台主机时,本地计算机发出的就是一个典型的ICMP数据包,用来测试两台主机是否能够顺利连通。

ARP协议

在局域网中,交换机通过MAC地址进行通信,要获得目的主机的MAC地址就需要使用ARP协议将目的IP地址解析成目的MAC地址。所以,ARP(Address Resolution Protocol,地址解析协议)的基本功能是负责将一个已知的IP地址解析成MAC地址,以便在交换机上通过MAC地址进行通信。

在这里插入图片描述主机PC1想发送数据给PC2,会先检查自己的ARP缓存表,ARP缓存表是储存在内存中的一个IP地址和MAC地址对应表。

如果要查找的MAC地址不在表中,ARP会发送一个广播,从而找到目的地的MAC地址。
主机PC1发送ARP请求信息,ARP请求时目的地址为MAC广播地址(FF-FF-FF-FF-FF-FF)的MAC地址广播帧,从而保证所有的的设备都能收到该请求,在ARP请求中包含PC1的MAC和IP地址。
交换机收到广播地址后,发现MAC为广播地址,所以将数据帧除了接收口之外的所有接口转发出去。主机接收到数据帧后,进行IP地址的比较,如果目标IP地址与自己的IP地址不同,则会丢弃这个数据包,而只有PC2这台主机会在自己的ARP表中缓存PCI的IP地址和MAC地址的对应关系,同时发送一个单播的ARP应答,来告诉PC1自己的MAC地址。
PC1收到这个回应的数据帧后,在自己的ARP表中添加了PC2的IP地址和MAC地址的对应关系,在这个过程中,交换机已经学习到了PC1和PC2的MAC地址,之后传输数据时,PC1和PC2将使用单播方式。

猜你喜欢

转载自blog.csdn.net/weixin_45412401/article/details/109233414