0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

快速通关上位机TCP通信:上位机通信防崩指南

达泰电子 来源:达泰电子 作者:达泰电子 2025-08-13 13:40 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

以太网 TCP 通信上位机开发中常用的通信方式,西门子 S7 通信、三菱 MC 通信以及 MQTT、OPC UA、Modbus TCP 等都是其典型应用。为帮助大家更好地理解 TCP 通信,我整理了一套常见问题汇总。

一、OSI参考模型与TCP/IP参考模型

基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层、网络层、传输层和应用层。下图表示TCP/IP模型与OSI模型各层的对照关系。

wKgZO2icJV6ANY0BAABgX3hJzmM38.jpeg

TCP/IP模型是在OSI参考模型的基础上做了一定的精简,形成一个4层模型。在层次关系上,两者都采用了分层体系结构,都是对等的层间通信,不同之处在于TCP/IP参考模型比OSI参考模型层次更清晰简练,在功能上,两者差别不大,都是为了实现两个或多个终端之间的通信。

那么,TCP通信位于网络模型的哪一层?TCP是一种面向连接的、可靠的、基于字节流的传输层通信协议,TCP是为了在不可靠的互联网络上提供可靠的端到端字节流而专门设计的一个传输协议。

二、TCP/IP协议与Socket是什么关系?

TCP/IP只是一个协议栈,如果想要实现TCP通信,还需要提供对外的操作接口,就像操作系统提供Win32编程接口一样。TCP/IP也要提供可供程序员做网络开发所用的接口,这就是Socket编程接口。

所以,Socket跟TCP/IP并没有必然的联系,Socket不属于网络分层中的任何一层,而是位于应用层/会话层和传输层之间的抽象接口层。Socket的出现是为了将TCP/IP协议族的复杂操作封装成简单的API方法进行调用,比如Connect/Send/Receive等。

三、TCP与UDP之间的区别联系?

传输层有两种协议,分别是TCP与UDP,它们之间的主要区别在于可靠性与效率。

TCP是面向连接的协议,通过三次握手建立可靠通道,提供数据不丢、不错、不乱序的保证,并具备流量和拥塞控制,但因此开销较大、速度相对较慢,适用于要求高可靠性的场景(如文件传输、工业控制指令);

而UDP是无连接协议,直接发送数据报,不保证可靠交付,可能丢失、重复或乱序,也不进行流量控制,但正因如此开销极小、传输速度极快、延迟低,适用于实时性要求高、能容忍少量丢包的应用(如视频流、语音通话、实时状态读取)

四、如何理解TCP三次握手过程?

wKgZPGicJV-ARgmfAABjYBD2lAk41.jpeg

TCP是面向连接的,无论哪一方向另一方发送数据之前,都必须先在双方之间建立一条连接。在TCP/IP协议中,TCP协议提供可靠的连接服务,连接是通过三次握手进行初始化的。三次握手的目的是同步连接双方的序列号和确认号并交换 TCP窗口大小信息。

为什么握手必须三次?TCP 建立连接时,通过三次握手能防止历史连接的建立,能减少双方不必要的资源开销,能帮助双方同步初始化序列号。序列号能够保证数据包不重复、不丢弃和按序传输。两次握手:无法防止历史连接的建立,会造成双方资源的浪费,也无法可靠的同步双方序列号;四次握手:三次握手就已经理论上最少可靠连接建立,所以不需要使用更多的通信次数。

五、如何理解TCP四次挥手过程?

当客户端和服务器通过三次握手建立了TCP连接以后,当数据传送完毕,要断开TCP连接,那对于TCP的断开连接,这里就有了神秘的“四次分手”。

wKgZO2icJV-AQanYAAB3BKJ4NzE45.jpeg

为什么挥手需要四次?

1、关闭连接时,客户端向服务端发送 FIN 时,仅仅表示客户端不再发送数据了但是还能接收数据。

2、服务器收到客户端的 FIN 报文时,先回一个 ACK 应答报文,而服务端可能还有数据需要处理和发送,等服务端不再发送数据时,才发送 FIN 报文给客户端来表示同意现在关闭连接。

由于服务端通常需要等待完成数据的发送和处理,所以服务端的 ACK 和 FIN 一般都会分开发送,从而比三次握手导致多了一次。

六、无线Modbus TCP/IP协议通讯方案

本方案以WinCC和2台西门子S7-1200 PLC为例,在ModbusTCP/IP协议下实现无线以太网通信实现过程。

wKgZPGicJV-ATT7wAAENtB9iVDU43.jpeg


审核编辑 黄宇

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • TCP
    TCP
    +关注

    关注

    8

    文章

    1418

    浏览量

    83018
  • 上位机
    +关注

    关注

    27

    文章

    994

    浏览量

    56713
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    为什么我的上位通信速度慢?

    通信越快越好吗? 通信速度往往被认为是越快越好。但对于上位系统来说,是否同样如此呢? 一、通信分类 在自动化系统中,
    的头像 发表于 12-07 14:42 1053次阅读
    为什么我的<b class='flag-5'>上位</b><b class='flag-5'>机</b><b class='flag-5'>通信</b>速度慢?

    上位报错2033问题处理方案

    在工业自动化和软件开发领域,上位与下位通信稳定性直接影响整个系统的运行效率。当出现报错代码2033时,往往意味着通信协议、内存管理或数
    的头像 发表于 11-13 17:40 521次阅读

    上位程序编写

    hbird_sdk_soc.h头文件。 接下来编写上位程序,上位程序主要完成接收和解码定位信息的功能,本文采用QT编写上位
    发表于 10-28 06:40

    Modbus TCP转RS485串口数传模块实现测温器与上位通讯的配置案例

    一、项目背景 华东某大型日化生产基地,随着产能扩大与自动化程度提升,原有货运电梯系统逐渐暴露出通信短板。电梯命令控制器采用RS-485接口、Modbus-RTU协议,而上位(MES工作站)仅具备
    的头像 发表于 09-24 15:58 617次阅读
    Modbus <b class='flag-5'>TCP</b>转RS485串口数传模块实现测温器与<b class='flag-5'>上位</b><b class='flag-5'>机</b>通讯的配置案例

    实战指南:基于Modbus网关的测温系统上位通讯配置方案

    一、项目背景 华东某大型日化生产基地,随着产能扩大与自动化程度提升,原有货运电梯系统逐渐暴露出通信短板。电梯命令控制器采用RS-485接口、Modbus-RTU协议,而上位(MES工作站)仅具备
    的头像 发表于 09-24 15:21 387次阅读
    实战<b class='flag-5'>指南</b>:基于Modbus网关的测温系统<b class='flag-5'>上位</b><b class='flag-5'>机</b>通讯配置方案

    S7通信稳不稳?避开这些上位开发常见雷区是关键!

    上位使用S7通信涉及诸多要点,稍不注意就容易踩坑。今天,我们就来详细剖析那些最常见的‘雷区’。 一、连接类型设置 以C#上位使用Shar
    的头像 发表于 08-08 15:03 580次阅读
    S7<b class='flag-5'>通信</b>稳不稳?避开这些<b class='flag-5'>上位</b><b class='flag-5'>机</b>开发常见雷区是关键!

    构建稳定通信桥梁:上位与下位通信实现方式解析

    上下位通信技术全景解析 在工业控制与自动化系统中,上位(监控/管理端)与下位(PLC/仪表/执行器)的可靠
    的头像 发表于 07-11 15:56 784次阅读
    构建稳定<b class='flag-5'>通信</b>桥梁:<b class='flag-5'>上位</b><b class='flag-5'>机</b>与下位<b class='flag-5'>机</b><b class='flag-5'>通信</b>实现方式解析

    工程师崩溃瞬间:上位与PLC通信失败?3分钟快速诊断攻略

    Ping不通,那就首先检查IP地址设置是否正确,其次确保上位和PLC处于同一网段。 以及确认防火墙设置是否允许通信,有时防火墙可能会阻止TCP/IP
    的头像 发表于 06-12 16:25 1085次阅读
    工程师崩溃瞬间:<b class='flag-5'>上位</b><b class='flag-5'>机</b>与PLC<b class='flag-5'>通信</b>失败?3分钟<b class='flag-5'>快速</b>诊断攻略

    上位和下位是什么关系

    上位和下位在工业自动化、仪器仪表等控制领域中是相互协作、紧密配合的关系,以下从定义、通信方式、功能分工、协同作用几个方面详细阐述它们的关系: 定义与角色
    的头像 发表于 05-29 18:03 1092次阅读

    上位和下位之间的通信是通过什么实现的

    上位和下位之间的通信可通过多种方式实现,以下从有线通信和无线通信两大类别展开介绍: 有线
    的头像 发表于 05-29 09:24 769次阅读

    如何通过上位控制CYUSB3014的指定管脚实现类似功能?

    我们原来使用CY7C68013A实现了上位与FPGA之间双向通信,通过控制端点可以实现对诸如CY7C68013A上的PA0等管脚进行控制以便FPGA识别接收或发送数据,请问如何通过上位
    发表于 05-13 06:24

    labview做上位 连接两台TCP下位 调用通道使两台下位数据交互 无法生成exe

    labview做MODBUS TCP上位连接多个下位建立多个独立循环,再使用通道连接不同的循环进行数据交互,无法生成exe
    发表于 04-10 10:30

    都说上位通信难,谁能说说到底难在哪儿?

    前言 在工业自动化和物联网(IoT)领域,上位通信一直被认为是开发过程中的一大难点。上位通信
    的头像 发表于 03-12 16:52 850次阅读
    都说<b class='flag-5'>上位</b><b class='flag-5'>机</b><b class='flag-5'>通信</b>难,谁能说说到底难在哪儿?

    STM32F103上位升级,RS485升级、CAN升级

    外置Flash。该开发板提供上位升级软件,购买者可使用该上位配合我们的升级例程学习给MCU在线更新升级 上位
    发表于 01-03 08:57