" 以太网是一种计算机局域网技术。IEEE组织的IEEE 802.3标准制定了以太网的技术标准,它规定了包括物理层的连线、电子信号和介质访问层协议的内容。以太网是目前应用最广泛的局域网技术,取代了其余局域网技术如令牌环、FDDI和ARCNET。" -- Wiki百科
从 Xerox 公布的 Ethernet I 发展到如今,有过6种以太帧格式:面试
其中主流应用的是 Ethernet II、802.3/802.2 LLC、802.3/802.2 SNAP 这三种,最经常使用的是 RFC894 定义,也就是 Ethernet II 的帧格式。网络
将 Ethernet II 帧头的类型
字段替换为帧长度
,而且由于新增长了 DASP, SSAP,Control这三个各占1字节的字段,报文的长度也调整为:43~1497,它们三个字段做为 LLC 的头socket
数据报文变为:38~1492字节 tcp
Ethernet 帧,从最上层(应用层)发送的数据单元(PDU),每通过一层,都会把上层整个的 PDU 做为下层 PDU 的 data 域,而后加上
本身的协议头;接受端,同下而上的层层拆掉每层的头部。了解了这些,咱们尝试抓包具体分析每一个字段spa
$ tcpdump -i eth1 port 9527 -s 0 -w ./target9527.cap
用 wireshark
打开抓到的二进制报文,如图所示:code
Frame 1,表示第1帧,源ip和目的ip分别是:172.24.31.67 和 10.96.77.128,都是内网ip。blog
从 Frame 4 至 Frame 7 是创建链接后,发送具体请求的数据包。首先,发送了 HTTP 协议的 GET 请求,收到请求后回复了ACK。具体看下:图片
PSH
,PSH
是告诉接收端,当即交由应用层处理而没必要等到Recv socket buffer
写满PSH
标记的包,要求当即处理
tcp 链接是双工的,因此任何创建链接的双方均可以发起关闭链接的请求。本身以前面试也总喜欢问这些问题,看看候选人到底理解的是否透彻,
但是大多数都不怎么清楚。言归正传,剩下的 Frame 8 至 Frame 11 是回复详情的 ACK 和 端开链接的 tcp 包。ip
PSH
标志位的请求和 Frame 7 的 HTTP 请求四次挥手所有结束。有同窗能够会比较疑惑,不是应该是4次请求吗,这里只有三次。解释下这个问题:由于服务端在响应HTTP请求时,由于知道本身已经发送彻底部数据,因此在响应包里加上了四次挥手中的第一次 FIN=1 的请求。路由