网络层的功能
- 定义了基于IP协议的逻辑的地址
- 连接了不同的媒介类型
- 选择数据通过网络的最佳途径
一.IP数据包的格式
分为20字节的固定部分,是每个ip数据包必须包含的部分,和40字节的可变长部分
- 版本号(4bit):指IP协议版本,目前我们使用的是IPv4
- 首部长度(4bit):IP数据包的包头长度(不包括数据),最小是20,最大是60
- 优先级与服务类型(8bit):用于表示数据包的优先级(先处理哪一项任务)
- 总长度(16bit):IP数据包的总长度,最长为 65535 字节,包括包头和数据
- 标识符(16):表示给所有的分片数据分配一组编号
- 标志(3bit):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)
- 段偏移量(13bit):重组数据,一组数据也许不是按发出的顺序接收到的,所以需要重组数据
- TTL生命周期(8bit):防止一个数据包在网络中无限循环的转发下去
- 协议号(8bit):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
- 首部校验和(16bit):确定首部的数据是否完整,有没有被篡改
- 源地址(32bit):源ip地址,表示发送端的IP地址
- 目标地址(32bit):目标ip地址,表示接收端的IP地址
- 可选项:增强IP数据包功能(根据实际情况可变长)
二.ICMP协议
控制消息协议,就是ping
ICMP协议的作用:检测网络的双向连通性
ping的格式: ping 空格 IP地址 空格 [选项]
[选项]为可增加项目,有不同的选择
- -l 空格 数据
指定数据包的大小
- -t
一直ping下去(Ctrl+C结束ping)
- -w 空格 时间
指定超时等待时间为你设置的时间(默认秒)
- -n 空格 次数
指定ping几次
Tips:
- --help
当你不知道用具体哪一个选项时,可以帮助你寻找指令
- 可以两个指令一起发送
三.ARP协议
ARP协议功能
- 将IP地址转换成MAC地址
- 免费(无故)ARP,检测是否有地址重复
ARP工作原理
PC1和PC2通信 需要知道PC2的mac地址,需要ARP协议
ARP协议过程:
- PC1首先查看本机的ARP缓存表,如果有就直接发送
- 如果没有就会发送广播,询问谁有192.168.1.2的mac地址
- 同一网段的所有机器都会收到广播,只有PC2会回复(因为是发给PC2的),其余PC丢弃
- PC1会收到PC2回复的数据包,报文里会携带PC2的IP地址和mac地址
通过ARP协议知道mac地址以后,进行数据帧的封装
交换机转发的过程:
- PC1会发送数据帧给交换机
- 交换机收到PC1发送的数据帧,查找mac地址表
- 如果有对应的mac地址,直接转发
- 没有就会广播(泛洪)
- PC2会回复自己的mac地址给交换机,形成mac地址表
- 下次就会以单播的形式进行通信
Tips:交换机转发的原理在另一篇博客中有提到过,这里只是简单说明一下
注意点:
- 发送方IP地址和mac地址(不是源IP地址和mac地址)
- 接收方IP地址和mac地址(不是目的IP地址和mac地址)
ARP相关命令
Windows中相关的命令
- arp -a 查看arp缓存表
- arp -d 不加ip清除所有