当前位置: 首页 > news >正文

tcp三次握手与四次挥手

 

建立连接:

TCP是主机对主机层的传输控制协议,提供可靠的连接服务,采用三次握手确认建立一个连接

tcp标志位有6种:

SYN(synchronous建立联机)
ACK(acknowledgement 确认)
PSH(push传送)
FIN(finish结束)
RST(reset重置)
URG(urgent紧急)

(1)第一次握手:建立连接时,客户端A发送SYN包(SYN=j)到服务器B,并进入SYN_SEND状态,等待服务器B确认。

(2)第二次握手:服务器B收到SYN包,必须确认客户A的SYN(ACK=j+1),同时自己也发送一个SYN包(SYN=k),即SYN+ACK包,此时服务器B进入SYN_RECV状态。

(3)第三次握手:客户端A收到服务器B的SYN+ACK包,向服务器B发送确认包ACK(ACK=k+1),此包发送完毕,客户端A和服务器B进入ESTABLISHED状态,完成三次握手。

完成三次握手,客户端与服务器开始传送数据。

确认号:其数值等于发送方的发送序号 +1(即接收方期望接收的下一个序列号)。

Sequence number(序号)
Acknowledge number(确认号)

---------------------------------------------------------------------------------------------------------------------------------------
关闭连接:

由于TCP连接是全双工的,因此每个方向都必须单独进行关闭。这个原则是当一方完成它的数据发送任务后就能发送一个FIN来终止这个方向的连接。
收到一个 FIN只意味着这一方向上没有数据流动,一个TCP连接在收到一个FIN后仍能发送数据。首先进行关闭的一方将执行主动关闭,而另一方执行被动关闭。
连接的拆除需要发送四个包,因此称为四次挥手(four-way handshake)。客户端或服务器均可主动发起挥手动作,在socket编程中,任何一方执行close()操作即可产生挥手操作。

(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。

(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。

(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。

(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。

 

 附参考地址 

http://www.cnblogs.com/Jessy/p/3535612.html  (三次握手四次挥手详解)

 

转载于:https://www.cnblogs.com/web21/p/6375245.html

相关文章:

  • ajax php 点击加载更多
  • 【VS开发】ClientToScreen 和ScreenToClient 用法
  • 简单获取CDN背后网站的真实IP
  • jquery 简单实现tab切换
  • int的最大最小值补码原码转换
  • Js 跨域CORS报错 Response for preflight has invalid HTTP status code 405
  • Spring随笔(01)
  • 全屏显示
  • pickle使用及案例
  • 改变this指向
  • mac 自定义脚本命令
  • sdk相关
  • 去掉IE提示:internet explorer 已限制此网页运行脚本或Activex控件
  • TCP与UDP
  • 领域驱动设计-划分界限上下文
  • ES6指北【2】—— 箭头函数
  • 78. Subsets
  • Flannel解读
  • Javascript基础之Array数组API
  • LeetCode29.两数相除 JavaScript
  • MaxCompute访问TableStore(OTS) 数据
  • Median of Two Sorted Arrays
  • Mysql优化
  • python3 使用 asyncio 代替线程
  • React-redux的原理以及使用
  • Webpack入门之遇到的那些坑,系列示例Demo
  • 基于游标的分页接口实现
  • 检测对象或数组
  • 前嗅ForeSpider教程:创建模板
  • 如何编写一个可升级的智能合约
  • 使用Swoole加速Laravel(正式环境中)
  • 数据可视化之 Sankey 桑基图的实现
  • 通信类
  • 吴恩达Deep Learning课程练习题参考答案——R语言版
  • 原生js练习题---第五课
  • ​【原创】基于SSM的酒店预约管理系统(酒店管理系统毕业设计)
  • ​Java并发新构件之Exchanger
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (5)STL算法之复制
  • (NO.00004)iOS实现打砖块游戏(十二):伸缩自如,我是如意金箍棒(上)!
  • (超详细)2-YOLOV5改进-添加SimAM注意力机制
  • (附源码)ssm高校实验室 毕业设计 800008
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (三)c52学习之旅-点亮LED灯
  • (四) Graphivz 颜色选择
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • (一)Thymeleaf用法——Thymeleaf简介
  • (转)德国人的记事本
  • (轉貼) 寄發紅帖基本原則(教育部禮儀司頒布) (雜項)
  • .NET 5.0正式发布,有什么功能特性(翻译)
  • .net core 连接数据库,通过数据库生成Modell
  • .net core使用RPC方式进行高效的HTTP服务访问
  • .net 中viewstate的原理和使用
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • :如何用SQL脚本保存存储过程返回的结果集