TCP/IP Networking Suite (TCPNet)
اصولاً برای کار با این کتابخانه و اجرای آن، ملزم به استفاده از سیستم عامل (RTOS) یا فایل سیستمی (File System) نیستیم. این TCP/IP Stack دارای یک Task Scheduler داخلی است. یعنی برای اجرا آن روی میکرو ها، تنها به یک Timer نیاز داریم. به عبارت دیگر، این Stack به صورت Stand Alone طراحی و پیاده سازی شده است. اما، چنانچه با توجه به پیچدگی طرح و برنامه اجرایی به سیستم عامل نیاز داشته باشیم، یعنی اگر تعدادی Task داشته باشیم... تنها می توانیم از سیستم عامل RTX استفاده کنیم.
UDP |
TCP |
|||
Packet Size (Bytes) |
Packets/sec |
KByte/sec |
Packets/sec |
KByte/sec |
10 |
19,790 |
176 |
7,540 |
74 |
200 |
21,370 |
4,164 |
6,450 |
1,272 |
400 |
17,490 |
6,820 |
5,600 |
2,202 |
600 |
14,230 |
8,330 |
4,730 |
2,782 |
800 |
11,950 |
9,360 |
4,210 |
3,300 |
1,000 |
10,370 |
10,090 |
3,736 |
3,652 |
1,200 |
9,120 |
10,670 |
3,322 |
3,894 |
1,400 |
8,140 |
11,130 |
3,082 |
4,215 |
· Examples shown using a Cortex-M3 processor-based device running at 96MHz, 100Mbps full duplex
· Using CMSIS compatible Ethernet drivers
نتایج Performance قابل حصول با این کتابخانه در مستندات زیر ذکر شده است، برای راست آزمایی این نتایج، برنامه نمونه ای برای ارسال بسته های UDP از سمت بورد LandTiger به PC نوشته شد. نتایج حاصل از این آزمون، درستی مقادیر ذکر شده را تائید می کند.
http://www.keil.com/rl-arm/rl-tcpnet_perf.asp
https://www.arm.com/products/tcp-ip-networking-suite.php
در صورتی که ویژگی ها و قابلیت های خاصی مورد نظر طراح سیستم می باشد، به منظور اطلاع از پشتیبانی این کتابخانه از این موضوع، به صفحه زیر مراجعه نمائید:
http://www.keil.com/rl-arm/rl-tcpnet_specs.asp
Network Component v7 (MDK Middleware for IPv4 and IPv6 Networking)
در این تست، از MDK-ARM Professional Version: 5.22 استفاده کردیم. همچنین پس از مشاهده مشکلاتی در نتایج گزارش شده بوسیله iperf-1.7.0-win32، برای انجام تست های این کتابخانه، از iperf-2.0.9-win64 استفاده کردیم. نتایج به صورت باور نکردنی! افزایش یافت!
SEND |
UDP |
TCP |
||
Packet Size (Bytes) |
Standalone |
RTX |
Standalone |
RTX |
1400 |
93.5 Mbits/sec |
92.9 Mbits/sec |
2.24 Mbits/sec |
2.22 Mbits/sec |
RECEIVE |
UDP |
TCP |
||
Packet Size (Bytes) |
Standalone |
RTX |
Standalone |
RTX |
1400 |
- |
- |
2.31 Mbits/sec |
- |
· Examples shown using a Cortex-M3 processor-based device running at 96MHz, 100Mbps full duplex
· These tests were performed with MDK-Middleware v7.3.0 on a Windows desktop host (1GBPS) and the LandTiger board ...
lwIP - A Lightweight TCP/IP stack
نتایج ادعایی قابل حصول با استفاده از این کتابخانه در صفحه زیر ذکر شده است.
https://www.lpcware.com/content/project/lightweight-ip-lwip-networking-stack/lpc177x8x-benchmarks
با توجه به این موضوع که ما برای اجرای تست های خود از بورد LandTiger استفاده می کنیم، تنها نتایج و مقادیر ذکر شده برای بورد NXP Xpresso LPC1769 قابل استناد است.
LWIP iperf (bandwidth) tests
iperf -i 5 -c 165.114.23.165 -m
Test Description |
|
NXP Xpresso LPC1769 (code in internal FLASH) |
------------------------------------------------------------ Client connecting to 165.114.23.165, TCP port 5001 TCP window size: 16.0 KByte (default) ------------------------------------------------------------ [ 3] local 165.114.23.231 port 51425 connected with 165.114.23.165 port 5001 [ ID] Interval Transfer Bandwidth [ 3] 0.0- 5.0 sec 52.4 MBytes 87.9 Mbits/sec [ 3] 5.0-10.0 sec 52.4 MBytes 87.9 Mbits/sec [ 3] 0.0-10.0 sec 105 MBytes 87.8 Mbits/sec [ 3] MSS size 1460 bytes (MTU 1500 bytes, ethernet) |
· These tests were performed with LPCOpen v1.03 on a Linux desktop host (1GBPS) and a target board (100MBPS) with a 1GBPS switched between host and board.
برای راست آزمایی این نتایج، هشت برنامه آزمون با توجه به شرایط تست قبلی نوشته شد. نتایج حاصل از این آزمون ها، در جدول زیر آورده شده است:
SEND |
UDP |
TCP |
||
Packet Size (Bytes) |
Standalone (Raw API) |
FreeRTOS (Socket API) |
Standalone (Raw API) |
FreeRTOS (Socket API) |
1400 |
74.4 Mbits/sec |
25.2 Mbits/sec |
54.3 Mbits/sec |
7.61 MBytes |
RECEIVE |
UDP |
TCP |
||
Packet Size (Bytes) |
Standalone (Raw API) |
FreeRTOS (Socket API) |
Standalone (Raw API) |
FreeRTOS (Socket API) |
1400 |
50 Mbits/sec |
- |
40.7 Mbits/sec |
13.6 Mbits/sec |
· Examples shown using a Cortex-M3 processor-based device running at 96MHz, 100Mbps full duplex
· These tests were performed with LPCOpen v2.10 on a Windows desktop host (1GBPS) and the LandTiger board ...