TCP实现可靠传输

1. TCP 和 UDP的区别:

  • TCP面向连接;UDP无连接
  • TCP保证数据的可靠传输,数据传送无差错,不丢失,无重复,按序到达;UDP不保证可靠交付
  • TCP连接一对一;UDP支持更广泛
  • UDP实时性好,效率高,适用场景:短消息传输,大量客户端,对数据安全性要求不高但实时性要求高
  • TCP面向数据流;UDP面向数据报

2. TCP如何保证数据传输的可靠性?

  1. 序列号ACK信号:发送方按照顺序给要发送的数据包的每个字节都标上编号。接收方接收到发送方的数据包之后,回传一个ACK信号,标识下一个需求的数据包初始字节编号。

  2. 超时重发:在等待接收方回传的ACK信号超时后,发送方重发数据包。一旦开始重传,下一次等待的时间间隔指数增长,重发一定次数后还是收不到ACK信号,将强制终止连接。

  3. TCP的连接管理:建立连接的三次握手和断开连接的四次挥手。

  4. 以段为单位发送数据包:在建立TCP连接的同时,两端协商发送数据包的单位,称为“最大消息长度”:MSS。 【TCP数据(MSS字节)】【TCP首部(20字节)】【IP首部(20字节)】

  5. 滑动窗口:以段为单位发送数据包,每发送一个数据包需要等待一个ACK信号,当数据包往返时间越长效率越低。滑动窗口中窗口前端为已发送但为收到ACK的数据,后端为待发送数据。发送端一次发送多个数据,接收端回传收到的连续数据的ACK信号,缓存缺失数据之后的数据包(保持顺序)。发送端当收到ACK信号时,窗口向前依次移动,直到遇到有数据未确认时停止。一段时间后启动超时重传,接收端若收到缺失数据,则和缓存数据一起发送ACK信号,否则,抛弃缓存数据。

  6. 流量控制:TCP首部有一个字段来通知窗口的大小,接收端通过设置来主动控制传输流量。

  7. 拥塞控制:发送端通过拥塞窗口主动控制传输流量。慢启动:防止双方通信刚开始就传送大量数据包,发送端拥塞窗口初始设置为1MSS,每接受一个ACK信号,窗口扩大为两倍。发送数据时,取拥塞窗口和滑动窗口的较小值。同时设定一个慢启动阈值,当拥塞窗口大小超过阈值时,改为线性增长,直到网络拥塞。拥塞时将慢启动阈值设置为当前窗口的的一半,并将拥塞窗口的值设置为1,然后再次重复操作。

 

转载于:https://www.cnblogs.com/walker993/p/9570902.html

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

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

相关文章

旧手机别扔,手把手教你DIY一台Linux服务器

作者:Hannah Lee编译:弯月 欧阳姝黎来源:CSDN(ID:CSDNnews)本文将向你展示如何使用 UrBackup 和 Linux Deploy在一台 Android 旧手机上搭建一台备份服务器。旧手机的污染问题众所周知,我有一台旧…

学计算机买电脑显卡1605ti够吗,GTX1650和GTX1050Ti哪个好?GTX1050ti和GTX1650性能差距对比评测...

GTX1650显卡在2019年4月22日进行发售,不少用户认为GTX1650是智商检测卡,真的是吗?从命名上来看,GTX1650应该是GTX1050的升级产品,不过根据英伟达的说法,GTX1650相比GTX1050提升幅度达到了70%,但…

Cacti Plugin Architecture安装

1.下载Cacti PluginArchitecture ,http://mirror.cactiusers.org/downloads/plugins/cacti-plugin-0.8.7g-PA-v2.8.tar.gz2.解压Cacti Plugin Architecture 3.安装cd cacti-plugin-archcp cacti-plugin-0.8.7b-PA-v2.1.diff /var/www/cactipatch -p1 -N < cacti-plugin-0.8.…

P1547 Out of Hay

传送门 练习 只是一个最小生成树的水题&#xff0c;拿来练练模板 AC代码&#xff1a; #include<iostream> #include<cstdio> #include<algorithm> #include<cmath> using namespace std; #define maxn 10001 struct hh {int x,y,z; }t[maxn]; int …

研发转FAE,要想清楚

说个事情吧因为今天有个同学跟我说&#xff0c;自己想转去做FAE。他最近刚面试了一个FAE的岗位&#xff0c;那边感觉挺缺人了&#xff0c;感觉那边领导也比较喜欢自己&#xff0c;想让他快点去那边。然后我就跟他聊了下首先&#xff0c;过去做FAE的岗位就是一个大头兵&#xff…

Gamma的传说

Gamma校正对于图形和图像来说是个常提的概念&#xff0c;但对于gamma的缘由和使用方法&#xff0c;却存在着很多传说。本文将尽可能解析gamma校正来源&#xff0c;破解各种迷思。Gamma校正从何而来 有一种常见的说法&#xff0c;gamma来源于眼睛对光感受。我也曾经错误地采用了…

计算机网络在实践中的应用,计算机网络技术及在实践中的应用

摘 要隨着社会的快速发展&#xff0c;计算机网络技术也得到迅猛发展&#xff0c;计算机网络技术已经广泛应用于人们的生活和工作中。如今&#xff0c;计算机网络技术已经趋向成熟&#xff0c;应用范围也在不断扩大。计算机网络技术实际上是以下几种技术的结合&#xff1a;一是计…

进程中的一个线程死了所引发的后果

我们知道&#xff0c;同一个进程中的多个线程共享进程资源&#xff0c;包括主内存、文件句柄、锁资源等。那么当一个线程死了&#xff08;非正常退出、死循环等&#xff09;就会导致线程该占有的资源永远无法释放&#xff0c;从而影响其他线程的正常工作&#xff0c;看下面一个…

心急吃不了热豆腐

良好的焊接是保证电路稳定持久工作的前提。下面给出了常见到的焊接缺陷。看看你遇到过多少种&#xff1f;▲ 图1 焊接中的常见问题▲ 图2 锡珠▲ 图3 扰动的焊接&#xff1a;在焊接点冷却过程中焊锡移动&#xff0c;造成焊接表面起雾、结晶、粗糙▲ 图4 立碑▲ 图5 冷结&…

ICON资源

http://openiconlibrary.sourceforge.net/downloads.html http://commons.wikimedia.org/wiki/Crystal_Clear&#xff08;强烈推荐&#xff09; http://www.everaldo.com/crystal/ http://www.iconspedia.com/&#xff08;很多国外nb的设计师&#xff0c;强烈推荐) http://www.…

会议升降计算机主机,升降式无纸化多媒体会议系统

升降式无纸化多媒体会议系统&#xff0c;我们将全面贯彻执行现代化企业管理理念以及“一站式****”的服务理念&#xff0c;内强素质外树形象&#xff0c;随时为全球广大客户提供更超值的产品与服务&#xff0c;更好更快得促进企业的稳健快速发展。精品主题&#xff0c;实战科普…

给电子类大学生一点求职建议

‍读大学的时候应该想清楚以后要干嘛&#xff0c;不然很可能要面对毕业即失业的窘境。每年近千万毕业生涌向社会&#xff0c;这个数字多少会给你点压力吧。因为我是专业对口的&#xff0c;所以我就从对口的角度&#xff0c;说下我们电子信息类专业学的啥以及怎么学。有很多人在…

Silverlight三维柱状图3D饼图的Silverlight图表组件案例

Silverlight三维柱状图3D饼图的Silverlight图表组件案例 开发环境&#xff1a;Visual Studio 2010 Silverlight 4 SQL2005 Silverlight开发的3D图表组件与及应用的项目截图&#xff1a; 本Silverlight开发的图表控件程序架构简洁清淅&#xff0c;是做二次开发的良好项目框架和核…

oppo专用计算机,OPPO手机助手

OPPO手机助手是OPPO官方最安全的手机助手&#xff0c;将OPPO手机和电脑连接后&#xff0c;可通过“OPPO手机助手”在电脑上管理手机中的应用程序、短信、通讯录(含通话记录)和图片等&#xff0c;还能在电脑上备份手机中的资料。OPPO手机助手是oppo手机的贴心管家。华军软件园提…

EDG牛逼

不管EDG有多牛&#xff0c;明天的早餐可以加个馒头&#xff01;EDG&#x1f42e;&#x1f37a;

[LeetCode][Python][C#]刷题记录 26. 删除排序数组中的重复项

这道题我真的纠结好久&#xff0c;因为没注意那个原地的题目要求&#xff0c;所以很奇怪怎么我电脑运行成功&#xff0c;但是LeetCode上运行就是不对。气哭。 感谢群友lino的帮助。他试了set方法不行&#xff0c;直接喂给我的答案了。。。 题目&#xff1a;26. 删除排序数组中的…

IE9给我带来的惊喜和不解(For Silverlight不解)

今天兴致冲冲的装上了IE9&#xff0c;发现IE9装好后不能打开我的Silverlight。提示我需要安装Silverlight插件 如图 后面深蓝色群里得朋友说他们没有这个问题&#xff0c;但是在64位的情况下会有这个问题&#xff0c;我查看了 我的Silverlight是好的&#xff0c;并且重新安装ru…

不要怕

昨晚很晚没有睡&#xff0c;一个原因是看比赛&#xff0c;一个原因是因为收到一个读者的留言&#xff0c;不是一般的留言&#xff0c;是很长的一段留言。有很多感同深受的地方&#xff0c;所以想着怎么开导他&#xff0c;就写了很多东西给他&#xff0c;一个是希望给他支持&…

bootstrap-daterangepicker插件运用

引入&#xff1a;daterangepicker.css、daterangepicker.js、moment.js、moment.min.js 链接&#xff1a;https://files.cnblogs.com/files/kitty-blog/moment.min.js、https://files.cnblogs.com/files/kitty-blog/moment.js、https://files.cnblogs.com/files/kitty-blog/dat…

计算机学业水平测试字处理多少分,【计算机应用论文】计算机应用基础学业水平的测试问题(共3624字)...

【摘要】本文从学业水平测试的作用&#xff0c;以及学业水平测试的安排进行了阐述&#xff0c;并指出了当前教学中存在的问题和解决的策略&#xff0c;具有一定的借鉴意义。【关键词】学业水平测试&#xff1b;计算机福建省于2016年下发了《福建省中等职业学校学生学业水平考试…