网络基础2(传输层,深层次理解TCP,TCP/UDP对比)

目录

1. TCP提高效率的机制

1.1 滑动窗口

1.2 延迟应答机制

1.3 捎带应答机制

2.TCP的特性/机制

2.1 安全性、可靠性机制

2.2 提高效率的机制

3.对于TCP中的缓冲区

4.TCP的粘包问题

5.基于TCP的应用层协议

6. TCP和UDP区别


1. TCP提高效率的机制

1.1 滑动窗口

作用:可以基于多线程并发,并行的执行代码结合理解,并行的发送数据报,提高网络数据传输效率(作用在发送端)

  •  使用滑动窗口就是要同时收发多条数据报;
  • 响应的ACK下一个序号是多少表示:接收端在这个序号以前的数据包都已经接收到;
  • 窗口大小就是无需等待确认应答而可以继续发送数据的最大值(发送端接收到的ACK确认序号的最大值),上图窗口就是4000字节(四个字段);
  • 窗口大小受限于流量控制窗口大小和拥塞窗口大小:min(流量控制窗口大小,拥塞窗口大小);
  • 窗口越大,则网络的吞吐率就越高,传输效率越高;
  • 滑动:接收到ACK确认序号的最大值,可以计算出多少段数据对方已经收到,对应的发送端滑动窗口就向下滑动多少;

这种机制被称为“高速重发控制”(快重传)发送端连续三次收到相同的下一个是多少的ACK,表示数据丢包需要重发,相较于超时重传时间是更快的。

1.2 延迟应答机制

作用:接收端稍等一定的时间再去应答,这样可以有时间消费掉接收缓冲区的数据,接收缓冲区剩余的空间就更大,返回的流量窗口大小就更大

目标:保证网络不拥塞的情况下尽量提高传输效率

延迟条件:

  • 数量限制:每隔N个包就应答一次
  • 时间限制:超过最大延迟时间就应答一次

1.3 捎带应答机制

2.TCP的特性/机制

2.1 安全性、可靠性机制

  • 确认应答
  • 超时重发
  • 连接管理
  • 流量控制
  • 拥塞控制

2.2 提高效率的机制

  • 滑动窗口
  • 延迟应答
  • 捎带应答

3.对于TCP中的缓冲区

 客户端和服务端都存在接收缓冲区和发送缓冲区(每一端都有两个缓冲区)

发送缓冲区:记录了发送数据的序号、接收ACK应答的序号

接收缓冲区:记录了接收数据的序号、应答ACK的序号

4.TCP的粘包问题

发送和接收,都存在缓冲区(多次发送和接收)

粘包原因:解析某个数据时,用到其他部分的数据了。

TCP是基于字节流的,多条数据报在缓冲区,存在粘包问题;UDP是一次性发一次性收,不存在粘包问题。

  • 如何避免粘包问题?

答:明确两个包之间的边界(应用层自己约定好数据格式、协议),类似于在线编程题,多组测试用例时的输入和输出,每组用例的输入和另一组用例的输入需要明确分隔开。

5.基于TCP的应用层协议

HTTP

HTTPS

6. TCP和UDP区别

没有哪个更好,只有在某个具体的业务场景中更合适选择

如果要满足安全可靠(包括次序)就可以使用TCP,反之,可以使用UDP

  • 效率看,UDP更优(不用等待ACK应答)
  • UDP是无连接、不可靠的,反之,TCP有连接、可靠的传输
  • UDP面向数据报,只能一次发送和一次接收;TCP是面向字节流的,可以多次发送和接收
  • UDP具有接收缓冲区,没有发送缓冲区,TCP都有
  • UDP大小受限,TCP大小不受限
  • TCP有“确认应答、超时重发、连接管理、流量控制、拥塞控制”机制保证其安全、可靠性

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值