zoukankan      html  css  js  c++  java
  • ROS: 将接收端的接收函数注释掉,TCP只发送,不接受数据时的recv-Q和send-Q长度实验

    在上一篇博客的基础上,将ROS接收端的接收函数注释掉,使得tcp连接只发数据,不收数据。这种情况下,接收端的接收缓冲区被填满后,发送端不再发送数据包。

    1.在接收端发起connect, 发送端接收连接accept以后,接收队列和发送队列的长度都为0。

    2.在发送端开始send数据,但接收端不进行接收时,此时的两个队列的长度为:

    发送队列:5MB的数据在发送队列里,还未被发送。

    [root@cmm02node06 ~]# netstat -en|grep 192.168.250.141|grep -v ":22"|awk '{print $4,$3/1024/1024}'
    192.168.250.146:3353 4.97684
    192.168.250.146:3339 5.01826
    192.168.250.146:3340 4.9147
    192.168.250.146:3346 5.03345
    192.168.250.146:3337 4.92022
    192.168.250.146:3348 5.03345
    192.168.250.146:3349 4.97684
    192.168.250.146:3347 4.89812
    192.168.250.146:3344 4.84703
    192.168.250.146:3350 4.96165
    192.168.250.146:3345 4.86774
    192.168.250.146:3335 4.92436
    192.168.250.146:3356 4.90917
    192.168.250.146:3355 4.8346
    192.168.250.146:3334 4.84427
    192.168.250.146:3354 4.89812
    192.168.250.146:3342 4.91055
    192.168.250.146:3333 4.80008
    192.168.250.146:3341 4.90917
    192.168.250.146:3343 5.03622
    192.168.250.146:3352 5.03345
    192.168.250.146:3338 4.90641
    192.168.250.146:3351 5.03345
    192.168.250.146:3336 4.92712

    接收队列:ROS不读取数据,接收队列达到最大值7.8MB。

    [lhaaso@cmm02node01 ~]$ netstat -en|grep 192.168.250.146|grep -v ":22"|awk '{print $5,$2/1024/1024}'
    192.168.250.146:3343 7.78206
    192.168.250.146:3347 7.78064
    192.168.250.146:3333 7.78502
    192.168.250.146:3352 7.78135
    192.168.250.146:3335 7.7763
    192.168.250.146:3346 7.79125
    192.168.250.146:3354 7.78007
    192.168.250.146:3355 7.77478
    192.168.250.146:3337 7.77435
    192.168.250.146:3338 7.77963
    192.168.250.146:3336 7.7764
    192.168.250.146:3351 7.7793
    192.168.250.146:3341 7.79034
    192.168.250.146:3342 7.78549
    192.168.250.146:3344 7.77346
    192.168.250.146:3339 7.79449
    192.168.250.146:3349 7.78121
    192.168.250.146:3350 7.78054
    192.168.250.146:3340 7.77515
    192.168.250.146:3353 7.7793
    192.168.250.146:3345 7.78344
    192.168.250.146:3334 7.78043
    192.168.250.146:3356 7.78896
    192.168.250.146:3348 7.78344

    在发送端抓包发现,最后收到的一个从接收端来的ack的确认序列为 8171665 ,

    8171665/1024.0/1024.0=7.8MB

    即发送方发了7.8MB到接收方的接收缓冲区,接收方全都收到了,并返回ack给发送方,发送方也收到了确认序列号为7.8MB的ack。

    13:27:24.758482 IP 192.168.250.141.51385 > 192.168.250.146.3333: Flags [.], ack 8155737, win 1, options [nop,nop,TS val 3046956923 ecr 3046745726], length 0
    13:27:24.799490 IP 192.168.250.141.51385 > 192.168.250.146.3333: Flags [.], ack 8171665, win 1, options [nop,nop,TS val 3046956964 ecr 3046745773], length 0

    所以发送队列里的5MB长度,全都是发送队列里没有被发送的数据长度。

  • 相关阅读:
    推荐一款功能强大的js 在线编辑器
    盒子游戏(湖南省第七届大学生计算机程序设计竞赛)
    面试中常问到的称小球问题
    移动开发中的Scheme跳转说明——Allowing OtherApps to Start Your Activity
    uva 10069 Distinct Subsequences(高精度 + DP求解子串个数)
    自适应滤波器(Adaptive Filter)
    软件设计中的同步异步单线程多线程优缺点分析
    iphone关于单倍图和二倍图(导航 背景 变高)
    注解
    Qt Creator项目中使用qss
  • 原文地址:https://www.cnblogs.com/zengtx/p/6672472.html
Copyright © 2011-2022 走看看