TCP数据流的概念

发送端TCP数据流

考虑到实际网络中的各种影响,那么其实发送端调用send函数发送两个字符串hello, messagewelcome的实际TCP分组可能有很多种。

第一种情况:一个TCP分组发出去

hello, messagewelcome在一个TCP分组中发送出去,比如:

*************hello, messagewelcome*******************

第二种情况:前一个字符串一部分放到另一个TCP分组接着发送

比如(可以列举很多种):
其中一个分组是:

*********************************hello, m

另一个分组是:

essagewelcome******************************

第三种情况:后一个字符串一部分放到前一个TCP分组发送

比如(可以列举很多种):
其中一个分组是:

*********************************hello, messagew

另一个分组是:

elcome******************************

上边这三种情况可以有很多组合,这里想要表达的意思就是我们不能假设整个数据就在一个TCP分组里边发送出去,也就是说,不能假设“数据流和 TCP 分组是一种映射关系”。

接收端TCP数据流

不管发送端数据分了多少个TCP分组发来,那么最后接受端接受到的数据都是:

*****************hello, messagewelcome*************

1.先调用send函数发送的数据一定会比后调用send函数发送的数据先到,这就是一个由TCP保证的。
2.如果发送过程中有 TCP 分组丢失,但是其后续分组陆续到达,那么 TCP 协议栈会缓存后续分组,直到前面丢失的分组到达,最终,形成可以被应用程序读取的数据流。

此文章为11月Day 29学习笔记,内容来源于极客时间《网络编程实战》。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/185309.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

还在愁没项目?来瞧瞧这些另类赚钱方式

客套话不多说,直接上案例,这些都是正儿八经的真实案例,相信大家通过这些人的案例自然能摸索整理出一套属于自己的项目!摸索不出,也多多少少能受一些灵感上的启发。 小A是长期混B站的,大家称他为“B站搬运工…

C++ 通过SQLite实现命令行工具

本文介绍了一个基于 C、SQLite 和 Boost 库的简单交互式数据库操作 Shell。该 Shell 允许用户通过命令行输入执行各种数据库操作,包括添加、删除主机信息,设置主机到特定主机组,以及显示主机和主机组列表。通过调用 SQLite3 库实现数据库连接…

【网络安全】meterpreter攻击实战

1.meterpreter 攻击成功后可以做什么指令? 远程控制命令执行摄像头监控密码获取创建后门用户破坏篡改系统。 2.创建后门用户并开启远程连接: net user zhangsan 123456/add && net localgroup adminstrators zhangsan/add exit run getgul -…

苍穹外卖--用户下单

代码开发 DTO设计 根据用户下单接口的参数设计DTO: 在sky-pojo模块,OrdersSubmitDTO.java已定义 package com.sky.dto;import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import java.io.Serializable; import java.math.Bi…

拓数派荣获上海市“智慧工匠”工业软件创新案例奖

近日,由上海市经济和信息化委员会指导、上海市城市数字化转型应用促进中心主办、上海中创产业创新研究院承办的“工业软件赋能新型工业化”主题沙龙暨2023“智慧工匠”工业软件创新案例竞赛颁奖典礼在上海圆满落幕。拓数派凭借上汽集团工业数据管理服务平台案例成功…

ROS vscode使用基本配置

1、创建ros工作空间 2、启动 vscode 3、vscode 中编译 ros ctrl shift B 调用编译,选择:catkin_make:build 修改.vscode/tasks.json 文件 4、 创建 ROS 功能包 选定 src ---> create catkin package 依次设置包名、添加依赖 5、C 实现 在功能包的 src 下…

Yolov8训练数据集过程 + 测试测试集 + 继续训练+报错解决

做自己第一次使用Yolov8训练的记录 1、下载代码 官网的我没找到对应的视频教程,操作起来麻烦,一下这个链接的代码可以有对应bilibili教程:完整且详细的Yolov8复现训练自己的数据集 选择这个下载: 2、安装需要的包: …

Qt之QOpenGLWidget开始3D显示

遇到第一个问题就是cmakelists的问题,提示“undefined reference to symbol ‘glXXXXX". 在target link中加入GL解决 SLAMBOOK2踩坑记之:plotTrajectory.cpp中的undefined reference to symbol ‘glTexImage2D‘错误_undefined reference to symbo…

开源+GUI+C/C++

目录 一、MinGW 二、wxWidgets 1.使用MinGW编译 2. 使用MSW编译 三、Code::Blocks 四、开发示例 随着开源社区的发展,在众多的GUI开发工具中,开源、免费将变得越来越流行,但是开源的特点是很多东西需要整合,需要动手能力强的…

扫码听音乐该如何制作?音乐的二维码生成方法

多个音频文件怎么做成一个二维码显示?二维码在现在的生活中拥有丰富的使用场景,可以用来作为多种内容类型的载体,比如音频二维码就是经常被使用的一种二维码类型。通过扫秒二维码来听音频文件,更加的灵活方便,那么音频…

MySQL C代码连接

环境:5.7.42-0ubuntu0.18.04.1 (Ubuntu) mysql接口介绍 初始化mysql指针 用来生成MySQL对象,返回值为MySQL*,MySQL*是MySQL对象的指针。 MySQL在mysql.h中是一个结构体 链接数据库 初始化完毕之后,必须先链接数据库&#xff…

安防监控系统的工作原理是什么?具体包含哪些组成部分?

关于安防监控系统,大家熟知的就是监控系统平台,其实不然,智能视频安防监控系统涵盖的内容非常多,今天小编就和大家一起来探讨一下。 安防监控视频系统主要分为以下7大类: 1、 摄像头采集图像 安防监控系统通常使用摄…

11-30 SpringBoot

内嵌的tomcat tomcat的依赖 对于tomcat其实还是一个jar包 spring是一个IOC容器 tomcat的核心对象交给Spring容器 调用核心对象方法 启动Tomcat 1.添加依赖 tomcat-embed-core,叫做tomcat内嵌核心。就是这个东西把tomcat功能引入到了我们的程序中的 排除tomcat&a…

Nginx(无法解析PHP网页如何解决?FPM解决你的烦恼!)

♥️作者:小刘在C站 ♥️个人主页: 小刘主页 ♥️不能因为人生的道路坎坷,就使自己的身躯变得弯曲;不能因为生活的历程漫长,就使求索的 脚步迟缓。 ♥️学习两年总结出的运维经验,以及思科模拟器全套网络实验教程。专栏:云计算技…

Android笔记(十六):前台服务

设置服务为前台服务。前台服务会在状态栏显示一个通知。通知界面与服务进行关联。 一、什么是通知? Notification通知是在移动应用APP提供给用户的消息提示,是在移动系统的通知栏中显示。当移动应用不在运行时或者在后台状态下,通过发布通知…

数据挖掘实战-基于word2vec的短文本情感分析(文末送书)

🤵‍♂️ 个人主页:艾派森的个人主页 ✍🏻作者简介:Python学习者 🐋 希望大家多多支持,我们一起进步!😄 如果文章对你有帮助的话, 欢迎评论 💬点赞&#x1f4…

目标检测开源数据

KITTI KITTI数据集下载(百度云)_kitti数据集百度云-CSDN博客 KITTI数据集下载及解析_kitti bin文件标签-CSDN博客 KITTI 3D目标检测数据集解析(完整版)_kitti数据集结构-CSDN博客 KITTI数据集简介与使用_kitti数据见一个视频多…

易点易动固定资产管理系统:提升企业固定资产管理效率的利器

固定资产是企业运营中重要的组成部分,对于企业的正常运转和发展至关重要。然而,传统的固定资产管理方法通常存在效率低下、信息不透明等问题。为了解决这些挑战,易点易动固定资产管理系统应运而生。本文将探讨易点易动固定资产管理系统的概念…

9款高效绘图神器,提升你的工作效率

在日常工作或生活中,我们必须绘制各种图表、流程图、思维导图等图形,或者想用画笔描述自己的想法。然而,我们在许多绘图软件面前感到困惑。我们不知道哪个绘图软件好,也没有足够的时间一一尝试 在接下来的空间里,我们…

该怎么认识人工智能AI的微调功能?

目录 为什么 AI 模型可以调微呢? 请你详细讲解一下 那么"微调"后,模型改变了吗? 请问一下,用人工智能跑出来的模型 就是个有很多参数的矩阵吗? 为什么 AI 模型可以调微呢? 请你详细讲解一下 …