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)】

原文地址:https://www.cnblogs.com/acelance/p/12144248.html