美文网首页
TCP和UDP的区别

TCP和UDP的区别

作者: 就这些吗 | 来源:发表于2019-12-15 01:32 被阅读0次
    TCP UDP
    面向连接(一对一 双全工) 无连接(广播,可以一对一,也可以一对多)
    保证数据的准确性 可能丢包
    保证数据的顺序 不保证数据顺序
    以流的形式传输 以数据包的形式传输

    TCP是怎么保证可靠的数据传输的?

    1.校验和 (简单来说就是可以通过这个值判断数据有没有出错)
    2.
    应答机制和序列号
    (对每个数据包都进行了编号,收到都要应答)
    3.超时重传(发送完数据包之后一段时间没收到应答,重新发送)
    4.流量控制(防止发送太快,缓冲区不够导致丢包,可以告诉对面缓冲区大小,该发多大的包)
    5.拥塞控制(慢开始,一开始传少量的数据看看网络情况,逐渐提高传输效率,如果传输出了问题,又会降低传输效率)

    什么是流?什么是数据包?有什么不同?
    tcp粘包问题
    流:比如一次传输200KB,再来一次传输300KB ,可以只调用一次recvfrom函数就全部接受
    数据包:发几次就要调用几次recvfrom函数

    什么时候会发生粘包?
    发送端发送的数据间隔较短,且数据量小
    接收端处理缓冲区的速度小于接收的速度
    怎么解决粘包?
    在发送数据包的包头包含此次数据包大小的信息

    相关文章

      网友评论

          本文标题:TCP和UDP的区别

          本文链接:https://www.haomeiwen.com/subject/kymxnctx.html