TCP协议的简单认识

 TCP协议:

         tcp协议(传输控制协议)是一种面向连接的,可靠的传输协议。它通过提供一种可靠的字节流,保证数据完整,无损,并且按照顺序到达。在传输过程中,它还尽量不断地测试网络负载,进而调整传输速度,防止网络过载 。此外,它还试图将数据按照指定顺序发送。

这也就引出了目前tcp协议的第一个问题,那就是队头阻塞问题。

TCP协议队头阻塞问题

       如果现在要发送三个编号分别为1  2   3的数据包,在接收数据包的时候,如果目前接受到了数据包1,而数据包2在传输过程中丢失,但在接收端还是会一直等待数据包2,哪怕数据包3到达了也不能被顺利接收,此时便陷入了无限等待。

 

TCP协议握手复杂,连接建立慢问题

 

       众所周知,在客户端和服务器建立连接的过程中,需要经历三次握手和四次挥手,这些完成之后,连接才能顺利建立。但如果二者距离过远,那么三次握手便会消耗1.5个Rtt,甚至是300到400毫秒,这是较为缓慢的。

 

解决办法:

     就目前来说,tcp协议是没有什么很好的解决办法的。现在较为有效的处理方法则是淘汰tcp协议,进而制定一种新的协议,也就是HTTP  3.0中的QUIC协议。(tcp协议为http  2.0)

 

QUIC协议:

        quic协议是基于udp(用户数据报协议)和diffie-hellman算法建立的一种低时延传输协议。

         它于2012年开始实施部署,到2021年发行QUIC标准版RFC9000

QUIC协议的优势:

1.QUIC协议在初次连接时便可交换加密秘钥,进而建立连接,所以相较tcp协议来说,它的连接建立要快的多。

2.QUIC协议采用多路复用技术,QUIC 可以复用多个 stream(流),并且单个流可以保证有序交付,但多个流之间可能乱序。一个流中的丢包不会影响其他流的数据传输,彻底解决了 TCP 协议中的队头阻塞问题。

3.连接迁移:TCP 连接是由四元组(源 IP、源端口、目的 IP、目的端口)标识的,当其中任何一个元素发生变化时,需要重新建立连接。QUIC 基于连接 ID 唯一识别连接,当用户的地址发生变化时,如从 Wi-Fi 切换到 4G 网络,只要连接 ID 不变,QUIC 连接依然维持,上层业务逻辑不受影响,无需重连。

4.拥塞控制:支持多种拥塞控制算法,如 TCP 协议中的 Cubic 拥塞控制算法,同时也支持 Reno、PCC、BBR、CubicBytes 等其他算法,增加了改造的灵活性。并且在应用层也对拥塞控制做了大量优化,拥有完善的数据包同步机制,保障了通信的稳定性和传输效率。

5. 安全性高:在传输层中内置了加密功能,默认支持安全的 TLS 1.3,对整个负载(包括头部)进行验证,端到端完全安全,相比 TCP 在安全性方面有很大提升。

6. 前向纠错:具有前向纠错能力,能够在一定程度上纠正传输过程中出现的错误,减少数据重传的次数,提高传输效率。

 

尽管QUIC协议已经很棒了,但是他也还存在一些没有补齐的短板:

a.应用迁移困难:将应用从基于 TCP 的 HTTP/2 迁移到基于 QUIC 的 HTTP/3 需要对整个应用层和传输层进行改造,对于一些资源有限的小厂商来说,迁移成本较高,面临较大挑战。

b. 采用受限:虽然 QUIC 有很多优势,但目前其采用仍然受到限制。除了一些大型科技公司,很多企业和服务提供商尚未广泛采用 QUIC 协议,导致其在实际应用中的覆盖范围有限。

c.安全检查问题:网络防火墙无法解密 QUIC 流量来检查数据包,可能导致潜在的恶意流量无法被标准安全功能检测出来,存在一定的安全风险。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值