第一次握手:建立连接时,客户端向服务端发送SYN(同步序列编号),其中包含客户端的初始序号seq(序列号)=x,并进入SYN_SENT(请求连接)状态,等待服务器确认。

第二次握手:服务器收到请求后,必须确认客户端的数据包,同时自己也发送一个SYN(同步序列编号)包,即SYN(同步序列编号)+ACK(确认字符)包,随机产生一个自己的初始序号seq(序列号)=y,此时服务器进入SYN_RECV(接收到了客户端的同步序列编号并且发送了确认字符)状态。

第三次握手:客户端收到服务器的SYN_ACK(同步序列编号+序列号)包,向服务器发送一个序列号(seq=x+1),确认号为ack(客户端)=y+1,这个包发送完,客户端和服务端进入ESTABLISHED(建立连接)状态,完成三次握手。

SYN:同步序列编号

seq:序列号,报文段携带数据的第一个字节编号

ack:确认号,期望收到下一个字节的编号

ACK:确认字符

SYN_SENT:请求连接

SYN_RECV:接收到了客户端的SYN并且发送了ACK

ESTABLISHED:建立连接

最新文章

  1. 关于IE6的PNG图像透明使用AlphaImageLoader的缺点
  2. 遇到shell重定向的一个奇怪问题:'消失'的标准输入!
  3. Python成长笔记 - 基础篇 (二)python基本语法
  4. How to Iterate Map
  5. android avoiding-memory-leaks
  6. 安装配置tomcat环境
  7. Form( 表单) 组件
  8. POJ 2505 A multiplication game(找规律博弈/贪心)
  9. php文件管理与基础功能的实现
  10. js中如何在一个函数里面执行另一个函数
  11. istio入门(05)istio的架构概念2
  12. Webpack vs Browersify vs SystemJs for SPAs
  13. 阿里云服务器公网Ip外网无法访问
  14. day10 函数2
  15. Oracle只读用户角色的建立
  16. python缓存装饰器,第二种方式(二)
  17. SpringMVC绑定到实体数组、list、set、和map时要注意
  18. NHibernate和Castle调试过程中,如何输出SQL的问题
  19. oracle-分区(笔记)
  20. 关于1024:堆栈下溢的错误(1024. Stack Underflow Occurred)

热门文章

  1. 常用Java API之Scanner:功能与使用方法
  2. <More Effective C#: 改善C#代码的50个有效方法>中文版翻译答疑
  3. 部署elasticsearch(三节点)集群+filebeat+kibana
  4. .NET Core程序中,如何获取和设置操作系统环境变量的值
  5. C#中datatable操作
  6. (原创)对比组态软件,使用C#开发的服务器和客户端软件的优势
  7. 【Java】调用摄像头进行拍照并保存【详细】以及处理no jniopencv_core in java.library.path的一种方法
  8. xcode模拟器使用常用的命令。
  9. 阿里和Google的JAVA开发规约
  10. excel 宏循环行数据 ,Excel统计所有sheet数据行数 VBA