tcp是如何工作的

本文深入探讨TCP协议的工作原理,包括连接建立、数据传输、数据重传和流量控制。介绍了TCP的三次握手、数据段的顺序与重传机制、慢启动和拥塞避免算法,以及如何应对网络拥堵和数据丢失。通过理解TCP的这些特性,有助于更好地理解网络数据传输的稳定性和可靠性。
摘要由CSDN通过智能技术生成
引言

在网络系统中,有成千上万的网络设备把整个世界串联起来,组织成一张网络。其中运行着许多复杂的、充满智慧的协议与规则,这样才足以确保数据传输的稳定性,比如不担心抢不到红包。其中,TCP算是一个重量级的嘉宾。

tcp的链接

tcp的链接、断开的话题已经有许多参考资料,这里不再赘述。

关于链接的,记录一下两个点:

  • half-connection
    有一种dos攻击方式就是钻的tcp三次握手的空子。通过大量发送SYN给server,server瞬间积累大量的等着ack的half-connection,导致端口占完。
    当然这是安全领域的问题,这里不过多赘述

  • 2MSL
    在链接关闭,发完最后一个 FIN 的 ACK 时,为了确保接受方准确收到 FIN/ACK,约定(主动关闭方)进入一个 TIME_WAIT 状态。这时候资源是未被释放,如果短时间内有大量的这种关闭链接行为,可能会引发问题。

    为什么是2MSL呢,等待一个 FIN + 一个ACK 来回。避免可能的同端口新链接与迟到的 FIN/ACK 冲突

tcp的数据传输

因为底层的ip协议是需要对数据进行分片传输的,那么tcp也必须把数据分段(segmentation)传输。同时,为了达到数据完整无缺的传输,那么TCP必须考虑几个问题

  1. 数据乱序;各个数据包可能在网络中传输路径不同、到达时间不同
  2. 数据丢失;由于底层网络硬件的复杂性,数据包可能丢失,比如信号干扰之类的
  3. 数据重复;数据丢失之后,发送方需要“补发”,致使数据包重复
  4. 网络拥堵阻塞;多种原因可能导致这种情况,比如:发送方,接受方数据处理能力不一致、网络数据包过多等等

下面依次对这些问题进行阐述

数据传输基本工作原理

在3次握手建立链接之后,链接双方都持有sequence number(下面称sn)。

  1. sender 发送带有sn的数据段(segment)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值