TCP/IP 三次握手四次分手

TCP/IP协议是网络协议中的核心协议,含三次握手,四次分手 一、网络协议 国际标准化组织(International Standard Organization,ISO)公布了开放系统互连参考模型(OSI/RM)。OSI/RM是一种分层的体系结构,参考模型共有7层。 TCP/IP(Transmission Control Protocol/Internet Protocol)作为Internet的核心协议。它是个协议族,包含多种协议。 分层的基本想法是每一层都在它的下层提供的服务基础上提供更高级的增值服务,而最高层提供能运行分布式应用程序的服务。 发送请求 阅读详情
在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。
(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 【A向B请求连接】
(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。 【B回应A:好的,你来吧】
(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。 【A回应B:好的,我来也】
完成三次握手,客户端与服务器开始传送数据。 
  
 由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。【A对B说:我传完了】 
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1(报文段5)。和SYN一样,一个FIN将占用一个序号。 【B回应A:好的】
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。 【B对A说:我传完了too】

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。 【A回应B:好的,我走了】


TCP采用四次挥手关闭连接如图2所示。 
  
1.为什么建立连接协议是三次握手,而关闭连接却是四次握手呢? 
这是因为服务端的LISTEN状态下的SOCKET当收到SYN报文的建连请求后,它可以把ACK和SYN(ACK起应答作用,而SYN起同步作用)放在一个报文里来发送。但关闭连接时,当收到对方的FIN报文通知时,它仅仅表示对方没有数据发送给你了;但未必你所有的数据都全部发送给对方了,所以你可以未必会马上会关闭SOCKET,也即你可能还需要发送一些数据给对方之后,再发送FIN报文给对方来表示你同意现在可以关闭连接了,所以它这里的ACK报文和FIN报文多数情况下都是分开发送的。 【收到2个“好的”才算完成。大家好才是真的好】
2.为什么TIME_WAIT状态还需要等2MSL后才能返回到CLOSED状态? 
这是因为虽然双方都同意关闭连接了,而且握手的4个报文也都协调和发送完毕,按理可以直接回到CLOSED状态(就好比从SYN_SEND状态到 ESTABLISH状态那样);但是因为我们必须要假想网络是不可靠的,你无法保证你最后发送的ACK报文会一定被对方收到,因此对方处于 LAST_ACK状态下的SOCKET可能会因为超时未收到ACK报文,而重发FIN报文,所以这个TIME_WAIT状态的作用就是用来重发可能丢失的 ACK报文
3. 控制信息字段
SYN: 同步序列编号(Synchronize Sequence Numbers) 
ACK: 确认字段
FIN: 发送方已经传完数据
PSH: 推送功能
RST: 重置连接
URG: 紧急指针


ADS仿真功率放大器实例学习笔记 阅读详情

相关推荐

变压器耦合放大器(低频应用+高频应用)

变压器耦合放大器(低频应用+高频应用)

m0_54943120的博客 2275

TCP/IP 的三次握手和四次分手过程详解【图解】

为了 "高内聚低耦合" 的思想,结合软件工程学理论,OSI 分为 7 层模型;其中,层与层之间接口稳定,而接口内部的逻辑实现是各层独自决定。这样的话,我们在使用的时候,只要考虑每一层的接口即可,而不用把每一层详细实现都弄懂(而且也很少有人和精力去全部搞懂)。

Aliven888的博客 1096

Unity简单操作:PostProcessing的使用

Postprocessing是一个unity2018版本的集成后期插件,有了这个插件,之后用unity开发时,后期调整颜色、光晕等会很方便。 目录 新建一个postprocessing profile(配置文件)。​ 参数说明: 新建一个postprocessing profile(配置文件)。 在主相机下加一个组件PostProcess Layer。 注意:需要将相机的Layer层设置与Post Process Layer 下的Volume blending(体积混合)...

weixin_39114763的博客 7369

关于TCP/IP三次握手和四次分手的详解

计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的。计算机网络体系结构的抽象概念较多,在学习时要多思考。这些概念对后面的学习很有帮助。 网络协议是什么? 在计算机网络要做到有条不紊地交换数据,就必须遵守一些事先约定好的规则,比如交换数据的格式、是否需要发送一个应答信息。这些规则被称为网络协议。 为什么要对网络协议分层? 简化问题难度和复杂度。由于各层之间独立,我们可以分割大问题为小问题。 灵活性好。当其中一层的技术变化时,只要层间接口关系保持不变,其他层不受影响。 易于实现和维护。

qq_43288686的博客 560

全球、中国各省市县等行政区划(含十段线)shape及geosjon数据免费下载

免费下载全球、中国各省市县等行政区划(含十段线)shape及geosjon数据

mhf403445651的博客 3460

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

计算机组成原理(第三版)唐朔飞-第四章存储器-课后习题

weixin_45735391的博客 17万+

TCP/IP三次握手和四次分手

TCP/IP协议 一、说说TCP三次握手过程,如果两次握手会怎么样? A向B发送请求“建立请求” B向A发送请求“同意请求” A向B发送“确认收到你发的同意请求” 超时重传:一定的时间后,如果对方没有回应,就认为这个消息发送失败,要重新发送 如果只有2次会发生以下情况: A向B发送请求“建立请求” 请求1由于网络的原因,阻塞在某个节点了,过了一会B没有给A发请求,因为超时重传机制,A...

AlesS4的博客 233

【uniapp踩坑记】App Store上传失败:Invalid Swift Support错误怎么解决?

作为一个前端出身的开发者,用 uniapp 开发原生 App 已经够挑战了,打包 iOS 上传 App Store 更是处处暗雷。这次的坑虽然小,但确实容易忽略。如果你也遇到了类似的报错,希望这篇文章能帮你少踩一次坑!

代码简单说 Vue、JAVA、PHP、Node.js 熟练运用,接口、架构、性能全搞定。 1143

【网络基础全家桶】TCP/IP四层、TCP协议(三次握手、四次分手)、GET和POST

1. TCP/IP四层协议模型 各层的主要功能: 1、链路层(数据链路层/网络接口层) 数据链路层实现了网卡接口的网络驱动程序,以处理数据在物理媒介(比如以太网、令牌环等)上的传输。 数据链路层两个常用的协议是ARP协议(Address Resolve Protocol,地址解析协议)和RARP协议(ReverseAddress Resolve Protocol,逆地址解析协议)。它们实现了IP地址和机器物理地址(通常是MAC地址,以太网、令牌环和802.11无线网络都使用MAC地址)之间的相互转换。

qq_27172205的博客 517

【S32K3 MCAL配置】-3.4-CANFD配置-接收特定的“经典CAN/CANFD标准帧”和“经典CAN/CANFD扩展帧”(基于MCAL+FreeRTOS)

【S32K3 MCAL配置】-3.4-CANFD配置-接收特定的“经典CAN/CANFD标准帧”和“经典CAN/CANFD扩展帧”(基于MCAL+FreeRTOS)

「汽车电子助手」的博客 696

1、工作流介绍

工作流起源于办公自动化,是对软件中业务流程的抽象。通过工作流将各个任务有序组织起来形成一个完整的业务闭环。比如:请假审批流程,网上购物流程,银行贷款流程;!

leyoliu的博客 5109

通俗理解tcp/ip的三次握手和四次分手

转载地址:https://github.com/jawil/blog/issues/14 最近在恶补计算机网络方面的知识,之前对于TCP的三次握手和四次分手也是模模糊糊,对于其中的细节更是浑然不知,最近看了很多这方面的知识,也在系统的学习计算机网络,加深自己的CS功底,就把看过的一些比较好地东西和自己的一些理解两次加工组织一下然后交流分享,一起学习进步,对这个面试好像经常问到。 原文收录在我的...

NEVERGUVEIP的博客 1085

基于业务目标的Agent自动化评测体系设计:超越准确率的有效性衡量

我们还是以电商全链路服务Agent我们还是以电商全链路服务Agent。

AI架构全栈开发实战笔记 318

TCP/IP协议中的三次握手和四次分手

哲学上的认知事物阐述。相信大家会去搜这方面内容,说明大家已经知道了这个协议的重要性。因此直接进入正题,哲学中的认识论里面对人类认知事物过程的阐述是这样的。含义:客观事物在人脑中的反映 特点:认识是不断变化发展的 根本任务:经过感性认识上升到理性认识,透过现象抓住事物的本质和规律 实现前提:占有丰富的感性材料,运用科学的思维方式。感性上认知三次握手和四次分手。那么我先从感性上对三次握手和四次分手作分

MR_Peach07的博客 687

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

TCP/IP协议的三次握手和四次分手详解

相对于SOCKET开发者,TCP创建过程和链接折除过程是由TCP/IP协议栈自动创建的.因此开发者并不需要控制这个过程.但是对于理解TCP底层运作机制,相当有帮助. 而且对于有网络协议工程师之类笔试,几乎是必考的内容.企业对这个问题热情之高,出乎我的意料:-)。有时上午面试前强调这个问题,并重复讲一次,下午几乎每一个人都被问到这个问题。 因此在这里详细解释一下这两个过程。 TCP三次握手 所谓三次...

Parismoor的博客 806

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

TCP/IP三次握手,四次分手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number

bihailan123的专栏 4451

ssm框架搭建

这个是一个在idea上成功跑起来的ssm框架项目,保存在这里方便以后使用直接下载

TCP/IP协议三次握手与四次分手流程

三次握手流程 客户端发个请求“开门呐,我要进来”给服务器 服务器发个“进来吧,我去给你开门”给客户端 客户端有很客气的发个“谢谢,我要进来了”给服务器 四次挥手流程 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他 服务器听到了,发个“我知道了,那我送你出门吧”给客户端,等客户端走 服务器把门关上后,发个“我关门了”给客户端,然后等客户端走(尼玛~矫情啊) 客户端发个“我...

王者再次归来 228

通俗理解TCP/IP协议三次握手与四次分手流程

三次握手流程 客户端发个请求“开门呐,我要进来”给服务器服务器发个“进来吧,我去给你开门”给客户端客户端有很客气的发个“谢谢,我要进来了”给服务器 四次挥手流程 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他服务器听到了,发个“我知道了,那我送你出门吧”给客户端,等客户端走服务器把门关上后,发个“我关门了”给客户端,然后等客户端走(尼玛~矫情啊)客户端发个“我知道了

Special23的博客 1万+

关于TCP/IP三次握手和四次分手的理解

其实是事务发展的一种抽象,更形象的比喻为(主要是便于理解啊,网上是有神人的):       三次握手流程 客户端发个请求“开门呐,我要进来”给服务器 服务器发个“进来吧,我去给你开门”给客户端 客户端有很客气的发个“谢谢,我要进来了”给服务器  四次挥手流程 客户端发个“时间不早了,我要走了”给服务器,等服务器起身送他 服务器听到了,发个“我知道了,那我送你出...

ad50863306的博客 187

TCP/IP的三次握手,四次分手。

遇到好文章,当然要给大家分享啦。 TCP三次握手和四次挥手协议作者:admin 日期:2015-06-13  前言 在面试的过程中,TCP的传输协议经常会出现。以前我参加面试的过程中就被问到过,现在轮到我面试其他人的时候,我也会问一些相关的问题。作为一名开发者,无论使用什么样的开发语言,最基本的网络知识一定要理解透彻,这样才能获得更好的职业发展。

异度空间 627

【网络学习】TCP/IP的三次握手,四次分手、DDOS攻击

文章出处:http://blog.jobbole.com/91841/ 首先我们先来了解TCP报文段 重要的标志我在图中也有标记,重点了解标志位 ACK:确认序号有效RST:重置连接SYN:发起了一个新连接FIN:释放一个连接 三次握手的过程(客户端我们用A表示,服务器端用B表示) 前提:A主动打开,B被动打开 在建立连接之前,B

猫神狗东の世界 716

TCP/IP三次握手四次分手

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标志位,有6种标示:SYN(synchronous建立联机) ACK(acknowledgement 确认) PSH(push传送) FIN(finish结束) RST(reset重置) URG(urgent紧急) Sequence number(顺序号码) Acknowledge number

李小雷一直在路上 585

TCP/IP 三次握手 四次分手

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://justim.blog.51cto.com/740099/237548 TCP(Transmission Control Protocol) 传输控制协议   TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接: 位码即tcp标

Alice的专栏 594

白话TCP/IP协议 三次握手 四次分手

在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接,如图1所示。 (1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。 【A向B请求连接】 (2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入

老卫的技术站 2075
上一篇: MVC设计思想
下一篇: ODBC基本概念
程序员悟空
博客等级 码龄18年 65粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值