范文健康探索娱乐情感热点
投稿投诉
热点动态
科技财经
情感日志
励志美文
娱乐时尚
游戏搞笑
探索旅游
历史星座
健康养生
美丽育儿
范文作文
教案论文
国学影视

网络基本概念和测试

  一 网络概念:
  1.带宽: 标识网卡的最大传输速率,单位为 b/s,比如 1Gbps,10Gbps,相当于马路多宽
  2.吞吐量: 单位时间内传输数据量大小单位为 b/s 或 B/s ,吞吐量/带宽,就是网络的使用率,相当于单位时间内马路上路过有多少人吧(包括车里的等)
  3.延时: 发送网络请求,到收到远端响应,需要的时间延迟,比如 TCP 握手延迟,或者数据包往返时间,相当于一去一回时间。
  4.PPS : 每秒转发包数量,如果吞吐量是以字节为单位,pps 是以包为单位,可以理解成路上车的数量,以车位单位。
  5.并发连接数: TCP 连接数量。 6.丢包率: 丢包的百分比。 7.重传率: 重传的包的比例。 二 网卡有用命令2.1 监控是否丢包 watchwatch -d ifconfig ens33
  errors 表示发生错误的数据包数,比如校验错误、帧同步错误等;
  dropped 表示丢弃的数据包数,即数据包已经收到了 Ring Buffer,但因为内存不足等原因丢包,主要应用层或系统内核处理慢;
  overruns 表示超限数据包数,即网络 I/O 速度过快,导致 Ring Buffer 中的数据包来不及处理(队列满)而导致的丢包(网卡收包队列已满);
  carrier 表示发生 carrirer 错误的数据包数,比如双工模式不匹配、物理电缆出现问题等;
  collisions 表示碰撞数据包数。 2.2 查看系统中连接信息
  netstat -lnp
  其中: -l 表示只显示监听套接字 ;
  -n 表示显示数字地址和端口(而不是名字)
  -p 表示显示进程信息 [root@iZbp10p2g1civrw4ggigvfZ ~]# netstat -lnp Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 0.0.0.0:25              0.0.0.0:*               LISTEN      1444/master tcp        0      0 0.0.0.0:443             0.0.0.0:*               LISTEN      20330/nginx: master tcp        0      0 0.0.0.0:2332            0.0.0.0:*               LISTEN      1712/nginx: master tcp        0      0 0.0.0.0:5278            0.0.0.0:*               LISTEN      27975/java tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      1840/php-fpm: maste tcp        0      0 0.0.0.0:3306            0.0.0.0:*               LISTEN      1937/mysqld tcp        0      0 0.0.0.0:6379            0.0.0.0:*               LISTEN      1684/redis-server 0 tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      20330/nginx: master tcp        0      0 0.0.0.0:2353            0.0.0.0:*               LISTEN      24490/sshd: /usr/sb tcp        0      0 0.0.0.0:23              0.0.0.0:*               LISTEN      1/systemd tcp6       0      0 :::25                   :::*                    LISTEN      1444/master tcp6       0      0 :::33060                :::*                    LISTEN      1937/mysqld tcp6       0      0 :::2353                 :::*                    LISTEN      24490/sshd: /usr/sb udp        0      0 0.0.0.0:68              0.0.0.0:*                           1026/dhclient udp        0      0 127.0.0.1:323           0.0.0.0:*                           749/chronyd udp6       0      0 ::1:323                 :::*                                749/chronyd Active UNIX domain sockets (only servers) Proto RefCnt Flags       Type       State         I-Node   PID/Program name     Path ....
  ss -ltnp
  -l 表示只显示监听套接字
  -t 表示只显示 TCP 套接字
  -n 表示显示数字地址和端口(而不是名字) -p 表示显示进程信息
  注意:下面是 ss 命令下的解释:
  Established 状态时,Recv-Q 表示套接字缓冲还没有被应用程序取走的字节数( ,而 Send-Q 表示还没有被远端主机确认的字节数 LISTEN 状态时候 Recv-Q 表示使用的全连接队列的长度 Send-Q 表示全连接队列的最大长度。
  ss 只显示已经连接、关闭、孤儿套接字等简要统计,而 netstat 则提供的是更详细的网络协议栈信息。 netstat -s root@iZbp10p2g1civrw4ggigvfZ ~]# netstat -s Ip:     368894134 total packets received     0 forwarded     0 incoming packets discarded     368894127 incoming packets delivered     204418238 requests sent out     133 dropped because of missing route     7 reassemblies required     1 packets reassembled ok Icmp:     91913511 ICMP messages received     90910972 input ICMP message failed.     InCsumErrors: 2     ICMP input histogram:         destination unreachable: 4391 ....
  netstat 在排查 tcp 连接时候还是非常有用的,比如我们可以通过: netstat -s | egrep "listen"     79019 times the listen queue of a socket overflowed
  多次观察是否会增加,如果会增加,说明有监听队列满了,导致的连接拒绝问题。 如果队列满了,可以通过查看: cat /proc/sys/net/ipv4/tcp_abort_on_overflow
  值为 0 表示连接队列如果满了,系统会直接扔掉客户端的 ack 报文,将这个值改成 1,会在队列满的情况下直接发 reset 包给客户端。
  ss -s命令统计信息: [root@iZbp10p2g1civrw4ggigvfZ ~]# ss -s Total: 210 (kernel 276) TCP:   22 (estab 7, closed 2, orphaned 0, synrecv 0, timewait 1/0), ports 0 Transport Total     IP        IPv6 *   276       -         - RAW   0         0         0 UDP   3         2         1 TCP   20        17        3 INET   23        19        4 FRAG   0         0         0 2.3 网络统计指标统计信息sar -n DEV 1 [root@iZbp10p2g1civrw4ggigvfZ ~]# sar -n DEV 1 Linux 3.10.0-1062.4.3.el7.x86_64 (iZbp10p2g1civrw4ggigvfZ)  12/25/2021  _x86_64_ (2 CPU)  02:16:52 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 02:16:53 PM      eth0      0.99      0.99      0.06      0.09      0.00      0.00      0.00 02:16:53 PM        lo     11.88     11.88      1.95      1.95      0.00      0.00      0.00  02:16:53 PM     IFACE   rxpck/s   txpck/s    rxkB/s    txkB/s   rxcmp/s   txcmp/s  rxmcst/s 02:16:54 PM      eth0      0.99      0.99      0.06      0.17      0.00      0.00      0.00 02:16:54 PM        lo      0.00      0.00      0.00      0.00      0.00      0.00      0.00 rxpck/s 和 txpck/s 每秒接收的数据包数量和每秒发送数据包的数量。 rxkB/s 和 txkB/s 每秒接收的字节数和发送的吞吐量。 rxcmp/s 和 txcmp/s 每秒钟接收和发送的压缩数据包。 rxmcst/s 每秒收到多播的数量。 2.4 带宽查看[root@localhost ~]#  ethtool ens33 | grep Speed Speed: 1000Mb/s
  以上为千兆网卡 2.5 连通性测试和延时查看
  这个比较简单,我们一般通过 ping 进行测试,如下: [root@localhost ~]# ping -c10 www.baidu.com PING www.a.shifen.com (14.215.177.38) 56(84) bytes of data. 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=36.2 ms 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=55 time=36.1 ms 64 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=55 time=35.8 ms ...
  time=35.8 ms 标识往返时延。 设置 ping 包大小,可以测试网络中 mtu 大概范围: [root@localhost ~]# ping -c 4 -s 1420 www.baidu.com PING www.a.shifen.com (14.215.177.38) 1420(1448) bytes of data. 1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=1 ttl=55 time=36.4 ms 1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=2 ttl=55 time=35.2 ms 1428 bytes from 14.215.177.38 (14.215.177.38): icmp_seq=3 ttl=55 time=36.5 ms  三 网络层性能测试3.1 网路层可以通过 pktgen 来测试网络性能# 加载发包工具 $ modprobe pktgen
  定义发包脚本: # 定义一个工具函数,方便后面配置各种测试选项 function pgset() {     local result     echo $1 > $PGDEV      result=`cat $PGDEV | fgrep "Result: OK:"`     if [ "$result" = "" ]; then          cat $PGDEV | fgrep Result:     fi }  # 为0号线程绑定ens33网卡 PGDEV=/proc/net/pktgen/kpktgend_0 pgset "rem_device_all"   # 清空网卡绑定 pgset "add_device eth0"  # 添加eth0网卡  # 配置ens33网卡的测试选项 PGDEV=/proc/net/pktgen/ens33 pgset "count 1000000"    # 总发包数量 pgset "delay 5000"       # 不同包之间的发送延迟(单位纳秒) pgset "clone_skb 0"      # SKB包复制 pgset "pkt_size 64"      # 网络包大小 pgset "dst 192.168.1.30" # 目的IP pgset "dst_mac 11:11:11:11:11:11"  # 目的MAC  # 启动测试 PGDEV=/proc/net/pktgen/pgctrl pgset "start"
  查看测试结果: [root@localhost pktgen]# cat /proc/net/pktgen/em1 Params: count 1000000  min_pkt_size: 64  max_pkt_size: 64      frags: 0  delay: 5000  clone_skb: 0  ifname: em1      flows: 0 flowlen: 0      queue_map_min: 0  queue_map_max: 0      dst_min: 192.168.1.29  dst_max:         src_min:   src_max:      src_mac: f8:bc:12:4c:65:00 dst_mac: 11:11:11:11:11:11      udp_src_min: 9  udp_src_max: 9  udp_dst_min: 9  udp_dst_max: 9      src_mac_count: 0  dst_mac_count: 0      Flags: Current:      pkts-sofar: 1000000  errors: 0      started: 335193101003us  stopped: 335198101130us idle: 4529619us      seq_num: 1000001  cur_dst_mac_offset: 0  cur_src_mac_offset: 0      cur_saddr: 192.168.1.29  cur_daddr: 192.168.1.30      cur_udp_dst: 9  cur_udp_src: 9      cur_queue_map: 0      flows: 0 Result: OK: 5000126(c470506+d4529619) usec, 1000000 (64byte,0frags)   199994pps 102Mb/sec (102396928bps) errors: 0  第一部分的 Params 是测试选项; 第二部分的 Current 是测试进度,其中, packts so far(pkts-sofar)表示已经发送了 100 万个包,也就表明测试已完成。 第三部分的 Result 是测试结果,包含测试所用时间、网络包数量和分片、PPS、吞吐量以及错误数。 结果每秒发送 19 万个包,吞吐量为 102Mb/s. 3.2 TCP/UDP 性能测试
  iperf 和 netperf 是用来测试 tcp、udp 的吞吐量的常用工具。 # 安装 yum install iperf3  # 测试 # -s 启动服务器端 -i 汇报间隔 -p 端口启动1234 $iperf3 -s -i 1 -p 1234 # -c表示启动客户端,127.0.0.1为目标服务器的IP # -b表示目标带宽(单位是bits/s) # -t表示测试时间 # -P表示并发数,-p表示目标服务器监听端口 $iperf3 -c 127.0.0.1  -b 10G -t 15 -P 2 -p 1234
  报告查看,本机测试 20Gbps 还是可以达到的。 [ ID] Interval           Transfer     Bitrate         Retr [  5]   0.00-15.00  sec  17.5 GBytes  10.0 Gbits/sec    6             sender [  5]   0.00-15.03  sec  17.5 GBytes  9.98 Gbits/sec                  receiver [  7]   0.00-15.00  sec  17.5 GBytes  10.0 Gbits/sec    2             sender [  7]   0.00-15.03  sec  17.5 GBytes  9.98 Gbits/sec                  receiver [SUM]   0.00-15.00  sec  34.9 GBytes  20.0 Gbits/sec    8             sender [SUM]   0.00-15.03  sec  34.9 GBytes  20.0 Gbits/sec                  receiver  3.3 HTTP 性能测试
  http 性能测试可以选择的不少,常用的有 ab(Apache 自带的 HTTP 压测工具),webbench。 # ab工具安装 yum install -y httpd-tools
  运行下 http 服务器: [root@localhost ~]# podman run -p 80:80 -itd nginx b924819bbd3c3eadcd14e2c6b2088f838fa88399fd8404dfbd9863d04570f900 [root@localhost ~]# podman ps CONTAINER ID  IMAGE                          COMMAND               CREATED        STATUS            PORTS               NAMES b924819bbd3c  docker.io/feisky/nginx:latest  nginx -g daemon o...  9 seconds ago  Up 8 seconds ago  0.0.0.0:80->80/tcp  beautiful_tereshkov
  测试: # -c表示并发请求数为1000,-n表示总的请求数为10000 [root@localhost ~]#  ab -c 1000 -n 10000 http://192.168.31.50/ This is ApacheBench, Version 2.3 <$Revision: 1843412 gt; Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/  Benchmarking 192.168.31.50 (be patient) apr_socket_recv: Connection reset by peer (104) Total of 223 requests completed [root@localhost ~]#
  直接报错,尴尬了,难道是队列不够设置下: vim /etc/sysctl.conf  net.ipv4.tcp_syncookies = 0 net.ipv4.tcp_max_syn_backlog =1024 # 生效:sysctl -p # 注意net.ipv4.tcp_syncookies设置为1的话,半连接队列没有用的
  SYN Cookie 是对 TCP 服务器端的三次握手协议作一些修改,专门用来防范 SYN Flood 攻击的一种手段。它的原理是,在 TCP 服务器收到 TCP SYN 包并返回 TCP SYN+ACK 包时,不分配一个专门的数据区,而是根据这个 SYN 包计算出一个 cookie 值。在收到 TCP ACK 包时,TCP 服务器在根据那个 cookie 值检查这个 TCP ACK 包的合法性。如果合法,再分配专门的数据区进行处理未来的 TCP 连接。
  结果还不行,抓包看下,都是直接对 80 端口发送 RST 报文,有点尴尬,没看到连接报文,后来查了下,可能是在接手 tcp_syncookies 报错,所以把报错继续发送选项打开,即加个-r 选项 如下: [root@localhost ~]#  ab -r -c 1000 -n 10000 http://192.168.31.50/ This is ApacheBench, Version 2.3 <$Revision: 1843412 gt; Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/  Benchmarking 192.168.31.50 (be patient) Completed 1000 requests Completed 2000 requests Completed 3000 requests Completed 4000 requests Completed 5000 requests Completed 6000 requests Completed 7000 requests Completed 8000 requests Completed 9000 requests Completed 10000 requests Finished 10000 requests  Server Software:        nginx/1.15.4 Server Hostname:        192.168.31.50 Server Port:            80  Document Path:          / Document Length:        153 bytes  Concurrency Level:      1000 Time taken for tests:   0.994 seconds Complete requests:      10000 Failed requests:        0 Non-2xx responses:      10000 Total transferred:      3030000 bytes HTML transferred:       1530000 bytes Requests per second:    10061.44 [#/sec] (mean) Time per request:       99.389 [ms] (mean) Time per request:       0.099 [ms] (mean, across all concurrent requests) Transfer rate:          2977.16 [Kbytes/sec] received  Connection Times (ms)               min  mean[+/-sd] median   max Connect:        0    5   6.7      2      39 Processing:     1   32 101.8     11     851 Waiting:        1   31 101.8     10     851 Total:          3   37 104.4     13     870  Percentage of the requests served within a certain time (ms)   50%     13   66%     16   75%     19   80%     21   90%     44   95%     84   98%    453   99%    858  100%    870 (longest request)
  关键输出信息: 1.  每秒平均发送请求:Requests per second: 10061.44 [#/sec](mean) 2.  平均请求时延 Time per request: 99.389 [ms](mean) 3.  吞吐量: Transfer rate: 2977.16 [Kbytes/sec] received 3.4 应用层测试性能
  wrk、TCPCopy、Jmeter 或者 LoadRunner 等工具可以测试实际负载的。 以 wrk 为例测试: wget https://github.com.cnpmjs.org/wg/wrk tar xvf wrk* cd wrk* make cp wrk /usr/local/bin
  测试: # 测试 -t12 开始12个线程 -c400 保持400个http连接 -d30s 持续时间30s [root@localhost wrk-master]# wrk -t12 -c400 -d30s http://192.168.31.50/ Running 30s test @ http://192.168.31.50/   12 threads and 400 connections   Thread Stats   Avg      Stdev     Max   +/- Stdev     Latency    22.42ms   17.12ms 564.75ms   97.18%     Req/Sec     1.56k   261.57     3.13k    70.10%   558047 requests in 30.04s, 163.89MB read   Non-2xx or 3xx responses: 558047 Requests/sec:  18574.38 Transfer/sec:      5.46MB  每秒发送请求数:18574.38 吞吐量为:5.46MB/s 平均时延:22.42ms

腾讯优化超前点播,消费者保护协会牛啊腾讯有多牛腾讯号称南山必胜客腾讯的游戏规则也很简单你做的好那我就代理你,代理不了就收购你,收购不了我就做一个一样的出来打败你。所以腾讯没有对手。大家知道为啥腾讯叫南山必胜客么?腾讯一鲸落,万物生,这些网络毒手又在瞎说昨天看到这篇人民日报痛批阿里,一鲸落,万物生,这明显是移花接木的手法。他首先对近期阿里和马云的事件进行报道,然后这样说人民日报也对此进行了点评,不要幻想一家独大,这里不是韩国,中国大街上遇到有人给你微信转账换现金,为什么一定不能换?大街上遇到有人给你微信转账换现金的时候,我用我的亲身经历大家,不能跟他换!坚决不能跟他换!因为这就是个彻头彻尾的骗局。这帮骗子完全就是在利用和消费人性的善良,来达到他们骗钱的目的。霸榜11个月,神车MINIEV进退两难上市14个月,霸榜11个月,豪掷千亿造车的资本傻眼了。当新势力还挣扎在生死存亡之际,宏光MINIEV已经冲上了神坛。在乘联会7月新能源汽车销量数据中,微型电车宏光MINIEV以30你的手机还卡吗?教你几招清除垃圾,让你的手机就像飞毛腿我们的手机用着用着就卡的要死,有时候气的真想把它掼个稀巴烂!其实归根到底就是因为我们的手机里垃圾太多啦!今天俺就教你们几招,可以快速清除很多手机运行时产生的垃圾,让你的手机比飞毛腿大家都在热议芯片,那么邓中翰院士主导的中星微属于什么水平?感谢您的阅读!我还记得曾经著名的经济学家吴敬琏教授在清华大学CIDEG主办的学术年会上表示,不惜一切代价发展芯片产业是有风险的。可见芯片研究,从来没有完全得到一些人的认同,甚至很多这10款笔记本巨划算开学用美!呆!了最近正值开学季,我因为家里有表弟表妹正好也上大学,所以趁着这几天的促销活动入了不少开学装备的物件,当然了,笔记本电脑是最不能少的电子装备了,于是今天给大家精心挑选了十款产品,赶紧买DxO回顾OPPOFindX3Lite的相机评分!蓝绿大厂相机水准差不多相机是近年里各大手机厂商发力最猛的地方,所以在激烈的竞争下,摄像头数量不仅达到了三摄四摄的主流配备,而且单颗摄像头的硬件也是越来越强。当然了,相机拍摄不能只看硬件,软件优化调教同样手机看电影如此畅爽全靠奥睿科(ORICO)M。2移动硬盘盒前言前段时间已经使用过一款奥睿科的移动硬盘,那款是支持单协议硬盘的炫彩硬盘盒。这款奥睿科series硬盘盒支持双协议的,传输理论值在MAX,6bpsMAX,10Gbps之间。最大支早报Windows11将于10月5日推送小米汽车公司成立9月2日早报导读AirPods3高清渲染视频曝光,真要和iPhone一起发布?最后一版?苹果推送iOS15Beta8预览版,耗电异常已修复Windows11正式版将于10月5日推送阿里巴巴集团将投入1000亿助力共同富裕来源浙江新闻将在2025年前累计投入1000亿元9月2日,记者从阿里巴巴集团获悉,阿里已启动阿里巴巴助力共同富裕十大行动,将在2025年前累计投入1000亿元,助力共同富裕。为促进
费钱耗时回报少?CIO更新改造应用程序前须知的潜规则之一超过95的财富1000强公司仍在使用IMIBM的古老的层次DBMS(数据库管理系统)。这是TwoBitHistory。org得出的数据。相比之下,我自己做的非正式调查显示,在优秀的增强说服力的七种技巧在工作场所,影响力是一种以推进您的业务目标的方式改变某人的想法行动或决定的能力。这七个概念和技巧将提升您的影响力技能。作为一名IT主管,您在工作场所影响他人的能力是职业成功的重要组CIO应该知道的十个最有前景的5G用例随着越来越多的CIO和其他领导者发现,第五代宽带蜂窝技术提供的容量低延迟和可靠性可以帮助推动业务发展,各行各业都开始增加对私有和公共5G网络的使用。最近的研究也表明这种增长。根据G费钱耗时回报少?CIO更新改造应用程序前须知的潜规则之二06重构真正实现更新改造所以当然费钱又耗时重构是一种更新改造方法,将过时的应用程序结构转换成成熟可靠的实践,比如规范数据,或将整体式代码的结构换成微服务架构。一些工具声称可以自动处云原生无处不在,数字化转型怎样才能不迷路?今天,全球已经有超过170个国家发布了国家数字战略。各行各业的数字化转型需求从未像今天这么迫切。对于企业尤其是传统行业的企业而言,数字化转型已经不再是一道选择题,而是一道生存题。但数字化转型趋势的冰与火事实证明,疫情大流行确实成为了数字化转型的催化剂,迫使各种规模的企业组织重新思考他们的运营方式能为客户提供什么,以及他们对数字化员工体验的承诺等。Gartner副总裁兼杰出分析师J奇葩机箱联力Q30X装机小记。前言做为一个联力粉,比较主打的产品都会光顾下,但江河日下,往日铝合金机体的大佬,现在的江湖地位已经逐步被其它品牌追赶上了甚至反超了,现在产品的热度,甚至连以前一直在效仿它的屌丝伯都1。5W的游戏水冷主机装机体验ROGSTRIXZ370九州风神方舟机箱说在前面也不知道从什么时候开始,现如今的DIY硬件上的各种RGB信仰灯,几乎就是标配般的存在着,想拒绝都难!目前还没有完全沦陷的貌似只有电源和硬盘存储类的产品了,当然现在的机箱也是五大要素快速了解功放(之四)元器件间的差异阜新声艺视听在上三期的推文中,名词全解!五大要素快速了解功放(之一)HIFIAV功放给大家介绍了何为HIFI功放AV功放名词全解!五大要素快速了解功放(之二)前级后级纯后级合并式给大家介绍了前五大要素快速了解功放(之五)四大要素阜新声艺视听在上几期的推文中,名词全解!五大要素快速了解功放(之一)HIFIAV功放给大家介绍了何为HIFI功放AV功放名词全解!五大要素快速了解功放(之二)前级后级纯后级合并式给大家介绍了前新手从零做小程序,为啥说得有店更合适?八年互联网人的评测分析随着移动社交电商的蓬勃发展,微信小程序市场越来越下沉,现如今,各行业的商家都已经把微信商城和小程序的经营作为线上线下融合发展的重点。一些很早就进行电商和线上服务转型的大中型企业,大