TCP/IP协议
TCP是一种面向连接的端到端的可靠传输协议。
TCP报头格式
三次握手的过程
一、客户端发送一个连接请求,发送一个随机数X,这时客户端的端口状态变为SYN_SENT状态。
二、服务端收到客户端发起的连接请求,端口状态变为LISTEN状态,服务端回复客户端发起的请求,把收到的随机数X+1返回确认收到,在发送一个自己生成的随机数Y给客户端。此时端口状态变成SYN_RCVD状态。
三、客户端收到服务器端的确认信号X+1,并把服务器端的随机数Y,加1(Y+1)返回。此时连接建立,端口状态变为ESTABLISHED
四次挥手的过程
一、客户端要求终止连接,发送一个断开的信号p, p是一个随机数;此时端口状态变成FIN_WAIT_1的状态。
二、服务端收到客户端的断开请求,端口状态变为CLOSE_WAIT, 返回一个确认收到客户端断开请求的信号,这个时候不能立即就断开,服务端要确定是否还有数据在传输,如果没有数据传输了,在向客户端发送一个断开的信号q,这个时候端口状态变为LAST_ACK状态。
三、客户端在收到了确认信号p+1之后,端口状态变为FIN_WAIT_2,再等待服务端发送过过来的断开的信号。
四、客户端收到服务器端发来的断开信号q,这个时候端口状态变为TIME_WAIT, 并再向服务器端发送一个确认信号q+1,经过2MSL时间之后,端口状态编程CLOSED。
五、服务器收到客户端返回的确认信号,断开链接,端口状态变为CLOSED .