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(用户报文协议) 一个数据包就能完成数据通信,不需要建立会话,不分段,不用流量控 ...
随机推荐
- 使用HttpClient 发送get、post请求,及其解析xml返回数据
一.关于HttpClient的使用: 可以参考这个博客地址,这里有详细的介绍,需要的可以先看一下: 地址是:http://blog.csdn.net/wangpeng047/article/detai ...
- Linux下调试程序方法
您可以用各种方法来监控运行着的用户空间程序:可以为其运行调试器并单步调试该程序,添加打印语句,或者添加工具来分析程序.本文描述了几种可以用来调试在 Linux 上运行的程序的方法.我们将回顾四种调试问 ...
- 内省、JavaBean、PropertyDescriptor类、Introspector类、BeanUtils工具包、注解、Rentention、Target、注解的基本属性和高级属性
本文转载自:http://blog.sina.com.cn/s/blog_5d65a16901011kom.html 关键字:内省.JavaBean.PropertyDescriptor类.Int ...
- Android 遮罩层效果
(用别人的代码进行分析) 不知道在开发中有没有经常使用到这种效果,所谓的遮罩层就是给一张图片不是我们想要的形状,这个时候我们就可以使用遮罩效果把这个图片变成我们想要的形状,一般使用最多就是圆形的效果, ...
- extjs学习之Ext.selection.CheckboxModel
Ext.onReady( function() { var store=Ext.create('Ext.data.Store', { storeId:'simpsonsStore', fields:[ ...
- 关于实现Extjs动态加载类的方式实现
Extjs4以前的版本没有动态加载类的方式,这样开发程序的时候加载很多的js会导致加载变慢,由于本人一直使用extjs3的版本进行开发,于是简单实现了一个动态加载类的管理器,使用方式与extjs4的方 ...
- javascript面向对象(三)
主要内容: 利用原型链的方式实现继承: 原型继承的特点:即继承了父类的模板,也继承了父类的原型对象. 类继承:只继承模板(借用构造函数的方式继承). 利用call.apply方法实现: 混合继承: 扩 ...
- GDI+ 发生一般性错误解决办法
错误的代码g对象继续占用 未释放资源 如果路径不一样 没问题 相同路径 获取图片进行 缩略会造成GDI错误 /// <summary> /// 生成缩略图 /// </summary ...
- android nio
Android开发进阶之NIO非阻塞包(二) 有关Android NIO我们主要分为三大类,ByteBuffer.FileChannel和SocketChannel.由于篇幅原因今天Android12 ...
- Oracle 11g 服务器安装图解
平常Oracle都是安装到本地的,没有安装到服务器过,今天找了个帖子是安装到服务器的图解 http://jingyan.baidu.com/album/948f5924373c04d80ff5f9f5 ...