Open unissoft-bj opened 9 years ago
is it possible to increase the 1400 bytes limit to a higher value in Chilli?
1400 bytes is a bit too low. Not good to the network throughput.
增加tun0的 mtu,不能解决问题
root@ihost:~# ip link set dev tun0 mtu 8920
root@ihost:~# ifconfig tun0
tun0 Link encap:UNSPEC HWaddr 00-00-00-00-00-00-00-00-00-00-00-00-00-00-00-00
inet addr:172.16.0.1 P-t-P:172.16.0.1 Mask:255.255.0.0
UP POINTOPOINT RUNNING MTU:8920 Metric:1
RX packets:223520 errors:0 dropped:0 overruns:0 frame:0
TX packets:238029 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:47795906 (47.7 MB) TX bytes:122032730 (122.0 MB)
chilli只是把wlan0上收到的fragment frame换frame字段后放到了tun0上 虽然tun0的mtu很大,但在chilli环节并没有组装 iptables把fragment放到eth0上的过程未受到mtu值的影响 kernel把fragment组装,发给wms的过程未受到mtu值的影响 wlan0上的frame长度,取决于手机的网卡和ihost的网卡。ethernet标准mtu=1500
把8920分成7片,每片1280发过来;到ihost端每7片组装成一个包 到达次序问题(相对来说,8192的包不容易出现次序问题) 如果中间有1个fragment丢失,后续7片分组面临全部重新组合的问题 是否需要一个控制机制(7片次序、所属分组);相当于我们自己在应用层做了一个fragment assembly的工作(chilli没有做assembly;kernel在tun0上做assembly时丢包) 还是用tcp取代udp,直接用tcp的控制机制
see folder wlsp@182.92.195.40:~/wms/0.1.1_tcp/
3 files:
wmRecorder-debug-tcp.apk: send tcp socket to wms app-debug.apk: send udp socket to wms
wms-0.1.1.war: new build support both udp and tcp recording. tcp listens to port 8001. If you tests on a system support speaker output, you should be hear those sounds recorded from phone.
182.92.195.40:9090
you can download it from web.
tcp方式正常,系统开销明显增加(之前的udp方式load average大概在0.3左右)
没有tcp包发送时的load average
uploaded app-debug_v10.apk which supports Android phone Version 2.3+
wms/0.1.1_tcp/app-debug_v11.apk 工作正常
4分半的歌,大概有4~5个地方有点卡 单个录音客户端,rock pro的load average约为1.0~1.1
packet size = 1280