当前位置: 首页 > article >正文

电脑知识 | 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是面向字节流的【我不管你砖头拼起来是什么,我负责把每组砖头送到】 

五、🏁结语

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

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

相关文章:

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

目录 一、👋🏻前言 二、🚍什么是TCP/TCP协议 三、🧍‍♂为什么TCP可靠 1.🥰关于可靠 2.🤠哪里可靠 3.🎓️图片的三次握手,四次挥手 4.📚️知识点总结 四、&…...

精品推荐-最新大模型MCP核心架构及最佳实践资料合集(18份).zip

精品推荐-最新大模型MCP核心架构及最佳实践资料合集,共18份。 1、2025年程序员必学技能:大模型MCP核心技术.pdf 2、MCP 架构设计剖析:从 Service Mesh 演进到 Agentic Mesh.pdf 3、MCP 架构设计深度剖析:使用 Spring AI MCP 四步…...

Linux 线程:从零构建多线程应用:系统化解析线程API与底层设计逻辑

线程 线程的概述 在之前,我们常把进程定义为 程序执行的实例,实际不然,进程实际上只是维护应用程序的各种资源,并不执行什么。真正执行具体任务的是线程。 那为什么之前直接执行a.out的时候,没有这种感受呢&#xf…...

VMware虚拟机Ubuntu磁盘扩容

VMware中操作: 选择要扩容的虚拟机,点击编辑虚拟机设置 打开后点击磁盘——>点击扩展(注意:如果想要扩容的话需要删除快照) 调整到你想要的容量 点击上图的扩展——>确定 然后我们进到虚拟机里面 首先&#…...

游戏引擎学习第217天

运行游戏并在 FreeVariableGroup 中遇到我们的断言 其实在美国,某些特定的小糖果(例如小糖蛋)只在圣诞节和复活节期间出售,导致有些人像我一样在这段时间吃得过多,进而增加体重。虽然这种情况每年都会发生&#xff0c…...

Day 8 上篇:深入理解 Linux 驱动模型中的平台驱动与总线驱动

B站相应的视屏教程: 📌 内核:博文视频 - 总线驱动模型实战全解析 —— 以 PCA9450 PMIC 为例 敬请关注,记得标为原始粉丝。 在 Linux 内核驱动模型中,设备与驱动的组织方式不是随意堆砌,而是基于清晰的分类…...

freertos内存管理简要概述

概述 内存管理的重要性 在嵌入式系统中,内存资源通常是有限的。合理的内存管理可以确保系统高效、稳定地运行,避免因内存泄漏、碎片化等问题导致系统崩溃或性能下降。FreeRTOS 的内存管理机制有助于开发者灵活地分配和释放内存,提高内存利用…...

Dify问题记录 (一)

问题背景 Dify智能体将含有中文的JSON参数传递到Java后端时出现乱码。 解决办法 在HTTP节点前添加代码执行节点,将参数强制编码为UTF-8格式。在Java后端代码中进行解码操作,以确保参数的正确性。 代码如下: 代码执行节点中代码 function main({arg…...

全新突破 | 更全面 · 更安全 · 更灵活

xFile 高可用存储网关 2.0 重磅推出,新增多空间隔离功能从根源上防止数据冲突,保障各业务数据的安全性与独立性。同时支持 NFS、CIFS、FTP 等多种主流文件协议,无需繁琐的数据拷贝转换,即可与现有系统无缝对接,降低集成…...

使用Python建立双缝干涉模型

引言 双缝干涉实验是物理学中经典的实验之一,它展示了光的波动性以及量子力学的奇异性。实验结果表明,当光或粒子通过两条狭缝时,它们会产生干涉现象,形成明暗相间的条纹图案。这种现象不仅说明了光的波动性,还揭示了量子力学的核心思想——粒子具有波动性。今天,我们将…...

T-Box车载系统介绍及其应用

定义 T-Box汽车系统,全称为Telematics - BOX,也常简称为车载T - BOX,是汽车智能系统及车联网系统中的核心组成部分,是安装在车辆上的一种高科技远程信息处理器。 工作原理 T-Box的核心功能主要通过MPU和MCU实现。MPU负责应用程序功…...

SQLyog使用教程

准备工作 链接本地数据库 准备 1:安装mySQL数据库 2:安装SQLyong 连接本地数据库 打开SQLyong应用,将会出现下面的页面 点击新建,输入链接名 输入密码,点击 连接 按钮 如果出现连接错误,且错误号为2058…...

for循环的优化方式、循环的种类、使用及平替方案。

本篇文章主要围绕for循环,来讲解循环处理数据中常见的六种方式及其特点,性能。通过本篇文章你可以快速了解循环的概念,以及循环在实际使用过程中的调优方案。 作者:任聪聪 日期:2025年4月11日 一、循环的种类 1.1 默认有以下类型 原始 for 循环 for(i = 0;i<10;i++){…...

使用 Python 扫描 Windows 下的 Wi-Fi 网络实例演示

使用 Python 扫描 Windows 下的 Wi-Fi 网络 代码实现代码解析 1. 导入库2. 解码混合编码3. 扫描 Wi-Fi 网络4. 运行函数 这是我当前电脑的 wifi 连接界面。 这个是运行的效果图&#xff1a; 代码实现 我们使用了 Python 的 subprocess 模块来调用 Windows 的内置命令 netsh…...

python manimgl数学动画演示_微积分_线性代数原理_ubuntu安装问题[已解决]

1.背景 最近调研python opencv, cuda加速矩阵/向量运算, 对于矩阵的线性变换, 秩, 转秩, 行列式变化等概概念模糊不清. 大概课本依旧是天书, 于是上B站搜索线性代数, 看到 3Blue1Brown 线性变换本质 视频, 点击观看. 惊为天人 --> 豁然开朗 --> 突然顿悟 --> 开心不已…...

【vue3】@click函数传动态变量参数

根据java的学习&#xff0c;摸索了一下vue3 函数传参的方式。以此作为记录。有更好的其它方式&#xff0c;可以评论区补充。 <script> const tmpref(); </script><button click"tmpFunction(传递参数:tmp)">按钮</button> // 直接【字符串…...

用matplotlib生成一个炫酷的爱心

下面是结合数学方程和可视化技巧&#xff0c;生成一个炫酷的爱心效果&#xff1a; import numpy as np import matplotlib.pyplot as plt from matplotlib.animation import FuncAnimation # 创建画布 fig plt.figure(figsize(8, 8)) ax plt.axes(xlim(-2.5, 2.5), ylim(-3,…...

【leetcode hot 100 300】最长递增子序列

错误解法&#xff1a;在每次更新db[i]时&#xff0c;如果当前nums[i]>nums[i-1]就db[i-1]1&#xff0c;否则db[i-1] class Solution {public int lengthOfLIS(int[] nums) {int n nums.length;int[] db new int[n]; // db[i]表示到i的最长严格递增子序列的长度db[0] 1;f…...

oracle 12c密码长度,复杂度查看与设置

一 密码长度和复杂度 Oracle 数据库通过 PASSWORD_VERIFY_FUNCTION 来控制密码复杂度。 1.1 查看当前的密码复杂度设置 SELECT * FROM dba_profiles WHERE resource_name PASSWORD_VERIFY_FUNCTION; LIMIT表示分配给该 PROFILE 的密码验证函数名称。如果为 NULL&#xff0c;…...

数据结构——哈希技术及链地址法

目录 一、哈希的定义 二、哈希冲突定义 三、构造哈希函数的方法 四、四种解决哈希冲突的方法 4.1 开放地址法 4.2 链地址法 4.3 再散列函数法 4.4 公共区溢出法 五、链地址法结构体设计 六、基本操作的实现 6.1 哈希函数 6.2 初始化 6.3 插入值 6.4 删除值 6.5 查…...

开源CMS的模块化设计和API接口如何具体影响其扩展性?

优秀的CMS系统都有自己主打的特点&#xff0c;开源CMS凭借其灵活性和低成本优势占据了市场主流地位&#xff0c;而模块化设计与API接口正是其扩展性的两大基石。本文将深入探讨这两大技术特性是如何影响cms的扩展性的。 一、模块化设计&#xff1a;功能解耦与生态繁荣的引擎 …...

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书

【Docker】快速部署 Certbot 并为 Nginx 服务器配置 SSL/TLS 证书 引言 Certbot 是一个免费的开源工具&#xff0c;用于自动化管理和获取 SSL/TLS 证书&#xff0c;主要用于与 Let’s Encrypt 证书颁发机构交互。 步骤 Nginx 挂载 certbot 文件夹。 docker run -d \--name…...

Redis下载稳定版本5.0.4

https://www.redis.net.cn/download/ Redis下载 Redis 版本号采用标准惯例:主版本号.副版本号.补丁级别,一个副版本号就标记为一个标准发行版本,例如 1.2,2.0,2.2,2.4,2.6,2.8,奇数的副版本号用来表示非标准版本,例如2.9.x发行版本是Redis 3.0标准版本的非标准发行版本…...

Google Chrome下载受限制的解决方案【方法指南】

在国内使用网络时&#xff0c;部分用户在尝试访问Google Chrome官网下载谷歌浏览器时&#xff0c;常常遇到网页无法打开或文件下载失败的情况。这种下载受限制的问题多由网络访问政策或DNS解析异常导致。为了正常获取Google Chrome的最新版安装程序&#xff0c;用户需要通过一些…...

Linux关于git上传大文件的解决方案:使用Git LFS

最近想要上传sdk到gitlab仓库上&#xff0c;但是使用git push的时候发现限制文件上传的大小限制到了100MB。 保持当前仓库的干净&#xff0c;要么重新拉取&#xff0c;要么git reset HEAD^ --hard这个命令来重新进行commit&#xff0c;直到撤回到代码上显示没有commit的地方为止…...

JAVA后端八股面试经验总结-前言篇

1️⃣个人暑期实习面试情况 暑期实习面试告一段段落了 陆陆续续大小厂有20&#xff0b;Java后端开发的面经 2️⃣为什么要写这个呢&#xff1f; ①首先&#xff0c;了解最重点的面试最爱问的题型有哪些&#xff1f; 我会整理出我面到过至少2次的题目和回答方式&#xff0…...

《计算机名人堂》专栏介绍:先驱之路

名人说&#xff1a;路漫漫其修远兮&#xff0c;吾将上下而求索。—— 屈原《离骚》 创作者&#xff1a;Code_流苏(CSDN)&#xff08;一个喜欢古诗词和编程的Coder&#x1f60a;&#xff09; 目录 &#x1f31f;引言&#xff1a;先驱之路一、出发点&#xff1a;讲述数字世界的缔…...

参照Spring Boot后端框架实现序列化工具类

本文参照Jackson实现序列化工具类&#xff0c;旨在于简化开发 JacksonUtil.class public class JacksonUtil {private JacksonUtil() {}/*** 单例*/private final static ObjectMapper OBJECT_MAPPER;static {OBJECT_MAPPER new ObjectMapper();}private static ObjectMappe…...

mysql 删除表等待

今天有个表加字段&#xff0c;语句是先删除&#xff0c;后重新建&#xff0c;表没有数据 &#xff0c;但是删除一个表的时候&#xff0c;语句drop table 提示超时 show processlist 后&#xff0c;等待类型是 Waiting for table metadata lock 取消重试几次后仍然是如此…...

MCP工具的配置文件格式是怎么样的?MCP教程平台推荐

MCP&#xff08;Model Context Protocol&#xff09;配置文件是AI开发中连接MCP服务器的核心文件&#xff0c;采用JSON格式定义服务参数。它广泛应用于Cursor、ChatWise等AI开发工具&#xff0c;帮助开发者快速配置本地或远程MCP服务。本文将深入解析MCP配置文件的结构、获取方…...