IP协议
网络地址和主机协议
位于网络层的协议,主要目的是使得网络能够互相通信,该协议使用逻辑地址跨网络通信,目前有两个版本IPV4,IPV6。
在IPV4协议中IP地址是一个32位的数备,采用点分四组的表示法便于使用。每个IP地址包含两个部分,网络地址和主机地址。
网络地址和主机地址的划分由子网掩码来决定。网络地址用来标示所连接到的局域网,主机地址则标示设备本身,子网掩码与IP地址等长,被设为1的部分标示IP地址的对应部分为网络地址,设为0则标示IP对应位为主机地址。
IP格式
0-3 版本:IP所使用的版本
4-7 首部长度:IP头的长度(4字节的整数倍)
8-15 服务类型:路由器使用该字段做流量优先排序
16-18 | 19-31 总长度:IP长度+数据包长度
32 标示符:一个唯一标示,用来区分数据包或数据分片的顺序
32 标记:标示数据包是否分片数据
32 分片偏移:分片数据时该字段有效,用于将数据包按顺序组合
64 存活时间:定义数据包的生存周期,路由器中转一次该值减一
64 协议:用来识别数据包上层协议类型
64 首部校验和:错误检测机制,确认内容是否损坏或被篡改
96 源IP地址:发送方主机的IP地址
128 目的IP地址:接收方主机的IP地址
160 选项:可选
160 or 192+ 数据:使用IP传递的实际数据
ICMP协议
IP协议并不是一个可靠的协议,它不保证数据被送达,那么保证数据送达的工作应该由其他的模块来完成。其中一个重要的模块就是ICMP(网络控制报文)协议。
ICMP(internet control message protocol)是internet控制报文协议。是TCP/IP协议族里的一个子协议,用于在IP主机、路由器之间传递控制信息。
控制信息是指网络通不通、主机是否可达、路由是否可用等网络本身的消息。
ICMP协议大致分为两类,一种是查询报文,一种是差错报文。查询报文由发送者发出,差错报文是由出错的主机返回发给源数据包的发送者。
PING可以说是ICMP的最著名的应用,系统自带工具当某一个网站上不去的时候。通常会ping一下这个网站,ping会回显一些有用的信息。
ICMP协议的格式
ICMP头相对较小并根据用途而改变,ICMP报文的前4个字节是统一的格式,共有三个字段:即类型,代码和检验和。
ICMP报文类型
各种类型的ICMP报文如所示,不现类型由报文中的类型字段和代码字段来共同决定。
常见的类型和代码有
ICMP回显(echo)请求和辉县应答报文格式