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协议的三次握手、四次挥手相关推荐

  1. 什么是TCP协议的三次握手四次挥手

    IP协议.HTTP协议.TCP协议.TCP/IP 协议我们经常遇到,而且初学的时候容易弄混.那么他们之间有什么关系呢?重点内容 ####1.什么是TCP/IP 协议 TCP/IP不是一个协议,而是一个 ...

  2. TCP为什么需要三次握手四次挥手

    TCP为什么需要三次握手四次挥手 三次握手 TCP是通过程序实现的,可靠的,面向连接的协议.而程序是严谨的,每一次建立连接都会进行"三次握手"这样的步骤. 建立连接的目的是为了可靠 ...

  3. 【网安】初学者,第一天day1 (什么是域名,常见的端口和协议,三次握手四次挥手)

    网安小白第一天 了解什么是域名,常见的端口和协议,三次握手四次挥手 第一次接触网安,从0到1. 一.域名 1.定义 域名是用于在识别和定位Internet上计算机的层次结构式的字符标识,它对应于计算机 ...

  4. Linux网络编程(网络七层协议,TCP/IP,三次握手四次挥手,TCP/UDP的区别)

    1.OSI 7层网络模型 1.网络七层协议 (1)OSI定义了网络互连的七层框架(物理层.数据链路层.网络层.传输层.会话层.表示层.应用层),即ISO开放互连系统参考模型. (2)各层功能定义 这里 ...

  5. ssh协议是osi_TCP/IP协议和三次握手四次挥手

    计算机网络体系结构 在计算机网络的基本概念中,分层次的体系结构是最基本的.计算机网络体系结构的抽象概念较多,在学习时要多思考.这些概念对后面的学习很有帮助. 网络协议是什么? 在计算机网络要做到有条不 ...

  6. go tcp客户端自动重连_阿里面试: HTTP、HTTPS、TCP/IP、三次握手四次挥手过程?(附全网最具深度讲解)

    前言 这段时间面试官都挺忙的,频频出现在博客文章标题,虽然我不是特别想蹭热度,但是实在想不到好的标题了-.-,蹭蹭就蹭蹭 :) 事实上我在阿里面试的时候确实被问到了这个问题,HTTP.HTTPS.TC ...

  7. tcp状态转换--三次握手/四次挥手

    1 三次握手 "3次握手"的作用就是双方都能明确自己和对方的收.发能力是正常的. 2 四次挥手 主动关闭连接的一方,调用close():协议层发送FIN包 被动关闭的一方收到FIN ...

  8. 【Javaweb】TCP原理(三次握手四次挥手)

    目录 一.TCP协议 二.TCP原理 1,确认应答机制 2,超时重传机制 3,连接管理机制 4,滑动窗口 5,流量控制 6,拥塞控制 7,延迟应答 8,捎带应答 9,粘包问题 一.TCP协议 TCP, ...

  9. HTTP协议,三次握手四次挥手

    Http协议与Https协议 HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高 ...

  10. 网络架构,七层协议,三次握手四次挥手,socket套接字简单编程

    一.单机架构 应用领域: 植物大战僵尸 office 二.CS架构 应用领域: QQ 大型网络游戏 计算机发展初期用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端. 客户端:用户安装的软 ...

最新文章

  1. linux 进程间 close-on-exec 机制 简介
  2. 小程序页面遮罩且不能滚动 + 内容居中显示
  3. UNIX网络编程读书笔记:辅助数据
  4. 【渝粤题库】国家开放大学2021春1253C语言程序设计题目
  5. juypter 不省略_常用pandas清洗数据命令
  6. html如何显示ppt首页,aspx怎样显示ppt转换的html页面
  7. 小鸡腿U T10 Tokyo2014
  8. mac 安装node.js
  9. 项目实战——打造一款股票区间交易盯盘系统
  10. Java扑克牌中的顺子
  11. 三键调光调色带定时遥控台灯方案-DLT8T10S-杰力科创
  12. Python黑科技:暴力破解,你的密码真的安全么?
  13. 为什么我什么都不知道_我什么都不知道,但是还可以
  14. 键盘配置软件V2.0使用说明
  15. 【王佩丰】PowerPoint2010视频教程 2
  16. 职场分享:工作中我们需要进行情绪管理
  17. 计算机无法识别苹果手机,iTunes无法识别iPhone在连接电脑时iTunes没有反应
  18. android整合好视通sdk经验总结(二)
  19. android Linphone SDK
  20. mybatis-pluse使用

热门文章

  1. boost::hana::detail::any_of用法的测试程序
  2. boost::hana::power用法的测试程序
  3. boost::make_maximal_planar用法的测试程序
  4. boost::graph模块实现在无向图上使用连通分量算法
  5. boost::edge_connectivity用法的测试程序
  6. 基于享元记忆的 Boost.Flyweight 示例
  7. boost::filesystem模块Microsoft TCHAR 的使用示例的测试程序
  8. boost::exception的用法测试
  9. VTK:Rendering之Model
  10. VTK:PolyData之ProcrustesAlignmentFilter