教你TCP如何连接

发布时间:2017-03-15 01:34

为了建立一条TCP连接,计算机需要为我们做如下的工作:

1. 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器端口,以及初始序号(ISN)。这个SYN段为下面的UML中的报文段1。

2. 服务器发回包含服务器的初始序号的SYN报文段作为应答。同时,将确认序号设置为客户的ISN加1对客户的SYN报文段进行确认。

3. 客户必须将确认序号设置为服务器的ISN加1对服务器的SYN报文段进行确认.

这三个报文段完成连接的建立。这个过程我们称之为三次握手(three-way handshake)。

发送第一个SYN的一端将执行主动打开(active open)。接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。

autonumber

participant client

participant server

note over client , server

client与server初始状态都处于CLOSED

end note

client -> server : SYN(SEQ=x)

activate client

note left: 3次握手的第1步,n此后client处于SYN_SENT状态

client

activate server

note right: 3次握手的第2步,n此后server处于SYN_RCVD状态

client -> server : (SEQ=x+1,ACK=y+1)

deactivate client

deactivate server

note left of client: 3次握手的第3步,nclient确认server的SYN,n并处于ESTABLISHED状态

note right of server: server的SYN被client确认后,nserver也进入ESTABLISHED状态

note over client , server

3次握手结束,client与server都进入ESTABLISHED状态

从现在开始双方可以传输数据了

end note

#+END_SRC

教你TCP如何连接的评论条评论