记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

TCP连接建立

2015-04-30 01:50
为了建立一条TCP连接,计算机需要为我们做如下的工作:
 
1. 请求端(通常称为客户)发送一个SYN段指明客户打算连接的服务器端口,以及初始序号(ISN)。这个SYN段为下面的UML中的报文段1。
 
2. 服务器发回包含服务器的初始序号的SYN报文段(下面UML图中的报文段2)作为应答。同时,将确认序号设置为客户的ISN加1对客户的SYN报文段进行确认。
 
3. 客户必须将确认序号设置为服务器的ISN加1对服务器的SYN报文段进行确认(下面UML图中的报文段3).
 
这三个报文段完成连接的建立。这个过程我们称之为三次握手(three-way handshake)。
 
发送第一个SYN的一端将执行主动打开(active open)。接收这个SYN并发回下一个SYN的另一端执行被动打开(passive open)。
 
下面使用PlantUML语言进行流程图的绘制,以帮助大家更好的理解TCP连接的建立,这里给出作者绘制过程中使用的工具及源代码,做到有图有真相,大家可以进行任意修改。:-)
 

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

知识来源: www.2cto.com/Article/201504/395485.html

阅读:92970 | 评论:0 | 标签:无

想收藏或者和大家分享这篇好文章→复制链接地址

“TCP连接建立”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云

本页关键词