TCP协议的三次握手、四次挥手
TCP(Transmission Control Protocol) 传输控制协议
TCP是主机对主机层的传输控制协议,提供可靠的连接服务,通过三次握手建立一个连接
TCP 三次握手图示:
位码即tcp标志位,有6种标示:
SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)
Sequence number(顺序号码) Acknowledge number(确认号码)
第一次握手:客户端A向服务器发送SYN=1 ,随机产生seq=x(序号为x) 的数据包,进入SYN-SENT状态,服务器B由SYN=1得知A要建立连机。
第二次握手:服务端B收到请求后确认信息,向客户端返回SYN=1,ACK=1 ,seq=y,ack=x+1(表示客户A下一次发送的数据包号为x+1),此时服务器B进入SYN-RCVD状态。
第三次握手:客户端A收到后检查ack(确认号)是否正确,即第一次发送的序号+1和ACK是否为1.若正确,客户端A再次发送ACK=1,发送序号为seq=x+1,确认号为y+1,服务端B收到后确认seq与ack=1,此时客户A和服务器B进入ESTABLISHED状态,完成三次握手。
完成三次握手,客户端和服务器开始传送数据。
图解:
一个三次握手的过程(图1,图2)
(图1)
(图2)
第一次握手的标志位(图3)
我们可以看到标志位里面只有个同步位,也就是在做请求(SYN)
(图3)
第二次握手的标志位(图4)
我们可以看到标志位里面有个确认位和同步位,也就是在做应答(SYN + ACK)
(图4)
第三次握手的标志位(图5)
我们可以看到标志位里面只有个确认位,也就是再做再次确认(ACK)
(图5)
一个完整的三次握手也就是 请求---应答---再次确认
四次挥手
由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。客户A和服务器B都可以主动断开连接,如果A客户发送完数据后不主动断开就会占有服务器B的资源。
第一次挥手:客户A和服务器B都处于ESTABLISHED建立状态,客户A向服务器B发送FIN=1来结束A到B的数据传送。客户A就进入FIN-WAIT-1状态。
第二次挥手:服务器B收到这个FIN,它返回一个ACK,确认序号为收到的序号加1,和SYN一样,一个FIN将占用一个序号,服务器B进入COLSE-WAIT状态。
第三次挥手:服务器B关闭与客户A的连接,发送一个FIN给客户A。服务器B进入closed状态
第四次挥手:客户A返回ACK确认,并将确认序号设置为收到的序号加1,客户A进入TIME-WAIT状态,到此四次挥手完成。
转载于:https://blog.51cto.com/lyhbwwk/2162564
TCP协议的三次握手、四次挥手相关推荐
- 什么是TCP协议的三次握手四次挥手
IP协议.HTTP协议.TCP协议.TCP/IP 协议我们经常遇到,而且初学的时候容易弄混.那么他们之间有什么关系呢?重点内容 ####1.什么是TCP/IP 协议 TCP/IP不是一个协议,而是一个 ...
- TCP为什么需要三次握手四次挥手
TCP为什么需要三次握手四次挥手 三次握手 TCP是通过程序实现的,可靠的,面向连接的协议.而程序是严谨的,每一次建立连接都会进行"三次握手"这样的步骤. 建立连接的目的是为了可靠 ...
- 【网安】初学者,第一天day1 (什么是域名,常见的端口和协议,三次握手四次挥手)
网安小白第一天 了解什么是域名,常见的端口和协议,三次握手四次挥手 第一次接触网安,从0到1. 一.域名 1.定义 域名是用于在识别和定位Internet上计算机的层次结构式的字符标识,它对应于计算机 ...
- Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)
1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层),即ISO开放互连系统参考模型. (2)各层功能定义 这里 ...
- ssh协议是osi_TCP/IP协议和三次握手四次挥手
计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...
- go tcp客户端自动重连_阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?(附全网最具深度讲解)
前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-.-,蹭蹭就蹭蹭 :) 事实上我在阿里面试的时候确实被问到了这个问题,HTTP.HTTPS.TC ...
- tcp状态转换--三次握手/四次挥手
1 三次握手 "3次握手"的作用就是双方都能明确自己和对方的收.发能力是正常的. 2 四次挥手 主动关闭连接的一方,调用close():协议层发送FIN包 被动关闭的一方收到FIN ...
- 【Javaweb】TCP原理(三次握手四次挥手)
目录 一.TCP协议 二.TCP原理 1,确认应答机制 2,超时重传机制 3,连接管理机制 4,滑动窗口 5,流量控制 6,拥塞控制 7,延迟应答 8,捎带应答 9,粘包问题 一.TCP协议 TCP, ...
- HTTP协议,三次握手四次挥手
Http协议与Https协议 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...
- 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程
一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...
最新文章
- linux 进程间 close-on-exec 机制 简介
- 小程序页面遮罩且不能滚动 + 内容居中显示
- UNIX网络编程读书笔记:辅助数据
- 【渝粤题库】国家开放大学2021春1253C语言程序设计题目
- juypter 不省略_常用pandas清洗数据命令
- html如何显示ppt首页,aspx怎样显示ppt转换的html页面
- 小鸡腿U T10 Tokyo2014
- mac 安装node.js
- 项目实战——打造一款股票区间交易盯盘系统
- Java扑克牌中的顺子
- 三键调光调色带定时遥控台灯方案-DLT8T10S-杰力科创
- Python黑科技:暴力破解,你的密码真的安全么?
- 为什么我什么都不知道_我什么都不知道,但是还可以
- 键盘配置软件V2.0使用说明
- 【王佩丰】PowerPoint2010视频教程 2
- 职场分享:工作中我们需要进行情绪管理
- 计算机无法识别苹果手机,iTunes无法识别iPhone在连接电脑时iTunes没有反应
- android整合好视通sdk经验总结(二)
- android Linphone SDK
- mybatis-pluse使用
热门文章
- boost::hana::detail::any_of用法的测试程序
- boost::hana::power用法的测试程序
- boost::make_maximal_planar用法的测试程序
- boost::graph模块实现在无向图上使用连通分量算法
- boost::edge_connectivity用法的测试程序
- 基于享元记忆的 Boost.Flyweight 示例
- boost::filesystem模块Microsoft TCHAR 的使用示例的测试程序
- boost::exception的用法测试
- VTK:Rendering之Model
- VTK:PolyData之ProcrustesAlignmentFilter