目录
一、IP数据包
1.1 网络层的功能
1.2 IP数据包格式
二、ICMP协议介绍
2.1 作用
2.2 常用命令
2.2.1 Ping命令
2.2.2 tracert命令
2.3 广播域
三、ARP协议介绍
3.1 作用
3.2 原理
一、IP数据包
1.1 网络层的功能
- 定义了基于IP协议的逻辑地址,就是IP地址
- 连接不同的媒介类型
- 选择数据通过网络的最佳路径,完成逻辑地址寻址
1.2 IP数据包格式
分为20字节的固定部分,表示每个IP数据包必须包含的部分和40字节的可变长度部分
- 版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100 十进制 是4
- 首部长度(4):IP数据包的包头长度(不包括数据)
- 优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,服务类型定义了如何处理数据一般没有使用
- 总长度(16):IP数据包的总长度,最长为 65535 字节,包括包头和数据。
- 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片数据分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
- 标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)
- 段偏移量(13):一个数据包需要分片,指明这个分片举例原始数据开始的位置,作用重组数据
- TTL(time to live)生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个三层路由器 -1,当TTL的值为0时,该数据包将被丢弃 0-255
tips:通过TTL的返回值可以确定你的系统类型,win 128左右,Linux 64左右。- 协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
- 首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)
- 源地址(32):源ip地址,表示发送端的IP地址
- 目标地址(32):目标ip地址,表示接收端的IP地址
- 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。
二、ICMP协议介绍
ICMP协议是IP协议的辅助协议
2.1 作用
监测网络中两台主机的双向连通性
2.2 常用命令
2.2.1 Ping命令
基本格式:
ping [选项] IP地址
ping -t 127.0.0.1 #长ping,ctrl+c停止否则无限ping
ping -l 1600 IP地址#表示指定每个数据包的大小为1600字节,默认为32字节
ping -w 5 IP地址 #指定等待时间为5秒
ping -n 2 IP地址 #指定ping的次数
在ICMP协议中,Ping使用的是ICMP报文,其中包含了一个类型字段(type)和代码字段(code)
Type | Code | 描述 |
---|---|---|
0 | 0 | Echo Reply |
3 | 0 | 网络不可达 |
3 | 1 | 主机不可达 |
3 | 2 | 协议不可达 |
3 | 3 | 端口不可达 |
11 | 0 | 超时 |
8 | 0 | Echo Request |
若出现Ping不通的情况可能是ICMP协议被禁用了
2.2.2 tracert命令
基本格式:
tracert IP地址 #win
traceroute IP地址 #Linux
tracert也是ICMP协议,用于追踪经过了几个路由器设备。
2.3 广播域
广播域:一台机器发送广播,能收到消息的机器,都是在同一广播域。
交换机的所有端口默认在同一个广播域里,
路由器的每一个端口都是一个独立的广播域。
三、ARP协议介绍
ARP协议是地址解析协议
3.1 作用
将IP地址转换成mac地址,
检测IP地址冲突,当一台设备获取一个ip地址时,会自动发送一个无故arp(免费arp),检测是否有设备已经使用此ip地址。
3.2 原理
1. 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在?
2. 如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。
3. 主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。
4. 主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。
5. 主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息