三次握手各字符含义以及四次挥手
2015-09-09 15:56
726 查看
三次握手:
SYN:连接请求
ACK:确认号
seq:发送端的初值序列号
ack:表示期望收到的对方下一个报文段的第一个数据字节序号,也表示x为止的字符都以收到
整个过程如下:
客户端发送SYN=1,ACK = 0,seq =x给服务端,请求建立连接,进入SYN-SEND状态
服务端接收到之后,发送 SYN=1,ACK=1,seq=y,ack=x+1;进入SYN-RECIVED状态
客户端接收到之后,发送ACK,seq = x+1,ack=y+1;确认收到信息,进入连接状态establish
服务端收到报文,进入连接状态establish
四次挥手:
客户端向服务器发送FIN,请求关闭,进入FIN_WAIT_1状态。
服务端接受到FIN报文,然后需要告诉客户端,我已经知道请求,但还没有准备好,你可以继续等我消息,所以服务端发送ACK。然后可以进入CLOSE_WAIT状态
客户端接收到服务端数据,不做任何回应,进入FIN_WAIT_2状态。
服务端确认数据发送完成之后,发送FIN报文,告诉客户端可以关闭连接了,然后进入LAST_ACK状态。
客户端接收到FIN报文之后,进入TIME_WAIT状态,发送ACK确认报文,如果2msl时间没有反应则关闭连接。否则进行重传。
服务端在接收到ACK之后,关闭连接。
SYN:连接请求
ACK:确认号
seq:发送端的初值序列号
ack:表示期望收到的对方下一个报文段的第一个数据字节序号,也表示x为止的字符都以收到
整个过程如下:
客户端发送SYN=1,ACK = 0,seq =x给服务端,请求建立连接,进入SYN-SEND状态
服务端接收到之后,发送 SYN=1,ACK=1,seq=y,ack=x+1;进入SYN-RECIVED状态
客户端接收到之后,发送ACK,seq = x+1,ack=y+1;确认收到信息,进入连接状态establish
服务端收到报文,进入连接状态establish
四次挥手:
客户端向服务器发送FIN,请求关闭,进入FIN_WAIT_1状态。
服务端接受到FIN报文,然后需要告诉客户端,我已经知道请求,但还没有准备好,你可以继续等我消息,所以服务端发送ACK。然后可以进入CLOSE_WAIT状态
客户端接收到服务端数据,不做任何回应,进入FIN_WAIT_2状态。
服务端确认数据发送完成之后,发送FIN报文,告诉客户端可以关闭连接了,然后进入LAST_ACK状态。
客户端接收到FIN报文之后,进入TIME_WAIT状态,发送ACK确认报文,如果2msl时间没有反应则关闭连接。否则进行重传。
服务端在接收到ACK之后,关闭连接。
相关文章推荐
- TCP版backshell的VBS脚本代码
- TCP Wrappers防火墙介绍与封锁IP地址的方法
- c语言多进程tcp服务器示例
- win2003连接限制TCP连接限制
- PowerShell脚本开发之收发TCP消息包
- C#实现TCP连接信息统计的方法
- Android TCP 文件客户端与服务器DEMO介绍
- Android中实现TCP和UDP传输实例
- python实现可将字符转换成大写的tcp服务器实例
- php实现TCP端口检测的方法
- Java实现Socket的TCP传输实例
- 实现了基于TCP的Java Socket编程实例代码
- Java基于Tcp协议的socket编程实例
- python实现TCP服务器端与客户端的方法详解
- python检测远程服务器tcp端口的方法
- python实现简单的TCP代理服务器
- nginx搭建tcp代理服务器
- python网络编程之TCP通信实例和socketserver框架使用例子
- GO语言实现简单TCP服务的方法
- [源码分享]Erlang TCP 服务器代码