v*******0 发帖数: 26 | |
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类型,就都搞定了. : 欢迎知道的人继续解答这个最大报文长度的问题,谢谢.
|