网络抓包网址:www.study.huatec.com
图中数据包为HTTP协议的封装包,则它的封装包信息有:
Frame 88(序号):物理层的数据帧帧信息
Ethernet Ⅱ :数据链路层的以太网信息
Internet Protocol Version 4 :网络层IP数据包信息
Transmission Control Protocol :传输层TCP信息
Hypertext Transfer Prontocol :应用层HTTP信息
1、分析传输层协议(TCP、UDP)的报文格式,TCP协议的连接管理。
过滤器中输入表达式:http contains study.huatec.com 得到此网址的HTTP协议信息
TCP报文信息:位于transmission control protocol
(图为HTTP数据包中的TCP报文信息)
TCP报文格式:
16位源端口号(57987) | 目的端口(80) | |||
序号(511) | ||||
确认号(233) | ||||
首部 | 保留 | 标志位 | 窗口大小(1023) | |
16位TCP检验和 | 16位紧急指针 | |||
选项 | ||||
数据 |
确认号:是上次成功接收到数据的顺序号加1 ,此确认号的二进制数据为:0x21325384
首部:指出TCP首部共有多少个4字节,长度在20-60之间,此报文首部共20个字节。
窗口大小:让对方设置窗口大小,此报文中Window size=1023,表示一次可以发送1023个字节的数据,窗口实际上是一种流量控制的机制。
校验和:检验的范围包括首部和数据,用于检验TCP报头部分和数据部分的正确性。
标识字段:用于汇报此报文的属性,是否为优先报文,字段是否有效等。
紧急指针:指出报文段中紧急数据共有多少字节,紧急数据放在最前面。此报文紧急指针值为0,即无紧急数据。
UDP报文信息:
筛选出UDP报文,本次抓包中无UDP协议,DNS协议运行在UDP协议上,属于传输层协议
UDP报文格式:
16位源端口(62906) | 16位目的端口(53) |
16位UDP长度(42) | 16位UDP校验和 |
数据 |
TCP三次握手:
①:客户端->服务器:SYN=1,seq=x(请求);
②:服务器->客户端:SYN=1,seq=y(请求),ACK=1,ack=x+1(确认上一个数据);
③:客户端->服务器:ACK=1,seq=x+1(客户端的第二次请求),ack=y+1(确认服务器发来的数据);
41,45,47数据包即是TCP的三次握手过程,Info如下:
①41 57986(客户端) -> 80(服务器)Seq=0 【第一次握手:标志位为SYN,序号为0】
②45 80(服务器)-> 57986(客户端) Seq=0 ACK=1【第二次握手:标志位为ACK,SYN,序号为0】
③47 57986(客户端) -> 80(服务器)Seq=1 ACK=1【第三次握手:标志位为ACK,序号为1】
三次握手后建立HTTP:
2、分析网络层协议的报文格式,IP、ICMP的报文格式
IP报文:
版本号 | 头部长度 | 8位服务类型 | 16位总长度 | |
16位标识字段 | 标志 | 13位片偏移 | ||
8位生存时间 | 8位协议 | 16位头部校验和 | ||
32位源IP地址 | ||||
32位目的IP地址 | ||||
IP选项 | ||||
数据 |
16位总长度:由于该字段长为16比特,所以IP数据报最长为65535字节。此报文长度为536。
16位标识字段:唯一标识每一份数据包,每发一份报文它的值加1,IP把MTU与数据包的长度进行比较,若需要则进行分片。
标志: DF(don’t fragment)表示可以分片
MF(more fragment)表示set标识还有分片
13位片偏移:指该片偏移原始数据包开始的位置。此包片偏移为0。
生存时间:设置了数据报可以经过的最多路由器数量。此报生存时间为128。
协议字段:1--ICMP 2--IGMP 6--TCP 17--UDP
ICMP报文获取:
使用tracert跟踪路由命令,确定IP数据包访问目标所采取的路径
在cmd命令提示符中输入:tracret study.huatec.com
在wireshark中进行捕获
ICMP报文:
类型 | 代码 | 校验和 |
(这四个字节取决于ICMP报文的类型) | ||
ICMP的数据部分(长度取决于类型) |
3、分析数据链路层的帧格式
标志字段 F | 地址字段 A | 控制字段 C | 信息字段 INFO | 帧校验序列FCS | 标志字段 F |
源地址:00:0a:1a:15:39:2a ;目的地址:70:f9:6d:47:d9:00 ;类型:0×0800