一篇理解TCP协议

一、TCP协议概念。

TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的传输层协议。它主要用于在计算机网络中,通过建立可靠的通信连接来进行数据传输。

TCP协议的特点如下:

  • 可靠性:TCP使用确认、重传和超时等机制,确保数据可靠地传输到目标主机,并且按照正确的顺序组装。
  • 面向连接:数据传输之前需要在发送端和接收端建立连接,传输完成后再释放连接。
  • 全双工通信:TCP允许同时进行双向的数据传输,即发送方和接收方可以同时发送和接收数据。
  • 流量控制:TCP通过滑动窗口机制进行流量控制,控制发送速率,以适应接收方的处理能力。
  • 拥塞控制:TCP通过拥塞窗口机制和慢启动算法来进行拥塞控制,防止网络拥塞。
  • 高效性:TCP使用各种优化算法,如快速重传、快速恢复等,提高数据传输的效率。
  • 适用性广泛:TCP被广泛应用于互联网和局域网等各种计算机网络中,支持各种应用程序的可靠数据传输。

二、TCP工作流程。

通过NDS获取IP地址之后,就会把HTTP的传输工作交给TCP协议完成。
在这里插入图片描述

三、TCP报文格式。

在这里插入图片描述

四、三次握手和四次挥手。

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 为什么需要四次挥手?
    把ACK和FIN分开发送的原因是因为当主动方在数据传送结束后发出连接释放的通知,由于被动方可能还有必要的数据要处理,所以会先返回 ACK 确认收到报文。当被动方也没有数据再发送的时候,则发出FIN通知,对方确认后才完全关闭TCP连接。
  • 为什么TIME_WAIT等待时间是2MSL?
    MSL是报文的最大生存时间,超过这个时间,报文就将丢弃。
    确保对方能够收到最后一个ack报文,如果服务端没有收到最后的ACK报文,就会触发超时重传FIN报文,从客户端发送ACK报文到接到到服务端重传的FIN报文,一去一来,最多就需要2MSL。

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

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

相关文章

九、互联网技术——记忆背诵

文章目录 一、网络操作系统的功能和特性二、网络操作系统的逻辑构成四、主动攻击和被动攻击五、安全机制和安全服务六、信息与数据七、数据处理与数据管理八、数据模型九、概念模型的E-R表示方法十、四种数据模型十一、数据库系统组成十二、DBMS主要功能十三、数据库系统的3级模…

最新AI创作系统源码ChatGPT网站源码V2.6.3/支持Midjourney绘画/支持OpenAI GPT全模型+国内AI全模型

一、AI创作系统 SparkAi创作系统是基于OpenAI很火的ChatGPT进行开发的Ai智能问答系统,支持OpenAI GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美,可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI创作Chat…

【C语言初阶】分支语句和循环语句

目录 一、什么是语句 二、分支语句 2.1 if 语句 2.1.1 悬空else 2.1.2 if 书写形式的对比 2.2 switch语句 2.2.1 在switch语句中的 break 2.2.2 default子句 2.2.3 练习 三、循环语句 3.1 while循环 3.1.1 while语句中的break 3.1.2 while语句中的continue 3.2 fo…

[JAVAee]SpringBoot-AOP

目录 Spring AOP ​编辑AOP适用场景 AOP的组成 连接点(Join Point) 切点(Pointcut) 通知(Advice) Spring AOP的实现 添加依赖 定义切面与切点 切点表达式的说明 定义相关的通知 Spring AOP AOP(Aspect Oriented Programming)是面向切面编程,是一种设计思想.对某一类…

MySQL实战基础知识入门(13):数据类型

MySQL实战基础知识入门 MySQL实战基础知识入门(1):登录数据库命令行MySQL实战基础知识入门(2):统计一天24小时数据默认补0的sql语句MySQL实战基础知识入门(3):近7日销量合计php后端mysql语句如果当日为空则自动补0的解决方案MySQL实战基础知…

Qt扫盲-QTreeView 理论总结

QTreeView 理论使用总结 一、概述二、快捷键绑定三、提高性能四、简单实例1. 设计与概念2. TreeItem类定义3. TreeItem类的实现4. TreeModel类定义5. TreeModel类实现6. 在模型中设置数据 一、概述 QTreeView实现了 model 中item的树形表示。这个类用于提供标准的层次列表&…

criu简单例子

CRIU(Checkpoint/Restore In Userspace)是运行在linux操作系统上的一个开源软件,其功能是在用户空间实现Checkpoint/Restore功能。 github地址如下:https://github.com/checkpoint-restore/criu 本人选取的版本是3.12&#xff0…

多地智能停车场系统,如何实现数据互联互通?

某公司是从事嵌入式工控车牌自动识别系统、RFID蓝牙远距离读写系列、RFID电子标签系列、智能卡停车场、门禁一卡通智能管理系统、公务车派遣系统、运输车统计系统设备的开发、设计、制造、安装、调试及售后服务的企业。在智能卡停车场系统设备、人员通道闸设备方面有多项国家专…

经典算法----迷宫问题(找出所有路径)

目录 前言 问题描述 算法思路 定义方向 回溯算法 代码实现 前言 前面我发布了一篇关于迷宫问题的解决方法,是通过栈的方式来解决这个问题的(链接:经典算法-----迷宫问题(栈的应用)-CSDN博客)&#xff…

MongoEngine 简介安装、连接、数据类型及其参数详解

文章目录 前言一、MongoEngine 简介二、MongoEngine的安装与连接1. 安装MongoEngine2. 连接到MongoDB3. 定义数据模型 三、MongoEngine模型介绍1. 常见数据类型2. 数据类型参数 总结 前言 为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方…

环面上 FHE 的快速自举:LUT/Automata Blind Rotate

参考文献: [AP14] Alperin-Sheriff J, Peikert C. Faster bootstrapping with polynomial error[C]//Advances in Cryptology–CRYPTO 2014: 34th Annual Cryptology Conference, Santa Barbara, CA, USA, August 17-21, 2014, Proceedings, Part I 34. Springer B…

Go Gin Gorm Casbin权限管理实现 - 1. Casbin概念介绍以及库使用

文章目录 0. 背景1. 核心概念1.1 Model1.2 Policy1.3 实例分析1.3 ACL模型和RBAC模型1.3.1 ACL模型1.3.2 RBAC模型 2. 库使用2.1 Enforcer 执行器概念2.2 adapter 适配器概念2.3 Functions(Matchers中的函数) 3. 结语 0. 背景 Casbin是用于Golang项目的功能强大且高效的开源访问…