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

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

3天内不再提示

你真的了解TCP/IP协议吗?

亿佰特物联网应用专家 ? 2022-07-20 18:09 ? 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。

460d2fd8-05d3-11ed-9ade-dac502259ad0.jpg

TCP/IP协议不仅仅指的是TCP和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所以被称之为TCP/IP协议。

4626fe04-05d3-11ed-9ade-dac502259ad0.png

计算机网络体系结构分层

463986b4-05d3-11ed-9ade-dac502259ad0.jpg

包、帧、数据包、段、消息

以上五个术语都用来表述数据的单位,大致区分如下:

① 包可以说是全能性术语;

② 帧用于表示数据链路层中包的单位;

③ 数据包是 IP 和 UDP 等网络层以上的分层中包的单位;

④ 段则表示 TCP 数据流中的信息;

⑤ 消息是指应用协议中数据的单位。

每个分层中,都会对所发送的数据附加一个首部,在这个首部中包含了该层必要的信息,如发送的目标地址以及协议相关信息。通常,为协议提供的信息为包首部,所要发送的内容为数据。在下一层的角度看,从上一层收到的包全部都被认为是本层的数据。

46480c2a-05d3-11ed-9ade-dac502259ad0.png

此外,还需了解IP、MAC、端口

IP 地址:用来识别 TCP/IP 网络中互连的主机和路由器。

MAC:识别同一链路中不同的计算机。

端口:端口号用来识别同一台计算机中进行通信的不同应用程序。因此,它也被称为程序地址。

4652ff04-05d3-11ed-9ade-dac502259ad0.jpg

协议栈中数据传输的过程:

466b683c-05d3-11ed-9ade-dac502259ad0.png

① 应用程序处理

首先应用程序会进行编码处理,这些编码相当于 OSI 的表示层功能;编码转化后,邮件不一定马上被发送出去,这种何时建立通信连接何时发送数据的管理功能,相当于 OSI 的会话层功能。

② TCP 模块的处理

TCP 根据应用的指示,负责建立连接、发送数据以及断开连接。TCP 提供将应用层发来的数据顺利发送至对端的可靠传输。为了实现这一功能,需要在应用层数据的前端附加一个 TCP 首部。

③IP 模块的处理

IP 将 TCP 传过来的 TCP 首部和 TCP 数据合起来当做自己的数据,并在 TCP 首部的前端加上自己的 IP 首部。IP 包生成后,参考路由控制表决定接受此 IP 包的路由或主机。

④网络接口以太网驱动)的处理

从 IP 传过来的 IP 包对于以太网来说就是数据。给这些数据附加上以太网首部并进行发送处理,生成的以太网数据包将通过物理层传输给接收端。

⑤ 网络接口(以太网驱动)的处理

主机收到以太网包后,首先从以太网包首部找到 MAC 地址判断是否为发送给自己的包,若不是则丢弃数据。如果是发送给自己的包,则从以太网包首部中的类型确定数据类型,再传给相应的模块,如 IP、ARP 等。这里的例子则是 IP 。

⑥ IP 模块的处理

IP 模块接收到数据后也做类似的处理。从包首部中判断此 IP 地址是否与自己的 IP 地址匹配,如果匹配则根据首部的协议类型将数据发送给对应的模块,如 TCP、UDP。这里的例子则是 TCP。另外,对于有路由器的情况,接收端地址往往不是自己的地址,此时,需要借助路由控制表,在调查应该送往的主机或路由器之后再进行转发数据。

⑦ TCP 模块的处理

在 TCP 模块中,首先会计算一下校验和,判断数据是否被破坏。然后检查是否在按照序号接收数据。最后检查端口号,确定具体的应用程序。数据被完整地接收以后,会传给由端口号识别的应用程序。

⑧ 应用程序的处理

接收端应用程序会直接接收发送端发送的数据。通过解析数据,展示相应的内容。

467bbe30-05d3-11ed-9ade-dac502259ad0.jpg

TCP/IP 中有两个具有代表性的传输层协议:TCP 和 UDP

TCP 是面向连接的、可靠的流协议。流就是指不间断的数据结构,当应用程序采用 TCP 发送消息时,虽然可以保证发送的顺序,但还是犹如没有任何间隔的数据流发送给接收端。TCP 为提供可靠性传输,实行“顺序控制”或“重发控制”机制。此外还具备“流控制(流量控制)”、“拥塞控制”、提高网络利用率等众多功能。

UDP 是不具有可靠性的数据包协议。细微的处理它会交给上层的应用去完成。在 UDP 的情况下,虽然可以确保发送消息的大小,却不能保证消息一定会到达。因此,应用有时会根据自己的需要进行重发处理。

TCP 和 UDP 的优缺点无法简单地、绝对地去做比较:TCP 用于在传输层有必要实现可靠传输的情况;而在一方面,UDP 主要用于那些对高速传输和实时性有较高要求的通信或广播通信。TCP 和 UDP 应该根据应用的目的按需使用。

通过 IP 地址、端口号、协议号进行通信识别:

4686d194-05d3-11ed-9ade-dac502259ad0.png

① 和 ② 的通信是在两台计算机上进行的。它们的目标端口号相同,都是80。这里可以根据源端口号加以区分。

③ 和 ① 的目标端口号和源端口号完全相同,但它们各自的源 IP 地址不同。

此外,当 IP 地址和端口号全都一样时,我们还可以通过协议号来区分(TCP 和 UDP)。

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

    关注

    8

    文章

    1406

    浏览量

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

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    GraniStudio : TCP/IP(Socket)协议深度剖析

    在工业自动化与物联网领域,TCP/IP(Socket)协议作为应用最广泛的网络通信标准,是实现设备间数据交互的核心技术。GraniStudio 软件作为工业级零代码开发平台,其内置的 TCP
    的头像 发表于 08-03 22:20 ?20次阅读
    GraniStudio : <b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b>(Socket)<b class='flag-5'>协议</b>深度剖析

    什么是Modbus TCP协议

    Modbus TCP是一种基于TCP/IP协议的Modbus通信协议,用于在客户机和服务器之间进行数据通信。它常用于工业自动化控制、电力监控
    的头像 发表于 07-23 17:18 ?407次阅读
    什么是Modbus <b class='flag-5'>TCP</b><b class='flag-5'>协议</b>

    51+单片机TCP-IP+协议栈ZLIP源码

    概述 单片机上网技术,是当前的一个热门技术。单片机上网技术中的一个重要部分是在单片上实现 TCP/IP 协议栈。现在可获得的 TCP/IP
    发表于 04-22 15:11

    EtherNet/IP转Modbus TCP:新能源风电监控与分析实用案例

    的控制系统、变流器等采用 MODBUS TCP 协议的设备以及基于 EtherNet/IP 协议的远程监控系统和数据分析系统均已正常运行且网络连接正常。 二、硬件设备 风力发电机组变流
    的头像 发表于 02-17 15:54 ?448次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus <b class='flag-5'>TCP</b>:新能源风电监控与分析实用案例

    Air780E之TCP应用,了解吗?

    的数据传输服务,确保数据能够按照顺序、无错误地到达接收端。TCP通过三次握手建立连接,使用滑动窗口进行流量控制,以及通过校验和、确认应答、超时重传等机制来保证数据的可靠性。它是互联网协议套件(TCP/
    的头像 发表于 11-04 14:30 ?686次阅读
    Air780E之<b class='flag-5'>TCP</b>应用,<b class='flag-5'>你</b><b class='flag-5'>了解</b>吗?

    什么是socket编程 socket与tcp/ip协议的关系

    基于TCP/IP协议族,这是一组用于网络通信的协议,包括传输控制协议TCP)和互联网
    的头像 发表于 11-01 16:01 ?1295次阅读

    Modbus RTU协议与Modbus TCP/IP协议的区别

    Modbus RTU和Modbus TCP/IP的本质都是Modbus协议,都是通过Modbus寄存器地址来交换数据的,那么它们之间有什么区别呢?今天我们从以下几个方面来探讨一下。
    的头像 发表于 10-18 17:44 ?2079次阅读

    TCP协议是什么

    在网络通信的广阔领域中,TCP(Transmission Control Protocol,传输控制协议)扮演着举足轻重的角色。作为TCP/IP协议
    的头像 发表于 10-09 13:54 ?1923次阅读

    EtherNet/IP主站转Modbus-TCP协议网关

    捷米特JM-EIPM-TCP网关实现连接EtherNet/IP设备和网络到Modbus TCP网络系统。该网关可实现双向数据交换,既允许现有的、低成本的EtherNet/IP设备集成到
    的头像 发表于 09-25 11:49 ?550次阅读
    EtherNet/<b class='flag-5'>IP</b>主站转Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>网关

    EtherNet/IP转Modbus-TCP协议转换网关

    在工业自动化领域中,EtherNet/IP转Modbus-TCP这两种网络协议的互通互联非常重要。有一款优秀的设备——远创智控YC-EIP-TCP,能够出色地解决这一难题。此设备性能优
    的头像 发表于 09-06 16:54 ?604次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>转换网关

    深入了解 Windows 系统 TCP/IP 参数配置

    ?Windows系统作为广泛使用的操作系统,正确地配置TCP/IP参数可以优化网络通信、提高数据传输效率、增强系统安全性,而错误的配置则可能导致网络故障、性能下降甚至安全漏洞。 ? TCP/I
    的头像 发表于 09-04 17:24 ?875次阅读

    EtherNet/IP转Modbus-TCP协议网关(EtherNet/IP转Modbus-TCP

    /IP转Modbus TCP从站协议网关,可以实现对这些设备的集中管理和控制。 二,典型应用拓扑图 三,设备技术参数 捷米特JM-EIP-TCP设备在Et
    的头像 发表于 09-04 11:09 ?939次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>网关(EtherNet/<b class='flag-5'>IP</b>转Modbus-<b class='flag-5'>TCP</b>)

    EtherNet/IP转Modbus-TCP协议网关(JM-EIP-TCP

    一,设备主要功能 捷米特JM-EIP-TCP型网关实现EtherNet/IP网络与Modbus TCP网络之间的数据通讯,可支持Modbus TCP主站Modbus
    的头像 发表于 08-26 14:39 ?631次阅读
    EtherNet/<b class='flag-5'>IP</b>转Modbus-<b class='flag-5'>TCP</b><b class='flag-5'>协议</b>网关(JM-EIP-<b class='flag-5'>TCP</b>)

    串口服务器和TCP/IP协议栈是什么关系

    串口服务器与TCP/IP协议栈之间存在着紧密而复杂的关系。这种关系主要体现在串口服务器如何利用TCP/IP
    的头像 发表于 08-25 17:35 ?2177次阅读

    一文了解TCP/IP协议

    TCP/IP协议是现代计算机网络通信的基础,是互联网及局域网广泛使用的一套协议TCP/IP
    的头像 发表于 08-07 15:38 ?3661次阅读
    一文<b class='flag-5'>了解</b><b class='flag-5'>TCP</b>/<b class='flag-5'>IP</b><b class='flag-5'>协议</b>