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 也不需要。

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值