Skip to content

Latest commit

 

History

History
373 lines (210 loc) · 9.08 KB

Test-doc.md

File metadata and controls

373 lines (210 loc) · 9.08 KB

LFTP - Test doc

测试文档

目录

局域网测试

服务端

开启服务:

$ java -jar .\lftp_main.jar server

默认端口为3000,默认数据文件夹为./serverData,默认地址池为20480-20489

1543639228867

客户端

发送数据

查看帮助信息

$ java -jar .\lftp_main.jar lsend -h

1543640945364

先发送一个4M大小的mp3文件

$ java -jar .\lftp_main.jar lsend -s 127.0.0.1:3000 ./data/music.mp3

1543639563955

然后再发送一个120M的PDF文件

$ java -jar .\lftp_main.jar lsend -s 127.0.0.1:3000 ./data/book.pdf

1543639727811

然后测试并行发送

开启两个客户端,由于是并行发送,因此需要分别设置不同的不同的控制和发送端口,可以看到,服务器分别为这两个客户端开启了2048020482端口,同时接收两者发送的数据。

测试1(发送过程):

1543641153710

测试2(发送结束):

1543647401471

查看其占用的内存,并不是把整个文件直接读入内存的

1543639684093

服务端信息:

接收到了两个文件,都是在20480端口完成传输的。

1543639913941

查看文件列表

$ java -jar .\lftp_main.jar list -s 127.0.0.1:3000

可以看出文件被发送到服务端

1543639815136

接收文件

1543641317749

$ java -jar .\lftp_main.jar lget -s 127.0.0.1:3000 -d ./download music.mp3

从服务端获取刚才发送的MP3文件,并放入./download文件夹中

get

$ java -jar .\lftp_main.jar lget -s 127.0.0.1:3000 -d ./download book.pdf

然后下载刚才发送的比较大的120MB的pdf文件

1543640732205

服务端显示发送了三个文件,同样是通过20480端口发送的

1543640594088

现在再来测试以下并行接收:

从两个端口从服务端分别下载文件

$ java -jar .\lftp_main.jar lget -s 127.0.0.1:3000 -p 5555 -d ./download book.pdf
$ java -jar .\lftp_main.jar lget -s 127.0.0.1:3000 -p 5556 -d ./download music.mp3

1543647554621

两个客户端同时接收来自服务器的数据,分别在不同的端口。

服务端也同时开启了两个端口发生数据给客户端:

1543647622606

最后两个客户端都成功完整接收到文件

1543647691480

互联网测试

测试环境

服务器:腾讯云

配置:2核2G

带宽:上行1Mbps,下行8Mbps

系统:CentOS 7.3 64位

运行环境:Java 11

公网IP:111.230.240.70 (广州)

指向服务器IP的域名:love.zhenly.cn

由于比较穷,只能在1Mbps的小水管服务器上测试

服务端

指定在3001端口上开启服务

$ java -jar lftp_main.jar server -p 3001

1543641837032

客户端

发送文件

这里通过url向服务器发送一个mp3文件

$ java -jar lftp_main.jar lsend -s love.zhenly.cn:3001 ./data/music.mp3

1543641960485

1543642612975

整个文件都被完整发送到服务器上

再发送一个120MB的pdf文件

$ java -jar .\lftp_main.jar lsend -s love.zhenly.cn:3001 ./data/book.pdf

1543642688224

服务端显示发送了若干个文件到客户端中

1543642758877

测试并行发送

需要指定不同控制和数据端口,否则端口绑定会发生冲突

$ java -jar .\lftp_main.jar lsend -s love.zhenly.cn:3001 -c 6666 -p 6667 ./data/book.pdf
$ java -jar .\lftp_main.jar lsend -s love.zhenly.cn:3001 ./data/music.mp3

1543643368409

从服务端接收日志可以看出,两个文件分别再两个不同的端口进行接收

1543643488643

查看文件列表

 java -jar .\lftp_main.jar list -s love.zhenly.cn:3001

1543642808535

可以看到我们刚才发送到服务端的几个文件

接收文件

由于这台服务器的上行带宽只有1Mbps,因此最大带宽也就是128KB/s,这里一般都能跑到100KB/s左右。

先下载一个4M的mp3文件

$ java -jar .\lftp_main.jar lget -s love.zhenly.cn:3001 -d ./download music.mp3

1543655113329

再下载一个120M的pdf文件

$ java -jar .\lftp_main.jar lget -s love.zhenly.cn:3001 -d ./download book.pdf

1543655150378

可以看出速度的确很慢

然后测试并行接收

需要指定两个不同的端口来接收文件,否则端口会产生冲突

$ java -jar .\lftp_main.jar lget -s love.zhenly.cn:3001 -p 3456 -d ./download music.mp3
$ java -jar .\lftp_main.jar lget -s love.zhenly.cn:3001 -p 5678 -d ./download book.pdf

1543655562740

可以看到,两个并行的客户端同时下载可以占满1M的小水管

可靠性测试

从客户端向服务端发送120M的pdf文件

计算文件的哈希值,除了修改时间,文件内容是完全一致的

文件:	D:\Project\ZhenlyChen\LFTP\out\artifacts\lftp_main_jar\data\book.pdf
大小:	125, 663, 120 字节
修改时间:2018-10-30 16:41:05
MD5:	CB1C813E201468DC751A4349F8B77B66
SHA1:	19EA8700F19A87DDBA3D27453E3990D9D7858E5C
CRC32:C933524D


文件:	D:\Project\ZhenlyChen\LFTP\out\artifacts\lftp_main_jar\serverData\book.pdf
大小:	125, 663, 120 字节
修改时间:2018-12-02 10:42:38
MD5:	CB1C813E201468DC751A4349F8B77B66
SHA1:	19EA8700F19A87DDBA3D27453E3990D9D7858E5C
CRC32:C933524D

拥塞控制测试

由于局域网内带宽过大,看不出拥塞测试的效果,因此这里使用互联网环境,在1Mbps的带宽下同时下载文件

首先让一个客户端先开启下载,可以达到100KB/s的速度

1543719196825

然后使得两个客户端同时进行下载,在拥塞状态下,两个客户端的速度最终趋向平分,都是50KB/s左右

1543719179977

流量控制测试

因为接收者处理数据以及写入文件的速度是远大于网络速度的,因此这一部分比较难测试出来。

超大文件测试

上面的测试都是一些小文件,这里尝试

这里尝试传输一个大于2GB的文件

选择一个3.52GB的镜像文件在局域网内传输,客户端向服务端发送,速度可达12.36MB/s

Snipaste_2018-12-02_20-54-03

查看其内存占用,即使是3.52GB的文件,其占用的内存也不会太多,仅仅为100多MB

Snipaste_2018-12-02_20-57-00

large

完全接收之后一共花了不到5分钟

Snipaste_2018-12-02_20-57-29

服务端也显示传输完毕

Snipaste_2018-12-02_20-57-42

检测哈希值,服务端和客户端的文件是完全一致的

文件:	D:\Project\ZhenlyChen\LFTP\out\artifacts\lftp_main_jar\serverData\office.img
大小:	3, 775, 004, 672 字节
修改时间:2018-12-02 20:57:24
MD5:	D3829ED21798020734C679A57F7D6039
SHA1:	2A5AA62DEA78C5073775684FCEBE56405AF52F24
CRC32:C06CB3FB


文件:	D:\Project\ZhenlyChen\LFTP\out\artifacts\lftp_main_jar\data\office.img
大小:	3, 775, 004, 672 字节
修改时间:2018-09-30 22:57:03
MD5:	D3829ED21798020734C679A57F7D6039
SHA1:	2A5AA62DEA78C5073775684FCEBE56405AF52F24
CRC32:C06CB3FB

大文件测试通过