TCP三次握手详解
TCP定义
TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,发送后会启动一个定时器,然后另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。
特点
1、TCP是面向连接的传输控制层协议;
2、每一条TCP连接只能有两个端点,每一条TCP连接只能是点对点的;
3、TCP提供可靠交付的服务;
4、TCP提供全双工通信。数据在两个方向上独立的进行传输,因此,连接的每一端必须保持每个方向上的传输数据序号。
三次握手
三次握手(Three-way Handshake)其实就是指建立一个TCP连接时,需要客户端和服务器总共发送3个包。进行三次握手的主要作用就是为了确认双方的接收能力和发送能力是否正常、指定自己的初始化序列号为后面的可靠性传送做准备。
第一次握手:标志位SYN = 1,随机生成一个序列号seq1 = x
第二次握手:标志位SYN ,ACK = 1,确认号ack = x + 1,随机生成一个序列号seq2=y
第三次握手:标志位ACK = 1, 确认号ack = y + 1,seq2= x + 1
实验抓包分析
三次握手
具体查看每一次握手都做了什么(主要看序列号,确认号)