简单的TCP带宽测试工具TTCP

TTCP是一个用于测试TCP性能的工具,专注于测量两台机器间的TCP吞吐量。它模拟应用层的消息传递,客户端发送包后等待服务器确认才发送下一个。用户可设置包的数量和大小,通过计算传输时间得出带宽。源码可在陈硕的GitHub找到。
摘要由CSDN通过智能技术生成

源码可以从陈硕的github上下载到,位置在muduo-master\examples\ace\ttcp

TTCP是一个传统的测试TCP性能的工具,它主要测试两个机器之间TCP的吞吐量,在应用层模拟消息传递的过程——客户端发送一个包,服务端对包进行确认,并且在确认之前客户端不发送下一个包。可以设置发包的数量和每个包的大小,程序计算传输所有包所用的时间,然后计算出带宽。

操作流程图

以上发送的message都是在应用层中体现的。当一个client发起ttcp的请求时,首先会向server发送一个SessionMessage,里边主要包含了即将发送的数据包个数和每个包的长度。PayloadMessage便是实际的数据,里边包含了一个表示长度的length,和实际的数据data,其中data使用了柔性数组。

main.cc

#include <examples/ace/ttcp/common.h>

#include <assert.h>

int main(int argc, char* argv[])
{
  Options options;								//用来保存输入的参数信息
  if (parseCommandLine(argc, argv, &options))	//把命令行输入的参数保存到结构体中
  {
    if (options.transmit)						//让发送端和接收端分别执行对应的函数
    {
      transmit(options);
    }
    else if (options.receive)
    {
      receive(options);
    }
    else
    {
      assert(0);
    }
  }
}

common.h

#pragma once

#include <string>
#include <stdint.h>

struct Options						
{
  uint16_t port;					//端口
  int length;						//报文长度
  int number;						//报文数量
  bool transmit, receive, nodelay;	//发送端,接收端,是否在传输层禁用negla算法
  std::string host;					//主机名
  Options()
    : port(0), length(0), number(0),
      transmit(false), receive(false), nodelay(false)
  {
  }
};

bool parseCommandLine(int argc, char* argv[], Options* opt);		//解析命令
struct soc
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值