IP抓包分析
抓包网址:www.2345.com
本机IP:172.31.116.111
目的网址IP:42.62.30.180
传输层TCP报文格式
TCP协议的报文格式:整个报文由报文头部和数据两部分组成。
TCP报文格式:
16位源端口(Source Port):53353
16位目的端口(Destination Port):443
32位序列号(Sequence Number):0
32位确认号(Acknowledgement Number):0
首部长度(Header Length):32bytes
保留字段(Reserved):000
紧急URG:0
确认ACK:0
推送PuSH:0
复位ReSeT:0
同步SYN:1
终止FIN:0
16位窗口字段:65535
16位TCP校验和(Checksum):0x69a7
16位紧急指针(Urgent pointer):0
选项(Option)
TCP协议的连接管理
TCP是面向连接的传输层协议,所谓面向连接就是在真正的数据传输开始前要完成连接建立的过程,否则不会进入真正的数据传输阶段。
TCP的连接建立过程通常称为三次握手,步骤如下:
步骤1
172.31.116.111的TCP向42.62.30.180发出连接请求报文段,其首部中的同步为SYN=1,并选择序号seq=0,表明传送数据的第一个数据字节的序号是0。
步骤2
42.62.30.180的TCP收到连接请求报文段后,如同意,则发回确认。ACK=1。同时42.62.30.180向172.31.116.111 发起连接请求,应使SYN=1,自己选择的序号seq=0。
步骤3
172.31.116.111收到此报文段后向42.62.30.180发出确认,其ACK=1,确认号ack=1。172.31.116.111的TCP通知上层应用进程,连接已经建立。
网络层协议的报文格式
网络层位于TCP/IP协议栈数据链路层和传输层中间,网络层接受传输层的数据报文,分段为合适的大小,用IP报文头部封装,交给数据链路层。
常见网络层协议
IP协议 ICMP协议 ARP协议
IP包格式
抓包分析:
版本(version):IP协议,4代表IPv4协议
2、
报文长度(header length):IP报头的长度
3、
服务类型:优先级标志位和服务类型标志位,被路由器用来进行流量的优先排序。
IPv4报头中IP优先级的定义是相同的,CS0 ~CS7的级别相等于IP优先级0 ~7。这里的DSCP差分服务代码点:CS0所以优先级为0。
3比特可以定义8个等级。
8个优先级的定义如下:
111 -Network Control 网络控制
110 -Internetwork Control 网间控制
101 -Critic 关键
100 - FlashOverride 疾速
011 -Flash 闪速
010 -Immediate 快速
001 -Priority 优先
000 -Routine 普通
优先级6和7一般保留给网络控制数据使用,比如路由。
优先级5推荐给语音数据使用。
优先级4由视频会议和视频流使用。
优先级3给语音控制数据使用。
优先级1和2给数据业务使用。
优先级0为缺省标记值。
在标记数据时,既可以使用数值,也可以使用名称(英文名称)。
ECN:00,表示不支持ECN
总长度(total length):IP报头加上IP报头上层协议的总长度
5、
标识符(identification):表示该片是由那个数据包分片出来的,如果标识符相同,说明这些分片是由同一个数据包分片出来的
MTU最大传输单元,默认网络中数据包不能超过1500个字节,如果超过,路由器或交换机必须对其进行分片,否则将会被丢弃
标志(flags):长度为上比特
第一个比特:保留位,没有意义
第二个比特:为1 代表可分片,为0代表不能被分片
第三个比特:为1,表示后面还有分片,为0,表示为最后一个分片
片偏移(fragment offset):将收到的数据包从第一个分片和最后一个分片进行整理,整合为一个完整的数据包
7、
生存时间(time to live):TTL,有三个默认的值64(代表数据包的目的设备操作系统为Linux)、128(代表为windows 操作系统)、255(代表是一台路由器),每经过一台路由器,TTL值会减一,如果减到零,网络中的设备会丢弃该数据包,目的是防止数据包在网络中不停的被发送,避免发生路由环路。
这里的数字为:49。
8、
协议(protocol):为6代表IP报头上面承载的是TCP协议
报头检验和(header checksum):检测报文的完整性
源IP地址和目的IP地址:供路由选路
ICMP的报文格式分析
实验原理:
ping是用来测试网络连通性的命令,一旦发出ping命令,主机会发出连续的测试数据包到网络中,在通常的情况下,主机会收到回应数据包,ping采用的是ICMP协议。
ICMP的报文格式
打开命令行窗口,执行命令:ping www.2345.com:
这时可以看到数据包抓取页面抓取到了8包,与命令行显示的已发送和已接受的包的数量是一致的:
ICMP的报文格式只有两种:
一:Type: 8 (Echo (ping) request)
类型:8(回应请求)代码/编码:0
校验和: 0x4d4e
二:Type: 0 (Echo (ping) reply)
类型:0(回应应答)
代码/编码:0
校验和: 0x554e
数据链路层帧结构分析
数据链路层有两个子层:逻辑链路接入控制子层LLC ,媒体接入控制子层MAC。
由于TCP/IP体系经常使用的局域网是DIX EthernetV2 而不是802.3标准中的几种局域网,且很多厂商生产的适配器仅有MAC协议而没有LLC协议,LLC作用已不大。所以一般都是分析MAC
以太网帧结构如下:
抓包如下,抓的网址为www.2345.com。
目的MAC地址 Destination 6个字节 54 ee 75 a7 45 36
源MAC地址 Source 6个字节 04 f9 38 c9 6a 22
类型 Type 2字节 0800
帧检验序列在数据帧收到后会删除。