本文主要是介绍(两百七十九) TCP抓包实践,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
1.抓包过滤
自己抓了个访问斗鱼的包
首先是dns,可以使用ctrl+f 选择字符串快速搜索douyu
发现解析了很多ip出来,也不知道是哪个。。。这边是https的,所以过滤了ssl的包,然后看时间点附件的,因为这个时间点我主动发起的访问就一个斗鱼
看后续的网络访问都是基于Internet Protocol Version 4, Src: 192.168.0.145 (192.168.0.145), Dst: www.douyu.com.w.kunluncan.com (223.111.123.232),应该是用的倒数第二个解析结果
上面的整个访问是https访问
(两百零三)学习http和https的区别
SSL是基于HTTP之下TCP之上的一个协议层,是基于HTTP标准并对TCP传输数据时进行加密,所以HPPTS是HTTP+SSL/TCP的简称。
由于HTTPS的推出受到了很多人的欢迎,在SSL更新到3.0时,IETF对SSL3.0进行了标准化,并添加了少数机制(但是几乎和SSL3.0无差异),标准化后的IETF更名为TLS1.0(Transport Layer Security 安全传输层协议)
2.syn + ack学习
wireshark上面菜单选择 统计-流量图,图出来后选择下图中的流类型为tcp,再勾选限制显示过滤器
可以看到ack和syn的交互过程,就简单看下前5个包
2.1 前面三次握手
可以看到如下的选项都有显示,并且MSS是放在TCP Option里的,也对,tcp头部没列出来的就应该放在Options里。
三次握手本身没啥看头,其实就是ack不算发送的字节数,syn算,会让seq和ack++
2.2 数据交互后
看第四次报文长度达到560,tcp包下次的sequence number直接就显示当前的number + tcp Segment Len了,和定义相统一,表明发送包的第一个字节的偏移量。
第五次包可以看到ack number直接就跳到561了,表明已经成功接受到了第四次报文的560个字节
下面这个图也很明显
PS:另外看上面的图,并不是每个包都有对应符合的ack回的,看ack=1878回了三次,而之前的seq=612没有人回,应该回789的
3.总结
一个报文对应的后续ack number = next sequence number = sequence number + tcp segment length,但是如果tcp segment length为0,则只是+1,看起来有点不协调。。。
这篇关于(两百七十九) TCP抓包实践的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!