草庐IT

MODBUS-TCP

全部标签

【PMTU】TCP的MTU探测

Linux内核默认情况下未开启TCP的MTU探测功能。#cat/proc/sys/net/ipv4/tcp_mtu_probing0想要启用tcpmtuprobe,先要设置ip_no_pmtu_disc=0(默认值),表示启用pmtudiscovery,这样tcp发送的时候才会设置DF标记。通过DF标记,中间路由设备如果需要分片就会返回ICMP消息通知,但是有可能因为防火墙等原因,发送方收不到ICMP消息,因此发送方一直发送探测包,却一直没收到回应,这个就称为blackhole。系统默认tcp_mtu_probe=1,表示默认禁用mtu,只有当检测到blackhole的时候,才会开启tcpmt

Modbus协议及基于Python的ModbusTCP客户端实现

Modbus协议是由Modicon公司(现在的施耐德电气SchneiderElectric)于1979年为使用可编程逻辑控制器(PLC)通信而推出,主要建立在物理串口、以太网TCP/IP层之上,目前已经成为工业领域通信协议的业界标准,广泛应用在工业电子设备之间的互联。Modbus技术文档1网络模型Modbus是OSI模型第7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。Modbus是一个请求/应答协议,并且提供功能码规定的服务。2Modbus协议描述Modbus主要有4种通信模式:Modbus协议类型描述RTU模式(串口)二进制表示数据,采用循环冗余校

解决cv2读取rtsp延迟,Python使用FFmpeg通过tcp拉取rtsp流,并转化成numpy array

问题产生的原因最近在捣鼓图像方面的项目,项目过程中,发现使用cv2.VideoCapture这个方法获取rtsp流会有一定的延迟,于是就有了这篇文章。方法步骤如下1.安装ffmepg-python包打开终端进入你的anacondad虚拟环境或者python环境,用pip包进行安装pipinstallffmpeg-python2.安装ffmpeg目前我还没找到解耦ffmpeg软件的方法,下面程序跑通必选安装此软件并将其添加到环境变量当中。去官网(https://ffmpeg.org/)下载ffmpeg并进行安装。然后将安装目录,包含目录下的bin文件夹(bin文件夹里有三个.exe文件),将其添

7.网络原理之TCP_IP(上)

文章目录1.网络基础1.1认识IP地址1.2子网掩码1.3认识MAC地址1.4一跳一跳的网络数据传输1.5总结IP地址和MAC地址1.6网络设备及相关技术1.6.1集线器:转发所有端口1.6.2交换机:MAC地址转换表+转发对应端口1.6.3主机:网络分层从上到下封装1.6.4主机&路由器:ARP缓存表+ARP寻址1.6.5路由器:路由+NAPT1.7冲突域1.8广播域2.网络数据传输流程2.1局域网传输流程:集线器2.2局域网传输流程:交换机2.3局域网传输流程:交换机+路由器2.4广域网数据传输流程2.5作业3.应用层重点协议3.1DNS3.2NAT3.2.1技术背景3.2.2NATIP转

TCP协议的秘密武器:流量控制与拥塞控制

TCP可靠性传输相信大家都熟知TCP协议作为一种可靠传输协议,但它是如何确保传输的可靠性呢?要实现可靠性传输,需要考虑许多因素,比如数据的损坏、丢失、重复以及分片顺序混乱等问题。如果不能解决这些问题,就无法实现可靠传输。因此,TCP采用了序列号、确认应答、重发控制、连接管理和窗口控制等机制来实现可靠性传输。在本文中,我们将重点介绍TCP的滑动窗口、流量控制和拥塞控制。重传机制将在下一章节单独讲解。流量控制流量控制实际上是生产者和消费者之间微妙关系的一个具体体现。你可能在工作中或者面试中经常遇到这种考察场景。如果生产者的生产能力大大超过消费者的消费能力,就会导致队列无限增长。更严重的情况是,你可

【lwip】13-TCP协议分析之源码篇

前言TCP源码篇,当前只分析TCP层的源码实现,按功能分块分析,接口为RAW接口。NETCONN接口和SOCKET接口会独立一篇文章进行分析。本文基于读者已学习了TCP协议原理篇的基础上进行源码分析,不再在此篇文章中过多解析TCP相关概念。‍建议读者对着LWIP库源码进行阅读。对于初学者,可有点难度的,但是对于喜欢读源码的同学来说,会充实TCP原理。‍上一年就写好了,一直没时间整理出来,现在不整理了,直接放出来。链接:https://www.cnblogs.com/lizhuming/p/17438682.htmlTCP首部数据结构参考文件:./src/include/lwip/prot/tc

Python Socket TCP多线程通信【四】

PythonSocketTCP多线程通信一.创建客户端连接一.开启多线程通信前面说到,因为单线程原因,客户端与服务器无法做到自由对话,则需要用到多线程来处理。我们现在的服务端和客户端最多也就是发送消息和接收消息两种行为,所以我们采用双线程。或许我们可以新建一个Client.py的客户端和Server.py的服务端,代码照搬第一期的。首先编写客户端代码。导入内置的线程模块,随后调用模块内置函数threading.Thread(),因为有两个行为(发送消息和接收消息)所以需要定义并启动双线程。target:与目标函数对接使得目标函数开启一个线程。args:向目标函数传入一个参数。这里两个线程同时将

TCP 和 UDP的区别

前言一、TCP和UDP的区别二、OSI七层模型三、TCP协议的特点四、UDP协议的特点五、TCP和UDP的比较总结前言总结一下TCP和UDP的区别。一、TCP和UDP的区别1.什么是TCP?TCP (TransmissionControlProtocol)传输控制协议2.什么是UDP?UDP(UserDatagramProtocol)用户数据报协议区别点:(1)TCP面向连接(如打电话要先拨号建立连接)提供可靠的服务。可靠指:通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;相当于:打电话,我已经确定了对面的人是我要找的那个人了,我可以把信息传输了对的人了,所以是可靠的。UDP是无

Java 基于 TCP 的 Socket 编程

目录1、什么是TCP协议?2、什么是Socket(套接字)?3、简单的TCP网络编程实现4、一个服务端支持多个客户端连接的实现1、什么是TCP协议?        TCP(TransmissionControlProtocol)是一种面向连接的、可靠的传输层协议,用于在计算机网络中传输数据。它是互联网协议套件(TCP/IP)中的核心协议之一。        TCP协议提供了一种可靠的、有序的、面向字节流的数据传输机制,它能够确保数据的完整性、可靠性和顺序性。TCP协议在应用层之上建立了一种端到端的通信,通过使用IP协议进行数据包的传输。        TCP协议的特点和功能包括:可靠性:TCP