• UDP协议


    和TCP一样,UDP协议也是传输层使用的核心通信协议之一。UDP发送的数据叫数据报。它不要求在通信前建立通信链路或者数据路径。
    RFC 768
    UDP使用最小协议机制的无连接通信模型。它的协议真的很小:
    请添加图片描述
    Source Port (源端口):这是一个可选字段,当它有意义时,它表示发送进程的端口。如果这个字段没有使用,那么它的值是0.
    Destination Port(目的端口):在特定的互联网目的地址中它是有意义。
    Length(长度):这个长度是指用户数据报的Header和数据的八位字节数。
    Checksum(校验和):这个可以用于检查数据是否出错,和TCP的Checksum类似。

    UDP没有三次握手的过程。UDP也没有TCP那样的功能:数据完整传输的保证,数据的顺序、数据重复检查,在UDP中数据的可靠性是没有保证的。如果需要这些功能,那就得使用TCP。

    UDP非常适合用在那些对错误检查或纠正都不那么重要的地方。那些对时间敏感的应用通常都用UDP协议,所以UDP是实时系统的一个不错考虑。UDP是面向事务(消息)的协议,事务的特点就是要么全部成功,要么全部失败,适合那种简单的查询-响应的协议,如域服务服务器,网络时间协议。

    UDP提供的是数据报传输,非常适合用来模仿其他协议,如IP隧道,远程进程调用、网络文件系统。

    UPD也适合用在自举(没有任何外部输入的情况下继续进行或进化)也适合没有完整协议栈的其他用途, 如DHCP、简单文件传输协议(TFTP)

    UDP是无状态的,因此它非常适合大量的客户端的应用使用,如流媒体应用,IPTV

    因为UDP没有重传延迟(TCP是有的),因此它也常适合实时应用,如IP语音、在线游戏和使用实时流协议(RTSP)的协议

    UDP还支持多播(多播就是指一组通信,即数据传输可以同时传送到一组目的计算机上。)因此它也适合做消息广播等。

    UDP也有相应的数据报Socket套接字,这个抽象层可以快速上手使用UDP建立主机到主机间的通信。应用程序绑定一个socket到它的数据传输端。这个绑定由IP地址和端口组成,这样就知道要将数据发往哪里了。

    因为UDP缺乏可靠性保证,所以使用UDP的应用可能会遇到丢包,重排序、重复。如果需要这些得到纠正或保证,使用UDP的程序需要在应用里提供额外的机制来满足。否则,可以使用TCP来代替UDP。

    不过像流媒体、实时多人游戏、IP语音这些使用UDP的应用,数据丢包对它们来并不是什么大问题。所以也就不再加任何的机制去保证数据的可靠性。

    原来UDP也被很多协议使用着,如DNS,SNMP(Simple Network Management Protocol)、RIP(Routing Information Protocol,路由信息协议),DHCP(Dynamic Host Configuration Protocol,动态主机配置协议).

    传输语音和视频流量也是用UDP协议。实时视频、音频流协议设计用于解决偶尔发生的丢包,因此在质量方面受到的UDP协议本身的影响会很轻微。

    OK。这个记录就做这么多先。

  • 相关阅读:
    电脑桌面自动提醒的闹钟软件是哪个?
    vulnhub靶场-Nagini
    Windows服务器安装php+mysql环境的经验分享
    2024年最新测评,6款好用的在线代码编辑器推荐
    DirectX12_Windows_GameDevelop_4:Direct3D应用程序框架
    线程之相关知识点总结
    JQuery快速入门
    Shell 脚本学习 day01
    海思3559万能平台:VGS的画线处理
    记录一次脚本安装程序
  • 原文地址:https://blog.csdn.net/weixin_40763897/article/details/130631161