当前位置:  技术问答>linux和unix

UDP数据掉失

    来源: 互联网  发布时间:2016-07-23

    本文导语:  想问一下,我写了个简单的UDP程序,发现发送一个大点的文件时会掉包 更加可恶的是两机计算机发文件的时候就连不上了,发几个字符串却没有问题 有人告诉一下是什么原因吗? | udp包的...

想问一下,我写了个简单的UDP程序,发现发送一个大点的文件时会掉包

更加可恶的是两机计算机发文件的时候就连不上了,发几个字符串却没有问题

有人告诉一下是什么原因吗?

|
udp包的最大数据长度是64k.
 因为udp是不可靠的协议,   接收的时候,是按包接收,而这个包,是driver   发的包,   
 如果你发的包大于driver   的buffer,   那它会自动分包,如果你   有一个收不到,你就不知道是那个了。   
 特别是在internet   的状况下   ,丢包机会会更大,建议使用TCP吧,否则处理起来比较麻烦。

|


你发送文件应该也是将文件中的内容读出来,在分别发送出去吧,这和发字符串没有区别。

连接不上应该是你的代码问题, UDP 是不可靠的协议,所在在传输文件的时候需要考虑传输的可靠性。


|
     如果你在你的局域网上都能明显的看出来udp的传输不可靠,就完全是程序写的问题
      可以把你程序贴出来看看

|
都是因为你发文件内容比较大的时候, 你的机器会一直不停的发送数据到另一台机,这就有两种情况,一个是你的发送缓冲区速度的被填满,这个你可以通过判断sendto的返回值得到结果. 另一方面也可能是你目标机的接收缓冲区被速度填满, 这对UDP来说就没程序内部没有法子判断. 最后一种情况不是中间网络的传输性能跟不上, 根本无法快速的交互你发出的数据包. 后两种情况都会导致你ping不通接收机.

而你发送几个小字符串的时候不会存在这个问题.

一般来说一个数据包的总长度不要超过1500字节,因为ethernet的MTU一般就是1500字节, 大于这个的包在中间传输过程中都会被分片.


    
 
 

您可能感兴趣的文章:

  • 50求教一个菜鸟级别的UDP套接字问题,关于UDP server端只能接收一次数据的问题?在线等,一直等............
  • 基于UDP的数据传输 UDT
  • 怎么实现对一个udp数据报分多次读的操作
  • udp数据包的内容???
  • 求助:UDP编程,无法接收广播数据包
  • 使用udp,连续发送大数据发生丢包亲情况
  • 能否设置在UDP接收组播时,就拒绝接受单播数据
  • 如何调用linux下的函数,发送一个udp数据包,比如说“hello!”
  • UDP数据包转发工具 Propagast
  • UDP SOCKET编程,不能发送广播数据包
  • 怎么写随机丢弃UDP数据包的服务器?
  • 循环发送udp数据导致电脑脱网
  • UDP怎么检测对方socket已关闭无法接收数据?
  • UDP广播数据的问题
  • 急,请教一个将TCP数据包修改为UDP包的问题,高手请进!
  • 能够在端口9001上监听其他应用的UDP请求,并打印其请求的数据包内容。先不管什么格式,请问如何用socket编写。
  • udp客户端收不到数据?
  • udp接收不到数据问题 急!!
  • 基于UDP的编程中,如何用指定的端口发送数据?
  • 创建了2个套接字Raw socket和socket,都调用recvfrom(),一个专门捕获数据包,一个在9001端口监听UDP请求,怎么不行?
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • Qt:UDP:如何划分接收到的UDP包的界限
  • udp包大于1500字节网络传输会分包吗?udp tcp多大的包比较合适?
  • http走的是tcp还是udp?ssh是tcp还是udp?
  • tcp和udp套接字有何不同?在什么情况下用tcp什么情况下用udp????
  • udp方式抓取网页
  • python网络编程之UDP通信实例(含服务器端、客户端、UDP广播例子)
  • udp socket客户端和udp服务端程序示例分享
  • TCP与UDP通信问题!
  • 请问下怎么关闭SUSE 9.1下UDP的checksum?
  • 如何判断udp端口可达
  • 关于epoll&udp的问题?
  • UDP包怎么生成啊?用什么函数??简单问题,帮个忙哈
  • 对于socket UDP传输,一个端口只能被一个进程绑定?
  • IP,UDP,TCP的校验和计算
  • UDP协议在实现时有没有在发送端或者接收端设置缓冲区?
  • 服务进程收到的第一个UDP包的远端地址不对?
  • udp问题
  • 关于udp sendto时候端口选定问题
  • jme 0000:07:00.5:eht0:udp checksum error
  • udp的暂时连接


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3