由买买提看人间百态

boards

本页内容为未名空间相应帖子的节选和存档,一周内的贴子最多显示50字,超过一周显示500字 访问原贴
Programming版 - UNIX DATAGRAM 类型socket最大报文长度多少?
相关主题
发现ramdisk不错,多个进程通信用文件就可以了,简单C10M 练习 step 1: 10M sockets
有没有人在Vista下试过UDP广播C10M 练习2: 空TCP 连接,1M per 4G RAM
[合集] Unix UDP 一问。Linux Socket编程
vert.x+swift是开发下一个generation的app的最捷径研讨一下TCP fragment的问题
问个关于socket问题socket re-connection problem
How to get local hostname under linux?Question about Base Tag...
一个socket中select函数的问题unix network programming (Stevens) book V1 (2ed, 3ed) code cannot run on Linux
问一个Linux无法监听指定端口的问题google 真的很强大!?
相关话题的讨论汇总
话题: 报文话题: 长度话题: udp话题: unix话题: datagram
进入Programming版参与讨论
1 (共1页)
v*******0
发帖数: 26
1
多谢。
c*****t
发帖数: 1879
2
什么意思?
packet size 是没个定数的,不过一般最少有 1k 左右。

【在 v*******0 的大作中提到】
: 多谢。
v*******0
发帖数: 26
3
通常的TCP,UDP报文是通过MTU,MRU来决定最大报文长度的。
这个在说用PF_INET生成的socket,因为是系统内部的,所以跟网络的会不一样。
我本来是想用SOCK_STREAM的话,需要给报文加一个类似TPKT的东西,dgram的话可能会受
到报文长度的限制,所以上来问问看有人知道不.
不过现在我已经有办法了,可以用SOCK_SEQPACKET类型,就都搞定了.
欢迎知道的人继续解答这个最大报文长度的问题,谢谢.

【在 c*****t 的大作中提到】
: 什么意思?
: packet size 是没个定数的,不过一般最少有 1k 左右。

k***r
发帖数: 4260
4
1024 is safe

【在 v*******0 的大作中提到】
: 多谢。
c********t
发帖数: 27
5
DG is variant, but I believe it is more than 1024 bytes.
k***r
发帖数: 4260
6
the upper limit should be 64K but i think many network devices drop
large UDP packets.

【在 c********t 的大作中提到】
: DG is variant, but I believe it is more than 1024 bytes.
P********e
发帖数: 2610
7
这种HTTP下载是不是一般都是TCP的

【在 k***r 的大作中提到】
: the upper limit should be 64K but i think many network devices drop
: large UDP packets.

k***r
发帖数: 4260
8
yes http uses tcp

【在 P********e 的大作中提到】
: 这种HTTP下载是不是一般都是TCP的
d******a
发帖数: 238
9

MTU不是决定最大报文长度的,而是决定分片的。
udp包是封装在ip包里的,ipv4的数据包头部有一个2字节的length选项,是ipv4数据包
的最大长度65535,从而决定了udp用户数据最大长度是65535-8-20=65507.
而udp传输又是不可靠的,所以分片很不好,因为丢失了一个分片就会影响其它分片的
重组。所以不同网络环境下mtu不同,发送的udp数据包大小不同,可能只有几百字节,
这是为了避免分片,而不是说我们只能发送几百字节的udp包。

【在 v*******0 的大作中提到】
: 通常的TCP,UDP报文是通过MTU,MRU来决定最大报文长度的。
: 这个在说用PF_INET生成的socket,因为是系统内部的,所以跟网络的会不一样。
: 我本来是想用SOCK_STREAM的话,需要给报文加一个类似TPKT的东西,dgram的话可能会受
: 到报文长度的限制,所以上来问问看有人知道不.
: 不过现在我已经有办法了,可以用SOCK_SEQPACKET类型,就都搞定了.
: 欢迎知道的人继续解答这个最大报文长度的问题,谢谢.

1 (共1页)
进入Programming版参与讨论
相关主题
google 真的很强大!?问个关于socket问题
How to convert ip to int using Python ? (转载)How to get local hostname under linux?
python question: A socket operation was attempted to an unreachable network一个socket中select函数的问题
其实板上还有几个臭皮匠的问一个Linux无法监听指定端口的问题
发现ramdisk不错,多个进程通信用文件就可以了,简单C10M 练习 step 1: 10M sockets
有没有人在Vista下试过UDP广播C10M 练习2: 空TCP 连接,1M per 4G RAM
[合集] Unix UDP 一问。Linux Socket编程
vert.x+swift是开发下一个generation的app的最捷径研讨一下TCP fragment的问题
相关话题的讨论汇总
话题: 报文话题: 长度话题: udp话题: unix话题: datagram