TCP-三次握手-四次分手- tcpdump
1.网络结构图
2.图解3次握手
3.图解4次分手
4.tcpdump抓包详解(13条)
1.网络结构图

TCP,UDP都是位于传输控制层的。是内核(操作系统)去做的。
2.3次握手
比如: 本机->百度
1.本机----->百度 内核发送 syn
2.百度-----> 我 收到
3.我也知道了
一去
一回
再一去
这就是三次握手。

链接:当数据包由连接控制层(内核间)发来发去,这还不叫连接,只有双方在内存中开辟相应的资源后才叫链接。
链接:中间能发数据包
两边有资源。
资源:在C++中就是结构体或者叫对象
内存缓冲区
3.4次分手

1.C->S要分
2.S->C 说知道了 fin+ack
3.S->C fit 同意
4.C->S ok
这就是4次分手。
4.IP:找到主机;端口号:找到程序的。一个IP可以分配65535个端口号,如果要做压力测试可以虚拟IP,这样一台机器就会有N多个链接。
4.tcpdump抓包详解
tcpdump 是一个运行在命令行下的抓包工具.可以在三种操作系统底下运行。它允许用户拦截和显示发送或收到过网络连接到该计算机的TCP/IP和其他数据包。
以访问百度为例。
运行命令![]()
curl 全生命周期的过程可以采集到生命周期里的交互过程。
整个过程抓包可看到13条记录
1.3次握手,建立链接。
1.3次握手,建立链接。
2. 数据交互,得到主页信息。
3. 4次分手退出。
3. 4次分手退出。
监听数据包的交互过程:
1.3次握手
,建立链接
:3条
1.1.我
向百度发了一个想握手的包。本机 Ip +随机的端口号 54822 —>百度的80端口号
Flags[S] 数据包的特征标志位
length=0 length 0 大小为0 表示是内核发送,不包涵应用层的。说明这是个 传输控制的包。
Flags[S] 数据包的特征标志位
length=0 length 0 大小为0 表示是内核发送,不包涵应用层的。说明这是个 传输控制的包。
1.2..百度基于礼貌回一条我知道了
Flags[S.] ack
1.3.我->百度
Flags[ .] ack
2.数据交互 6条
4.5 发的length =168表示我请求了
我发
Flags[P.]
立刻推送
length=168
就是http 请求头的那些码的长度
百度回
Flags[.] ack 确认
length=0
6.7.8.9 对于我的请求,百度把主页内容发给我。
百度发
Flags[P.]
立刻推送 l
ength=1460 大小的数据包 解析完请求
我确认
Flags[.] ack 确认
length=0
百度发
Flags[P.]
立刻推送
length=1321
1460 +1321才是主页所有的字节。
我确认 ack
length=0
此时其实就可以看到所有字节拼接的结果了
3.退出,4次分手 4条
3.退出,4次分手 4条
最后4条

浙公网安备 33010602011771号