Appearance
Wireshark
- 网络抓包工具
- Wireshark · Go Deep
数据包

对应OSI七层模型
包头分析
以太网头(链路层)
封装了 mac 地址以及目的地的地址,还有 ip 类型,又称作 mac 头,如图:

Type:
- 0X0800 只接收发往本机的mac的ip类型的数据帧
- 0X0806 只接收发往本机的ARP类型的数据帧
- 0x8035 只接受发往本机的RARP类型的数据帧
- 0X0003 接收发往本机的MAC所有类型:ip,arp,rarp数据帧,接收从本机发出去的数据帧,混杂模式打开的情况下,会接收到非发往本地的 MAC 数据帧
IP 头(网络层)


网络层主要用于拆包,IP 头中需要掌握用于拆包的部分为:id,flags,fregment_offset;两个 IP 地址:源 IP 与目的 IP 地址
TTL:time to live,指定数据帧可以最多经过几个路由器,当数据帧被目标方接收后,TTL 清除为 0。Linux TTL:64,Windows TTL:128。
UDP 头(传输层)

TCP 头(传输层)


- Seq:序列号,占4个字节,用于给数据段进行编号的。所有非应答包的数据段,都有seq。
- Ack:应答号,用于应答非应答包(握手包,挥手包,数据包)。告诉对方下一次从这个seq编号发送数据包。
- SYN:握手包,连接的时候产生的包
- FIN:挥手包,断开连接产生的包
- PSH:数据包,传输数据时候产生的包
- ACK:应答包