一、wireshark

  数据发出,有封包过程;数据接收时,有拆包的过程

 专业术语:

1.MTU:(以太网限制,帧分包是按1500[即1.5K]发送)指网络能够传输的最大数据包大小,以字节为单位。MTU的大小决定了发送端一次能够发送报文的最大字节数。如果MTU超过了接收端所能够承受的最大值,或者是超过了发送路径上途经的某台设备所能够承受的最大值,就会造成报文分片甚至丢弃,加重网络传输的负担。如果太小,那实际传送的数据量就会过小,影响传输效率。

 

  注意:除MAC头,剩下的东西称为IP数据报

ip_top 

ip_top                                                                                total length指不包含IP头的长度             IP Flags(IP标志位)                  TTL(生存时间)默认时间为64,每执行一次默认减一,直到为0   

 

 udp_top

 tcp_top

wireshark安装及使用:

sudo apt-get install wireshark//安装

sudo wireshark//启动wireshark

 三次握手四次挥手展现:

步骤:

1.选择网络设备

2.设置条件

写入自己端口号,按回车:

ip.addr == 192.0.2.1 && tcp.port == 50000

sudo tcpdump -n -i eth0 -xx src or dst www.taobao.com -AXX -vv|less 

                       -n 抓网址         -i 抓网卡        -AXX字符或字符串

tcpdump  ==》命令行 ===>www.tcpdump.com

 

二、常用网络测试命令及工具

1、telnet  工具

远程登录工具,默认都是系统安装。

 使用格式: telnet ip地址  端口

 eg: telnet 192.168.1.1  8888

注意:如果没有写端口,则默认登录23 号端口。

2、netstat  命令

测试查看网络端口使用情况

netstat -anp 
netstat -n  ===>列出当前所有网络端口使用情况
netstat -n -t  ===>列出所有TCP通信的端口信息
netstat -n -u  ===>列出所有UDP通信的端口信息
netstat -n -i   ===>列出默认接口上的通信信息
netstat -lnp |grep 8888  ===>查看指定端口上的通信详情

3、ping 命令 
 

测试网路的联通状况
ping ip地址
ping 域名

4、arp 命令


地址解析命令
arp -an  ===>列出当前主机的地址ARP表
arp -d  ip地址

三、MQTT协议

3.1 概述

        MQTT(Message Queuing Telemetry Transport,消息队列遥测传输协议),是一种基于发布/订阅(publish/subscribe)模式的“轻量级”通讯协议,该协议构建于TCP/IP协议上,由IBM在1999年发布。MQTT最大优点在于,可以以极少的代码和有限的带宽,为连接远程设备提供实时可靠的消息服务。作为一种低开销、低带宽占用的即时通讯协议,使其在物联网、小型设备、移动应用等方面有较广泛的应用。

3.2  设计原则

由于物联网的环境是非常特别的,所以MQTT遵循以下设计原则:

(1)精简,不添加可有可无的功能;

(2)发布/订阅(Pub/Sub)模式,方便消息在传感器之间传递;

(3)允许用户动态创建主题,零运维成本;

(4)把传输量降到最低以提高传输效率;

(5)把低带宽、高延迟、不稳定的网络等因素考虑在内;

(6)支持连续的会话控制;

(7)理解客户端计算能力可能很低;

(8)提供服务质量管理;

(9)假设数据不可知,不强求传输数据的类型与格式,保持灵活性。

 MQTT协议中,一个MQTT数据包由:固定头(Fixed header)、可变头(Variable header)、消息体(payload)三部分构成。MQTT数据包结构如下:

 心跳包:在长时间未接收需求,发送检查链路是否连通(客户端发送)

Logo

智能硬件社区聚焦AI智能硬件技术生态,汇聚嵌入式AI、物联网硬件开发者,打造交流分享平台,同步全国赛事资讯、开展 OPC 核心人才招募,助力技术落地与开发者成长。

更多推荐