三次握手

重点参考:http://blog.pfan.cn/xman/44384.html就是下面的第二个参考文章

求助编辑百科名片

三次握手(three times handshake;three-way handshaking)所谓的“三次握手”即对每次发送的数据量是怎样跟踪进行协商使数据段的发送和接收同步,根据所接收到的数据量而确定的数据确认数及数据发送、接收完毕后何时撤消联系,并建立虚连接。为了提供可靠的传送,TCP在发送新的数据之前,以特定的顺序将数据包的序号,并需要这些包传送给目标机之后的确认消息。TCP总是用来发送大批量的数据。当应用程序在收到数据后要做出确认时也要用到TCP。

目录

基本简介

基本原理

TCP头结构

标志控制

数据传输

序列标识

编辑本段基本简介

  在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。

  第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

  第二次握手:服务器收到syn包,必须确认客户的SYN(ac

  

三次握手

k=j+1),同时自己也发送一个SYN包(syn=k,注意:这里的k不等于j+1,Edit by deven),即SYN+ACK包,此时服务器进入SYN_RECV状态;

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

  完成三次握手,客户端与服务器开始传送数据,在上述过程中,还有一些重要的概念:

  未连接队列:在三次握手协议中,服务器维护一个未连接队列,该队列为每个客户端的SYN包(syn=j)开设一个条目,该条目表明服务器已收到SYN包,并向客户发出确认,正在等待客户的确认包。这些条目所标识的连接在服务器处于 Syn_RECV状态,当服务器收到客户的确认包时,删除该条目,服务器进入ESTABLISHED状态

  Backlog参数:表示未连接队列的最大容纳数目。SYN-ACK重传次数服务器发送完SYN-ACK包,如果未收到客户确认包,服务器进行首次重

  

三次握手协议

感觉这个图很形象,服务器第三次收到的确认包Receive ACK不等于x+1+1

我感觉上面写的是Receive ACK等于x+1+1,错误的

传,等待一段时间仍未收到客户确认包,进行第二次重传,如果重传次数超过系统规定的最大重传次数,系统将该连接信息从半连接队列中删除。注意,每次重传等待的时间不一定相同。

  半连接存活时间:是指半连接队列的条目存活的最长时间,也即服务从收到SYN包到确认这个报文无效的最长时间,该时间值是所有重传请求包的最长等待时间总和。有时我们也称半连接存活时间为Timeout时间、SYN_RECV存活时间。

转载于:https://blog.51cto.com/wwdhks/1143047

TCP/IP协议(三次握手)相关推荐

  1. TCP/IP协议三次握手与四次握手流程解析

    原文链接地址:http://www.2cto.com/net/201310/251896.html TCP/IP协议三次握手与四次握手流程解析 TCP/IP协议的详细信息参看<TCP/IP协议详 ...

  2. 白话解说TCP/IP协议三次握手和四次挥手

    白话解说TCP/IP协议三次握手和四次挥手 1.背景 和女朋友异地恋一年多,为了保持感情我提议每天晚上视频聊天一次. 从好上开始,到现在,一年多也算坚持下来了. 1.1.问题 有时候聊天的过程中,我的 ...

  3. Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义:       这里 ...

  4. python网络通信效率_Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手)...

    Python进阶----网络通信基础 ,OSI七层协议() ,UDP和TCP的区别 , TCP/IP协议(三次握手,四次挥手) 一丶CS/BS 架构 C/S: 客户端/服务器 定义: 这里的客户端一般 ...

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

    三次握手流程 客户端发个请求"开门呐,我要进来"给服务器 服务器发个"进来吧,我去给你开门"给客户端 客户端有很客气的发个"谢谢,我要进来了" ...

  6. ​TCP/IP协议三次握手和四次挥手

    TCP/IP简介: TCP/IP 是不同的通信协议的大集合. 是指能够在多个不同网络间实现信息传输的协议族.TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP.SMTP.TCP.U ...

  7. TCP/IP协议 三次握手

    TCP/IP协议是传输层的一个面向连接的安全可靠的传输协议. 刚开始客户端处于 closed 的状态,服务端处于 listen 状态: 第一次握手是由客户端发起,客户端会向服务端发送一个SYN报文,报 ...

  8. TCP/IP协议 - 三次握手四次挥手(入门易懂版)

    握手通俗理解为两个人见面Say Hai,客户端和服务端建立连接 挥手就可以理解为两个人结束会面,要Say Goodbai,客户端和服务端断开连接 要了解什么是三握四挥,必须要了解一个重要的知识点:什么 ...

  9. TCP/IP协议三次握手流程

    (1)第一次握手:Client将标志位SYN置为1,随机产生一个值seq=J,并将该数据包发送给Server,Client进入SYN_SENT状态,等待Server确认.   (2)第二次握手:Ser ...

  10. 【干货】TCP/IP协议三次握手四次挥手

    TCP是一种面向连接的.可靠的.基于字节流的传输层通信协议,在发送数据前,通信双方必须在彼此间建立一条连接.所谓的"连接",其实是客户端和服务端保存的一份关于对方的信息,如ip地址 ...

最新文章

  1. JMeter初探五-配置元件与参数化
  2. Spring Cloud综合实战 - 基于TCC补偿模式的分布式事务
  3. 在linux系统中查看组管理信息命令,Linux用户和组管理常用命令
  4. 批量删除推文_如何搜索(和删除)您的旧推文
  5. Oracle入门(十四.7)之良好的编程习惯
  6. [渝粤教育] 中国地质大学 金融保险业会计 复习题 (2)
  7. 项目里面遇到的问题和解决方案的记录
  8. Visual Studio 代码风格约束
  9. Atitit.office word  excel  ppt pdf 的web在线预览方案与html转换方案 attilax 总结
  10. linux实验2 vi编译器的使用
  11. 【软件工程大作业】软件项目管理之成本管理
  12. 【行业看点】量子时代的技术机遇
  13. rk3288 MINILOADERALL生成
  14. 老婆:“给我讲讲你们程序员好笑的事情呗?”我扔给她这篇文章,她狂笑不止!
  15. TI芯片GPIO的内部上拉
  16. dsoframer-在线编辑office文档,一款开源的由微软提供
  17. 最佳值换算法c语言,页面置换算法---最佳置换算法(OPT)
  18. 1年时间业务量疯长40倍,谈人人车的平台架构演进之路
  19. UE4 解决Ribbon连线异常
  20. MATLAB 自定义函数拟合

热门文章

  1. 使用ionic创建IOS和Android 应用总结
  2. 粗略的看下两款Linux下的性能分析工具
  3. MPLS inter-as ××× Option3:multihop mp-ebgp
  4. oracle 分区表
  5. IBM磁带库中更换磁带的步骤
  6. 《多处理器编程的艺术》读书笔记(4)--- 自旋锁(1)
  7. Git 分布式版本控制系统
  8. NanoPi NEO Air使用十五:使用V4L2驱动USB摄像头
  9. Everything排除某个目录、隐藏文件、系统文件
  10. ARM中char、short、int、long、float、double数据类型占多少位