Java知识分享网 - 轻松学习从此开始!    

Java知识分享网

Java1234官方群25:java1234官方群17
Java1234官方群25:838462530
        
SpringBoot+SpringSecurity+Vue+ElementPlus权限系统实战课程 震撼发布        

最新Java全栈就业实战课程(免费)

springcloud分布式电商秒杀实战课程

IDEA永久激活

66套java实战课程无套路领取

锋哥开始收Java学员啦!

Python学习路线图

锋哥开始收Java学员啦!

校招Java工程师面试问题及答案 PDF 下载


分享到:
时间:2020-12-13 19:53来源:http://www.java1234.com 作者:转载  侵权举报
校招Java工程师面试问题及答案 PDF 下载
失效链接处理
校招Java工程师面试问题及答案  PDF 下载


本站整理下载:
提取码:nvja 
 
 
相关截图:
 
主要内容:


计算机网络
TCP 与 UDP 区别 TCP 是面向连接的,它可以提供可靠的数据传输服务;UDP 是无连接的,不能保证数据传输的可靠性。正因为上面这
几点原因,TCP 传输的效率低,需要更多的资源;而 UDP 传输的效率高,需要的资源少。
TCP:文件传输、邮件发送接收、远程登录、网页加载(HTTP 使用 TCP 而不是 UDP 的原因是(打开)网页必须传输大
14
量数据,并且 TCP 协议提供传输控制,按顺序组织数据并纠正错误)。 UDP:QQ 语音、视频、直播
如何防止 UDP 丢包 1、 接收端处理时间过长导致丢包:调用 recv 方法接收端收到数据后,处理数据花了一些时间,处理完后再次调用 recv
方法,在这二次调用间隔里,发过来的包可能丢失。
对于这种情况可以修改接收端,将包接收后存入一个缓冲区,然后迅速返回继续 recv。 2、 发送的包巨大丢包:虽然 send 方法会帮你做大包切割成小包发送的事情,但包太大也不行。例如超过 50K 的一个
udp 包,不切割直接通过 send 方法发送也会导致这个包丢失。这种情况需要切割成小包再逐个 send。 3、 发送的包较大,超过接受者缓存导致丢包:包超过 mtu size 数倍,几个大的 udp 包可能会超过接收者的缓冲,导
致丢包。这种情况可以设置 socket 接收缓冲。以前遇到过这种问题,我把接收缓冲设置成 64K 就解决了。
4、 发送的包频率太快:虽然每个包的大小都小于 mtu size 但是频率太快,例如 40 多个 mut size 的包连续发送中间不
sleep,也有可能导致丢包。这种情况也有时可以通过设置 socket 接收缓冲解决,但有时解决不了。所以在发送频
率过快的时候还是考虑 sleep 一下吧。
TCP 粘包的原因及解决方法 
如果客户端不断向服务端发送数据包时,服务端接收的数据会出现两个数据包黏在一起的情况,这就是 TCP 协议中的
粘包以及拆包问题。
UDP 不会发生粘包现象。因为 UDP 是基于报文发送的,从 UDP 的帧结构可以看出,在 UDP 首部采用了 16bit(2 字
节)来指示 UDP 数据报文的长度,因此在应用层能很好的将不同的数据报文区分开,从而避免粘包和拆包的问题
粘包:


 
 
------分隔线----------------------------

锋哥公众号


锋哥微信


关注公众号
【Java资料站】
回复 666
获取 
66套java
从菜鸡到大神
项目实战课程

锋哥推荐