【计算机网络篇】TCP协议

news/2024/5/17 17:27:46 标签: 计算机网络, 网络协议, 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.niftyadmin.cn/n/4960258.html

相关文章

超全的数据可视化大屏设计组件库 sketch格式

随着大屏可视化设计需求的发展,可视化sketch矢量素材变得越来越受欢迎,它可以为设计师提供丰富的设计元素,帮助他们更高效更快速的完成设计任务。 大屏可视化sketch数量素材是B端可视化设计师们最佳设计资源,它可以帮助设计师轻松…

多线程的事务控制

直接看代码,这是一个多线程生成库存同步任务的,事务控制为一个大的事务,回滚就全部线程的任务不提交全部回滚 Autowired private PlatformTransactionManager transactionManager;Transactional(rollbackFor Exception.class, value "transactionManagerMysql", pr…

【数据结构入门指南】二叉树

【数据结构入门指南】二叉树 一、二叉树的概念二、现实中的二叉树三、特殊的二叉树四、二叉树的性质五、二叉树的存储结构5.1 顺序结构5.2 链式结构 一、二叉树的概念 二叉树是一棵特殊的树。一棵二叉树是结点的一个有限集合,该节点: ①:或者…

客户服务体系最重要一点——如何进行同理心构建

您可以将所有的时间和精力投入到竞争激烈的商业、网络和发展世界中,但您只能通过一件关键的事情获得成功:卓越的客户服务。 出色的客户服务的关键要素在于一件事:具有同理心的能力。在客户服务领域,同理心是一种神奇的成分&#…

7.elasticsearch同步工具-logstah

1.logstah Logstash 是一个用于数据处理和转换的开源工具,它可以将来自不同源头的数据收集、转换、过滤,并将其发送到不同的目标。Logstash 是 ELK(Elasticsearch、Logstash 和 Kibana)技术栈的一部分,通常与 Elastics…

教你如何制作在线查分系统

随着科技的不断进步,教育领域也开始逐渐应用互联网技术,其中之一便是在线查分系统。易查分作为一种方便快捷的在线查分工具,为老师提供了更加高效的成绩管理方式。那么,老师如何使用易查分制作在线查分系统呢? 首先&am…

JavaScript基础(Dom操作)

目录 一,BOM模型1.1,BOM可实现功能 二,Window对象的常用属性2.1,Window对象的常用方法2.1-1,open()和close()方法 三,History对象四,Location对象五,Document对象的常用方法六&#…

Mysql5.7.36主从同步实操

主库创建同步账户 #创建备份的账户 CREATE USER backup192.168.32.1 IDENTIFIED BY backup123; #给账户授予备份的权限 GRANT REPLICATION SLAVE ON *.* TO backup192.168.32.1; #刷新权限 FLUSH PRIVILEGES;停止主库 配置主库需要的备份参数 打开my.ini文件,配置…