您好
1,UDP 协议基本上是IP协议与上层协议的接口。UDP协议适用端口分别运行在同一台设备上的多个应用程序。您的这个情况,应该是被杀毒软件的防火墙给禁止了。
2,建议您把杀毒软件换成腾讯电脑管家,下载地址:电脑管家官网
3,下载安装好腾讯电脑管家之后,使用电脑管家的【安全体检】功能,给电脑做一个安全体检,然后修复一下体检出的异常项恢复一下,就可以正常联网了。
4,恢复完成之后最好再重启一下电脑哦!
如果还有其他疑问和问题,欢迎再次来电脑管家企业平台进行提问,我们将尽全力为您解答疑难
UDP是User Datagram Protocol的简称,中文名是用户数据报协议,是OSI参考模型中的传输层协议,它是一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。UDP的正式规范是IETF RFC768。UDP在IP报文的协议号是17。
在这里插入图片描述
在OSI模型中,UDP在第四层——传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。
与所熟知的 TCP(传输控制协议)协议一样,UDP 协议直接位于 IP(网际协议)协议
的顶层。根据 OSI(开放系统互连)参考模型,UDP 和 TCP 都属于传输层协议。 UDP 协议
的主要作用是将网络数据流量压缩成数据包的形式。一个典型的数据包就是一个二进制数据
的传输单位。每一个数据包的前 8 个字节用来包含报头信息,剩余字节则用来包含具体的传
输数据。
UDP报头
在这里插入图片描述
UDP报头包括4个字段,每个字段占用2个字节(即16个二进制位)。
在IP4v中,“来源连接端口”和“校验和”是可选字段(粉色背景标出)。
在IPv6中,只有来源连接端口是可选字段。
UDP数据报格式有首部和数据两个部分。首部很简单,共8字节。包括:
源端口(Source Port):2字节,源端口号。
目的端口(Destination Port):2字节,目的端口号。
长度(Length):2字节,用于校验UDP数据报的数据字段和包含UDP数据报首部的“伪首部”。其校验方法用IP分组首部中的首部校验和。
伪首部,又称为伪包头(Pseudo Header):是指在TCP的分段或UDP的数据报格式中,在数据报首部前面增加源IP地址、目的IP地址、IP分组和协议字段、TCP或UDP数据报的总长度等共12字节,所构成的扩展首部结构。此伪首部是一个临时的结构,它既不向上也不向下传递,仅仅只是为了保证可以校验套接字的正确性。
在这里插入图片描述
TCP和UDP区别
特征点 TCP UDP
传输可靠性 面向连接 面向非连接
应用场景 传输数据量大 传输量小
速度 慢 快
TCP(传输控制协议)提供的是面向连接、可靠的字节流服务。当客户端和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能从一端传到另一端。
UDP(用户数据协议)是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP咋传输数据前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,故而传输速度很快。
由于UDP缺乏拥塞控制(congestion control),需要基于网络的机制来减少因失控和高速UDP流量负荷而导致的拥塞崩溃效应。换句话说,因为UDP发送者不能够检测拥塞,所以像使用包队列和丢弃技术的路由器这样的网络基本设备往往就成为降低UDP过大通信量的有效工具。数据报拥塞控制协议(DCCP)设计成通过在诸如流媒体类型的高速率UDP流中,增加主机拥塞控制,来减小这个潜在的问题。
UDP方式传输数据
发送时:先把数据放到报文,写到缓冲区字节数组再传送。
接收时:从缓冲器数组读取,打包到报文。
UDP的应用场景
在选择使用协议的时候,选择UDP必须要谨慎。由于缺乏可靠性且属于非连接导向协议,UDP一般必须允许一定量的数据包丢失、出错和复制粘贴。但有些应用,比如TFTP,需要可靠性保证,则必须在应用层增加根本的可靠机制。但是绝大多数UDP应用都不需要可靠机制,甚至可能因为引入可靠机制而降低性能。流媒体、即时多媒体游戏和IP电话(VoIP)就是典型的UDP应用。如果某个应用需要很高的可靠性,那么可以用传输控制协议(及TCP协议)来代替UDP。
udpclient 设置为组播public class Custom
{// 设置IP,IPV6
private static readonly IPAddress GroupAddress = IPAddress.Parse("172.18.125.204")
// 设置端口
private const int GroupPort = 18090
private static void StartListener()
{
bool done = false
UdpClient listener = new UdpClient()
IPEndPoint groupEP = new IPEndPoint(GroupAddress, GroupPort)
try
{
//IPV6,组播
listener.JoinMulticastGroup(GroupAddress)
listener.Connect(groupEP)
while (!done)
{
Console.WriteLine("等待数据...")
byte[] bytes = listener.Receive(ref groupEP)
Console.WriteLine("从服务器: {0} : 接收到数据:{1}", groupEP.ToString(), Encoding.ASCII.GetString(bytes, 0, bytes.Length))
}
listener.Close()
}
catch (Exception e)
{
Console.WriteLine(e.ToString())
}
}
public static int Main(String[] args)
{
StartListener()
return 0
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)