0
点赞
收藏
分享

微信扫一扫

Linux C/C++网络编程实战-陈硕-笔记2-一个TCP的简单实验

楚木巽 2022-05-01 阅读 60

实验环境

在这里插入图片描述

命令

测试

在 atom 机器 发送到 e6400 机器:

  • e6400: 在5001端口监听,收数据。
  • atom:从 /dev/sero 读一千兆数据,发送到5001端口(注:/dev/zero文件代表一个永远输出 0的设备文件,使用它作输入可以得到全为空的文件。因此可用来创建新文件和以覆盖的方式清除旧文件)
  • 带宽 118MB/s
    在这里插入图片描述

本地测试:从 atmo 发送到 atom

  • 第一次测量:从 dev/zero 读取数据10G数据测带宽为 580MB/s
    在这里插入图片描述

  • 第二次测量:从本地读取数据1G左右数据文件,运行时间为 9.4s,测带宽为 115.720MB/s【1087774720(文件大小) / 9.4(运行时间) / 1000000】。因为该步测试从磁盘加载文件,测试结果内含磁盘读取时间消耗,作为网络带宽结果不准确,因此再进行第三次测量。
    在这里插入图片描述
    在这里插入图片描述

  • 第三次测量:从本地读取数据1G左右数据文件,测带宽为 1074.876MB/s。由于步骤2测试时,已经将文件数据加载进内存中了,该步测试可以认为是直接从内存中加载数据。
    在这里插入图片描述

在 atom 机器 发送到 e350 机器:

  • 可以看出为 118 MB/s,tcp 协议栈开销不大
    在这里插入图片描述

结果

  • 在 atom 和 {e6400,e350} 千兆网测试出的结果吞吐量是 118MB/s
  • 在 atom 这台机器上,如果用 dd 重定向到 nc ,用 nc 测,是 580 MB/s
  • 在 atom 这台机器上,改用文件重定向是 1074 MB/s
    在这里插入图片描述

原因

  • 当只有 nc -> tcp -> nc 为 118MB/s
  • 当 dd -> pipe -> nc -> tcp -> nc -> tcp 为 580 ≈ 118 * 3
  • 最后 1074Mb/s 是从缓存在内存中的文件开始读的
    在这里插入图片描述
举报

相关推荐

0 条评论