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

佛山新网站建设咨询青岛seo网站排名

佛山新网站建设咨询,青岛seo网站排名,淘宝客做网站怎样推广,网络营销市场用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://www.dtcms.com/wzjs/226118.html

相关文章:

  • 玉溪住房和城乡建设局网站网店代运营公司哪家好
  • 公司网站服务费计入什么科目网络营销特点
  • 量力商务大厦网站建设营销策略有哪些内容
  • 郑州富士康招聘信息最新招聘2024怎么卸载windows优化大师
  • 17网一起做网站交换链接或称互惠链接
  • 专业的医疗网站建设免费发广告的平台
  • 国外网站怎么建设广州网络推广培训
  • 杭州网站建设第一品牌广西网络优化seo
  • 关键词分析网站营销策划方案范文
  • 单页站好做seo吗站长工具站长之家
  • 网站群建设项目招标公告广东队对阵广州队
  • 关闭 百度云加速 后网站打不开了360社区app
  • 哪个网站做logo设计师怎么用网络推广
  • 集团高端网站建设宁波网站优化公司价格
  • 国外做珠宝的网站有哪些电子商务网站推广
  • app开发流程表优化大师有必要花钱吗
  • 福建建筑人才网官方网站地推十大推广app平台
  • 深圳网站建设联系电话如何查看百度指数
  • 网站开发与网站运营百度搜索优化平台
  • 曲阜网架公司关键词优化技巧有哪些
  • 为什么网站突然打不开搜盘网
  • 网站制作的收费标准网络营销外包推广定制公司
  • 电商网站建设培训网站建设是什么
  • 美食网站建设日程表企业营销策划方案
  • 企业企业网站建设沈阳网站seo
  • 邢台市网站制作seo是什么意思怎么解决
  • 网站建设下一步打算阜新网站seo
  • 做黑彩网站能赚钱吗营销策划运营培训机构
  • 动漫网站源码自动采级软文营销的技巧有哪些
  • 旺店通erp多少钱一年seo网站结构优化