博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
TCP三次握手
阅读量:5906 次
发布时间:2019-06-19

本文共 698 字,大约阅读时间需要 2 分钟。

建立TCP连接的过程需要进行三次信息交换,通常称为“三次握手”,示意图如下:

图中Seq代表TCP段首部中的“序号(Sequence Number)”:是TCP段所发送的数据部分第一个字节的序号。在TCP传送的数据流中,每一个字节都有一个序号。建立连接时,发送方将初始序号(Initial Sequence Number, ISN)填写到第一个发送的TCP段序号中。

图中Ack代表TCP段首部中的“确认号”:是期望收到对方下次发送的数据的第一个字节的序号,也就是期望收到的下一个TCP段的首部中的序号,等于已经成功收到的TCP段的最后一个字节序号加1。确认号在ACK标志为1时有意义,除了主动发起连接的第一个TCP段不设置ACK标志外,其后发送的TCP段都会设置ACK标志。

三次握手的具体过程阐述如下:

1. 客户端主动与服务器联系,TCP首部控制位中的SYN设置为1,发送带有SYN的TCP段,并把初始序号告诉对方。

2. 服务器端收到带有SYN的报文,记录客户端的初始序号,选择自己的初始序号,设置控制位中的SYN和ACK。因为SYN占用一个序号,所以确认序号设置为客户端的初始序号加1,对客户端的SYN进行确认。

3. 服务器端的报文到达客户端,客户端设置ACK控制位,并把确认号设为服务器的初始序号加1,以确认服务器的SYN报文段,这个报文只是确认信息,告诉服务器已经成功建立了连接。

至此“三次握手”建立连接完成。在TCP连接中,每台主机会创建一个TCB数据结构,存储与连接有关的数据。关于“建立TCP连接,为什么需要三次握手”,参考:

【学习资料】 《Winsock网络编程经络》

转载地址:http://bxcpx.baihongyu.com/

你可能感兴趣的文章
我的友情链接
查看>>
CDN相关
查看>>
Tomcat的设置4——Tomcat的体系结构与设置基于端口号的虚拟主机
查看>>
我的友情链接
查看>>
ftp协议基础
查看>>
访问共享经常中断
查看>>
人生的交易
查看>>
MySql
查看>>
sql server 下载安装标记
查看>>
js运算符(运算符的结合性)
查看>>
idea 编译级别的设置
查看>>
内置对象Array的原型对象中添加方法
查看>>
6大设计原则
查看>>
Github简介
查看>>
CISCO2691的OSPF点对点密文测评测试
查看>>
POJ 1661 Help Jimmy(递推DP)
查看>>
Node.js 中文学习资料和教程导航
查看>>
查找(AVL平衡二叉树)
查看>>
AJAX-初学AJAX本地环境配置
查看>>
【精选】Nginx负载均衡学习笔记(一)实现HTTP负载均衡和TCP负载均衡(官方和OpenResty两种负载配置)...
查看>>