使用wireshark分析TCP ——以HTTP协议为例
来源:互联网 发布:dns域名跳转 编辑:程序博客网 时间:2024/05/17 21:45
1. 对以太网帧、ip数据报、TCP报文结构的分析
以南邮图书馆网站为例,图书馆网址为:http://lib.njupt.edu.cn,对应的IP地 202.119.224.202。
设置wireshark的过滤条件为”ip.addr == 202.119.224.202”,得到下面结果:
双击第一条,得到详细信息:
从上往下,依次对应tcp/ip五层模型中的数据链路层、网络层和传输层。
1.1 以太网MAC帧分析
数据链路层使用以太网传输,以太网MAC帧格式如下:
这个是以太网帧内容(以十六进制的形式显示):
可以知道目的地址为:74:5a:aa:de:fe:65,源地址为:84:3a:4b:70:27:bc,类型为:0x0800(即IPv4),后面是数据(IP数据报)。
1.2 IP数据报分析
IP数据报首部的格式如下:
根据下图(二进制显示):
版本:0100(version: 4);首部长度:0101(5*4 byte);区分服务:00000000;总长度:00000000 00101000(40 bytes);标识:01001010 01111010;标志:010(DF=1);片偏移:00000 00000000;生存时间:10000000;协议:00000110(TCP);首部检验和:11100011 10001101;源地址:10.164.22.226;目的地址:202.119.224.202。
1.3 TCP报文分析
接着看IP数据报的数据部分(TCP报文),TCP报文格式:
根据下图(以二进制形式表示):
源端口:00110101 01001010(13624);目的端口:00000000 01010000(HTTP默认端口号80);序号:11001001 11100010 10110001 00000001;确认号:01011001 11011000 11011100 01110101;数据偏移:0101(5*4 bytes);保留:000000;URG:0;ACK:1;PSH:0;PST:0;SYN:0;FIN:1;窗口:00000001 00000000(256);检验和:11111011 00111110;紧急指针:00000000 00000000。
2. 对三次握手建立TCP连接的分析
再回到这个主界面上:
图中可以看到wireshark截获到了三次握手的三个数据包。第四个包才是HTTP的,这说明HTTP的确是使用TCP建立连接的。
2.1 第一次握手数据包
客户端发送一个TCP,标志位为SYN,序列号为0, 代表客户端请求建立连接。 如下图
2.2 第二次握手的数据包
服务器发回确认包, 标志位为 SYN,ACK. 将确认序号(Acknowledgement Number)设置为客户的I S N加1以.即0+1=1, 如下图
2.3 第三次握手的数据包
客户端再次发送确认包(ACK) SYN标志位为0,ACK标志位为1.并且把服务器发来ACK的序号字段+1,放在确定字段中发送给对方, 如下图:
在进过三次握手后和服务器建立了TCP连接,随后浏览器发出了取文件命令GET。
服务器给出响应,把文件发给浏览器。
最后释放TCP连接,如下图所示:
本次作业到此结束。
- 使用wireshark分析TCP ——以HTTP协议为例
- wireshark tcp 协议分析
- WireShark分析TCP协议
- wireshark tcp 协议分析
- wireshark tcp 协议分析
- WireShark 7TCP协议分析
- 使用WireShark分析HTTP协议时几种常见的汉字编码
- Wireshark实战分析之TCP协议
- WireShark 8TCP协议分析续
- Wireshark实战分析之TCP协议
- 使用wireshark分析网络协议
- Tcpdump结合Wireshark分析Http/TCP报文
- 使用wireshark分析TCP/IP协议中TCP包头的格式
- 使用wireshark分析TCP/IP协议中TCP包头的格式
- 使用wireshark分析TCP/IP协议中TCP包头的格式
- wireshark分析SIP协议——注册
- wireshark分析SIP协议——注册
- 图解用Wireshark进行Http协议分析
- Mybatis的一级缓存和二级缓存
- 亲测完美解决:服务器上出现应用程序错误。此应用程序的当前自定义错误设置禁止远程查看应用程序错误的详细信息(出于安全原因)
- java--习题
- 将指针指向字符串字面量 和 指向数组
- matlab subplot(figure)如何设置使得图像最终显示出来不一样大小
- 使用wireshark分析TCP ——以HTTP协议为例
- input子系统与tp驱动
- IGBT知识
- SMO算法(比较好的讲解)
- MAC 重置MySQL root 密码
- SSM框架Web程序的流程(Spring SpringMVC Mybatis)
- FIFO、LRU、OPT这三种置换算法的缺页次数
- 为什么Java同包目录下的类不需要引入就可以直接使用
- RequestBody/ResponseBody处理Json数据