相关疑难解决方法(0)

Internet上最大的安全UDP数据包大小是多少

我已经阅读了很多关于UDP数据包大小的文章,但是无法得出结论.

许多服务将最大的UDP数据包限制为512字节(如dns)

给定互联网上的最小MTU为576,IPv4标头的大小为20字节,UDP标头为8字节.这留下了548个可用于用户数据的字节

我是否能够使用大小为548的数据包而不会出现数据包碎片?或者是DNS的创建者知道什么,以及为什么他们将其限制为512字节.

我能安全地高于548字节吗?

sockets networking udp ipv4

194
推荐指数
9
解决办法
25万
查看次数

在套接字库中调用recv时,我的recv缓冲区应该有多大

我对C中的套接字库有几个问题.这是我在问题中引用的一段代码.

char recv_buffer[3000];
recv(socket, recv_buffer, 3000, 0);
Run Code Online (Sandbox Code Playgroud)
  1. 如何确定recv_buffer的大小?我使用3000,但这是任意的.
  2. 如果recv()收到的数据包大于我的缓冲区会怎么样?
  3. 我怎么知道我是否收到了整个消息而没有再次调用recv并且在没有任何东西被接收时让它永远等待?
  4. 有没有办法让缓冲区没有固定的空间,这样我可以继续添加它而不用担心空间不足?也许strcat用于连接recv()缓冲区的最新响应?

我知道这里有很多问题,但我非常感谢任何回复.

c sockets buffer recv

126
推荐指数
4
解决办法
10万
查看次数

最可靠和最有效的udp数据包大小?

通过UDP发送大量数据包会占用更多资源(cpu,zlib压缩等).我在这里读到,通过UDP发送一个大约65kBYTE的数据包可能会失败所以我认为发送大量较小的数据包会更频繁地成功,但随后会产生使用更多处理能力的计算开销(或者至少就是我的我假设).问题基本上是这样的; 发送最大成功数据包并将计算量降至最低的最佳方案是什么?是否有特定尺寸可以在大多数时间使用?我使用Erlang作为服务器,使用Enet作为客户端(用c ++编写).也使用Zlib压缩,我向每个客户端发送相同的数据包(广播是我猜的术语).

udp processing-efficiency packet-loss

24
推荐指数
3
解决办法
3万
查看次数

标签 统计

sockets ×2

udp ×2

buffer ×1

c ×1

ipv4 ×1

networking ×1

packet-loss ×1

processing-efficiency ×1

recv ×1