社区
网络编程
帖子详情
关于用UDP协议 每次发送很大的数据包的问题
AntonlioX
2005-05-20 09:40:58
我现在在做视频传输。我想问每次发送的包很大 比如有100k(一次发送一视频帧)的大小。是不是可以这样做的? 因为我猜测网络协议的底层会自动进行分包, 在接收端再重新组包,我的说法是否正确啊。
此外,我还有一个问题: 在用udp发送比如视频的数据的时候 是一次发送很大的包好,还是分多次,小包发送啊?
...全文
728
11
打赏
收藏
关于用UDP协议 每次发送很大的数据包的问题
我现在在做视频传输。我想问每次发送的包很大 比如有100k(一次发送一视频帧)的大小。是不是可以这样做的? 因为我猜测网络协议的底层会自动进行分包, 在接收端再重新组包,我的说法是否正确啊。 此外,我还有一个问题: 在用udp发送比如视频的数据的时候 是一次发送很大的包好,还是分多次,小包发送啊?
复制链接
扫一扫
分享
举报
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
nuaa3
2005-05-21
打赏
举报
回复
我把代码发给你了
xiao_xiao_zi
2005-05-20
打赏
举报
回复
分成小包比较好
这样丢包的话代价也比较小
AntonlioX
2005-05-20
打赏
举报
回复
我刚查的一点资料 ,提到了分片的问题
===================
3、 IP分片
任何IP层接收到一份要发送的IP数据报时,它要判断向本地哪个接口发送数据,并查询该接口的MTU。IP把MTU与数据报的长度进行比较,如果需要则进行分片。分片可以发生在原始发送端主机上,也可以发送在中间路由器上。IP数据报分片后,只有到达目的主机后才进行重装。
IP首部与分片有关的字段:
(1)对于每份IP数据报来说,都有一个标识字段,该值在分片时被复制到每个片中。
(2)标志字段用其中一个bit表示“更多的片”,除最后一片外,其他每个分片都要设置为1。
(3)片偏移字段指的是该片偏移原始数据报开始处的位置。
(4)数据报被分片后,每个片的总长度要改为该片的长度值。
(5)标志字段中有一个bit表示“不分片”,如果该位1,IP将不对数据报进行分片。
IP报即使丢失一片数据报也要重传整个数据报。为什么呢?因为IP层没有超时重传的机制,必须由更高层负责超时重传。
AntonlioX
2005-05-20
打赏
举报
回复
但是udp 效率高啊。 视频通讯中基本都是用的udp
hdqlj
2005-05-20
打赏
举报
回复
为什么不用tcp呢
AntonlioX
2005-05-20
打赏
举报
回复
但是我看了 vckbase的一个例子 VideoNet
它里面就是 发送很大的包来传输视频的:
//Compress the data...to h263
......
CompressFrame(&cparams, &bits);
// Transmit the compressed frame
.......
dvideo.SendVideoData(cdata,count); //dvideo 是个CSocket类的派生类的对象,用来发送vidoe
===========
其中cdata 是里面定义的全局变量
unsigned char cdata[10000];
在接收的部分
全局变量 static unsigned char data[2000],vdata[30000],adata[5000];
在接收中
unsigned int DSocket::vlength=30000;
.........
ReceiveFrom(vdata,vlength,address,port);
.........
--------------------
它的代码中就是使用的发送的远远超过2k的数据大小 和你们上面说的有点矛盾啊?
yonk
2005-05-20
打赏
举报
回复
UDP每次发送的包不能超过最大包大小,否则你会收不完整。关于此点详细解释请见msdn。另外如果本地arp缓存中没有对方地址时,包比较大会产生多次arp交互。或许这也是需要注意的地方。
younggle
2005-05-20
打赏
举报
回复
视频传输,别忘记编码压缩啊。如果确实不能压缩,那建议你分多次小包发送,每个小包的长度不要超过2K(2048)个字节。
AntonlioX
2005-05-20
打赏
举报
回复
大家来讨论一下啊
zhjie374
2005-05-20
打赏
举报
回复
分开发吧....
nuaawenlin
2005-05-20
打赏
举报
回复
压缩加分块
UDP
协议
详解
UDP
协议
是一种简单、快速的传输
协议
,具有无连接、不可靠、简单、高效等特点,主要应用于实时传输场景和局域网内的数据传输。
UDP
协议
的主要
问题
是可靠性较差,因此在使用时需要根据实际需求进行优化和控制。
TCP和
UDP
的
发送
缓冲区和接收缓冲区内存
问题
以太网
【JavaEE】
UDP
协议
与TCP
协议
UDP
与TCP
协议
linux下
udp
丢包和传输延迟,如何测试
UDP
数据包
的丢包率和延迟
iperf也可以用于
UDP
数据包
吞吐量、丢包率和延迟指标,但是由于
UDP
协议
是一个非面向连接的轻量级传输
协议
,并且不提供可靠的数据传输服务,因此对
UDP
应用的关注点不是传输数据有多快,而是它的丢包率和延时指标。通过iperf的“-u”参数即可测试
UDP
应用的传输性能,下图测试的是在iperf客户端传输100MB的
UDP
数据包
的输出结果:iperf传输100MB的
UDP
数据包
的输出结果这个输出结果过...
【网络
协议
】
UDP
协议
UDP
是一个简单的面向数据报的运输层
协议
:进程的每个输出操作都会产生一个
UDP
数据报,并组装成一份待
发送
的IP数据报,这与面向字符流的
协议
不同,如TCP,应用程序产生的全体数据与真正
发送
的单个IP数据报可能没有什么联系(主要是在传输层就进行分段了,因此不会受IP分片的影响)。
UDP
的首部一共8个字节,很简单,可以参考书上,这里也不再详说。
UDP
的校验和 至于
UDP
的校验和,这里注意下区别就好了,
UDP
对首部和数据部分都进行校验,而IP首部的校验和仅对IP的首部进行校验,顺带提下T
网络编程
18,356
社区成员
64,161
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章