TCP

1.1TCP/IP
    IP因特网协议:联网主机的路由选择和寻址
    TCP传输控制协议:在不可靠的传输信道上提供可靠的抽象层
    TCP向应用层隐藏了大多数网络通信的复杂细节
    比如丢包重发、按序发送、拥塞控制及避免、数据完整等
    为精确传送做了优化,所有字节准确被接收,到达客户端顺序一致性
2.1三次握手
    建立连接必须经过三次握手,这是为了确保接收端和发送端的接受和发送都是完好的
    这一过程中涉及了分组和序列号的传输
    SYN:客户端选择一个随机序列号x,并发送一个SYN分组,还包含其他TCP标志和选项
    SYN ACK:服务器给x加1,选择自己的随机序列号,追加自己的标志和选项
    ACK:客户端给x和y加1并发送握手期间的最后一个ACK分组
    客户端在发送ACK分组后可以立即发送数据
    服务端要等到接收到ACK分组才可以发送数据
    握手带来的延迟给创建一个TCP连接都要付出巨大的代价,而且连接不是想重用就能够重用的
2.2拥塞预防及控制
    网络拥塞是指在分组交换网络中传送分组的数目太多时,由于存储转发节点的资源有限而造成网络传输性能下降的情况
    往返时间超过了所有主机的最大中断间隔,相应主机在网络中制造越来越多的数据报副本
    交换节点的缓冲区被填满,多出来的分组要被删除,每个分组的某个副本会到达目标
    这就是拥塞崩溃,TCP加入了一系列机制来控制双向发送数据的速度
2.2.1流量控制
    预防发送端过多的向接收端发送数据,否则数据过多而无法处理,比如忙碌、负载重或缓冲区既定
    TCP连接的每一方都需要事先通告自己的接收窗口(rwnd),包含了缓冲区的信息
2.2.2慢启动
    但是建立初期,谁也不知道可用带宽是多少,因此需要一个估算机制,根据网络动态变化
    举个例子,你在家中看视频,服务器会尽最大努力给你提供数据
    这个时候,你家人开始用网了,供视频的带宽一下就少了,这个时候服务器必须调整发送速度
    否则,由于接收端不能立即处理这些数据,这些数据必定在中间某个过程中堆积,最终分组被删除
    新算法:慢启动、拥塞预防、快速重发、快速恢复
    拥塞窗口大小(cwnd):发送端对客户端接收确认(ACK)之前可以发送数据量的限制
    慢启动以保守的窗口初始化连接,随后每次往返都会成倍的提高传输的数据量
2.2.3拥塞预防
    拥塞预防算法将丢包作为网络拥塞的标志,也就是某个连接发生拥堵了,必须采取删包措施
    所以通过调整窗口大小,避免造成过多的包丢失
2.3带宽延迟积BDP
    数据链路的容量与端到端延迟的乘积,就是任意时刻处于在途未确认状态的最大数据量
2.4队首阻塞
    有时候这种按序交付和可靠交付并不太重要,反而会导致额外的延迟
    TCP分组都会带着一个唯一的序列号被发出,而且需要按顺序到达接收端
    如果中间有一个分组没能到达,那么后续分组就要保存在TCP缓冲区,等待丢失的分组重发并到达接收端
    这一切都在TCP层,应用程序一无所知,必须等待分组全部到达才能访问数据
    应用程序只能通过套接字读数据时感觉到延迟交付,这就是队首阻塞
2.5应用程序行为调优
    调节TCP性能可以让服务端和客户端之间达到最大的吞吐量和最小延迟
    再快也快不过什么都不用发送,能少发就少发
    数据传输不能更快,但我们可以减少他们传输的距离
    重用TCP连接是提升性能的关键

    大多数情况之下,TCP的瓶颈都是延迟而不是带宽

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值