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

 


 

1.网络结构图

  TCP-三次握手-四次分手- tcpdump

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

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

3.4次分手

TCP-三次握手-四次分手- tcpdump

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和其他数据包。

以访问百度为例。
运行命令TCP-三次握手-四次分手- tcpdump
     curl 全生命周期的过程可以采集到生命周期里的交互过程。
 

整个过程抓包可看到13条记录
1.3次握手,建立链接。
2. 数据交互,得到主页信息。
3. 4次分手退出。
 
监听数据包的交互过程:
1.3次握手,建立链接:3条
TCP-三次握手-四次分手- tcpdump
   1.1.我 向百度发了一个想握手的包。本机  Ip +随机的端口号 54822 —>百度的80端口号 
           Flags[S]   数据包的特征标志位
           length=0   length 0 大小为0  表示是内核发送,不包涵应用层的。说明这是个传输控制的包。
 
   1.2..百度基于礼貌回一条我知道了      Flags[S.]        ack
  1.3.我->百度                                        Flags[ .]        ack
  
2.数据交互  6条
 
    4.5 发的length =168表示我请求了
  TCP-三次握手-四次分手- tcpdump
    我发              Flags[P.]    立刻推送                     length=168  就是http 请求头的那些码的长度
    百度回           Flags[.]                         ack 确认  length=0   
6.7.8.9 对于我的请求,百度把主页内容发给我。
   百度发           Flags[P.]      立刻推送                    length=1460   大小的数据包 解析完请求
   我确认           Flags[.]                         ack  确认  length=0
   百度发           Flags[P.]        立刻推送                 length=1321
       1460   +1321才是主页所有的字节。
   我确认                                                   ack length=0
 
此时其实就可以看到所有字节拼接的结果了
TCP-三次握手-四次分手- tcpdump

  
3.退出,4次分手 4条
TCP-三次握手-四次分手- tcpdump
最后4条


 

相关文章:

  • 2021-05-08
  • 2021-11-22
  • 2021-04-23
  • 2022-01-14
  • 2019-11-13
猜你喜欢
  • 2022-01-30
  • 2021-10-02
  • 2022-02-15
  • 2022-01-02
相关资源
相似解决方案