社区
网络编程
帖子详情
UDP传输包长8K和20K的传输机制有什么区别
zzj2417
2010-10-25 10:21:34
我现在碰到个很奇怪的问题,用相同速率传送数据包,一个包传20K的不会丢包,传8K却会出现丢包。。。谁能帮我解释下???
...全文
302
8
打赏
收藏
UDP传输包长8K和20K的传输机制有什么区别
我现在碰到个很奇怪的问题,用相同速率传送数据包,一个包传20K的不会丢包,传8K却会出现丢包。。。谁能帮我解释下???
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
8 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
用户 昵称
2010-10-25
打赏
举报
回复
没什么,包越小,丢包机率越大。
zzj2417
2010-10-25
打赏
举报
回复
[Quote=引用 3 楼 jackson35296 的回复:]
楼主的问题应该排查这种丢包原因:接包速度小于发包速度导致丢包。
UDP是无连接的,当接收端接收不过来时,发送端也不会降低发送速度,当发送的字节 - 接收字节 > 网卡缓冲区 时,网卡就把多余的包丢弃。在TCP协议中,当缓冲区接近满时,网卡会通知发送端降低发送速度,而UDP不会
通常是下面这种情况造成
发送端:
while()
{
SentTo()
...//其他的逻辑用时50……
[/Quote]谢谢虾哥的留言,我加Sleep调试下看看吧
jackson35296
2010-10-25
打赏
举报
回复
楼主的问题应该排查这种丢包原因:接包速度小于发包速度导致丢包。
UDP是无连接的,当接收端接收不过来时,发送端也不会降低发送速度,当发送的字节 - 接收字节 > 网卡缓冲区 时,网卡就把多余的包丢弃。在TCP协议中,当缓冲区接近满时,网卡会通知发送端降低发送速度,而UDP不会
通常是下面这种情况造成
发送端:
while()
{
SentTo()
...//其他的逻辑用时50ms
}
接收端
while()
{
RecvFrom()
...//处理数据的逻辑用时100ms
}
由于100ms > 50ms,如果数据量较大,发送-接收>网卡缓冲区,则丢包
对于这个问题的排查,可以在发送端加sleep()进行测试,降低发送速度。如果要实现快速接收,接收的循环里不允许做费时操作,要维持一个缓冲队列,收到数据后直接扔到缓冲区,由另外一个线程从队列中取出数据再处理。总之,不要在接收线程里处理数据。
jhayumu
2010-10-25
打赏
举报
回复
UDP 本来就会掉包,如果不想丢包,改用TCP
zzj2417
2010-10-25
打赏
举报
回复
没有人能回答下吗?急啊
zzj2417
2010-10-25
打赏
举报
回复
我发现UDP包小了但是发送太快(用循环发送)就会丢包,包大点用循环就没事,当然不能超过64K,大概20K左右最稳定。。主要问题还是没解决,我现在想用精确到100微秒的计时器来每次发送一个,因为循环的话执行一次的时间是1纳秒。。发送太快了,各位大侠谁给个计时器的介绍,要微秒级别的!!!
herm_lib
2010-10-25
打赏
举报
回复
根据IP分片原理,udp包越大丢包概率越高。
herm_lib
2010-10-25
打赏
举报
回复
发udp包,如果大于一定长度(一般512bytes)就会IP分片。
传8K, 分成16个分片,只要其中1片丢了,整个传输失败。
TCP和
UDP
的
区别
目录 一、TCP和
UDP
都属于TCP/IP协议族 二、
UDP
和TCP的不同 2.1 TCP是面向连接的,
UDP
是面向无连接的 2.2 TCP是可靠的,
UDP
是不可靠的 2.3 TCP是面向字节流的,
UDP
是面向报文的 2.4 TCP只有一对一的
传输
方式,而
UDP
不仅可以一对一,还可以一对多,多对多 2.5
UDP
的头部开销小,TCP的头部开销大 2.6 TCP会产生粘包问题,
UDP
会产生丢包问题 2.6.1 TCP粘包 2.6.2
UDP
丢包问题 三、总结 一、T...
TCP 可靠
传输
机制
详解
目录 1
UDP
&TCP的
区别
2 TCP
传输
2.1 TCP协议的特点 2.2 TCP 报文段 2.3 TCP "三次握手" 2.4 TCP "四次挥手" 3 TCP可靠
传输
3.1 客户端和服务器端所经历的状态 3.2 TCP 协议如何保证可靠
传输
3.3 校验 3.4 TCP流量控制 3.5 TCP拥塞控制 3.6 停止等待协议 4 面试相关问题 1
UDP
&TCP的
区别
UDP
协议和TCP协议都是
传输
层协议。 TCP(Transmissio...
传输
层TCP与
UDP
传输
层 负责数据能够从发送端
传输
接收端,进程到进程 再谈端口号 在TCP/IP协议中, 用 “源IP”, “源端口号”, “目的IP”, “目的端口号”, “协议号” 这样一个五元组来标识一个通信 端口号范围划分 0 - 1023: 知名端口号, HTTP, FTP, SSH等这些广为使用的应用层协议, 他们的端口号都是固定的. 1024 - 65535: 操作系统动态分配的端口号. 客户端程序的端口号, 就是由操作系统从这个范围分配的 我们自己写一个程序使用端口号时, 要避开这些知名端口号 pidof
TCP协议和
UDP
协议的
区别
及其应用
下面是TCP和
UDP
的简单程序: 简单的TCP网络程序 https://blog.csdn.net/qq_37941471/article/details/80738319 简单的
UDP
网络程序 https://blog.csdn.net/qq_37941471/article/details/80726398 接着我们通过这两个协议来更直接的理解一下TCP协议和
UDP
协议: 这两个协议...
TCP与
UDP
(非常详细)
TCP/IP模型是一些列协议的总称(TCP,
UDP
,IP,FTP,HTTP,ICMP,SMTP)。这些协议可以划分为四层:链路层、网络层、
传输
层、应用层。TCP和
UDP
都位于计算机网络模型中的运输层,它们主要负责
传输
应用层产生的数据。。TCP与
UDP
区别
总结:1、TCP
传输
效率慢、所需资源多,
UDP
则相反。2、TCP面向连接(打电话要先拨号建立连接);
UDP
是无连接的,即发送数据之前不需要建立连接3、TCP提供可靠的服务,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章