当前位置:网站首页>Technology sharing | packet capturing analysis TCP protocol
Technology sharing | packet capturing analysis TCP protocol
2022-07-07 11:24:00 【The elegance of testing】
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 network transmission of data packets “ head ” Completely intercepted to provide analysis tools . 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 .

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 .
Last : It can be in the official account : Sad spicy bar ! Get one by yourself 216 Page software testing engineer interview guide document information 【 Free of charge 】. And the corresponding video learning tutorial is free to share !, It includes basic knowledge 、Linux necessary 、Shell、 The principles of the Internet 、Mysql database 、 Special topic of bag capturing tools 、 Interface testing tool 、 Test advanced -Python Programming 、Web automated testing 、APP automated testing 、 Interface automation testing 、 Testing advanced continuous integration 、 Test architecture development test framework 、 Performance testing 、 Safety test, etc. .
I recommend one 【Python Automated test communication group :746506216】, We can discuss communication software testing together , Learn software testing together 、 Interview and other aspects of software testing , Help you advance quickly Python automated testing / Test Development , On the road to high pay .
Friends who like software testing , If my blog helps you 、 If you like my blog content , please “ give the thumbs-up ” “ Comment on ” “ Collection ” One Key triple connection !
边栏推荐
猜你喜欢

关于在云服务器上(这里用腾讯云)安装mysql8.0并使本地可以远程连接的方法
![[untitled]](/img/f0/a34c116a793e844da46c7cd407224b.jpg)
[untitled]

Seata 1.3.0 four modes to solve distributed transactions (at, TCC, Saga, XA)
![Verilog design responder [with source code]](/img/91/6359a2f3fa0045b4a88956a475488c.png)
Verilog design responder [with source code]

使用MeterSphere让你的测试工作持续高效

From pornographic live broadcast to live broadcast E-commerce

oracle常见锁表处理方式

The opacity value becomes 1%

How to remove addition and subtraction from inputnumber input box
![[untitled]](/img/a0/29975bc0f9832e1640cc39dfce4a71.jpg)
[untitled]
随机推荐
Array object sorting
深度学习秋招面试题集锦(一)
2021-04-08
QT implements the delete method of the container
Multithreaded application (thread pool, singleton mode)
Briefly introduce closures and some application scenarios
基于STC8G1K08的0.96寸IIC液晶屏驱动程序
[C #] the solution of WinForm operation zoom (blur)
使用引用
How to add aplayer music player in blog
测试开发基础,教你做一个完整功能的Web平台之环境准备
Verilog realizes nixie tube display driver [with source code]
The sixth training assignment
【C#】WinForm运行缩放(变糊)的解决方法
A case of compiling QT file qmake compiling script
How to use cherry pick?
关于SIoU《SIoU Loss: More Powerful Learning for Bounding Box Regression Zhora Gevorgyan 》的一些看法及代码实现
Static semantic check of clang tidy in cicd
Learning notes | data Xiaobai uses dataease to make a large data screen
Add a self incrementing sequence number to the antd table component