关键名称解释:SYN同步位,ACK确认位, ack确认号(期望得到的seq), seq数据传输序号
http三次握手目的是建立网络通信
1.握手图 client server (1) SYN=1(第一次请求创建连接同部位),ACK=0(因为没有人给他发信息,所以不需要什么确认),seq=x(随机产生一个数据序号) -------------------------------------------> (2) SYN=1(第一次请求创建连接同部位) ,ACK=1(确认收到seq=x) ,ack=x+1(期望得到的seq=x+1 ) , seq=y(好吧我也发给你一个数据y,试试你是否能收到) <------------------------------------------- (3) SYN=1(第一次请求创建连接同部位) ,ACK=1(确认收到seq=y) ,ack=y+1(期望得到的seq=y+1 ) , seq=x+1(好吧我又也发给你一个数据x+1 ) -------------------------------------------> 2.其实tcp三次握手不太好理解 我们可以称它为2次发送2次确认 3.具体直白语言描述 client 发信息:server我发给你信息请求链接,收到我了回复 server确认并发信息:client我收到你信息了。我发信息给你了,收到请回复我 client 确认:server我收到你信息了。 好结束对话,建立通信连接渠道 4.为什么不是2次,或者多次握手那? 先说多次握手,3次就够用了,多说是废话了 2次为什么不行? 首先看对话 client 发信息:server我发给你信息请求链接,收到我了回复 server确认收到信息:client我收到你信息了。 好结束对话,建立通信连接渠道 场景一:server说糟糕了,我client发完就挂了,我还傻乎乎的建立连接渠道了。 场景二:server说糟糕了,收到了好多client发过来的创建连接渠道 第一种场景解释:可能client发完请求链接消息时,自己挂掉了 第二种场景解释:由于网络延时,client发了好多消息给server,这时server创建了很多链接