首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

无法使用C# UdpClient通过Windows Build 1809发送大于MTU的UDP数据包

C# UdpClient是一个在C#中用于UDP通信的类,它可以用于发送和接收UDP数据包。然而,有时候在Windows Build 1809版本中使用C# UdpClient发送大于MTU(最大传输单元)的UDP数据包会遇到问题。MTU是指在计算机网络通信中,能够传输的最大数据包大小。

发送大于MTU的UDP数据包可能会导致数据包被分片,而在某些情况下,这些分片可能会被丢弃或导致网络延迟。这个问题可能是由于Windows Build 1809版本的特定配置或Bug导致的。

为了解决这个问题,可以考虑以下几点:

  1. 使用较小的数据包:调整发送的UDP数据包的大小,保持其小于MTU。这样可以避免数据包分片和丢失的问题。可以通过减小数据包大小或使用压缩算法等方式来实现。
  2. 数据包分段发送:将大的数据包拆分为多个小的数据包进行发送。这样可以确保每个数据包都小于MTU,避免了数据包分片的问题。接收端需要能够识别并重组这些分段数据包。
  3. 使用TCP协议替代UDP:如果使用UDP发送大量数据并不是必须的,可以考虑使用TCP协议替代UDP。TCP协议可以保证可靠传输,数据包的大小也没有限制。
  4. 升级操作系统:由于问题可能是特定于Windows Build 1809版本的,尝试升级操作系统到最新版本可能会解决该问题。

总结一下,无法使用C# UdpClient通过Windows Build 1809发送大于MTU的UDP数据包可能会遇到问题,可能导致数据包分片和丢失。解决方法可以是调整数据包大小,分段发送数据包,使用TCP协议替代UDP,或者考虑升级操作系统。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

  • TCP/IP具体解释–TCP/UDP优化设置总结& MTU的相关介绍「建议收藏」

    当中以太网(Ethernet)的数据帧在链路层    IP包在网络层    TCP或UDP包在传输层    TCP或UDP中的数据(Data)在应用层    它们的关系是 数据帧{IP包{TCP或UDP包{Data}}}    ——————————————————————————— 在应用程序中我们用到的Data的长度最大是多少,直接取决于底层的限制。    我们从下到上分析一下:    1.在链路层,由以太网的物理特性决定了数据帧的长度为(46+18)-(1500+18),当中的18是数据帧的头和尾,也就是说数据帧的内容最大为1500(不包含帧头和帧尾)。即MTU(Maximum Transmission Unit)为1500;   2.在网络层。由于IP包的首部要占用20字节,所以这的MTU为1500-20=1480;  3.在传输层,对于UDP包的首部要占用8字节。所以这的MTU为1480-8=1472。    所以,在应用层,你的Data最大长度为1472。

    01

    【Linux】网络基础+UDP网络套接字编程

    1. 首先计算机是人类设计出来提高生产力的工具,而人类的文明绵延至今一定离不开人类之间互相的协作,既然人类需要协作以完成更为复杂的工作和难题,所以计算机作为人类的工具自然也一定需要协作,而计算机之间的协作其实说白了就是网络通信,也就是各个主机之间的数据互通。 所以我们可以得出来结论,计算机网络的出现是必然的。 而刚开始的计算机之间确确实实是各自相互独立的,他们想要进行通信那就只能人为的拷贝数据到U盘,然后把U盘插到另一个主机上,让另一个主机来进行网络通信,只要是人参与的工作他一定是效率低的,所以为了避免这种效率低下的通信方式,第一版本的通信方案搞出来了服务器,即为多个主机之间通过一台服务器进行网络通信,每个主机可以将自己的数据发送到服务器上,其他主机想要拿到数据,则可以直接从服务器里面读取数据。

    01

    鸿蒙之接收UDP消息

    Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol)。UDP 为应用程序提供了一种无需建立连接就可以发送封装的 IP 数据包的方法。 Internet 的传输层有两个主要协议,互为补充。无连接的是 UDP,它除了给应用程序发送数据包功能并允许它们在所需的层次上架构自己的协议之外,几乎没有做什么特别的事情。面向连接的是 TCP,该协议几乎做了所有的事情。 UDP协议与TCP协议一样用于处理数据包,在OSI模型中,两者都位于传输层,处于IP协议的上一层。UDP有不提供数据包分组、组装和不能对数据包进行排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但即使在今天UDP仍然不失为一项非常实用和可行的网络传输层协议。 方法 说明 Close 关闭 UDP 连接 Connect 建立与远程主机的连接 DropMulticastGroup 退出多路广播组 JoinMulticastGroup 将 UdpClient 添加到多路广播组 Receive 返回已由远程主机发送的 UDP 数据文报 Send 将 UDP 数据文报发送到远程主机

    03
    领券