CUTE-WRV2.1+TCP core(COM5402)的TCP带宽测试
问题的提出
测试TCP的带宽,硬件平台CUTE-WRV2.1,固件版本WRPCV3.0+COM5402。
代码、工具及实现
1. 在固件中,增加模块,收到TCP数据包后不断地往外发数:
library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_arith.all;
use ieee.std_logic_unsigned.all;
use ieee.numeric_std.all; entity user_tcp_demo is
port (
clk_i : in std_logic;
rst_n_i: in std_logic; user_rx_data: in std_logic_vector( downto );
user_rx_dvalid:in std_logic;
user_tx_data: out std_logic_vector( downto );
user_tx_dvalid:out std_logic;
user_tx_cts: in std_logic;
user_rx_rts: in std_logic ) ;
end entity ; -- user_tcp_demo architecture behavioral of user_tcp_demo is signal user_data:std_logic_vector( downto );
signal user_dvalid:std_logic; type t_tx_state is(T_IDLE,T_START,T_DATA,T_WAIT);
signal tx_state : t_tx_state; begin user_tx_dvalid <= user_dvalid;
user_tx_data <= user_data; U_tcp_tx_demo : process( clk_i )
begin
if rising_edge(clk_i) then
if rst_n_i = '' then
user_dvalid <= '';
user_data <= (others=>'');
tx_state <= T_IDLE;
else
case( tx_state ) is
when T_IDLE =>
user_dvalid <= '';
user_data <= (others=>'');
if user_rx_dvalid = '' then
tx_state<= T_START;
end if ;
when T_START =>
user_dvalid <= '';
user_data <= user_rx_data;
tx_state <= T_DATA;
when T_DATA =>
user_dvalid <= '';
user_data <= user_data + ;
if user_tx_cts = '' then
tx_state<= T_WAIT;
end if ;
when T_WAIT =>
user_dvalid <= '';
user_data <= (others=>''); if user_tx_cts = '' then
tx_state<= T_DATA;
end if; if user_rx_dvalid = '' then
tx_state <= T_IDLE;
end if ;
when others =>
user_dvalid <= '';
user_data <= (others=>'');
tx_state <= T_IDLE;
end case ;
end if ;
end if ;
end process ; -- U_tcp_tx_demo end behavioral;
2. PC上使用python脚本主动建立TCP连接,然后接收数据. TCP端口号为8000
# Echo client program
import socket HOST = '192.168.0.99' # The remote host
PORT = 8000 # The same port as used by the server
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((HOST, PORT))
while True:
s.sendall(b'Hello, world')
data = s.recv(1024)
# print(repr(data))
s.close()
3. PC上使用speedometer或者来记录带宽
sudo speedometer -r eth2 -t eth2
sudo iftop -i eth2
测试结果
PC透过WR交换机和CUTEWR通讯的带宽:
Speedometer报告的结果为28.2MB/s
iftop报告的结果为220Mb/s
CUTE-WRV2.1+TCP core(COM5402)的TCP带宽测试的更多相关文章
- Http 和TCP的关系,TCP长连接和短连接有什么区别?
HTTP 协议即超文本传送协议(Hypertext Transfer Protocol ),是Web联网的基础,也是手机联网常用的协议之一,HTTP协议是建立在TCP协议之上的一种应用.由于HTTP在 ...
- Tcp抓包以及tcp状态解释
tcp三次握手 发送端发送一个SYN=1,ACK=0标志的数据包给接收端,请求进行连接,这是第一次握手:接收端收到请求并且允许连接的话,就会发送一个SYN=1,ACK=1标志的数据包给发送端,告诉它, ...
- [转]使用wireshark分析TCP/IP协议中TCP包头的格式
本文简单介绍了TCP面向连接理论知识,详细讲述了TCP报文各个字段含义,并从Wireshark俘获分组中选取TCP连接建立相关报文段进行分析. 一.概述 TCP是面向连接的可靠传输协议,两个进程互发数 ...
- TCP/IP详细解释--TCP/IP可靠的原则 推拉窗 拥塞窗口
TCP和UDP在同一水平---传输层.但TCP和UDP最不一样的地方.TCP它提供了一个可靠的数据传输服务,TCP是面向连接的,那.使用TCP两台主机通过第一通信"拨打电话"这个过 ...
- 【TCP/IP 合约】 TCP/IP 基金会
总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后開始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...
- TCP/IP笔记(二)TCP/IP简介
上回,主要介绍了下协议和OSI参考模型,并简单了解下网络构成要素,这回该说说TCP/IP了 互联网与TCP/IP的关系 互联网进行通信时,需要相应的网络协议,TCP/IP原本就是为使用互联网而开发 ...
- 【TCP/IP 协议】 TCP/IP 基础
总结 : 通过学习 TCP/IP 基础, 并总结相关笔记 和 绘制思维导图 到博客上, 对 TCP/IP 框架有了大致了解, 之后开始详细学习数据链路层的各种细节协议, 并作出笔记; 博客地址 : h ...
- 【TCP协议】(3)---TCP粘包黏包
[TCP协议](3)---TCP粘包黏包 有关TCP协议之前写过两篇博客: 1.[TCP协议](1)---TCP协议详解 2.[TCP协议](2)---TCP三次握手和四次挥手 一.TCP粘包.拆包图 ...
- [TCP/IP] 传输层-TCP和UDP的使用场景
传输层-TCP和UDP应用场景 TCP(传输控制协议) 需要将要传输的文件分段传输,建立会话,可靠传输,流量控制 UDP(用户报文协议) 一个数据包就能完成数据通信,不需要建立会话,不分段,不用流量控 ...
随机推荐
- Codeforces Round #385 //再遇状压
敲完三题挂机一小时..... 也没懂DE什么意思 rank600上了一波分... A. Hongcow Learns the Cyclic Shift 给一个字符串,每次可以把最后一个字符拿到开头 ...
- tomcat(一)--java基础
什么是java java所涉及到的相关概念如下图.总体来说就是java语言.java API.jvm等构成. jvm:java虚拟机,java的代码都是运行在jvm上,这是java语言跨平台的保证,针 ...
- sublime配置coffeeScript
node.js 全局模块所在目录 npm -g ls 1.安装 npm install -g coffee-script 2.sublime安装CoffeeScript sublime语法高亮插件 ...
- 多层嵌套ajax同步
方式一: $.ajax({ type : "post", url : "user/add", data : data, async : false, //必须为 ...
- 格式化HRESULT获取对应文本
CString CXXUtil::FormatMessageFor(HRESULT hr) { CString strMsg; LPVOID pvMsgBuf = NULL; LPCTSTR pszM ...
- iis下设置php最大执行时间
php在执行中常见错误: The FastCGI process exceeded configured request timeout: FastCGI process exceeded confi ...
- response.setHeader()的用法
一秒刷新页面一次 response.setHeader("refresh","1"); 二秒跳到其他页面 response.setHeader("re ...
- configure: error: no acceptable C compiler found in $PAT 的解决方案
configure: error: no acceptable C compiler found in $PATH See `config.log' for more details.你的机器里没有安 ...
- 进阶——scrapy登录豆瓣解决cookie传递问题并爬取用户参加过的同城活动©seven_clear
最近在用scrapy重写以前的爬虫,由于豆瓣的某些信息要登录后才有权限查看,故要实现登录功能.豆瓣登录偶尔需要输入验证码,这个在以前写的爬虫里解决了验证码的问题,所以只要搞清楚scrapy怎么提交表单 ...
- Debian使用相关
1)将普通用户添加到sudo组 首先安装sudo: root@~#: apt-get install sudo 然后添加将wzc用户添加到sudo组: root@~#: usermod -a -G s ...