TCP网络协议

devtools/2025/3/14 20:53:33/

TCP粘包

1. TCP在接收数据时,多包数据粘在了一起

2. 原因:

    1. TCP发送数据时,没有及时发走,会根据缓冲区数据的情况进行重新组包;
    2. TCP接收方,没有及时读走缓冲区数据,导致缓冲区大量数据缓存。

3. 如何解决TCP粘包:

    1.  发指定大小字节(结构体)
         struct  data
        {
             int id;
             float tmp;
             xxx;
        };

       指定在相同平台上使用,注意结构体对其齐问题。

    
     2. 发送具有指定分隔符的数据

         "hello world\n"
         "how are you\n"

     3. 封装自定义数据帧
          
          
         AA 0d 01  00 00 00 14 00 00 00 15  xx xx xx xx sum BB
         

网络抓包

网络抓包:抓取通过设备网卡的数据

wireshark:网络抓包工具:

1. 分析和追踪网络问题
2. 查看网络协议栈

安装:sudo apt-get install wireshark

1. sudo wireshark
2. 选择通信设备的网卡---》any
3. 选择抓取的过滤条件
4. 开始抓取
5. 进行一次通信

TCP报文头

标志位:
    
    1. URG: 紧急指针标志, 为1时表示紧急指针有效, 该报文应该优先传送。
    2. ACK: 确认应答标志
    3. PSH:  表示发送数据,提示接收端从TCP接收缓冲区中读走数据,为接收后续数据腾出空间
    4. RST: 重置连接标志
    5. SYN: 表示请求建立一个连接
    6. FIN: finish标志, 表示释放连接

TCP机制

     1. 应答机制:为每个数据增加序列发,发送数据时,第一个数据的序号作为报文中的序号。
                             接收方收到相关数据,会回应ACK报文,报文中的确认号是接收方下次希望接收到的数据的
                             起始序号。

     2. 超时重传机制:TCP发送数据后会在一定的时间内等待ACK,假设在指定时间ACK未收到,则视这包数据已经
                                    丢失,会重新传输这包数据。

     3. 流量控制机制:根据接收方接收数据的能力,调整窗口大小,通知发送发进行流量控制

文章来源:https://blog.csdn.net/Ctrlcctrlv001/article/details/146241973
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.ppmy.cn/devtools/167108.html

相关文章

CSDN统计个人创作总字数

前言 不是很懂爬虫,所以就叫deepseek写了一个 用起来很简单,但是有一个小问题,就是统计的是总字符数。代码片会被统计进去,Markdown语法也会被统计进去。 不过我没有太多需求,能大概统计一下满足以下小小的好奇心和成…

SSM视频点播系统

🍅点赞收藏关注 → 添加文档最下方联系方式咨询本源代码、数据库🍅 本人在Java毕业设计领域有多年的经验,陆续会更新更多优质的Java实战项目希望你能有所收获,少走一些弯路。🍅关注我不迷路🍅 项目视频 SS…

基于Python+Vue开发的电影订票管理系统源码+运行步骤

项目简介 该项目是基于PythonVue开发的电影订票管理系统(前后端分离),这是一项为大学生课程设计作业而开发的项目。该系统旨在帮助大学生学习并掌握Python编程技能,同时锻炼他们的项目设计与开发能力。通过学习基于Python的电影订…

k8s集群----helm部署wordpress

采用pv pvc模式 1、配置nfs存储 yum -y install nfs-utils cat /etc/exports cat /etc/exports /nfs/data/wordpress 192.168.0.0/24(rw,sync,no_subtree_check,no_root_squash) /nfs/data/mariadb 192.168.0.0/24(rw,sync,no_subtree_check,no_root_squash)systemctl rest…

ArcGIS Pro字段编号相关代码

一、引言 在地理信息系统(GIS)的数据管理与分析中,字段操作是不可或缺的一环。 SHP文件作为常见的地理数据存储格式,其字段的灵活运用对于数据的组织、展示和分析具有重要意义。 在实际工作中,常常需要对字段进行编…

使用DeepSeek完成一个简单嵌入式开发

开启DeepSeek对话 请帮我使用Altium Designer设计原理图、PCB,使用keil完成代码编写;要求:使用stm32F103RCT6为主控芯片,控制3个流水灯的原理图 这里需要注意,每次DeepSeek的回答都不太一样。 DeepSeek回答 以下是使…

如何在Futter开发中做性能优化?

目录 1. 避免不必要的Widget重建 问题:频繁调用setState()导致整个Widget树重建。 优化策略: 2. 高效处理长列表 问题:ListView一次性加载所有子项导致内存暴涨。 优化策略: 3. 图片加载优化 问题:加载高分辨率…

TTP/HTTPS、TCP/IP 协议、RPC、Socket 通信机制

1. TTP/HTTPS TTP (HTTP) 和 HTTPS(Hypertext Transfer Protocol Secure)是基于 TCP/IP 协议的应用层协议,主要用于客户端和服务器之间的数据传输。 HTTP(超文本传输协议):这是用于 web 页面和服务器之间…