抓取的网站http://www.cnblogs.com/tankxiao
ip地址42.121.252.58
TCP三次握手(建立连接)抓包如图。
在wireshark中输入http过滤,选中Get/tankxiao HTTP/1.1进行分析。
由此得出源端口2236,目的端口80。由此往前按照时间顺序排列找出TCP的三次握手。
第一次握手
客户端发送一个TCP,标志位为SYN=1,序列号Seq=x=0,代表客户端请求建立连接。
第二次握手
服务器发回确认包,标志位为SYN=1,ACK=1,此时确认号字段有效。将确认序号(Acknowledgement Number)设置为客户端第一次握手时Seq的值+1,即ack=x+1=0+1=1。此时Seq=y=0。
第三次握手
客户端收到此报文段后向服务器给出确认,其ACK=1,确认号ack=y+1=1。客户端的TCP通知上层应用进程,连接已经建立。
UDP报文格式
源端口56966;目标端口8000;用户数据长度882;校验和0x1b1a;数据874byte
(注:疑似博客园登录的服务器地址和数据库服务器不同)
IP抓包分析
版本ipv4
首部长度20bytes(4bit)
总长度52
标识(Identification)0x44b3(17587)
标志(Flags)0x02
内部偏移(Fragment offset)0
生存时间64
协议TCP(6)
首部校验和0x0d3a
源ip地址192.168.1.123
目的ip地址42.121.252.58
分析icmp:
ICMP报文格式
(1) 在cmd下执行ping www.cnblogs.com
(2)在wireshark抓到8个ICMP的查询报文(分别是四次请求,四次应答)
分析:
① 红色框中蓝色为IP首部,共同拥有20个字节
① 蓝色为ICMP报文字段,共同拥有40个字节
① ICMP报文内容
类型type为8(回射请求/ping请求);
代码code为0;
校验和checksum为0x4a93
① 点击下一个报文
类型type为0(回射应答/ping应答);
代码code为0;
校验和checksum为0x5293
数据链路层分析:
抓包结果
Destination: Tp-LinkT_ d2: 58: c0 (80:89:17:d2: 58: c0) 目的地址:网卡地址
Address: Tp-LinkT_ d2: 58: c0 (80:89:17:d2: 58: c0) 网卡地址
.... ..0. .... .... .... .... = LG bit: Globally unique address (factory default) 多点传送
.... ...0 .... .... .... .... = IG bit: Individual address (unicast) 本地管理地址
Source: 9a: 59: 9e: ed: 65: e1 源地址:网卡地址
Address: 9a: 59: 9e: ed: 65: e1 网卡地址
.... ..1. .... .... .... .... = LG bit: Globally unique address (this is not factory default) 本地管理地址(非出厂设置)
.... ...0 .... .... .... .... = IG bit: Individual address (unicast) 多点传送
Type: IPv4 (0x0800) 帧内封装的上层协议类型为IPV4(十六进制码0800)
TCP终止连接(四次握手)抓包如图。
通过筛选含有FIN的过程和核对IP找出四次握手。
(注:未能找到源端口2237的四次含FIN过程,且核对到IP相同的源端口2236含FIN过程仅此一次,排序相近。猜想是四次握手过程中出现错误,服务器误发往客户端2236端口,且数据不相符,未经证实。)
第一次握手
客户端的应用进程向其TCP发出连接释放报文段,并停止再发送数据,主动关闭TCP连接。客户端把连接释放报文段首部的FIN=1,其序号seq=u=1,等待服务器确认。
第二次握手(疑似)
源端口为2236而非猜想中的2237,且Seq,Ack数值也与理论数据相差过多,故不予讨论,仅保留相关数据作参考。
根据第三次及第四次握手反推第二次握手的部分理论情况:
服务器发出确认,确认号ACK=1,ack=u+1=2,报文段序号seq=?(无前后数值关联,无法推论)。TCP服务器进程通知高层应用进程。从客户端到服务器这个方向的连接就释放了,TCP连接处于半关闭状态。服务器若发送数据,客户端仍要接收。
第三次握手
服务器已经没有要向客户端发送的数据,其应用进程通知TCP释放连接。FIN=1,seq=w=1,ACK=1,ack=u+1,客户端收到连接释放报文段后,必须发出确认。
第四次握手
在确认报文段中ACK=1,,确认号ack=w+1=2,序列号Seq=u+1=2。
连接终止。