TCP相关疑问解答

本文深入解析了TCP连接的三次握手与四次挥手原理,探讨了为什么三次握手是必要的,以及四次挥手的详细流程。同时,文章还解释了HTTP1.1中TCP连接复用的工作机制,对比了TCP与UDP的区别,介绍了TCP拥塞控制的策略,并说明了TCP如何保证数据传输的正确性。

TCP连接为什么是3次握手,不是2次或4次?

  • 为了实现可靠传输,发送方接收方始终需要同步(SYNchronize)序号,序号并不是从0开始,而是由发送方随机选择的初始序列号(Initial Sequence Number,ISN)开始。由于TCP是一个双向通信协议,通信双方都有能力发送信息,并接收响应。因此,通信双方都需要随机产生一个初始序列号,并且把这个起始值告诉对方。
  • TCP是可靠的连接,至少需要进行三次握手。
  • 两次握手无法保证是可靠的连接,还会浪费资源。例如client 先发送了一个请求给服务端,但是由于网络延迟迟迟没有抵达服务端,client以为服务端没有收到,又发送了一次请求给服务端,服务端先接收到了后者的请求并响应。响应完了之后,关闭链接。延迟的请求抵达了服务端,此时服务端又响应返回给了 client,但 client 已经不会在做出响应了,这里服务端就浪费了资源等待 client 响应。
  • 理论上最后一次客户端响应给服务端,也不能 100%的保证两者之间建立了可靠的链接。三次就足以建立链接,再多次数只是浪费资源。

 

TCP连接4次挥手流程是怎样的,为什么?

  1. client 先向 server 请求关闭连接。
  2. server 收到请求,返回给 client ,允许关闭连接。
  3. server 接续发送报文,请求关闭连接。
  4. client等待 2MSL 后,确认 server 没有返回任何东西,关闭连接。两者断开。

如何复用 TCP 连接?

  • 在HTTP1.0中,客户端每一个HTTP请求都必须通过独立的TCP连接进行处理,而在HTTP1.1中进行了改进,客户端可以在一个TCP中发送多个HTTP请求。
  • TCP连接复用最根本区别在于,TCP连接复用是将多个客户端的HTTP请求复用到一个服务器或TCP连接上,而HTTP复用则是一个客户端的多个HTTP请求通过一个TCP连接进行处理。使用keep-alive可复用TCP链接。

TCP和UDP的区别?

TCP是可靠通信协议,而UDP是不可靠通信协议。TCP接收方收到的数据是完整,有序,需要经过三次握手。UDP接收方接收的数据可能存在部分丢失,顺序也不一定能保证。

TCP 拥塞控制是什么?怎么工作的?

  • 拥塞:在某段时间内,如果对网络中的某一资源的需求超过了该资源所能提供的可用部分,网络的性能就要发生变化,叫做拥塞。
  • 拥塞控制:防止过多的数据注入到网络当中,这样可以使网络中的路由器或链路不致过载。
  • 拥塞控制的方法:慢开始、拥塞避免、快重传、快恢复
  • 流量控制:流量控制作用于接收者,它是控制发送者的发送速度从而使接收者来得及接收,防止分组丢失。

TCP 如何保证传输正确的?

TCP 在发包过程中会记录发送字节长度,比如发送了 100,响应的时候就会响应 101,代表前 100 都接收完毕了。以此来确保准确性。

一个 TCP 连接中 HTTP 请求发送可以一起发送吗?

不可以,TCP 是阻塞式的只能一个返回在发另外一个。

为什么有的时候刷新页面不需要重新建立 SSL 连接?

TCP 会与浏览器保持连接一段时间,所以不需要,重新建立 TCP,自然 SSL 也不需要。

 

 

 

 

 

 

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值