计算机网络1:Tcp三次握手和四次挥手

news2024/12/27 3:55:35

一、TCP传输的过程-三次握手

1.建立连接并确认连接(三次握手)


** 过程: **
(1)客户端向服务端发出连接请求SYN=1,seq=x,等待服务端响应.状态由CLOSED转为SYN_SENT
(2)服务端做出响应ACK和连接信号SYN=1,seq=y,状态由LISTEN转为SYN_RECEVD
(3)为防止数据丢失,客户端也要做出响应ACK,确认是否有效,seq=x+1。客户端和服务端状态均变未ESTABLISH

2.为什么要进行三次握手

(1)确保客户端/服务端均有接受和发送功能
(2)防止失效的连接请求到达服务器,让服务器错误打开连接
(3)防止建立多个冗余连接,造成不表的资源浪费

3.为什么不是4次

三次在理论上可以最少的建立可靠连接,不需要使用更多的通信次数

4 .进行数据传输,发送数据包


数据传输总是从 客户端—》服务端,因此客户端和服务端不是固定的。

二 、TCP传输的过程-四次挥手

1、四次挥手过程

1.(客户端:终止等待1)客户端向服务端发起关闭连接的请求FIN=1,不再发送数据了,客户端进入FIN_WAIT_1状态,但如果服务器发送数据,客户端还要接收
2.(服务端:关闭等待)服务端收到FIN,可能还有数据未传输完毕,还无法完成关闭,所以先响应客户端发送ACK,表示收到关闭请求。服务端进入CLOSE_WAIT状态
3.(客户端:终止等待2)客户端收到服务器的确认请求后,客户端进入终止等待2(FIN_WAIT_2),等待服务端发送连接释放报文
4.(服务端:最后确认)等服务器的数据传输工作完成,就把FIN信号(连接释放报文)发送给客户端,可能还会发送一些数据,服务端进入LAST_ACK状态
5.(客户端:时间等待)客户端收到服务器的FIN连接释放报文。发出确认ACK,客户端进入TIME_WAIT状态
6.(服务端:CLOSED)服务端收到客户端的确认ACK,立即进入CLOSED状态
7.客户端TIME_WAIT持续2被的MSL时长,在Linux中大约60s,之后也进入CLOSED状态
8.服务器结束TCP连接的时间比客户端早

2、为什么四次挥手

让服务端发送还未发送完成的数据,客户端知识不再发送数据,但还可以接收数据

3、为什么TIME_WAIT是2MSL

(1)确保客户端的确认报文ACK能到达服务端,如果服务端没有收到客户端发来的确认,就会重新发送关闭连接的报文
(2)确保两个传输方向上的尚未被接收活迟到的报文段都已经消失,否则如果关闭连接后,两端在原来的端口又重新建立新连接,可能导致老连接的迷途报文被新的连接收到而被误解(被误解可能以为对方要关闭连接)。
扩展:
MSL:报文最大生存时间,超过这个时间,报文就会消失

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

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

相关文章

升级到https

现在很多站长都会考虑将自己的站点从http升级到https,不仅是基于安全的考虑,有的也是因为第三方平台的限制,如谷歌浏览器会将http站点标记为不安全的站点,微信平台要求接入的微信小程序必须使用https等。 那如何将一个http站点升…

C++006-C++分支结构练习题

文章目录C006-C分支结构练习题案例练习题目描述 有一门课不及格的学生题目描述 分段函数题目描述 骑车与走路在线练习:总结C006-C分支结构练习题 在线练习: http://noi.openjudge.cn/ch0104/ https://www.luogu.com.cn/ 案例练习 参考:http…

春招Leetcode刷题日记-D1-贪心算法-分配问题

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 D1-贪心算法-分配问题何为贪心力扣455. 分发饼干思路代码何为贪心 1、顾名思义,贪心算法采用贪心的策略,保证每次操作都是局部最优的,从而…

神经网络损失函数分布可视化神器

论文名称和地址:Visualizing the Loss Landscape of Neural Netshttps://arxiv.org/pdf/1712.09913.pdf1.1 背景和动机作者主要想研究几个问题:为什么我们能够最小化高度非凸神经损失函数?为什么得到的最小值这个结果具有泛化性?不…

【C语言进阶】预处理与程序环境

目录一.详解编译与链接1.前言2.翻译环境3.剖析编译过程4.运行环境二.预处理详解1.预定义符号2.剖析#define(1).定义标识符(2).定义宏(3).替换规则(4).#和##(5).宏与函数的对比(6).#undef3.条件编译4.文件包含(1).头文件包含的方式(2).嵌套文件包含一.详解编译与链接 1.前言 在…

《流浪地球2》的现实倒影(三):从脑机接口到数字永生

是人,就会死。这个事实听起来或许很悲哀,但电影《流浪地球2》在一开始,就给出了另一种可能性——疯狂科学家进行数字生命实验,通过连接大脑的电极片,将思维意识上传到计算机,从而让人永生。电影开头的这位印…

《Keras深度学习:入门、实战与进阶》CIFAR-10图像识别

本文摘自《Keras深度学习:入门、实战与进阶》。 https://item.jd.com/10038325202263.html 这个数据集由Alex Krizhevsky、Vinod Nair和Geoffrey Hinton收集整理,共包含了60000张3232的彩色图像,50000张用于训练模型、10000张用于评估模型。…

JUC并发编程学习笔记(一)——知识补充(Threadlocal和引用类型)

强引用、弱引用、软引用、虚引用 Java执行 GC(垃圾回收)判断对象是否存活有两种方式,分别是引用计数法和引用链法(可达性分析法)。 **引用计数:**Java堆中给每个对象都有一个引用计数器,每当某个对象在其它地方被引用时,该对象的…

文献阅读:Scaling Instruction-Finetuned Language Models

文献阅读:Scaling Instruction-Finetuned Language Models 1. 文章简介2. 实验 1. 数据集 & 模型 1. 数据集考察2. 使用模型 2. scale up对模型效果的影响3. CoT对模型效果的影响4. 不同模型下Flan的影响5. 开放接口人工标注指标 3. 结论 文献链接:…

【C++】类和对象(一)

目录一、面向过程和面向对象初步认识二、类的引入三、类的定义四、类的访问限定符及封装4.1、访问限定符4.2、封装五、类的作用域六、类的实例化七、类对象的大小八、this指针8.1、this指针的引出8.2、this指针的特性8.3、C语言和C实现Stack的对比一、面向过程和面向对象初步认…

XSS漏洞,通过XSS实现网页挂马

**今天讲下通过XSS实现网页挂马~*,目的是了解安全方面知识,提升生活网络中辨别度 原理: 实验分为两部分: 1、通过Kali linux,利用MS14_064漏洞,制作一个木马服务器。存在该漏洞的用户一旦通过浏览器访问木…

C语言(C文件处理函数和文件指针)

C语言有很多文件操作函数,这里我们挑了一些重要的开始讲,首先说下这些函数都定义在stdio.h头文件中 目录 一.文件指针 二.文件处理函数 1.fopen(打开文件) 2.fclose(关闭文件) 3.getc和putc(从文件指针读取字符) 4.I/O工作…

「C++控制台生存游戏」暗黑体素 DarkVoxel 控制台版

“《只有作者能看懂的一款游戏》” 刚进高中前开始写的一款抽象的生存游戏 BUG很多请见谅 ###【点击此处,免费畅玩】### 类似泰拉瑞亚的一款游戏 『暗黑体素 DarkVoxel』 直接上图! 用控制台写出如此奇葩的生存游戏,可谓世间少有。 操作…

2022黑马Redis跟学笔记.实战篇(二)

2022黑马Redis跟学笔记.实战篇 二实战篇Redis开篇导读4.1短信登录4.1.1. 搭建黑马点评项目一、导入黑马点评项目二、导入SQL三、有关当前模型四、导入后端项目相关依赖配置redis和mysql连接项目组成概述关闭Linux防火墙五、导入前端工程六、 运行前端项目4.1.2. 基于Session实现…

选购交换机的参数依据和主要的参数指标详解

如何选购交换机?用什么交换机?在选购交换机时交换机的优劣无疑十分的重要,而交换机的优劣要从总体构架、性能和功能三方面入手。交换机选购时。性能方面除了要满足RFC2544建议的基本标准,即吞吐量、时延、丢包率外,随着…

网络是怎么连接笔记(一)WEB浏览器

文章目录介绍生成HTTP请求消息向DNS服务器查询WEB服务的IP地址全世界DNS服务器的大接力委托协议栈发送消息介绍 互联网整个消息传递流程 生成HTTP请求消息向DNS服务器查询WEB服务的IP地址然后DNS服务器进行查询IP地址委托协议给对应IP发送消息 生成HTTP请求消息 整个网络发…

Spring面试重点(三)——AOP循环依赖

Spring面试重点 AOP 前置通知(Before):在⽬标⽅法运行之前运行;后置通知(After):在⽬标⽅法运行结束之后运行;返回通知(AfterReturning):在⽬标…

2023年前端面试知识点总结(CSS篇)

近期整理了一下高频的前端面试题,分享给大家一起来学习。如有问题,欢迎指正! 1. 对CSS盒模型的理解 CSS3的盒模型有两种盒子模型:标准盒子模型、IE盒子模型 盒模型都是由四个部分组成的,分别是content(内容…

layui框架学习(6:基础菜单)

菜单是应用系统的必备元素,虽然网页中的导航也能作为菜单使用,但菜单和导航的样式和用途有所不同(不同之处详见参考文献5)。Layui中用不同的预设类定义菜单和导航的样式,同时二者依赖的模块也不一样。本文主要学习和记…

Vue (3)

文章目录1. 数据代理1.1 回顾1.2 开始2. 事件处理2.1 v-on:click 点击事件2.2 事件修饰符2.3 键盘事件3. 计算属性3.1 插值语法实现3.2 methods实现3.3 计算属性实现4. 监视属性4.1 深度监视4.2 监视属性的简写形式4.3 watch 与 computed 对比1. 数据代理 在学习 数据代理 时 先…