运输层:TCP的运输连接管理

news2024/11/26 4:41:08

1.运输层:TCP的运输连接管理

笔记来源:
湖科大教书匠:TCP的连接建立
湖科大教书匠:TCP的连接释放

声明:该学习笔记来自湖科大教书匠,笔记仅做学习参考

TCP是面向连接的协议,它基于运输连接来传送TCP报文段

TCP运输连接的建立和释放是每一次面向连接的通信中必不可少的过程

TCP的运输连接管理就是使运输连接的建立和释放都能正常地进行

1.1 TCP的连接建立

TCP的连接建立要解决的三个问题

  1. 使TCP双方能够确知对方的存在;
  2. 使TCP双方能够协商一些参数(如最大窗口值、是否使用窗口扩大选项和时间戳选项以及服务质量等)
  3. 使TCP双方能够对运输实体资源(如缓存大小、连接表中的项目等)进行分配。

TCP使用“三报文握手”建立连接

最初TCP客户端和服务器端均处于关闭状态
服务器进程首先建立传输控制块,用来存储TCP连接中的重要信息
建立好传输控制块后,服务器准备接受客户的连接请求,服务器进入监听状态(被动等待客户连接请求,即被动打开连接)

客户端建立传输控制块


传输控制块建立好后,发送TCP连接请求(主动发起请求,即主动打开连接)
SYN=1表明这是一个TCP连接请求报文段(这种报文段不能携带数据)
seq=x 报文段初始序号

服务器端接收到请求报文段后,发送针对TCP连接请求的确认报文段
报文段中的同步位SYN=1、确认位ACK=1表明这是一个TCP连接请求确认报文段(这种报文段不能携带数据)
报文段的数据载荷序号 seq=y
报文段的确认序号 ack=x+1 是对初始序号x的确认

客户端接收到确认报文段后发送确认信息并进入连接已建立状态

服务器端收到确认信息后进入连接已建立状态



如果采用两报文握手,可能会造成服务器一直处于连接已建立状态,而客户端却没有发起TCP连接请求,导致服务器被占用却不用的情况
三报文握手中发送针对TCP连接请求确认的确认不是多余的,它是为了防止已失效的连接请求报文段突然又传送到了TCP服务器,因而导致错误。

1.2 TCP的连接释放

TCP通过“四报文挥手”来释放连接
TCP客户端主动关闭连接

客户端发送TCP连接释放报文段
该报文段中的终止位FIN=1、确认位ACK=1表明这是TCP连接释放报文段
报文段序号 seq=u,报文段确认序号ack=v

服务器端收到释放报文段后,发送普通确认报文段
该报文段中确认位ACK=1表明这是普通TCP确认报文段
报文段的数据载荷序号 seq=v
报文段的确认序号 ack=u+1 是对序号u的确认

通知服务器端服务进程通知其应用进程断开连接,此时客户端 -> 服务器端这个方向的连接释放,但客户端 <- 服务器端这个方向的连接并没有释放,若此时仍有数据要传输给客户端,是可以进行传输的

报文段中的终止位FIN=1,确认位ACK=1表明这是一个TCP连接释放报文段
报文段的数据载荷序号 seq=w
报文段确认序号 ack=u+1



客户端有必要等待2MSL时间后再关闭吗?有,如果客户端确认报文段丢失,而客户端不进行等待,则服务器端发送给客户端的超时重传报文段无法接收

若客户端在建立完成后出现了故障,服务器如何发现其发生了故障?使用保活计时器

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

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

相关文章

易查分怎么上传成绩?学会这个技巧,轻松搞定

当使用易查分制作查询系统时&#xff0c;许多老师可能对于如何上传成绩感到困惑。有时候&#xff0c;导入成绩到易查分系统后&#xff0c;信息可能无法完全显示&#xff0c;而且也很难找到错误的原因。因此&#xff0c;今天我将与老师们分享一下易查分上传成绩的方法。这个技巧…

word自动编号变黑块的亲测解决方案

具体问题如下&#xff1a; 出现这种情况就是word的自动编号字体出错&#xff0c;可以在word中运行脚本来解决&#xff1a; Sub repair()For Each templ In ActiveDocument.ListTemplates For Each lev In templ.ListLevels lev.Font.Reset Next lev Next templEnd Sub代码如上…

二十三种设计模式第十三篇--享元模式

享元模式&#xff0c;主要就是一种池化方案&#xff0c;主要用于创建对象的数量&#xff0c;以减少内存占用和提高性能。这种类型的设计模式属于结构型模式&#xff0c;它提供了减少对象数量从而改善应用所需的对象结构的方式。 享元模式&#xff0c;尝试重用现有的同类对象&a…

ros2 c++实现JY_95T IMU解算三轴 加速度 角速度 欧拉角 磁力计 四元数

起因&#xff0c;机器人建图导航程序需要做里程计 imu数据融合&#xff0c;需要填充imu数据&#xff0c;但对imu填充的数据一直不是很了解&#xff0c;并且正在学习c的类与对象&#xff0c;新近入手了一款JY_95T IMU&#xff0c;没有ros2的c实现&#xff0c;所幸就拿它练练手&a…

Cocos2dx学习笔记:浅谈游戏内的适配方案

前言 本篇在讲什么 Cocos2dx中的适配方案 本篇适合什么 适合初学Cocos的小白 本篇需要什么 对Lua语法有简单认知 依赖Cocos2dx3.15环境 依赖Sublime Text编辑器 依赖VS 2015编辑器 本篇的特色 具有全流程的图文教学 重实践&#xff0c;轻理论&#xff0c;快速上手…

vue基于SpringBoot的智慧城市社区生活分类信息管理系统的设计与实现_2p760

表名&#xff1a;dongwuzhonglei 功能&#xff1a;动物种类 字段名称 类型 长度 字段说明 主键 默认值 id bigint 主键 主键 addtime timestamp 创建时间 CURRENT_TIMESTAMP dongwuzhonglei varchar 200 动物种类 …

防止video视频被下载的几种处理办法

1&#xff0c;video禁用下载功能 <video controlslist"nodownload"></video>2&#xff0c;隐藏鼠标右键&#xff0c;禁止复制链接 document.oncontextmenu function () {return false; }3&#xff0c;使用云点播等第三方播放控件&#xff0c;最好的话…

图像增强算法Retinex原理与实现详解

文章目录 1. 引言2. Retinex算法原理2.1 单尺度Retinex示例代码 2.2 多尺度Retinex示例代码 2.3 颜色恢复示例代码 2.4 最终图像处理代码示例 3. Retinex算法的Python实现4. 完结 1. 引言 图像增强是图像处理中的重要技术之一&#xff0c;它可以改善图像的亮度、对比度和颜色等…

微信开发者工具模拟器中不显示鼠标问题

前言 在使用微信开发者工具开发微信小程序时&#xff0c;使用到了第二屏幕&#xff0c;在第一屏幕上&#xff0c;微信开发者工具模拟器中&#xff0c;可以正常显示鼠标&#xff0c;而在第二屏幕上不显示鼠标。 解决方案&#xff1a; 方案1&#xff1a;设置指针轨迹&#xff…

【JMeter分布式压测连接Jenkins生成测试报告报错:Data exporter “html“ is unable to export data】

An error occurred: Data exporter “html” is unable to export data. Build step “Execute shell” marked build as failure 发生了一个错误:数据导出器“html”无法导出数据。 构建步骤“执行shell”将构建标记为失败 查看JMeter-master日志jmeter.log 发现是由于没有r…

基于springboot+vue的文物收藏系统(源代码+数据库+13000字论文)082

基于springbootvue的文物收藏系统(源代码数据库13000字论文)082 一、系统介绍 本项目前后端分离(本项目有ssmvue版本) 本系统分为管理员、用户两种角色 用户角色包含以下功能&#xff1a; 登录、文物查看、文物资料下载、文物收藏管理、文物维护管理、文物封存管理、个人中…

赛效:电子书可以转换成TXT吗

1&#xff1a;在“其他功能”菜单里点击“电子书转TXT”。 2&#xff1a;点击页面中间的号或者拖拽电子书上传。常规格式的电子书&#xff0c;都可以上传。 3&#xff1a;文件添加成功后&#xff0c;点击右下角的“开始转换”。 4&#xff1a;文件转换成功后&#xff0c;点击下…

Vue element admin git安装失败-2023年7月6日

Vue element admin-2023年7月6日 Vue element admin官网安装失败&#xff0c;是由于依赖包&#xff0c;所nodejs要求版本很低&#xff0c;导致和新版的18、16版本不兼容&#xff0c;git下安装失败。解决办法 Vue element admin官网 https://panjiachen.gitee.io/vue-element-a…

大数据的薪资怎么样?是真的很高么

既然提到了数据的问题&#xff0c;其实不妨看一下各大招聘平台在不同城市给出的薪资&#xff0c;百闻不如一见&#xff0c;自己真正看到了就知道能拿多少了。当然&#xff0c;是否能高薪&#xff0c;很大一部分还是取决于自身的能力的 猎聘大数据研究院发布了《2022未来人才就…

【yolov5】训练自己的数据集-实践笔记

【yolov5】训练自己的数据集-实践笔记 使用yolov5训练自己的数据集&#xff0c;以RSOD数据集为例&#xff0c;图像数量976&#xff0c;一共四类。 yolov5源码&#xff1a;https://github.com/ultralytics/yolov5 官网的代码会一直更新&#xff0c;相关依赖环境也会变&#xf…

嵌套和递归使用模板类

嵌套和递归使用模板类 模板栈模板数组栈中嵌套数组数组中嵌套栈数组中嵌套数组 模板栈 #pragma once #include <iostream> // 包含头文件。 using namespace std; // 指定缺省的命名空间。template<class DataType> class mystack2 { private:Data…

Java面向对象程序开发——文件与流

文章目录 前言File类IO字符流与字节流字符流字节流打印流缓冲流 前言 File类 是文件和目录路径名的抽象表示&#xff0c;主要用于文件和目录的创建、查找和删除等操作。 方法有三类&#xff1a;1获取、2判断、3创建或删除 public String getAbsolutePath() &#xff1a;返回…

ELK部署安装

目录 一、环境准备 1.准备三台服务器&#xff08;带图形化的linuxCentOS7&#xff0c;最小化缺少很多环境&#xff09; 2.修改主机名 3.关闭防火墙 4.elk-node1、elk-node2 用系统自带的java 5.上传软件包到node1和node2 二、部署elasticsearch 1、node1、node2操作 2.no…

《华尔街幽灵》的三大交易规则

规则1&#xff1a;只持有正确的仓位 如果你下单后经过一段时间&#xff0c;市场没有证明你的交易是正确的&#xff0c;那么应该立即平仓。交易者在每次建仓后&#xff0c;首先应关注保护本金&#xff0c;及早平掉不正确的仓位&#xff0c;而不是过多考虑盈利金额。 如何判断交…

生命在于学习——风险评估

风险评估的目录 一、网络安全风险评估概述1、概念2、意义3、步骤4、基本原则5、评估要素6、网络安全风险评估方法 二、网络安全风险评估方法三、网络安全风险评估方案1、确定评估范围和目标2、收集信息3、评估威胁和漏洞4、评估安全控制5、评估风险和制定建议6、报告和沟通 四、…