ARP相关知识
一、IP数据包格式
网络层的功能
1、定义了基于IP协议的逻辑地址
2、连接不同的媒介类型
3、选择数据通过网络的最佳路径
IP数据包格式
1、版本(Version):该字段包含的是IP的版本号,4bit。目前的IP的版本为4(即IPv4)。
2、首部长度(Header Length):该字段用于的表示IP数据包头长度,4bit。IP数据包头最短为20字节,但是其长度是可变的,具体长度取决于可选项字段的长度。
3、优先级与服务类型(Priority , Type of Service):该字段用于表示数据包的优先级和服务类型,8bit。通过在数据包中划分一定的优先级,用于实现Qos(服务质量)的要求。
4、总长度(Total Length):该字段用以指示整个IP数据包的长度,16bit。最长的为65535字节,包括包头和上层数据。
5、标识符(Identification):该字段用以表示IP数据包的标识符,16bit。当IP对上层数据同一个数据进行分片,分配同一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误的重组。
6、标志(Flags):标准字段,3bit。对当前的包不能进行分片,或当一个包被分片后,最后一个分片是否已发出。
7、段偏移量(Fragment Offset):该字段用于表示段偏移量,13bit。包含的信息是指在一个分片序列中如何将各分片重新连接起来。
8、TTL(Time to live):用于表示IP数据包的生命周期,8bit。一个数据包每经过一个路由器,TTL将减去1.当值为0时,该数据包将被丢弃。可以防止数据包在网络中无线循环,造成网络拥堵。
9、协议号(Protocol):协议字段,8bit。用以指示带IP数据包中封装的是哪一种协议,是TCP还是UDP,TCP的协议号是6,UDP的是17.
10、首部校验和(Header Checksum):该字段用于表示校验和,16bit。用来校验数据有没有被改动过。
11、源IP地址(Source IP Address):该字段表示数据包的源地址,32bit。
12、目标IP地址(Destination IPAddress):该字段用于表示数据包的目的地址,32bit。
13、可选项(Options):可选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。
二、ARP协议介绍
1、局域网中主机的通信:IP地址与MAC地址
2、ARP协议将一个已知的IP地址解析成MAC地址
3、ARP工作原理:
(1)PC1想发送数据给PC2,会先检查自己的ARP缓存表。
(2)如果发现要查找的MAC地址不在表中,就会发送一个ARP请求广播,用于发现目的地的MAC地址。ARP请求中包含PC1的MAC地址和IP地址,以及PC2的IP地址和目的MAC地址(此时为广播MAC地址FF-FF-FF-FF-FF-FF)。
(3)交换机收到数据包后先进行学习,将PC1的MAC地址和对应接口口记在MAC地址表中,之后查找MAC地址表没有PC2的地址,广播做泛洪处理,除PC1外所有主机收到ARP 请求消息,所有主机会对照自己的IP地址,PC2对应上即进行单播方式回应,并将PC1的IP地址和MAC地址记录在自己的ARP表内,其他主机则丢弃消息。
(4)PC2回应的数据包,源IP与源MAC地址为自己的,目的IP与目的MAC地址为PC1的,经过交换机,交换机进行学习,将PC2的MAC地址与对应接口记录在MAC地址表中,再查询MAC地址表,目的MAC地址为PC1,发送给PC1,PC1收到数据,里面有PC2的MAC地址,记录到自己的ARP缓存表中,这时两台主机的ARP缓存表中都已经有对方的MAC地址与IP地址,两台主机已经可以实现单播通信。
表中,这时两台主机的ARP缓存表中都已经有对方的MAC地址与IP地址,两台主机已经可以实现单播通信。