社区
网络编程
帖子详情
请问使用udp协议,一次最大可以发送多少字节?有没有限制?
Ailong
2003-08-25 03:06:06
谢谢!
...全文
1364
5
打赏
收藏
请问使用udp协议,一次最大可以发送多少字节?有没有限制?
谢谢!
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
5 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
cboy2wzhx
2003-08-26
打赏
举报
回复
不是只能,包越大丢包的可能性越大,168b是TCP/IP书上的建议值,512b是公司前辈的建议值
Ailong
2003-08-26
打赏
举报
回复
谢谢三位的回答,按照 cboy2wzhx(不懂就要问,知道了就告诉别人)兄的说法就是,WIN32下的程序在internet上面,用udp只能发送1k以内的包比较保险了?超过了就要用TCP是吗?
cboy2wzhx
2003-08-25
打赏
举报
回复
TO: gzshd(郁闷)
事实上媒体数据(大数据)都是用UDP哦,典型的就是RTP
而且UDP包理论上是没有限制的,windows下用int来表示长度,所以有限制,但unix下用的是size_t
据我所知,局域网内不超过8192b一般不会丢包,跨网一般不要超过512b,TCP/IP建议是不超过168b
以上是我所了解的,欢迎指正
zhouyong0371
2003-08-25
打赏
举报
回复
感觉我们用socket来发送,操作系统会将数据自动封包,然后发出。
gzshd
2003-08-25
打赏
举报
回复
有限制,整个包的长度不超过65535字节,而实际用户数据最大只能有65507个字节,不过一般大数据都用TCP来发,即使用UDP,一般习惯上都把发的字符数组字义在4096以下。
UDP
协议
一次
发送
的
最大
数据量
一、从MTU角度看 在进行
UDP
编程的时候,我们最容易想到的问题就是,
一次
发送
多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的。 首先,我们知道,TCP/IP通常被认为是一个四层
协议
系统,包括链路层,网络层,运输层,应用层.
UDP
属于运输层,下面我们由下至上一步一步来看: 以太网(Ethernet)数据帧的长度必须在46-1500
字节
之间,这是由以太网的物理特性决定的.这个1500
字节
被称为链路层的MTU(
最大
传输单元).但这并不是指
UDP
协议
一次
发送
的
最大
数据量分析
一、从MTU角度看 在进行
UDP
编程的时候,我们最容易想到的问题就是,
一次
发送
多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的。 首先,我们知道,TCP/IP通常被认为是一个四层
协议
系统,包括链路层,网络层,运输层,应用层.
UDP
属于运输层,下面我们由下至上一步一步来看: 以太网(Ethernet)数据帧的长度必须
udp
一次
发送
多少
字节
合适呢,1472 ? 548 ?
在进行
UDP
编程的时候,我们最容易想到的问题就是,
一次
发送
多少bytes好? 当然,这个没有唯一答案,相对于不同的系统,不同的要求,其得到的答案是不一样的,我这里仅对 像ICQ一类的
发送
聊天消息的情况作分析,对于其他情况,你或许也能得到一点帮助: 首先,我们知道,TCP/IP通常被认为是一个四层
协议
系统,包括链路层,网络层,运输层,应用层.
UDP
属于运输层
UDP
协议
(
UDP
是无法扩容的,因为这是
协议
规定好的,即使服务器扩容了,但是无法使客户端进行扩容,即使客户端都对这个服务器扩容了的,那么客户端
使用
其他的服务器就无法
使用
了,因为其他服务器都是未扩容的。4.校验和具体的工作:
UDP
中
使用
2个
字节
作为校验和,其中
使用
简单有效的方法是CRC校验和(循环冗余校验),其方法为把
UDP
数据报整个数据都进行遍历,分别取出每个
字节
,往一个两个
字节
的变量上进行叠加,整个数据可能比较多,会导致结果溢出,但也无关紧要,只需要关心校验和在传输过程中是否改变即可。(适合Hash算法)
TCP、
UDP
数据包大小的
限制
_
udp
发送
超过1500
字节
MTU
最大
传输单元,这个
最大
传输单元实际上和链路层
协议
有着密切的关系,EthernetII帧的结构DMAC+SMAC+Type+Data+CRC由于以太网传输电气方面的
限制
,每个以太网帧都有最小的大小64Bytes
最大
不能超过1518Bytes,对于小于或者大于这个
限制
的以太网帧我们都可以视之为错误的数据帧,一般的以太网转发设备会丢弃这些数据帧。不同的
协议
层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)。
网络编程
18,358
社区成员
64,186
社区内容
发帖
与我相关
我的任务
网络编程
VC/MFC 网络编程
复制链接
扫一扫
分享
社区描述
VC/MFC 网络编程
c++
c语言
开发语言
技术论坛(原bbs)
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章