一:Saturatr介绍
在Multisend中,已经存在了一个Saturatr工具,它可以帮助我们收集我们需要的实验数据。在saturatr主要包含了两个部分Saturareservo和Acker一起实现收集功能。
SaturateServosaturatr ("OUTGOING", log_file, feedback_socket, data_socket,remote_data_address, server, sender_id);
Acker acker ("INCOMING",log_file, data_socket, feedback_socket, remote_feedback_address, server,sender_id);
从Saturareservo用于发送数据包同时接受ACK,日志输出如下所示:
OUTGOING ACKRECEIVED senderid=1530707186, seq=4, send_time=1530707186635070415, recv_time=1530707186679421701, rtt=0.0444, 22=> 23
INCOMING DATARECEIVED senderid=1530707186, seq=18, send_time=1530707186607602124,recv_time=1530707186679667466, 1delay=0.0721
从ACKer用于发送ACK同时接受数据包,日志输出如下所示:
INCOMING DATARECEIVED senderid=1530707186, seq=41779, send_time=1530707217562438072,recv_time=1530707217632504909, 1delay=0.0701
OUTGOING ACKRECEIVED senderid=1530707186, seq=20098, send_time=1530707216184751474, recv_time=1530707216728055071, rtt=0.5433,1500 => 1500
二 编译运行
注:Linux环境要求:G++的编译器携带的C++版本要求c++11。
(1) 在 send目录下,下发make命令
(2) 下发命令g++ -std=c++11 acker.osaturateservo.o socket.o payload.o saturatr.cc -o saturatr(在编译完cellsim之后,只需下发make saturatr即可完成编译!)
(3) 成功编译后,能够得到两个可执行的Saturatr文件
(4)下发ifconfig命令查找对应的Ip和网口
(4) 在Server端启动,下发 ./saturatr
在客户端启动 ./saturatr [RELIABLE_IP RELIABLE_DEV TEST_IP TEST_DEV SERVER_IP]
注:客户端 的 RELIABLE_IP RELIABLE_DEV 可以和客户端的IP、网口相同,不影响实验结果 (填写相同的IP和网卡即可)
三、实验结果及其处理
在客户端和服务端都会生成一个日志文件,如图所示!服务器端的可以直接处理,但是客户端的权限设置为644,使用chmod命令将其权限转化为777即可!
3.2文件处理
将服务端的实验结果和客户端的实验结果都用处理脚本处理即可得到pps文件,可以在仿真环境使用的文件!
注意:无论是客户端的日志文件还是服务器端的文件,都不可在重命名,不然会导致处理脚本处理不了。