TCP通信过程小结

1 预备知识

要了解TCP通信,必须得对TCP报文格式熟悉,下图是TCP报文格式,简单说下跟TCP连接三次握手和TCP断开三次握手及半关闭的四向握手有关的几个字段,

分别是:SYN、ACK、FIN以及序号和确认号字段。

TCP通信过程小结_第1张图片

以下假设客户端A想跟服务器B通信


2 TCP连接三次握手

step1  A发出一个TCP报文,其中置SYN=1,并随机初始化一个数给序号字段,假设是x;

step2  B收到请求后回复一个报文,置SYN=1,ACK=1,确认号为x+1,序号也是一个随机值,假设为y;

step3  A收到报文后回复B,置ACK=1,序号仍为x,确认号为y+1.


3 TCP断开三次握手

step1 A发出一个TCP报文,置FIN=1,假设此时的序号为x,确认号为y;

step2 B回复A,置FIN=1,ACK=1,序号为y,确认号为x+1;

step3 A回复B,置ACK=1,序号为x,确认号为y+1


4 TCP半关闭的四次握手

step1  A发出一个TCP报文,置FIN=1,假设此时的序号为x,确认号为y;

step2  B回复A,置ACK=1,序号为y-1,确认号为x+1;

...(B给A发数据阶段)

step3 B发出报文给A,置FIN=1,序号假设为z,确认号为x+1;

step4 A回复B,置ACK=1,序号为x,确认号为z+1

你可能感兴趣的:(TCP/IP)