ARP首部的5个字段的含义:
硬件类型:值为1表示以太网MAC地址。
协议类型:表示要映射的协议地址类型,0x0800 表示映射为IP地址。
硬件地址长度:在以太网ARP的请求和应答中都是6,表示MAC地址长度。
协议地址长度:在以太网ARP请求和应答中都是4,表示IP地址长度。
在ARP协议包中,保留出硬件地址长度字段和协议地址长度字段可以使ARP协议在任何网络中被使用,而不局限于以太网中。
op: ARP数据包的类型,ARP请求设置为1,ARP应答设置为2。
备注:虽然ARP和IP协议都属于网络层的协议,但是从分层的结构来看,ARP处于网络层的最底层
而IP层属于网络层的顶层。
ARP全称为Address Resolution Protocol(地址解析协议),是根据IP地址来获取物理地址的一个TCP/IP协议。
主机发送消息时将包含目标IP地址的ARP请求广播到局域网上的所有主句,并接收返回消息,来确定目标的MAC地址。收到返回消息后将该IP地址和MAC地址存入本机ARP缓存中并保留一段时间,下次请求时直接查询ARP缓存来节约资源。
局域网中的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其存入本机的ARP缓存中。
ARP协议是通过目标设备的IP地址,来获得目标设备的MAC地址,来保证通信的顺利进行。
主机A发送数据之前先判断主机A的ARP的缓存表中是否包含主机B的MAC地址,如果没有,主机A把要发送的数据挂起并发送一个ARP请求包,发送完成后等待主机B的应答包到来,到来之后把挂起的数据包添加以太网首部发送至主机B中。
各个字段的解析如下:
版本:指IP协议的版本,IPv4和IPv6。
首部长度: 单位使字长(4个字节),最常用的首部长度是20个字节(即首部长度为0101)。
区分服务:实际上一直没有被使用过。
总长度:首部和数据之和的长度。最大65534字节。
标识:每产生一个数据报,计数器就加1,并将此值赋给标识字段。
标志:占3位只有2位有意义,最低位为MF,MF=1表示后面还有分片的数据报。
MF=0表示这是若干数据报片中的最后一个。
标志字段的中间一位,DF(Don't Fragment) 不能分片。DF=0时,才允许分片。
IP是Interneet Protocol的缩写,是网络层的协议。设计IP的目的是提高网络的可扩展性:一是解决互联网问题,实现大规模、异构网络的互联互通;二是分割顶层网络应用和底层网络技术之间的耦合关系,以利于两者的独立发展。
根据端对端的设计原则,IP只为主机提供一种无连接、不可靠的、尽力而为的数据包传输服务。
为了能适应异构网络,IP强调适应性、简洁性和可操作性,并在可靠性上做了一定的牺牲。
重点是IP数据报的分片与重组原理。
1.ICMP差错报文
(1) 目的站不可到达
UDP协议是TCP/IP协议栈的传输层协议,是一个简单的面向数据报的协议。
UDP不属于连接型协议,因而资源消耗小,处理速度快,通常在音频、视频和普通数据传输时使用UDP较多。
UDP报文的封装流程图:
TCP(Transmission Control Protocol 传输控制协议) 是一种面向连接的、可靠的、基于字节流的传输层通信协议。
5
TCP数据报在IP层的封装如下: