当前位置:网站首页>Technology sharing | packet capturing analysis TCP protocol
Technology sharing | packet capturing analysis TCP protocol
2022-07-06 19:59:00 【Hua Weiyun】
This article is excerpted from the internal textbook of Hogwarts testing and development society
TCP The protocol is in the transport layer , A connection oriented 、 reliable 、 Transport layer communication protocol based on byte stream .
Environmental preparation
Classify interface testing tools , It can be classified as follows :
- Network sniffer tool :tcpdump,wireshark
- Agent tools :fiddler,charles,anyproxyburpsuite,mitmproxy
- Analysis tools :curl,postman,chrome Devtool
Caught analysis TCP agreement
tcpdump
tcpdump Is a The of packets transmitted over a network “ head ” Completely intercepted to provide analysis Tools for . It supports for network layer 、 agreement 、 host 、 Network or port filtering , And provide and、or、not And other logical statements to remove useless information .
Give Way tcpdump Always monitor 443 port , If there is any difference, enter it into log In file
sudo tcpdump port 443 -v -w /tmp/tcp.log
Use this command , Will put the report in the directory /tmp/tcp.log
in .
Common parameters | meaning |
---|---|
port 443 | monitor 443 port |
-v | Output more detailed information |
-w | Write data to log in |
wireshark
wireshark It is also a network sniffing tool , In addition to having tcpdump function , There are more extensions , For example, analysis tools , But in interface testing , The process of capturing packets is often carried out on the server , Servers generally do not provide UI Interface , therefore wireshark Unable to work on server , Can only use tcpdump Grab bag generation log, And then log Import wireshark Use , There is UI Analysis on the client of the interface .
Caught analysis TCP agreement
Grab one http Of get request :
- Search on Baidu mp3
http://www.baidu.com/s?wd=mp3
- use tcpdump Intercept this get request , And generate log
- use wireshark open tcpdump Generated log
Use wireshark see log:
log The first few messages are three handshakes . Because the channel is unreliable , Before sending the data , It is necessary to ensure channel stability , And three handshakes are like the following operations :
- The first handshake : When establishing a connection , The client sends syn package (syn=j) To the server , And enter SYN_SENT state , Wait for server to confirm .
- The second handshake : Server received syn package , Must confirm customer's SYN(ack=j+1), At the same time, I also send a SYN package (seq=k), namely SYN+ACK package , At this time, the server enters SYN_RECV state ;
- The third handshake : Client receives server's SYN+ACK package , Send confirmation package to server ACK(ack=k+1), This package has been sent , Client and server access ESTABLISHED(TCP Successful connection ) state , Complete three handshakes .
After three handshakes , Can further communicate , It looks like this :
At the end of the communication , Four waves are also required :
- First wave : The client sends a... To the server FIN, Request to turn off data transfer .
- Second wave : The server received... From the client FIN, Send a ACK, among ack The value is equal to the FIN+SEQ.
- Third wave : The server sends a... To the client FIN, Tell client application to close .
- Fourth wave : The client receives... From the server FIN, Reply to one ACK To the server . among ack The value is equal to the FIN+SEQ.
Be careful : A request may be divided into multiple packets , So is a data , So in wireshark You'll see a lot of bags .
边栏推荐
- MySQL information schema learning (II) -- InnoDB table
- HDU 1026 Ignatius and the Princess I 迷宫范围内的搜索剪枝问题
- 腾讯安卓开发面试,android开发的基础知识
- Vscode debug run fluent message: there is no extension for debugging yaml. Should we find yaml extensions in the market?
- Phoenix Architecture 3 - transaction processing
- Tencent T3 Daniel will teach you hand-in-hand, the internal information of the factory
- String length limit?
- HDU 1026 search pruning problem within the labyrinth of Ignatius and the prince I
- Web开发小妙招:巧用ThreadLocal规避层层传值
- beegfs高可用模式探讨
猜你喜欢
Example of shutter text component
An East SMS login resurrection installation and deployment tutorial
【云原生与5G】微服务加持5G核心网
The "white paper on the panorama of the digital economy" has been released with great emphasis on the digitalization of insurance
《数字经济全景白皮书》保险数字化篇 重磅发布
夏志刚介绍
Analysis of rainwater connection
Vmware虚拟机无法打开内核设备“\\.\Global\vmx86“的解决方法
爬虫(14) - Scrapy-Redis分布式爬虫(1) | 详解
Phoenix Architecture 3 - transaction processing
随机推荐
Test Li hi
腾讯云数据库公有云市场稳居TOP 2!
Wonderful coding [hexadecimal conversion]
数据的同步为每个站点创建触发器同步表
AsyncHandler
js实现力扣71题简化路径
AsyncHandler
Tencent cloud database public cloud market ranks top 2!
Finally, there is no need to change a line of code! Shardingsphere native driver comes out
AddressSanitizer 技术初体验
VMware virtual machine cannot open the kernel device "\.\global\vmx86"
Selenium advanced operations
从sparse.csc.csr_matrix生成邻接矩阵
Period compression filter
mod_wsgi + pymssql通路SQL Server座
js获取浏览器系统语言
LeetCode_ Double pointer_ Medium_ 61. rotating linked list
Analysis of rainwater connection
腾讯架构师首发,2022Android面试笔试总结
Tencent architects first, 2022 Android interview written examination summary