全球都在下GTA5,我却从中参透了TCP协议

前言

  • 首先,不得不说,EPIC是真的大方,直接将GTAV免费送,没有领取的小伙伴先点这里白嫖一下,然后开始我们今天的正事。
  • 可能博主也是等这94个G等迷糊了,想起了TCP的传输过程,文章不长,也是突然间想到记下来,大家看个乐呵就行,如果理解有误,请大佬指正。

开始分析

首先附上下载过程图片

GTA5下载

TCP可靠传输的实现

  • EPIC客户端下载类似Steam,有5个进度条,我也不多废话,直接看最后一个和倒数第二个进度条。
  • 首先看一个动态图点击跳转
  • 看过之后你会发现,最后一个进度条和TCP的传输很像,怎么像呢,下面我来解释下。
  1. 以“字节”为单位:可以把最后一个进度条的一个小方格看成一个字节(虽然肯定比字节大很多),你会发现,他们都是一个一个或一组一组往后传输的。
  2. 检测丢失并重传:深蓝色的是没有传输的,浅蓝色的是丢失的(或错误的),粉色的是传输完成的,绿色的是传输完成并确认(写入)的。偶尔会出现丢失(出现一个浅蓝方格),那么写入就会停止,等待重传后再继续写入。
  3. 有接收缓存:缓存的存在是协调高速设备和低速设备,最后一个进度条就类似缓冲区,写入的速度非常快(达到400M每秒),而下载的速度相较就非常慢,缓冲区的存在协调了这种差距,偶尔写入停止,等待没有错误再继续写入。

后记

  • 文章仅代表个人拙见,可能人家设计的进度条根本不是这个意思,但是将其作为TCP传输模型也未尝不可。
  • 心(xian)血(de)来(dan)潮(teng)记录一下个人发现,如有错误地方,请大佬指正。
原创文章 6 获赞 682 访问量 3万+

猜你喜欢

转载自blog.csdn.net/weixin_44371842/article/details/106141403