三次握手
三次握手的目的:
当两台主机要通信时,确认两台主机都具备发送和接收的能力。
名词解释:
SYN = 1 表示请求建立连接
SYN = 0 表示开始发送消息
seq = n 序列号
ack = seq + 1 成功收到了信息
具体流程:
这里假设两台需要通信的主机分别为a和b
-
a向b发送信息
SYN = 1(请求建立连接) seq = 10 (a自己的序列号) -
b接收到a的消息
-
b向a发送消息
SYN = 1 (同意建立连接)seq = 20 (b自己的序列号)ack = 11 (确认号,表示成功收到了消息) -
a接收到b的消息
通过1和2:b知道了a可以发送消息
通过2和3:a知道了b可以发送消息和接收消息
但是b是不是还不知道a是否能接收消息? -
a向b发消息
SYN = 0 (表示开始通信) seq = 11 ack = 21通过5,b知道了a可以接收消息
至此,a 和 b都知道了对方可以发送消息和接收消息