Wireshark
- 首先选择本地连接或者WiFi连接,获得抓包
ip.addr==
筛选IP地址tcp.port==
筛选TCP连接的端口号!tcp
筛选所有非TCP连接frame.len<=150
筛选数据包长度不超过150的- 获取三种不同的图形,查看RTT、抓包数量、协议信息等
ARP协议
- 地址解析协议,将IP地址解析成MAC物理地址。完成链路层和网络层之间的通信
- IP地址位于网络层,MAC位于链路层
- 请求方主机广播ARP请求,所有接收方都核对自己的IP地址,核对一致的主机将请求方的IP地址和MAC地址添加到自己的缓存列表里面,通过单播的形式将MAC地址和ARP响应消息返回到请求方,请求方将争取的IP地址和MAC地址添加到自己的缓存列表。其他主机丢弃请求
- ARP广播
从上往下依次是:
- 广播地址
- 以太网源地址
- 硬件类型
- 协议类型
- 硬件长度
- 协议长度
- request(1)表示请求数据包
- 发送方和接收方的的IP和MAC地址,未知目标的MAC地址以全0的形式显示
- ARP响应
对比广播,MAC地址已经确定了,reply(2)对应request表示响应 - 免费ARP发送到主机中,强制使用新的MAC地址和IP地址映射来更新缓存。这种情况通常发生在系统引导期间进行接口配置和IP地址变化时的更新缓存
TCP
- 端口号
- 三次握手
- seq的值是前一个数据包的seq+len
- ACK确认号,也表示下一个要接收的seq的值
- TCP滑动窗口大小win
- ACK也可以更新要接收的数据包的大小,可以用来在服务器发生故障时设置客户端不在发送数据包,但是保持连接,客户端不断发送len=0的保活数据包进行检测,在服务器恢复之后可以重新发送数据
- TCP三次握手和TCP数据传输https://github.com/WhitneyLu/Wireshark.git