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(用户报文协议) 一个数据包就能完成数据通信,不需要建立会话,不分段,不用流量控 ...
随机推荐
- 第二章 centos安装maven
一.官网下载 apache-maven-3.3.9-bin.tar.gz 注意:需要jdk1.7及以上 二.上传 scp apache-maven-3.3.9-bin.tar.gz root@10.2 ...
- String和string的区别(C#)
从位置讲: 1.String是.NET Framework里面的String,小写的string是C#语言中的string 2.如果把using System;删掉,没有大写的String了,Sys ...
- Android学习---ListView的点击事件,simpleAdapter和arrayadapter,SimpleCursoAdapter的原理和使用
如题,本文将介绍 listview的点击事件,simpleAdapter和arrayadapter的原理和使用. 1.ListView的注册点击事件 //注册点击事件 personListView.s ...
- 细说;(function ($, undefined){ })(jQuery); 的使用
1. 对于function前面的分号(;)的使用:使用分号的目的是为了防止多个文件压缩合并时,以为其他文件最后一行语句没加分号,而引起合并后的语法错误. 2. (function ($, undefi ...
- 未添加document.ready产生的BUG
今天在框架里使用superslide插件时,在javascript部分 <script type="text/javascript"> jQuery(".yj ...
- js面向对象,多种创建对象方法!
1.对象字面量. var clock={ hour:12, minute:10, second:10, showTime:function(){ alert(this.hour+":&quo ...
- python课程第四周重点记录
1.迭代器 names = iter(["alex","jack","rain"]) #声明列表的一个迭代器 names.__next__( ...
- 5ucms后台调用标签
<%=Rs.Data(1,i)%>栏目 <%=Rs.Data(2,i)%>标题 <%=Rs.Data(3,i)%>推荐 <%=Rs.Data(4,i)%> ...
- HTML5 CSS3学习
HTML5 CSS3学习 :http://www.1000zhu.com/course/css3/ HTML5 相关书籍: http://www.html5cn.com.cn/news/gdt/2 ...
- url中,中文乱码的问题
1// 在jsp中 String add = java.net.URLEncoder.encode("添加", "utf-8"); add = java.net ...