UDP协议
班级: 学号: 姓名:
摘 要:
比较udp 与tcp 协议之间的差别,分析局域网内广播通信的优点,讨论异步广播通信的特点,并给出实现异步广播通信的步骤, 在Windows中利用VC++6.0的MFC来实现了基于udp 协议的异步广播通信,并给出了相应的实例程序( 仿真试验表明,该网络通信方式能够良好地满足仿真中实时数据通信的需要。在局域网传送数据中,udp比tcp具有更大的优势,但是同时也容易长生数据的丢失。简单的说:UDP速度快,TCP更可靠
关键字: TCP协议;UDP协议;报文格式
Abstract:
We compared the UDP and the TCP protocols, analyzed the advantages of LAN broadcast communication, discussed asynchronous broadcast communication, as well as providing ste
ps to realize that asynchronous broadcast communication. In Windows we realized asynchronous broadcast communication based on the UDP protocol by use of VC++6.0's MFC, as well as providing examples of the relevant programming. Emulation tests show that this communication method meets the requirements of real-time data communication during emulation very well. During data transmission within the LAN, UDP works much better than TCP, but at the same time, data loss occurs easily. Simply put: UDP is faster, TCP is more reliable.
Keywords: TCP;UDP;message format
UDP 是User Datagram Protocol的简称, 中文名是用户数据包协议,是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。它是IETF RFC 768是UDP的正式规范。UDP协议使用端口号为不同的应用保留其各自的数据传输通道。UDP和TCP协议正是采用这一机制实现对同一时刻内多项应用同时发送和接收数据的支持。数据发送一方(可以是客户端或服务器端)将UDP数据报通过源端口发送出去,而数据接收一方则通过目标端口接收数据。有的网络应用只能使用预先为其预留或注册的静态端口;而另外一
些网络应用则可以使用未被注册的动态端口。因为UDP报头使用两个字节存放端口号,所以端口号的有效范围是从0到65535。一般来说,大于49151的端口号都代表动态端口。
数据报的长度是指包括报头和数据部分在内的总字节数。因为报头的长度是固定的,所以该域主要被用来计算可变长度的数据部分(又称为数据负载)。数据报的最大长度根据操作环境的不同而各异。从理论上说,包含报头在内的数据报的最大长度为65535字节。不过,一些实际应用往往会限制数据报的大小,有时会降低到8192字节。
UDP协议使用报头中的校验值来保证数据的安全。校验值首先在数据发送方通过特殊的算法计算得出,在传递到接收方之后,还需要再重新计算。如果某个数据报在传输过程中被第三方篡改或者由于线路噪音等原因受到损坏,发送和接收方的校验计算值将不会相符,由此UDP协议可以检测是否出错。这与TCP协议是不同的,后者要求必须具有校验值。
TCP是传输层协议,实现端到端(peer-to-peer)通信;在端主机上实现;屏蔽下层网络提供的服务质量的差别,为应用程序提供稳定可靠的服务。但不能实现组播功能。TCP对上层提供面向连接可靠的通信服务。TCP是面向连接的协议;采用“三次握手”(three-way handshake) 方式来建立连接。在TCP协议中用一个发送方的序号和一个接收方的序号合起来唯一地标识
一条连接。
1.TCP报文格式
源端口和目的端口:
都是16个比特,分别表示发送方和接收方的端口号。端口号和IP地址构成套接字(socket)地址的主要内容。源端和目的端的套接字合起来唯一地表示一条连接。网络应用程序在通信时直接向套接字发送和接收数据。
序列号和确认号:都是32位的无符号整数,可以表示0-4G(232)字节的范围。其中,序列号表示数据部分第一个字节的序列号,而确认号表示该数据报的接收者希望对方发送的下一个字节的序号(即序号小于确认号的数据都已正确地被接收)。
头长度(HLEN):
表示TCP报文头的长度。长度以32-bit为单位来计算。所以如果选项部分的长度不是4个字节的整数倍,则要加上填充(padding)。
保留域:紧接在头长度字段后有6个比特,应该把它设置为0。
2.UDP报文的格式
每个UDP报文称为一个用户数据报:它分为两部分:头部和数据区。如图6-14是一个UDP报文的格式,报文头中包含有源端口和目的端口、报文长度以及UDP检验和。
源端口(Source Port)和目的端口(Destination Port)字段包含了16比特的UDP协议端口号,它使得多个应用程序可以多路复用同一个传输层协议 – UDP协议,仅通过不同的端口号来区分不同的应用程序。
长度(Length)字段记录了该UDP数据包的总长度(以字节为单位),包括8字节的UDP头和其后的数据部分。最小值是8(即报文头的长度)socket通信报文格式,最大值为65,535字节。
尽管TCP和UDP都使用相同的网络层(IP),TCP却向应用层提供与UDP完全不同的服务。
传输控制协议(Transmission Control Protocol,TCP)是一种面向连接的、可靠的、基于字节流的运输层通信协议,通常由IETF的RFC 793说明。在简化的计算机网络OSI模型中,它完成运输层所指定的功能。
在TCP 传输模式中在将数据包成功发送给目标计算机后,TCP会要求发送一个确认;如果在某个时限内没有收到确认,那么TCP将重新发送数据包。另外,在传输的过程中,如果接收到无序、丢失以及被破坏的数据包,TCP还可以负责恢复。
与 TCP 不同, UDP 并不提供对 IP 协议的可靠机制、流控制以及错误恢复功能等。由于 UDP 比较简单, UDP 头包含很少的字节,比 TCP 负载消耗少。
用户数据报协议(UDP)是 OSI 参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。 UDP 协议基本上是 IP 协议与上层协议的接口。 UDP 协议适用端口分别运行在同一台设备上的多个应用程序
参考文献:
1.《计算机通信网基础》,顾尚杰、薛质等编著,2000年,电子工业出版社
2.《A. Tanenbaum, Computer Networks, Prentice Hall》, 2001(中译本),清华大学出版社
3.《计算机网络(修订版)》,谢希仁等编著,2002年,电子工业出版社
4.《计算机通信与网络》杨庚、章韵、成卫青、沈金龙等编著,2009年,清华大学出版社
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论