首先,执行ipconfig确认自己电脑的ip地址
可以得到我的电脑的ip地址为192.168.43.15,网关地址为192.168.43.1
打开wireshark抓包工具,ping网关,看看会发生什么
命令行中,我们发送了4个具有32b的数据,从抓包工具中,我们可以看出该命令采用的是icmp协议
第1帧
该帧序号为1,发生在第0.00s,源地址为192.168.43.15(本机),目标地址为192.168.43.1(网关),协议为icmp协议,长度为74b,信息: echo (ping) request id=0x0001, seq=11/2816, ttl=128 (reply in 2)
从图中可以看出,该层一共40b,其中控制信息8b,数据信息32b,
第一个控制信息
type字段占1b,表示类型,8代表请求类型,0代表回复类型
code字段占1b,暂不清楚作用。
checksum字段,占2b,用来校验该层数据是否正确,该帧中checksum status为good,表示该帧未发生错误,为正常帧。
标识符字段,占2b,该帧为0x0001(0x0100是什么?)
sequence序列号字段,占2b,该帧为0x000b(0x0b00是什么?)
接下来为32b的数据字段,字段内容为a-w 23b,接着a-i 9b,共32b
总结:icmp层,全称internet control message protocol,网络控制信息协议,共40b,包括8b的头部和32b的内容部分,8b = type字段(1b) code字段(1b) checksum字段(2b) identifier标识符字段(2b) sequence序列号字段(2b),32b = a-w 23b a-i 9b。
ip层
ip层共20b,作用是表明该帧的源ip和目标ip,
该字节的前4位表示ip版本,后4位表示ip层的长度
在该帧中,前4位0x0100表示ip版本为ip 4版本,后4位0x0101表示该ip层头部长度为20b(数字*4,1个单位表示4b,5个单位表示20b)
该字段占1b,不清楚作用
total length字段占2b,表示ip层的总长度(ip头 ip内容部),该帧中,为60,表示60b,由20bip头部和40bip数据部分组成
标识符字段,占2b
共2b,其中flag占前3位,offset偏移占13位
ttl字段,占1b
内容部分采用协议,占1b,该帧中,0x01表示内容部分为icmp协议
header checksum,占2b,
源ip地址,占4b
目的地ip,占4b
总结,ip层头部共20b,20b = version(0.5b) header length(0.5b) 不同服务器属性(1b) 总长度(2b) 标识符(2b)
flag(3位) 偏移(13位) ttl (1b) procotol(1b) header checksum(2b) source ip(4b) destination ip(4b)
数据链路层
数据链路层共14b,
目的mac地址,占6b
源mac地址,占6b
网络层协议,type字段,占2b,其中0x0800表示ipv4协议
总结,数据链路层共14b,其中14b = 目的地mac(6b) 源mac(6b) 网络层协议(2b)
这个帧基本和上一个一样,我这里记录一下不一样的地方。
共同点:基本都一样,比如帧长度都是74b = 14b(数据链路层) 20b(网络层) 40b(icmp层)
不同点:
icmp层
icmp层的type字段不一样,该type为0,之前请求的为8