电脑知识 | TCP通俗易懂详解 <一>

目录

一、👋🏻前言

二、🚍什么是TCP/TCP协议

三、🧍‍♂为什么TCP可靠

1.🥰关于可靠

2.🤠哪里可靠

3.🎓️图片的三次握手,四次挥手 

4.📚️知识点总结

四、📰TCP每次传的信息

1.🐘信息大小限制

2.报文和字节流


一、👋🏻前言

大家好,我是菌菌巧乐兹~这篇文章是从简单到深入的详细讲解TCP

二、🚍什么是TCP/TCP协议

建议先别看这段

传输控制协议(TCP,Transmission Control Protocol)是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

TCP是电脑传递信息的一种可靠方式。

类比解释:顺丰快递是我们发东西的一种方式,相对其他快递比较安全(可靠),反正我个人如果发比较重要的东西,就会选择顺丰。


当你把东西地址填好,按照要求打包好,下了单,把东西交给快递员,它会自己把快递送到对方手上。你其实是不清楚中间是怎么运作的,你不知道走了几个站点,不知道中间怎么分拣,但东西就是过去了。

所以,TCP就是电脑的顺丰快递,TCP协议就是这个顺丰快递具体的运作规章制度。

现在回过头去看第一段: 

传输控制协议(TCP)【顺丰快递】是为了在不可靠的互联网络上【大马路上】提供可靠的端到端字节流【把东西从一个人手里送到另一个人手里】而专门设计的一个传输协议【顺丰这个企业具体的运送规章制度】

三、🧍‍♂为什么TCP可靠

1.🥰关于可靠

可不可靠这件事是比较出来的,班里30个人,因为有人考100,有人考20,才会有所谓的优等生和后进生,要是全世界就一个人,就没得比了

所以TCP的可靠,也是相比较其他的方式,比如UDP【不懂也没关系,就是另一个快递】

2.🤠哪里可靠

相比于UDP,它哪里可靠了?

有很多,我们讲最重要的

UDP送信息就直接扔到目的地,你在不在,收不收到,和它没关系


TCP送东西前,会先和你联系:


“嗨~你在吗?”

“在的”

“那我给您送过去了哦”

开始送东西【聊三句才送】


送完东西了也会继续服务:


“我东西都送完了,您有东西寄就继续发,我等你”

“好的”

你把要寄的继续给他

“我也送完了”

“好的,拜拜~”

【聊四句才走】


结论:这就是所谓的TCP三次握手【过来】,四次挥手【离开】

3.🎓️图片的三次握手,四次挥手 

这样起码能保证东西都传完了,对方都接到了。 

4.📚️知识点总结

TCP传输的三个阶段

  • 建立连接
  • 数据传输
  • 释放连接

建立一次TCP连接可以传输多个报文【信息】

四、📰TCP每次传的信息

1.🐘信息大小限制

虽然可以一直传东西,但传之前,他们会互相约定好,每次最大的信息是多大,不能超过这个数,如果超过了,就开拆。同样和快递一样,假如你要寄10万个砖来盖房子,我们可以约好,一次寄2000块。

这个协商的大小官方名称:MSS(Maximum【最大】 Segment【段】 Size【大小】

例:商量好,每次传1000B,那么MSS=1000B

2.报文和字节流

报文:根据上面的例子,我想寄的10万个砖,就是报文【一次想寄的所有东西】

字节流:根据上面的例子,拆分出来的每一组砖,就是字节流【一次寄不完,拆出来的每个包裹】

备注:TCP是面向字节流的【我不管你砖头拼起来是什么,我负责把每组砖头送到】 

五、🏁结语

我是菌菌巧乐兹~希望用通俗易懂的语言来讲解程序知识~

如果觉得写的还行,请点个赞💛再走吧~

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

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

相关文章

MyBatis 中 Mapper 传递参数的多种方法

# MyBatis Mapper 传递参数的多种方法及其优势 在使用 MyBatis 进行数据库操作时,Mapper 接口的参数传递是一个非常基础但又十分重要的部分。不同的参数传递方式适用于不同的场景,合理选择可以大大提高代码的可读性和维护性。本文将详细介绍几种常见的 …

Dify 插件开发笔记

Dify 插件开发 开发流程 #mermaid-svg-U9rSMmcbWvcGcFMu {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-U9rSMmcbWvcGcFMu .error-icon{fill:#552222;}#mermaid-svg-U9rSMmcbWvcGcFMu .error-text{fill:#552222;st…

行星际激波在日球层中的传播:Propagation of Interplanetary Shocks in the Heliosphere (第二部分)

行星际激波在日球层中的传播:Propagation of Interplanetary Shocks in the Heliosphere (第一部分)- Chapter 1: Introduction & Chapter 2: Basics of Magnetohydrodynamics 行星际激波在日球层中的传播:Propagation of In…

巴法云平台-TCP设备云-微信小程序实时接收显示数据-原理

微信小程序通过WebSocket或HTTP长轮询连接平台(而非直接使用TCP)!!! 物联网平台对协议层的一种封装设计——将底层通信协议(如TCP)与应用层业务逻辑(如主题路由)解耦&am…

QT Sqlite数据库-教程002 查询数据-上

【1】DQL语句: DQL语句(数据查询语言),用来查询数据记录。DQL 基本结构由 SELECT FROM、WHERE、JOIN 等子句构成。DQL 语句并不会改变数据库,而是让数据库将查询结果发送结果集给客户端,返回的结果是一张虚…

基础数学:线性代数与优化理论

本篇文章简单带您复习线性代数与优化理论(主要是我发表的文章中涉及过的或相关联的) 微积分和概率与统计由此进:基础数学:微积分和概率与统计-CSDN博客 图论与信息论由此进:基础数学:图论与信息论-CSDN博…

java android持久化数据

1. SQLite 数据库(Android 内置) 1.1 创建数据库帮助类 public class DatabaseHelper extends SQLiteOpenHelper {private static final String DATABASE_NAME "MyDatabase.db";private static final int DATABASE_VERSION 1;// 表名和列名…

鸿蒙动画与交互设计:ArkUI 3D变换与手势事件详解

大家好,我是 V 哥。 在鸿蒙 NEXT 开发中,ArkUI 提供了丰富的 3D 变换和手势事件功能,可用于创建生动且交互性强的用户界面。下面详细介绍 ArkUI 的 3D 变换和手势事件,并给出相应的 ArkTS 案例代码。 1. ArkUI 3D 变换 ArkUI 支…

HTTP 和 HTTPS 协议的区别及使用场景

在互联网的世界里,HTTP 和 HTTPS 是我们经常接触到的两种网络协议,它们在数据传输、安全性等方面存在诸多差异,适用的场景也各有不同。​ 一、HTTP 和 HTTPS 的基本概念​ HTTP,即超文本传输协议(Hyper - Text Transfer Protocol),是一种用于分布式、协作式和超媒体信息…

【微服务管理】注册中心:分布式系统的基石

在分布式系统日益普及的当下,如何高效地管理众多服务实例成为关键问题。注册中心应运而生,它犹如分布式系统的 “指挥中枢”,承担着服务注册、发现等核心任务,为整个系统的稳定运行和高效协作提供坚实保障。本文将深入探讨注册中心…

高并发短信系统设计:基于SharingJDBC的分库分表、大数据同步与实时计算方案

高并发短信系统设计:基于SharingJDBC的分库分表、大数据同步与实时计算方案 一、概述 在当今互联网应用中,短信服务是极为重要的一环。面对每天发送2000万条短信的需求,我们需要一个能够处理海量数据(一年下来达到数千万亿级别&…

2025最新系统 Git 教程(七)(完结)

第4章 分布式Git 4.1 分布式 Git - 分布式工作流程 你现在拥有了一个远程 Git 版本库,能为所有开发者共享代码提供服务,在一个本地工作流程下,你也已经熟悉了基本 Git 命令。你现在可以学习如何利用 Git 提供的一些分布式工作流程了。 这一…

OpenCV 图像旋转

一、OpenCV 图像旋转介绍 在计算机视觉和图像处理领域,图像旋转是指将图像围绕某个中心点按照一定的角度进行转动。旋转操作会改变图像中像素的位置,从而得到新的图像布局。这一操作在很多场景中都有重要应用,比如文档矫正、目标检测时对图像…

<C#>在 .NET 开发中,依赖注入, 注册一个接口的多个实现

在 .NET 开发里,有时一个接口会有多个实现类,此时就需要向依赖注入容器注册多个实现。下面会详细介绍不同场景下如何注册多个实现,以及怎样从容器中解析这些实现。 1. 注册多个实现 在 .NET 中,依赖注入容器可以通过不同方式注册…

idea 保存格式化 但是不格式化 Xml

xml- 其他 - 保持空格勾选上 https://blog.csdn.net/m0_65724734/article/details/128378290?spm1001.2101.3001.6650.8&utm_mediumdistribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-9-128378290-blog-135147277.235%5Ev43%5Epc_blog_bo…

如何在C++中优雅地绘制图表

如何在C项目中优雅地绘制图表 matplotlibpreparematplotlibcpp.hpython3vs configuretest Gnuplotpreparegnuplotgnuplot-iostream.hboostvs configuretest MathGL 在C项目中,在进行一些数据分析时往往不够直观,若能借助图表进行分析可以达到事半功倍的效…

vue3使用keep-alive缓存组件与踩坑日记

目录 一.了解一下KeepAlive 二.使用keep-alive标签缓存组件 1.声明Home页面名称 三.在路由出口使用keep-alive标签 四.踩坑点1:可能需要配置路由(第三点完成后有效可忽略) 五.踩坑点2:没有找到正确的路由出口 一.了解一下Kee…

ros通信机制学习——latched持久化机制

点云的地图的发送逻辑中,我发现每次使用rostopic echo 时只会打印一次,然后就不会再打印了。并且rviz中也是始终都会显示的,这里面其实就是用到了latched持久话机制,可以接受这最后一次发布的消息。 我们通过一个具体的项目来学习…

力扣每日打卡 1922. 统计好数字的数目 (中等)

力扣 1922. 统计好数字的数目 中等 前言一、题目内容二、解题方法1. 暴力解法(会超时,此法不通)2. 快速幂运算3. 组合计数的思维逻辑分析组合计数的推导例子分析思维小结论 4.官方题解4.1 方法一:快速幂 三、快速幂运算快速幂运算…

如何使用通义灵码玩转Docker - AI助手提升开发效率

一、引言 Docker 作为一种流行的虚拟化技术,能够帮助开发者快速搭建所需的运行环境。然而,对于初学者来说,掌握 Docker 的基本概念和使用方法可能会遇到一些挑战。本文将介绍如何利用通义灵码这一智能编码助手,帮助你更高效地学习…