netstat命令输出结果分析「建议收藏」

netstat命令输出结果分析「建议收藏」netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。UDP——传输协议为UDP协

大家好,又见面了,我是你们的朋友全栈君。

netstat命令一般用来查看IP/Port占用情况,在网络程序员那里就可以用于检测数据发送/接收的端口是否正确。比如最近在做“视频实时传输”项目时就是用它发现问题的。所以有必要看懂netstat命令输出结果的含义,下面给出三个典型的结果:

netstat命令输出结果分析「建议收藏」

说明:Tserver01为一个UDP服务器测试程序,用于接收客户端的请求数据,然后回传另一组数据到客户端。

UDP ——传输协议为UDP协议

0.0.0.0:1234 ——本地IP/Port信息。

其中0.0.0.0有两种解释:

1、0.0.0.0代表本机上可用的任意地址。 比如0.0.0.0:1234表示本机上所有地址的1234端口,这样多ip计算机就不用重复显示了。
2、0.0.0.0为默认路由,即要到达不在路由表里面的网段的包都走0.0.0.0这条规则。

其实,我们可以“通用”理解为代表“本机地址”,1234在程序中体现为绑定的1234端口号

0.0.0.0:*——目的地址IP/Port信息。

其中0.0.0.0:*依然有两种解释:

1、此程序只作了绑定套接字操作,没有发送数据到目的地址,也就是没有目的地址。(此时可以是客户端已经发起并建立了与本服务器的通讯,也可以是客户端没有开启。总之是服务器没有向外部发出数据)

2、有目的地址,且发送了数据,但是由于是UDP传输,没有用connect函数建立两端连接。

而作为此测试程序就是:采用UDP协议,并在回传数据时采用了connect绑定客户端地址,但是客户端并没有开启,导致并没有建立连接。

netstat命令输出结果分析「建议收藏」

由上述的知识,可以直接得到如下信息:

解释:

Tserver01程序采用UDP协议传输数据,绑定本地115.28.183.194:1234地址信息,并调用connect函数绑定目的地址221.212.116.50:9781建立了本地—>目的的连接。(至于是否发送数据并不知晓)

 netstat命令输出结果分析「建议收藏」

解释:

videoserver程序绑定本地套接字接受客户端X的连接(0.0.0.0:1234—>0.0.0.0:*),同时绑定了另一个套接字(IP/Port),并调用connnect函数与客户端Y建立连接并通信(X 和Y可以是同一个客户端)。

(PS:程序问题也就是在这里发现的,我们明明通过客户端2与服务器建立端口号是1234的NAT穿透,但是实际程序却用另一个没有被“穿透的”44268随机端口向客户端2发送数据,导致数据传输到内网后被丢弃。)

此命令此时简单的做一下本地/目的地址间是否正确的测试,而且是本地—>目的的单向测试,即目的客户端是否向本地服务器发起了连接是看不出来的(需要在客户端运行的主机进行测试。)如果需要更为详细的数据发送问题的测试,可以运行tcpdump命令进行抓包查看。推荐博客:http://blog.chinaunix.net/uid-11140746-id-2903933.html

最近手残,搞了个公众号,主要闲暇时间随便聊一些程序圈的一些事,也会分享一些技术面试的资料,感兴趣的可以关注一波。关注后,后台发送 面试指南,可以获取2021最新JAVA面试总结,基本看完后,JAVA八股文这些应该不在话下了。

netstat命令输出结果分析「建议收藏」

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/163308.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10 虚拟显示器_电脑怎么设置虚拟显示器

    win10 虚拟显示器_电脑怎么设置虚拟显示器2017.7.7最近在做虚拟化,需要在虚机上虚拟出一个显示器,我使用的虚机是windows10,虚机里面有一张透传显卡(可看做是物理显卡),我尝试过一些方法,比如编写一个虚拟的WDDM显卡驱动,然后在显卡驱动上接上一个显示器,该方法是有效的,可以成功虚拟出一个显示器,但是在虚拟显示器上渲染数据使用的渲染引擎没有用到透传显卡,在性能上达不到我的要求,所以只好放弃用这种方法。于是,通过阅…

    2022年8月21日
  • Node入门教程(11)第九章:Node 的网络模块

    Node入门教程(11)第九章:Node 的网络模块

    2022年4月2日
  • matlab将两幅图进行融合_matlab拟合三维曲面

    matlab将两幅图进行融合_matlab拟合三维曲面matlab图像融合        [r,c]=size(y1);            %根据低频融合算法进行图像融合fori=1:r            %首先取两幅源图像相应的小波分解系数绝对值最大者的值作为融合图像的分解系数    forj=1:c        if(abs(y1(i,j))>=abs(y2(i,j)))            y3(

    2022年10月31日
  • YUV介绍

    YUV介绍YUV表示的含义人们常用RGB表示三基色,而且RGB也可以表示出所有颜色。但视觉心理学研究表明,人眼主要是对光的感知,人的视觉系统对光的感知程度用亮度(luminance)和色度(chrominance)两个属性表示,也就是我们常说的YUV。Y就是亮度感知,而色度感知分为两个属性:色相(hue)和色饱和度(saturation)。色相也就是U,是由光波的峰值定义的,描述的是光的颜色;色饱和度V…

    2022年7月16日
  • 浏览器出现stack overflow at line:0,解决方法

    浏览器出现stack overflow at line:0,解决方法浏览器如果出现"stackoverflowatline:0"并且有些图片无法显示的问题,是由于注册表被串改了这是由于pngfilt.dll问题,解决方法如下把以下内容保存到记事本,随便起个名字,并且把后缀改名为.reg,双击打开这个reg文件点“是”,添加入注册表中再重启浏览器,问题就解决了WindowsRegistryEditorVersion5.00;…

    2022年7月15日
  • java线程池的正确使用方式,completableFuture

    java线程池的正确使用方式,completableFuture下面是最常见的线程池的使用和声明方式:publicclassThreadTest{ExecutorServicefixedThreadPool=Executors.newFixedThreadPool(50);publicvoiddothing(){for(inti=0;i<50;i++){…

    2022年6月28日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号