【计算机网络篇】TCP协议

✅作者简介:大家好,我是小杨
📃个人主页:「小杨」的csdn博客

🐳希望大家多多支持🥰一起进步呀!


TCP协议

1,TCP 简介

TCP(Transmission Control Protocol)是一种在计算机网络中广泛使用的传输层协议,用于在网络上可靠地传输数据。

TCP 提供了可靠的、面向连接的通信,并负责数据的划分、排序和重传,以确保数据在网络中可靠地传输、按顺序到达。


2,TCP 特点

TCP的主要特点为面向连接,可靠传输,面向字节流,全双工通信。下面对这些特点进行逐一解释:

1,面向连接:TCP是一种面向连接的协议,这意味着在通信双方进行数据传输之前需要建立连接。连接的建立过程涉及到三次握手,这种连接确保了通信双方之间的可靠性和顺序性。

2,可靠传输:TCP提供了可靠的数据传输,这意味着它会确保数据在发送方和接收方之间以正确的顺序、无差错地传递。TCP使用确认机制、重传机制和序列号等技术来实现数据的可靠传输,在不稳定的网络环境中也能保证数据的准确性。

3,面向字节流:TCP将数据视为连续的字节流,而不是离散的消息。这意味着应用程序可以按照需要将数据划分为任意大小的数据块,TCP会将这些数据块分割为合适大小的数据段进行传输。接收方会按照序列号将数据段重新组装成完整的字节流并解析。

4,全双工通信:TCP连接支持全双工通信,这意味着通信双方可以同时进行双向的数据传输,而不需要等待对方的响应。发送方和接收方可以独立地发送和接收数据,而不会干扰对方的操作。

此外,TCP除了上述的主要特点外,还有其它的特点:

  • 流量控制:TCP通过滑动窗口机制对发送方的发送速率进行控制,避免因发送方发送过多的数据导致接收方缓冲区溢出。
  • 拥塞控制:TCP具有拥塞控制算法,可以根据网络状况动态调整发送速率,避免网络拥塞发生,保持网络的稳定性和公平性。

3,TCP 段格式

段是TCP传输数据的基本单位,由2部分所构成,分别为报头和数据区。

TCP 协议段格式示意图:

TCP 段格式中的各字段代表含义如下:

1,源端口号:16位字段,表示发送方的端口号。

2,目的端口号:16位字段,表示接收方的端口号。

3,序列号:32位字段,表示发送方发送数据的字节流的序列号,实现有序传输。

4,确认号:32位字段,表示接收方期望收到的下一个字节的序列号,实现可靠传输。

5,数据偏移:4位字段,表示TCP头部的长度,以32位(4字节)为单位计算。

6,保留:6位字段,保留供将来使用。

7,控制标志:6位字段,用于控制TCP的连接和传输行为,包含URG、ACK、PSH、RST、SYN、FIN等标志位。

8,窗口大小:16位字段,表示接收方当前可以接收的数据量,实现流量控制。

9,校验和:16位字段,用于校验TCP头部和数据的完整性。

10,紧急指针:16位字段,用于指示紧急数据的位置,在URG标志位被设置时才有效。

11,选项:可选字段,用于扩展TCP协议的功能,如选择确认、最大段长度等。

12,数据:可选字段,TCP段中携带的实际数据部分。

以上是TCP段的主要字段,并通过这些字段实现了可靠的数据传输、流量控制、拥塞控制和连接管理等功能。


TCP 段中的注意事项:

1,数据偏移该字段表示TCP头部的长度,以32位(4字节)为单位计算。具体来说,它表示TCP头部中有多少个4字节的字。

每个数据偏移的值乘以4就得到了TCP头部的长度,数据偏移字段的取值范围是0-15,这就使得TCP可以适应不同的选项需求。

2,TCP头部中的选项字段的长度是可变的,其是由数据偏移字段决定的,选项字段的长度范围区间为0字节到40字节。

当数据偏移值为5时,说明整个TCP报头为20字节,相当于没有选项;而当数据偏移值为15时,这时选项字段占用40字节。

3,控制标志字段用于控制TCP的连接和传输行为,包含URG、ACK、PSH、RST、SYN、FIN等标志位。标志位逐一解释:、

  • URG(Urgent):表示紧急指针字段是否有效,即是否有紧急数据需要处理。
  • ACK(Acknowledgment):表示确认号字段是否有效,即确认是否已接收到的数据。
  • PSH(Push):提示接收方应用层尽快传递数据给应用程序,不需要等待缓冲区充满。
  • RST(Reset):请求重置连接,终止连接或处理异常情况。复位报文段
  • SYN(Synchronize):用于建立连接,初始化序列号。同步报文段
  • FIN(Finish):用于释放连接,表明发送方已经发送完数据。结束报文段

结语

这就是本期博客的全部内容啦!如果有什么其他的问题无法自己解决,可以在评论区留言哦!

最后,如果你觉得这篇文章写的还不错的话或者有所收获的话,麻烦小伙伴们动动你们的小手,给个三连呗(点赞👍,评论✍,收藏📖),多多支持一下!各位的支持是我最大的动力,后期不断更新优质的内容来帮助大家,一起进步。那我们下期见!

在这里插入图片描述


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

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

相关文章

探究HTTP API接口测试:工具、方法与自动化

本文将深入探讨HTTP API接口测试的重要性,并介绍了相关工具、方法以及自动化测试的实施,同时比较了HTTP和API接口测试的区别。从不同角度解析这一关键测试领域,帮助读者更好地理解和应用于实际项目中。 在如今数字化的世界中,软件…

【学会动态规划】摆动序列(27)

目录 动态规划怎么学? 1. 题目解析 2. 算法原理 1. 状态表示 2. 状态转移方程 3. 初始化 4. 填表顺序 5. 返回值 3. 代码编写 写在最后: 动态规划怎么学? 学习一个算法没有捷径,更何况是学习动态规划, 跟我…

STM32--MPU6050与I2C外设

文章目录 前言MPU6050参数电路MPU6050框图 IIC外设框图 IIC的基本结构软件IIC实现MPU6050硬件IIC实现MPU6050 前言 在51单片机专栏中,用过I2C通信来进行实现AT24C02的数据存储; 里面介绍的是利用程序的编程来实现I2C的时序,进而实现AT24C02与…

k8s-dashboard使用指导手册

一、访问 dashboard http://172.66.209.101:32001 二、选择 Namespace 如下图: 1 在①搜索框中输入 spms 2 在②选择 spms-cloud 三、查找 pod 1 打开 pod 列表 2 打开过滤窗口 3 搜索 pod 在打开的搜索框中输入 pod的关键字,支持模糊搜索 如搜索…

Linux系统USB摄像头测试程序(三)_视频预览

这是在linux上usb摄像头视频预览程序&#xff0c;此程序用到了ffmpeg、sdl2、gtk3组件&#xff0c;程序编译之前应先安装他们。 #include <sys/ioctl.h> #include <sys/stat.h> #include <sys/types.h> #include <fcntl.h> #include <zconf.h> …

代码随想录算法训练营第四十二天 | 01背包问题,01背包问题(滚动数组),416. 分割等和子集

代码随想录算法训练营第四十二天 01背包问题01 背包二维dp数组01背包 01背包问题(滚动数组)416. 分割等和子集 01背包问题 视频讲解 以下是几种背包&#xff0c;如下&#xff1a; 至于背包九讲其其他背包&#xff0c;面试几乎不会问&#xff0c;都是竞赛级别的了&#xff0c;…

HBuilderX学习--运行第一个项目

HBuilderX&#xff0c;简称HX&#xff0c;是轻如编辑器、强如IDE的合体版本&#xff0c;它及轻巧、极速&#xff0c;强大的语法提示&#xff0c;提供比其他工具更优秀的vue支持大幅提升vue开发效率于一身(具体可看官方详细解释)… 一&#xff0c;HBuilderX下载安装 官网地址 …

mybatis动态SQL的运用

一、mybatis动态SQL update 表名 set name?,age? where id? 如果我们的前台没有传参&#xff0c;比如没有传入我们的name值&#xff0c;name就会把字段值改为null&#xff0c;这就违背了我们编码的初衷。 许多人会使用类似于where 1 1 来作为前缀&#xff0c;在代码中会用i…

企业数字化转型大数据湖一体化平台项目建设方案PPT

导读&#xff1a;原文《企业数字化转型大数据湖一体化平台项目建设方案PPT》&#xff08;获取来源见文尾&#xff09;&#xff0c;本文精选其中精华及架构部分&#xff0c;逻辑清晰、内容完整&#xff0c;为快速形成售前方案提供参考。 喜欢文章&#xff0c;您可以点赞评论转发…

Django视图-HttpRequest请求对象和HttpResponse响应对象

文章目录 HttpRequestHttpResponse实践request对象的属性和方法响应 def index(request): 这个request其实就是内部已经封装好的Http请求HttpRequest&#xff0c;它是一个请求对象Django中的视图主要用来接受Web请求&#xff0c;并做出响应。 视图的本质就是一个Python中的函数…

手机debug模式无法连接AndroidStudio,或者Android项目运行失败

在开发中&#xff0c;经常会遇到手机开发模式无法连接AndroidStudio;或者连接后运行失败的问题&#xff0c;请关闭以下设置。

Android学习之路(9) Intent

Intent 是一个消息传递对象&#xff0c;您可以用来从其他应用组件请求操作。尽管 Intent 可以通过多种方式促进组件之间的通信&#xff0c;但其基本用例主要包括以下三个&#xff1a; 启动 Activity Activity 表示应用中的一个屏幕。通过将 Intent 传递给 startActivity()&…

SpringMVC拦截器学习笔记

SpringMVC拦截器 拦截器知识 拦截器(Interceptor)用于对URL请求进行前置/后置过滤 Interceptor与Filter用途相似但实现方式不同 Interceptor底层就是基于Spring AOP面向切面编程实现 拦截器开发流程 Maven添加依赖包servlet-api <dependency><groupId>javax.se…

基于Spring Boot的游泳馆管理系统的设计与实现(Java+spring boot+MySQL)

获取源码或者论文请私信博主 演示视频&#xff1a; 基于Spring Boot的游泳馆管理系统的设计与实现&#xff08;Javaspring bootMySQL&#xff09; 使用技术&#xff1a; 前端&#xff1a;html css javascript jQuery ajax thymeleaf 微信小程序 后端&#xff1a;Java spring…

阿里云容器镜像服务ACR(Alibaba Cloud Container Registry)推送镜像全过程及总结

前提&#xff1a;安装配置好docker&#xff0c;可参考我这篇 基于CentOS7安装配置docker与docker-compose。 一、设置访问凭证 1.1 容器镜像服务ACR 登录进入阿里云首页&#xff0c;点击 产品-容器-容器镜像服务ACR 点击管理控制台 1.2 进入控制台-点击实例列表 个人容器…

xcode14.3更新一系列问题

1. Missing file libarclite_iphoneos.a (Xcode 14.3) 解决方法 Xcode升级到14.3后编译失败&#xff0c;完整错误日志&#xff1a; File not found: /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphoneo…

简单介绍 CPU 的工作原理

内部架构 CPU 的根本任务就是执行指令&#xff0c;对计算机来说最终都是一串由 0 和 1 组成的序列。CPU 从逻辑上可以划分成 3 个模块&#xff0c;分别是控制单元、运算单元和存储单元 。其内部架构如下&#xff1a; 【1】控制单元 控制单元是整个CPU的指挥控制中心&#xff…

HarmonyOS/OpenHarmony应用开发-ArkTS语言渲染控制LazyForEach数据懒加载

LazyForEach从提供的数据源中按需迭代数据&#xff0c;并在每次迭代过程中创建相应的组件。当LazyForEach在滚动容器中使用了&#xff0c;框架会根据滚动容器可视区域按需创建组件&#xff0c;当组件划出可视区域外时&#xff0c;框架会进行组件销毁回收以降低内存占用。一、接…

【计算机视觉|生成对抗】StackGAN:使用堆叠生成对抗网络进行文本到照片逼真图像合成

本系列博文为深度学习/计算机视觉论文笔记&#xff0c;转载请注明出处 标题&#xff1a;StackGAN: Text to Photo-realistic Image Synthesis with Stacked Generative Adversarial Networks 链接&#xff1a;[1612.03242] StackGAN: Text to Photo-realistic Image Synthesis…

[Mac软件]Pixelmator Pro 3.3.12 专业图像编辑中文版

Pixelmator Pro是专为Mac设计的功能强大&#xff0c;美观且易于使用的图像编辑器。借助广泛的专业级无损图像编辑工具&#xff0c;Pixelmator Pro可使您发挥出最佳的照片效果&#xff0c;创建华丽的构图和设计&#xff0c;绘制&#xff0c;绘画&#xff0c;应用令人惊叹的效果&…