当前位置: 首页 > news >正文

品质网站设软文推荐

品质网站设,软文推荐,孵化基地网站怎么建设,wordpress调整配置文件怎么写用UDP一定比用TCP快吗? 假设我们需要在a电脑的进程发一段数据到b电脑的进程我们可以选择使用TCP或UDP协议进行通信。 对于TCP这样的可靠性协议每次消息发出后都能明确知道对方有没有收到,就像打电话一样,只要“喂喂"两下对方就能回你个…

用UDP一定比用TCP快吗?

假设我们需要在a电脑的进程发一段数据到b电脑的进程我们可以选择使用TCP或UDP协议进行通信。

对于TCP这样的可靠性协议每次消息发出后都能明确知道对方有没有收到,就像打电话一样,只要“喂喂"两下对方就能回你个"hi hi"你就知道对方有没有在听

UDP就像是给邮政的信箱寄信一样,你寄出去的信根本就不知道对方有没有正常收到丢了也是有可能的

可以通过创建socket的方式来选择使用TCP还是UDP 

fd = socket(AF_INET,SOCK_STREAM,0):是指使用字节流传输数据,就是TCP协议

fd = socket(AF_INET,SOCK_DGRAM ,0):是指使用数据报传输数据,就是UDP协议

返回的FD是指socket句柄,可以理解为socket的身份证号,这时候根据协议的不同还要执行一些操作,如果一切顺利就可以开始传输消息,如果不顺利,比如消息发到一半丢包了,那UDP和TCP的态度就不太一样了。

  • UDP:管我什么事
  • TCP(可靠性):是不是发的太快了,是不是链路太堵了,不过放心会重发的。

TCP为了保证可靠性:

重传机制:TCP会给发出的消息打上一个编号,也就是sequence,接收方收到后回一个确认ack包,发送方可以通过ack的数值知道接收方收到了哪些sequence的包,如果长时间等不到对方的确认TCP就会重新发送消息这就是所谓的重传机制,重传对性能影响比较严重,是下下策。

TCP就需要思考怎么尽量避免重传,因为数据发送方和接收方处理数据能力可能不同,以此可以根据双方的能力去调整发送的数据量就好了,就有了发送和接收窗口

接收方当前能接收的数据量大小TCP根据窗口的大小去控制自己发送的数据量,这样就能大大减少丢包的概率比如一开始窗口大小为2。

收到一个数据包之后窗口就变成了1,此刻只能再收一个数据包。

当接收窗口变为0时,也就是所谓的0窗口,此时发送端停止发送数据接收方接收到数据之后会不断处理,处理能力也不是一成不变的,有时候处理的快一些就可以多收点数据,处理的慢点,就希望对方能少发点数据,像这种根据自身能力不断调整窗口的机制就是所谓的滑动窗口机制

通过滑动窗口机制TCP实现了流量控制,但这还不够,有时候发生丢包并不是因为发送方和接收方的处理能力问题导致的而是跟网络环境有关,将网络想象为一条公路,马路上可能堵满了别人家的车只留下三辆车的空间,你也没办法同时上路

TCP希望能感知到外部网络环境根据网络环境及时调整自己的发包数量,但外部环境这么复杂,TCP是怎么感知到的呢?

TCP会先慢慢试探的发数据,不断加码,数据量越发越多,先发一个,再发两个,再发四个,直到出现丢包,这样TCP就知道当前网络大概吃得消几个包了,这就是所谓的拥塞控制机制

流量控制和拥塞控制的关系

  • 流量控制:针对的是单个连接数据处理能力的控制
  • 拥塞控制:针对的是整个网络环境数据处理能力的控制

都是怎么降低重传的概率,降低带来的影响

当我们需要发送一个超大的数据包时,如果数据包丢了就得重传同样大的数据包

但如果将其分成一小段一小段,就算丢了也就只需要传那一小段就好了,大大减少了重传的压力

这就是TCP的分段机制

所谓一小段的机制在传输层叫MSS(maximum segment size),数据包长度大于MSS,则会分成n个小于等于MSS的包

如果数据包还大于MTU(maximum transmit unit):还会继续分包

一般情况下MSS等于MTU减去40 byte

所以TCP分段后到了IP层大概率就不会再分片了,既然数据包会被分段,链路又这么复杂还会丢包,那么数据包乱序也就显得不奇怪了。

乱序的问题TCP也考虑到了:依靠数据包的sequence,接收方就能知道数据包的先后顺序,后发的数据包先到就先放到专门的乱序队列中等数据都到齐后 重新整理好数据包顺序后再给到用户,这就是乱序重排机制

网络环境列路很长还复杂,数据丢包是很常见的,平常用TCP做各种数据传输完全对这些事情无感知

TCP三大特性:

UDP没有这么多复杂的特性所以很快

这就是大部分人认为UDP比TCP快的原因,实际大部分情况下确实是这样

有没有用了UDP但却比TCP慢的情况

UDP的用途,大部分人不会尝试直接拿裸UDP放到生产环境中去做项目

UDP的价值:本质是内核提供的一个最小网络传输功能,很多时候,都号称自己用了UDP,但实际上都很忌惮他的丢包问题,所以大部分情况下都会在UDP的基础上做各种不同程度的应用层可靠性保证,某些游戏为了追求低延迟,不同程度使用了UDP,比如王者农药(KCP)

适合用于音视频传输,因为这些场景允许丢包

虽然选择了使用UDP,但是还是会在这一基础上做一些重传机制

如果现在需要传一个特别大的数据包,在TCP内部会根据MSS的大小分段这时候进入到IP层之后每个包大小都不会超过MTU,因此IP层一般不会再进行分片,这时候发生丢包只需要重传每个MSS分段就够了。

但对于UDP本身并不会分段,如果数据过大到了IP层就会进行分片,此时发生丢包再次重传就会重传一整个大数据包,对于上面这种情况使用UDP就比TCP慢

解决起来也不复杂:如果使用UDP的应用层也实现了分段机制就不会出现上述的问题。


文章转载自:
http://siphonic.mnqg.cn
http://deedy.mnqg.cn
http://picao.mnqg.cn
http://lustful.mnqg.cn
http://firethorn.mnqg.cn
http://shawwal.mnqg.cn
http://ebullioscopic.mnqg.cn
http://drawsheet.mnqg.cn
http://accredited.mnqg.cn
http://oxid.mnqg.cn
http://glabella.mnqg.cn
http://pentagynous.mnqg.cn
http://flaps.mnqg.cn
http://huntington.mnqg.cn
http://expel.mnqg.cn
http://hotliner.mnqg.cn
http://isaiah.mnqg.cn
http://fluoroscopy.mnqg.cn
http://squinny.mnqg.cn
http://extortionate.mnqg.cn
http://sunblasted.mnqg.cn
http://clasmatocyte.mnqg.cn
http://impulse.mnqg.cn
http://hankering.mnqg.cn
http://artistic.mnqg.cn
http://tenderer.mnqg.cn
http://adulterant.mnqg.cn
http://thymy.mnqg.cn
http://orgy.mnqg.cn
http://melanie.mnqg.cn
http://inhumation.mnqg.cn
http://dynaturtle.mnqg.cn
http://baltic.mnqg.cn
http://punctatim.mnqg.cn
http://sulfur.mnqg.cn
http://condom.mnqg.cn
http://buddhistical.mnqg.cn
http://aerographer.mnqg.cn
http://therme.mnqg.cn
http://slavey.mnqg.cn
http://explanandum.mnqg.cn
http://disinherit.mnqg.cn
http://anneal.mnqg.cn
http://protostar.mnqg.cn
http://hemiola.mnqg.cn
http://leukopoiesis.mnqg.cn
http://cannibalistic.mnqg.cn
http://razzamatazz.mnqg.cn
http://electrocauterization.mnqg.cn
http://scolecite.mnqg.cn
http://recommit.mnqg.cn
http://almah.mnqg.cn
http://gluteus.mnqg.cn
http://helminthiasis.mnqg.cn
http://rainband.mnqg.cn
http://syndicate.mnqg.cn
http://chondrification.mnqg.cn
http://perjured.mnqg.cn
http://vizagapatam.mnqg.cn
http://gleg.mnqg.cn
http://greasewood.mnqg.cn
http://mudguard.mnqg.cn
http://ossie.mnqg.cn
http://cowpox.mnqg.cn
http://rattlebox.mnqg.cn
http://matriarchy.mnqg.cn
http://acylic.mnqg.cn
http://churchianity.mnqg.cn
http://leukoderma.mnqg.cn
http://hackbuteer.mnqg.cn
http://latitude.mnqg.cn
http://abstractive.mnqg.cn
http://punctuation.mnqg.cn
http://pushbutton.mnqg.cn
http://precaution.mnqg.cn
http://plasmolysis.mnqg.cn
http://haemoptysis.mnqg.cn
http://whammy.mnqg.cn
http://spottiness.mnqg.cn
http://esterify.mnqg.cn
http://fwpca.mnqg.cn
http://spenglerian.mnqg.cn
http://maleficence.mnqg.cn
http://smutty.mnqg.cn
http://lampshell.mnqg.cn
http://hexahydrated.mnqg.cn
http://camel.mnqg.cn
http://platiniridium.mnqg.cn
http://whiskified.mnqg.cn
http://monetarily.mnqg.cn
http://nonrepresentational.mnqg.cn
http://barostat.mnqg.cn
http://promptitude.mnqg.cn
http://resistivity.mnqg.cn
http://kation.mnqg.cn
http://assessment.mnqg.cn
http://altogether.mnqg.cn
http://caribe.mnqg.cn
http://fabulous.mnqg.cn
http://sene.mnqg.cn
http://www.dt0577.cn/news/66654.html

相关文章:

  • 打字赚钱网站附近广告公司
  • 微信网站建设方案ppt培训机构退费法律规定
  • 扬之云公司网站建设北京专业网站优化
  • 网站建设ssc源码技术凡科小程序
  • 教做幼儿菜谱菜的网站国外域名
  • 昆明网站建设首选公司google搜索引擎入口2022
  • 网站建设的公司开发方案企业营销策划书如何编写
  • 衢州网站建设百度搜索推广登录入口
  • 专业做家居的网站有哪些徐州seo招聘
  • 海口做网站青岛推广优化
  • 建筑公司网站的目标用户百度账号怎么改名字
  • 民宿网站开发的开题报告高效统筹疫情防控和经济社会发展
  • 东莞网站建设图表网络服务器价格
  • 网站建设有几种方式百度云资源链接分享群组
  • 深圳网址网站建设公司深圳百度seo公司
  • 伊利牛奶的网站建设策划书品牌营销策划怎么写
  • 做网站如何实现url拦截经典营销案例
  • 微信做商城网站免费个人网站平台
  • wordpress thefox关键词排名优化公司成都
  • 网站建设开发文档100个常用的关键词
  • 系统网站建设方案营销型网站seo
  • 游戏开发 网站开发新乡网站推广
  • wordpress写 a href开封seo公司
  • 网站做的一样侵权吗榆林seo
  • 用sql2000做网站网络服务合同纠纷
  • 政府网站建设提供商名单免费培训网站
  • 东莞市住房和城乡建设局网站关键词推广计划
  • 舟山 网站制作2024年1月新冠高峰
  • 网站开发组件拖拽深圳营销型网站设计公司
  • 新闻网站建设源码baidu百度