数据通信——传输层TCP(可靠传输机制的滑动窗口)

引言

之前提到过拥塞问题,如果大量数据疯狂涌入,接收端无法及时处理就会导致数据丢包,从而使得通信受到干扰。之前的连续ARQ如果不加以节制,疯狂发送报文,接收端无法及时返回ACK就会导致网络瘫痪。

滑动窗口机制协议

    这个机制是用来改善吞吐量的一种技术,即容许发送方在接收任何应答之前传送附加的包。接收方告诉发送方在某一时刻能送多少包(称窗口尺寸)。

    好了,现在就可以定义滑动窗口机制了。(假定在全双工模式下)

    发送端:用来对发送端对发送的流量进行控制。我们来进行一个定义:设在我没有收到接收端发来ACK之前,我仅能在该窗口连续发送数据量的个数为WT。

    接收端:用来对接收端可接受的流量进行控制。我们在进行一个定义:设我可以从接收端最多接收数据的个数为WR。

传输延迟 (Tt)–—— 我们设数据包从发送端全部离开的时间为Tt。设定B 是链路的带宽,D 是要传输的数据大小,那么有公式:

Tt=D/B

传播延迟 (Tp) –——我们设主机将第一个字节传输到接收端的花费时间为Tp。它取决于距离(d)和波的传播速度(s)。则由公式:

Tp=d/s

有效带宽 (EB) 或吞吐量–——每秒发送的位数。

EB = 数据大小(D) / 总循环时间(Tt + 2*Tp)乘以和除以带宽 (B),EB= (1/(1+2a)) * B [ 使用 a = Tp/Tt= 效率 * 带宽

链路容量–——如果一个通道是全双工的,那么比特可以在两个方向上传输而不会发生任何冲突。通道/链路最多可容纳的位数是其容量。

容量 = 带宽 (B) * 传播 (Tp),对于全双工通道, 容量 = 2*带宽(B) * 传播(Tp)

效率–——定义为总有用时间与数据包总循环时间的比率。则有以下公式

总循环时间 = Tt(数据) + Tp(数据) + Tt(确认)+ Tp(确认) = Tt(数据) + Tp(数据) + Tp(确认) = Tt + 2*TP

    以上我们忽略了ACK的发送延迟,毕竟ACK很小!那么,我们就能计算出在理想全双工情况下的利用率为

E=WT×Tf/Tf+2Tp=WT/1+2a

其中a为a=Tp/Tf

窗口中的序号也起到了一定作用。序号需要在分组中传递,因此不允许无限增大。当序号位数=nbit时,接收窗口和发送窗口的最大值也随之改变。

一般的,WT+WR=2n,当然,WR和WT都要≥1.当n=1时,序号可在[0,1]中使用;当n>1时,序号可用在[0,2n-1]之间。通过范围中的筛选,我们可以计算出WT+WR的总和。 

后续 

    啊!这个东西可能单看有点迷惑,我犯懒了,停止等待协议、连续ARQ和滑动窗口,包括后面的超时与拥塞机制等应该放在一起讲。他们是共同为TCP服务的,而且密不可分。

    总的来说,使用滑动窗口机制就为了提供流量控制,防止运行较快的主机致使较慢主机的缓冲区溢出。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/96398.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++实现蜂群涌现效果(flocking)

Flocking算法0704_元宇宙中的程序员的博客-CSDN博客 每个个体的位置,通过计算与周围个体的速度、角度、位置,去更新位置。

WPF+Prism+WebApi 学习总结

一、基本概念 WPF:WPF(Windows Presentation Foundation)是(微软推出的)基于Windows的用户界面框架,提供了统一的编程模型,语言和框架,做到了分离界面设计人员与开发人员的工作;WPF…

音频——硬件拓扑

文章目录 硬件拓扑I2S 数据通路五线模式四线模式两线 TX两线 RX 典型应用硬件连接数据流 硬件拓扑 控制路径:UART/I2C/SPI数据路径:I2S 简略图如下 I2S 数据通路 五线模式 四线模式 两线 TX 两线 RX 典型应用 硬件连接 控制信号:SPI 用…

数据结构体--5.0图

目录 一、定义 二、图的顶点与边之间的关系 三、图的顶点与边之间的关系 四、连通图 五、连通图的生成树定义 一、定义 图(Graph)是由顶点的又穷非空集合合顶点之间边的集合组成,通常表示为:G(V,E&…

linux C编程 获取系统时间

1.clock_gettime #include<time.h> int clock_gettime(clockid_t clk_id,struct timespec *tp); struct timespec {time_t tv_sec; /* 秒*/long tv_nsec; /* 纳秒*/ }clk_id : CLOCK_BOOTTIME&#xff0c;以系统启动时间为时间原点的时间体系&#xff0c;不受其它因素的…

Ei Scopus 双检索 |第三届信息与通信工程国际会议国际会议(JCICE 2024)

会议简介 Brief Introduction 2024年第三届信息与通信工程国际会议国际会议(JCICE 2024) 会议时间&#xff1a;2024年5月10日-12日 召开地点&#xff1a;中国福州 大会官网&#xff1a;JCICE 2024-2024 International Joint Conference on Information and Communication Engin…

前端面试中Vue的有经典面试题一

1. 谈谈你对MVVM开发模式的理解 MVVM分为Model、View、ViewModel三者。 Model&#xff1a;代表数据模型&#xff0c;数据和业务逻辑都在Model层中定义&#xff1b; View&#xff1a;代表UI视图&#xff0c;负责数据的展示&#xff1b; ViewModel&#xff1a;负责监听Model中…

业务需要咨询?开发遇到 bug 想反馈?开发者在线提单功能上线!

大家是否遇到过下列问题—— 在开发的时候&#xff0c;遇到 bug 需要反馈… 有合作意向的时候&#xff0c;想更多了解业务和相关产品… 在接入的时候&#xff0c;需要得到专业技术支持… 别急&#xff0c;荣耀开发者服务平台在线提单功能上线了~ 处理问题分类说明&#xff1…

部署你自己的导航站-dashy

现在每天要访问的网页都太多了&#xff0c;尽管chrome非常好用&#xff0c;有强大的标签系统。但是总觉的少了点什么。 今天我就来分享一个开源的导航网站系统 dashy。这是一个国外的大佬的开源项目 github地址如下&#xff1a;https://github.com/Lissy93/dashy 来简单说一下…

VR全景对行业发展有什么帮助?VR全景制作需要注意什么?

引言&#xff1a; 虚拟现实&#xff08;Virtual Reality&#xff0c;简称VR&#xff09;早已不再是科幻电影的概念&#xff0c;而是在以惊人的速度改变着我们的世界。VR全景&#xff0c;作为其中的重要组成部分&#xff0c;正为多个行业带来了全新的机遇。 一、VR全景的应用领…

SIEM(安全信息和事件管理)解决方案

什么是SIEM 安全信息和事件管理&#xff08;SIEM&#xff09;是一种可帮助组织在安全威胁危害到业务运营之前检测、分析和响应安全威胁的解决方案&#xff0c;将安全信息管理 (SIM) 和安全事件管理 (SEM) 结合到一个安全管理系统中。SIEM 技术从广泛来源收集事件日志数据&…

【玩玩Vue】使用el-menu作为菜单时,通过一二级路由控制菜单高亮

原文作者&#xff1a;我辈李想 版权声明&#xff1a;文章原创&#xff0c;转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、Vue路由二、路由一级控制高亮&#xff08;常用&#xff09;1.vue中路由文件2.网址样式3.Vue文件4.$route的内容 三、路由二级控制高亮…