TCP的三次握手
传输控制协议TCP简介
•面向连接的、可靠的、基于字节流的传输层通信协议;
•将应用的数据分割成报文段并发送给目标节点的TCP层;
•数据包都有序号Sequence,对方收到则发送ACK确认,未收到则重传;
•使用检验和来检验数据传输过程中是否有误;
TCP报文头的组成信息
第0-3位 :Source Port 和 Destination Port
第4-7位 :Sequence Number
第8-11位: Acknowledgment Number
第12-15位: Offset 、Reserved(保留域默认为0) 、TCP Flags(C E U A P R S F)、Windows
第16-19位:Checksum(16位计算,发送端计算存储,接收端校验)、 Urgent Pointer
第20-n位: TCP Options (例如:variable length, optional)
前面20位比较重要;
TCP Flags (都是0和1分别表示相反的两种状态)
URG: 紧急指针标志(1有效/0忽略);
ACK: 确认序号标志(1有效/0忽略);
PSH: push标志(1有数据传输/0没有数据传输);
RST: 重置链接标志;
SYN: 同步序号,用于建立连接过程;(1有效)
FIN:finish标志,用于释放连接;
(重要)TCP三次握手(重点:初始化通信双方的seq序列号)
状态: 客户端A(CLOSED),服务器B(CLOSED)
客户端A: SYN = 1 ,seq = x 【客户端A:(SYN-SENT),服务器B:(LISTEN)】
服务端B: SYN = 1,ACK = 1, seq = y, ack = x + 1 【客户端A:(SYN-SENT),服务器B:(SYN-RCVD)】
客户端A: ACK = 1 ,seq = x+1, ack = y+1【客户端A:(ESTAB-LISHED),服务器B:(ESTAB-LISHED)】