UDP基本协议学习笔记

news/2024/5/17 16:46:06 标签: 网络, 网络协议, tcp, 文档, user, 工作
UDP基本协议学习笔记 一、UDP概述 1、UDP是一种基本的通信协议,只在发送的报文中增加了端口寻址和可选的差错检测功能。 2、UDP不是一种握手信息协议,不能确认接收到的数据或交换其他流量控制信息。 3、UDP是一种非连接协议,计算机在使用UDP发送报文之前,不要求远程已联网或指定的目的端口可用于通信。正因为如此,将UDP称为不可靠协议,即如果只使用 UDP,则发送方不知道目的主机何时是否接收到报文。 4、定义UDP的文档是RFC0768:User Datagram Protacal。在标准STD0006中也获得通过。 5、使用UDP发送报文的计算机将报文置于UDP数据报中。UDP数据报由报头及其后面包含报文的报文组成。 6、发送计算机将UDP数据报置于IP数据报的数据字段中。在以太网中,IP数据报存放在以太网帧的数据字段中。接收到以太网帧后,目的计算机网络栈将 UDP数据报的数据部分传递给数据报报头指定的端口或进程。 7、UDP的大多数功能不如TCP,所以UDP的实现要简单些,更适合于特定的应用场合。如果需要,则可在使用UDP进行通信时自定义握手协议。例如:接收接口在接收到报文之后,将返回包含确认代码或其他请求信息的响应。如果发送方在合理的时间内没有接收到响应信息,就会重新发送报文。但是,如果应用程序需要的不仅仅是最基本的握手或流量控制,则应该考虑使用TCP而不是UDP进行重构。 8、UDP有一个TCP没有的功能,就是可将报文发送到多个目的主机,包括向局域网内所有的IP地址以广播方式发送,或者向指定的IP地址以组播方式发送。对于TCP而言,广播和组播都不现实,因为源主机必须与所有目的主机握手。 二、UDP报头 UDP报头由4个字段组成,后面紧接着是要传输的数据。 1、源端口号:源端口号标识发送报文的计算机端口或进程。长度2字节,可选,如果接收进程不需要知道发送数据报的进程,则该字段可置为0。 2、目的端口号:目的端口号标识接收报文的目的主机端口或进程。2字节。 3、数据报长度:指整个数据报的长度,以字节为单位,包括报头,最大值为65535。该字段为2字节。 4、UDP检验和:是根据UDP数据报 和伪报头计算得到的差错检测值,可选,该字段伪为2个字节。 伪报头包含源和目的IP地址,以及来自IP数据报报头的协议值。IP数据报在网络中传送时包含UDP数据报。伪报头并不会在网络中传送,校验和中所包含的伪报头内容可以避免目的端错误地接收错误路由的数据报。校验和值的计算方法和IP报头检验和的计算方法类似。 仅在局域网内部传输报文不需要UDP校验和,因为以太网帧的校验和已经提供了差错控制。而对于那些需要通过不同的、也许未知网络传输的报文而言,校验和可以让目的主机能检测到错误数据。 三、UDP数据 1、一个UDP数据报最大可达到65535个字节,且报头为8字节,因此一个数据报最多可以携带65527个字节的数据。 2、实际上,源计算机常将数据报限制在较短的长度内。使用较短的数据报的一个原因是,过大的数据报可能不适合目的主机的接收缓冲器大小;或者因为接收数据的应用程序可能需要特定长度的报文。 3、较短数据报也许更高效。当大的数据报经过不同能力的网络时,网络协议可能会将数据报拆分为报片,要求目的主机将这些报片重组。所有数据都会到达目的主机,但一般来说,在源主机处拆分数据,然后在目的主机处重组,会比依赖IP进行这项工作更高效。 4、IP标准要求主机能接收最大长度为576字节的数据报。没有可选项的IP报头长度为20字节,UDP报头为8字节,因此一个最大长度为548字节且没有IP选项的UDP数据报不经过拆分便可到达目的主机。

http://www.niftyadmin.cn/n/849884.html

相关文章

GetDlgItem

首先,新建一个基于MFC应用程序,然后在resource中的对话框上添加编辑框控件。 在编辑框控件上点右键,修改ID为一个有意义的标识。 然后,View ->ClassWizard,在弹出的对话框中,选择Member Variables&a…

献给在这个世界上摇摆不定的朋友们!

感悟:你连追求自己喜欢的事物与人的勇气都没有,你注定是个失败者。 感悟:让老板觉得你可有可无,你被踢开的日子就不远了。感悟:为客户节省时间,钱才能进来快些。感悟:原谅他人,其实是…

cacti监控memcache

cacti监控memcache http://content.dealnews.com/dealnews/developers/cacti-memcached-1.0.tar.gz    # tar zxvf cacti-memcached-1.0.tar.gz #cd cacti-memcached # cp memcached.py /usr/local/apache/htdocs/cacti/scripts      Cacti - Import Templates - Import T…

信号量PV操作

信号量PV操作 分类: 系统2009-04-22 15:57 2846人阅读 评论(6) 收藏 举报引用 阐述P,V原语的理论不得不提到的一个人便是赫赫有名的荷兰科学家 E.W.Dijkstra。如果你对这位科学家没有什么印象的话,提起解决图论中最短路径问题的Dijkstra算法应当是我们再…

《javascript模式--by Stoyan Stefanov》书摘--函数

三、函数 1、函数的命名属性 // IE下不支持name属性 var foo function bar () {// todo }; foo.name; // "bar" 2、函数的提升 function foo () {alert("global foo") }function bar () {alert("global bar") }function w…

友善comtest.c串口编译程序详解 希望对大家有帮助

友善comtest.c串口编译程序详解 希望对大家有帮助 }# include <stdio.h># include <stdlib.h># include <termio.h># include <unistd.h># include <fcntl.h># include <getopt.h># include <time.h># include <errno.h># inc…

Visual Studio 2010——创建新项目

Visual Studio 2010可以创建多种项目&#xff0c;如图1所示。 图1 创建新工程 &#xff0c; 1&#xff0c;Win32控制台应用程序 Win32控制台项应用程序指在32位Windows命令提示符&#xff08;即所谓的DOS&#xff09;环境下运行的应用程序。它通常被设计为没有图形用户界面&a…

【万字长文】AMD Instinct MI300详细解析:超微半导体的光辉时刻

美国时间6月13日&#xff0c;AMD在美国加利福尼亚州旧金山举行了一场名为“数据中心与AI技术首演”的活动&#xff0c;并在主题演讲中介绍了数据中心的解决方案。 其中&#xff0c;宣布推出“AMD Instinct MI300系列加速器”&#xff08;以下简称Instinct MI300系列&#xff0…