精华内容
下载资源
问答
  •  基于以太网的ATA传输协议(AoE)起初由几位来自贝尔实验室的技术人员设计的一项开源社区计划。在背后支持AoE的最大公司就是Coraid,这也一家在AoE存储阵列市场上的大公司。除了Coraid之外,还有另外的一些小...
  • 物联网关与传统DTU透传不同,它要与PLC协议打通,同时还要获取数据点表,再通过物理接口接通后,把采集到数据运算处理后通过4G、WIFI、以太网等方式传至云平台,从而实现对设备远程监控等功能应用。...

    物联网关,是全面向工业物联网(互联网),采集工业设备数据的专用物联网关,也称工业智能关、工业智能物联网网关。

    物联网关与传统的DTU透传不同,它要与PLC协议打通,同时还要获取数据点表,再通过物理接口接通后,把采集到的数据运算处理后通过4G、WIFI、以太网等方式传至云平台,从而实现对设备的远程监控等功能应用。

    公司代理的工业物联网网关设备:

    V-BOX S-PG

    ◇通过RS232,RS422/RS485,Ethernet和设备的控制器进行通信,获取设备数据

    ◇通过4G模块(支持国外运营商)/WIFI/Ethernet连接云端,具备三个以太网口(1个WAN,2个LAN)

    ◇国际标准通信协议MODBUS,212协议等等

    ◇根据客户需要为用户定制协议

    ◇支持市面上主流的PLC和控制器的通信协议

    ◇支持邮件功能

    ◇支持OPC,私有云搭建,云组态功能

    ◇支持PLC远程下载,远程调试

    ◇支持APP监控

    20d2676f761038ea02c2274d6766a058.png
    1e8174cc9eff40c257227901989d940f.png
    5d64f87ba887b9e31b5f4396e9dea5ed.png

    (福州一城信息科技有限公司,物联网解决方案提供商)

    展开全文
  • 前提知识点网络通讯分层:应用层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层物理层物理层包含了我们计算机...以太网协议(Ethernet): 以太网协议规定一组电信号构成一个数据包(帧)。每一帧分成标头H...

    前提知识点

    网络通讯分层

    应用层 -> 传输层 -> 网络层 -> 数据链路层 -> 物理层

    • 物理层

    物理层包含了我们计算机进行网络通讯的所有物理可见层面的条件,传送0和1的电信号。

    • 数据链路层 链接层

    电信号0和1本身没有意义,须规定它的解读方式。几个电信号算一组,每个信号位是什么意义。

    以太网协议(Ethernet): 以太网协议规定一组电信号构成一个数据包(帧)。每一帧分成标头HEAD和数据Data两部分:

    bb836affff28d3250d317fc739f32151.png

    HEAD包含了发送者MAC地址,接受者MAC地址,数据类型等信息,DATA装载了具体数据内容。

    每一帧数据Data最大长度1500字节。数据长度超过1500,就要分割成多个帧发送。

    MAC地址: HEAD标头中记录的发送者接受者信息就是双方的MAC地址。以太网协议规定所有进入网络的设备必须含有网卡接口。数据包是从网卡传输到另一块网卡。网卡的地址就是MAC地址。每块网卡出厂时都有一个独一无二的MAC地址,MAC地址和IP地址不同,一般是不会变的。

    广播: 例如1号向任意一台计算机通信发送数据包,同一子网络下,这意味着将对所有的计算机发送数据包,计算机会读取数据包标头,得到其中的接收方MAC地址,与自己的MAC地址对比,相同则得到数据包内容,不同则丢弃数据包。

    cf7ea3d0447d657e35b4c7625d1ebed8.png
    • 网络层

    Internet

    Internet由多个自网络连接。为什么会有网络层呢?如果仅依靠MAC地址通信,那由一台计算机发出数据包,世界上任何地点的所有计算机都会接收到这个数据包,会没有效率可言且后果十分严重。

    92716bb8b313a061f5ffd33562f0551f.png

    有了网络层,互联网是由无数个自网络连接在一起的巨型网络。这样引进一套新的地址(IP地址)就可以区分哪些MAC地址在同一子网络,哪些不在同一自网络,在同一子网络就执行广播方式传送数据包,不在同一子网络就通过路由/网关转发。区分在不在同一子网络的方法就是用两个IP地址分别与子网掩码AND运算结果相同则在同一子网络,不同则不在同一自网络。

    IP数据包也分为标头和数据两部分。标头部分有发送者IP地址,接收者IP地址,版本,长度等信息。

    403ff05bafa68b33312b679694ca1bb7.png

    IP数据包数据部分最大长度为65515字节,以太网协议数据包数据部分最大长度为1500字节,因此,一旦IP数据包数据部分长度超过1500字节,就要分割成多个以太网数据包进行传送。

    ARP协议: 互联网通讯有两个前提条件,由于IP数据包是放在以太网数据包中进行传送的,所以必须要知道双方的MAC地址和双方的IP地址,通常情况下,对方的IP地址是已知的,MAC地址是未知的。这时,我们就通过ARP协议用对方的IP地址来反解码出对方的MAC地址。这又分成两种情况:

    1. 两台主机不在同一子网络: 不在同一子网络,是无法获取对方的MAC地址的,只能将数据包发送到两个子网络的网关/路由,让网关处理。在需要通过网关/路由转发时,网络层也决定了数据包的传输路线,经过哪些网关/路由,通过OSPF等协议(通过路由算法,找出最佳路径)。ARP协议可以解析出下一站网关/路由的MAC地址。
    2. 两台主机在同一子网络: 在同一子网络就可以通过ARP协议获取对方的MAC地址了,ARP协议也会发送一个放在以太网数据包中的数据包。标头填写了双方的IP地址,以太网标头接收方的MAC地址填的是广播地址FF-FF-FF-FF-FF-FF,这时同一子网络的每台主机都会读取ARP数据包,从中读取出接收方的IP地址,如果相同则报告自己的MAC地址,如果不同则丢弃这个数据包。

    这样,我们在同一子网络下,就可以得到双方的MAC地址,进行通信发送数据包了。有了数据链路层和网络层,就可以在互联网任意两台主机上进行通信了。

    • 传输层

    我们日常使用计算机会运行很多程序,浏览网页,看视频,聊天。当数据包传递到主机上来,要区分数据包应提供给哪一个进程,这时就应该使用参数,端口(Port)。传输层就是建立端口到端口的通信。网络层和数据链路层则是建立主机到主机的通信。Linux中主机+端口(Port)就是套接字(Socket)。只要确定了Socket,进程间就可以进行通信。

    传输层协议有UDPTCP协议,UDP协议特别简单,由标头加内容组成,标头部分有发送者端口和接受者端口信息,内容放入了IP数据包。由于UDP协议可靠性差,发出的数据包没有确认机制,发送者无法知道接受者是否接收到了数据包,是否应该重新发送。TCP的出现就结决了这个问题,TCP可靠性高,但很复杂,消耗资源也多。

    b96c6aea5bd5e62e1086930011c30596.png

    TCP协议的三次握手和四次挥手确保了它的可靠性。

    三次握手: 发送者先发出一个SYN同步报文告诉接受者我要发送数据了并进入同步发送时期,接受者回复一个SYN同步报文和ACK确认报文确认然后进入同步确认时期,告诉发送者我收到了你发送吧,发送者收到后成功建立连接再发送一个ACK确认报文,告诉接受者我要开始发送数据了,然后发送数据进行通信,接受者收到确认报文后成功建立连接进入数据传输状态。

    fe9777187f03e27d07cf9af9d752ed1d.png

    四次挥手: 发送者发送一个FIN同步报文告诉接受者没有数据传输给接受者了请求关闭连接并进入同步等待1状态,接受者发送一个ACK确认报文告诉发送者他收到请求了,但是还可能有数据未传输完毕,让发送者等它的消息,接受者发送剩余数据,并进入关闭等待期,发送者收到接受者消息后进入同步等待2期,直到接受者数据全部传送完成后发送FIN同步报文和ACK确认报文告诉发送者它全部完成并进入最后确认期,发送者收到后向接受者发送ACK确认报文进入等待2MSL时期,接受者收到确认报文后关闭,2MSL后发送者关闭连接。(留下两个个问题,为什么是建立连接时三次握手,关闭连接是是四次挥手呢?为什么要等待2MSL?提示: 2MSL是报文的最长存在时间)

    f52c72b7b301fd07ac8903ba9d425911.png
    • 应用层

    应用层直接与Client进行数据交互,同样是由标头加内容组成,放在TCP数据包中的内容部分。使用最为广泛的HTTP协议就在这层。HTTP有太多的知识可以看看《图解HTTP》入门。

    1be2a4fd027e24868b1147a0ed159934.png

    实际应用

    以我们打开计算机请求Google homepage为例讲出完整的过程。

    上网条件

    上面我们已经知道了一个完整的以太网数据包的样子:

    04ba4aa4b38e9a4d50b421ead0684c84.png

    发送以太网数据包的条件是:.1.双方的MAC地址。2.双方的IP地址。

    发送数据包又有两种情况:

    1.在同一自网络: 可以根据ARP协议反解码出对方的MAC地址。所以双方的MAC地址和双方的IP地址就都具备了。

    2.不在同一子网络: 这时无法获得对方的MAC地址,只能发送给网关/路由,再转发给接受方。所以这时标头中填写的条件就是自己的MAC地址和网关的MAC地址,双方的IP地址。

    在不在同一子网络需要两个IP地址分别与子网掩码做AND与运算,相同则在不同则不在。所以,我们的主机想要上网的必须条件是:

    • 主机的IP地址
    • 子网掩码
    • DNS的IP地址
    • 网关的IP地址

    静态IP和动态IP

    之前我们上网一般需要自己填写这些必要条件,这种方式是静态IP上网的方式,由于静态IP配置繁琐,占用资源不够灵活所以现在一般使用动态IP。静态IP也挺贵的现在...动态IP上网需要DHCP服务器通过DHCP协议分配给自己IP地址,子网掩码,网关IP地址,DNSIP地址。

    DHCP协议

    DHCP协议是处于应用层的协议,建立在UDP上,所以它的数据包是这样子的:

    8daaaec06388368fb74f6578089f61fc.png

    动态IP上网我们需要通过DHCP协议让DHCP服务器分配给我们上述的主机上网的必要条件。打开主机,发送DHCP数据包。

    • 以太网标头中本机的MAC地址已知,接收方的MAC地址未知设置成广播地址FF-FF-FF-FF-FF-FF。
    • IP标头中本机的IP地址未知,设置成0.0.0.0,接收方IP地址也未知,设置成广播地址255.255.255.255。
    • UDP标头按照UDP协议规定发送方Port是67,接收方Port是68。

    当数据包发出后同一子网络下所有主机接收到数据包,MAC地址为广播地址每个主机都会读取内容,当DHCP服务器看到IP标头发送方IP地址为0.0.0.0接收方IP地址为255.255.255.255时,就会进行响应,其他主机则丢弃这个包。

    DHCP服务器发送一个响应的数据包同样是上述结构:

    4744c99c9ca464885b85ce590976eb15.png
    • 以太网标头填写了双方的MAC地址。
    • IP数据包标头发送方填写了DHCP服务器的IP地址,接收方填写广播地址255.255.255.255。
    • UDP标头按规定填写发送方Port67,接收方Port68。
    • 分配给主机的IP地址,子网掩码,网关的IP地址,DNS的IP地址填写在DHCP数据包中。

    主机接收到响应,新加入的主机的IP地址是0.0.0.0,它会像婴儿一样接受DHCP响应数据包中的内容,于是新加入的主机就具备了上网的必要条件。

    有了上网的必要条件,我们访问Google homepage,http://www.google.com只有域名没有IP地址,这时需要DNS协议帮助我们获取到IP地址。

    DNS协议

    已知DNS服务器的IP地址8.8.8.8,我们向DNS服务器发送一个DNS数据包:

    9a05581ef4c52768484e6a6ea8e1c6e7.png

    DNS规定服务器接受端口为53端口。DNS服务器收到数据包后做出响应告诉我们目标的IP地址。

    我们向谷歌发送数据包,一定是要通过网关转发的,通过ARP协议将网关MAC地址解析出来。通过OSPF等协议转发给谷歌服务器(OSPF决定了传输过程经过了哪些网关/路由,通过路由算法,找出最佳路径),如果需要多级转发,ARP协议会反解析出下一站网关/路由的MAC地址。

    a47ab47176fcfbe2ce293330d78a876c.png

    如果长度超过1500,以太网协议数据的最大长度,那么就要分割发送:

    75b1ecfbf5f4b87184fba8902ea83316.png

    谷歌服务器收到数据包,根据IP标头的编号将数据包重组拿到完整的TCP数据包,建立Socket连接,服务端收到HTTP请求后连接关闭,服务器作出响应再通过建立TCP连接将HTTP数据包发送给客户端,通信完成,关闭连接。客户端收到请求成功显示homepage。一次完整的网络通信完成。

    展开全文
  • 前言:在项目实际应用中,经常会遇到两个不同厂家的PLC需要互联进行通信交换数据,由于各自的通信协议有所不同,实现起来的难度较大,通常的做法借助第三方的网关。本文介绍的AB PLC与西门子S7-1200直接互联,不...

    558012991babc46ba18e113aeed2b697.png

    6115451cc815fc2ef7000deb44b3ea70.png

    前言:在项目实际应用中,经常会遇到两个不同厂家的PLC需要互联进行通信交换数据,由于各自的通信协议有所不同,实现起来的难度较大,通常的做法是借助第三方的网关。本文介绍的是AB PLC与西门子S7-1200直接互联,不借助网关,通过编程方式实现以太网通信。

    AB PLC端

    1. Socket接口

    • Logix5000控制器使用Socket接口,通过EerthNet/IP模块与不支持EerthNet/IP应用程序协议的以太网设备(如条形码扫描仪、RFID读卡器或其他标准以太网设备)进行通信。
    • Logix5000控制器程序通过MSG指令与Socket对象通信,对Socket对象的MSG请求与大多数计算机操作系统中的Socket API调用类似,Socket对象服务允许您打开连接、接受传入连接、发送数据和接收数据。

    2. 支持Socket应用的模块

    • 1756-EN2T
    • 1756-EN2TR
    • 1756-EN2F
    • 1756-EN3TR
    • 5370,5380,5580 Controllers

    3. TCP通信协议流程

    (1) TCP客端户建立TCP通信流程

    da5c37a2084730b5d2d45c440f66b686.png

    (2) TCP服务端建立TCP通信流程

    a409fcab538d898722ba875bad24bbc9.png

    4. MSG编程

    (1) 建立Socket,即建立一个Socket编程对象,MSG类型选择CIP Generic.

    f6fb06415138daf6fed467714168f403.png

    (2) 打开连接,让S7-1200能连接到该Socket,Service类型选择OpenConnetion.

    cfe2af8df9bf584798a22b00d831532e.png

    (3) 接受连接,从该Socket连接到S7-1200,Service类型选择AcceptConnetion.

    6681f4aa06d8e3444434397a2d56f27a.png

    (4) 从Scoket读取数据,即从该接口接受S7-1200发送过来的数据,Service类型选择ReadSocket.

    37c30ec70554e41deaaa7d1c2de52454.png

    (5) 从Scoket发送数据,即从该接口发送数据到S7-1200,Service类型选择WriteSocket.

    d69e7f5b37894ef5e91add30c552753e.png

    (6) 删除Scoket,通信完成后需要释放该Scoket接口,Service类型选择WriteSocket.

    5bb254bc1069b1719faceec99a631070.png

    (7) 编写通信程序.

    f88e21eb1684b6b035df33d73b1d0b8c.png

    S7-1200端

    编程程序

    19be93f92d66d34d49414da623054654.png

    通信视频

    结束语:

    本文只是介绍了AB PLC与西门子PLC直接互联进行以太网通信的方法,如何具体编程请参考《ENET-AT002C-EN-P》手册和博途编程手册.

    展开全文
  • 前言本文上篇《网络编程入门(一):快速理解网络通信协议(上篇)》分析了互联网总体构思,从下至上,每一层协议设计思想。基于知识连贯性考虑,建议您先看完上篇后再来阅读本文。本文从设计者角度看问题,今天...

    前言


    本文上篇《网络编程入门(一):快速理解网络通信协议(上篇)》分析了互联网的总体构思,从下至上,每一层协议的设计思想。基于知识连贯性的考虑,建议您先看完上篇后再来阅读本文。
    本文从设计者的角度看问题,今天我想切换到用户的角度,看看用户是如何从上至下,与这些协议互动的。

    一个小结


    先对前面的内容,做一个小结(详见本文上篇《网络编程懒人入门(一):快速理解网络通信协议(上篇)》)。
    我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,后者收到了,回复一个数据包,从而实现两台电脑之间的通信。数据包的结构,基本上是下面这样:

    69ed4a680b101f3ce9fe8396b3570e15.png

    发送这个包,需要知道两个地址:

    • * 对方的MAC地址;
    • * 对方的IP地址。


    有了这两个地址,数据包才能准确送到接收者手中。但是,前面说过,MAC地址有局限性,如果两台电脑不在同一个子网络,就无法知道对方的MAC地址,必须通过网关(gateway)转发。

    b70137a10e0af8760b8145aaeb4db6bf.png


    上图中,1号电脑要向4号电脑发送一个数据包。它先判断4号电脑是否在同一个子网络,结果发现不是(后文介绍判断方法),于是就把这个数据包发到网关A。网关A通过路由协议,发现4号电脑位于子网络B,又把数据包发给网关B,网关B再转发到4号电脑。1号电脑把数据包发到网关A,必须知道网关A的MAC地址。所以,数据包的目标地址,实际上分成两种情况:

    场景数据包地址同一个子网络对方的MAC地址,对方的IP地址非同一个子网络网关的MAC地址,对方的IP地址


    发送数据包之前,电脑必须判断对方是否在同一个子网络,然后选择相应的MAC地址。接下来,我们就来看,实际使用中,这个过程是怎么完成的。

    用户的上网设置

    静态IP地址


    你买了一台新电脑,插上网线,开机,这时电脑能够上网吗?

    0f7f4b7de5126d280fe13609e69b6833.png

    通常你必须做一些设置。有时,管理员(或者ISP)会告诉你下面四个参数,你把它们填入操作系统,计算机就能连上网了:

    • * 本机的IP地址;
    • * 子网掩码;
    • * 网关的IP地址;
    • * DNS的IP地址。

    下图是Windows系统的设置窗口:

    49036a09474bafac0d85dbdd5bf4addc.png


    这四个参数缺一不可,后文会解释为什么需要知道它们才能上网。由于它们是给定的,计算机每次开机,都会分到同样的IP地址,所以这种情况被称作"静态IP地址上网"。但是,这样的设置很专业,普通用户望而生畏,而且如果一台电脑的IP地址保持不变,其他电脑就不能使用这个地址,不够灵活。出于这两个原因,大多数用户使用"动态IP地址上网"。

    动态IP地址


    所谓"动态IP地址",指计算机开机后,会自动分配到一个IP地址,不用人为设定。它使用的协议叫做DHCP协议。
    这个协议规定,每一个子网络中,有一台计算机负责管理本网络的所有IP地址,它叫做"DHCP服务器"。新的计算机加入网络,必须向"DHCP服务器"发送一个"DHCP请求"数据包,申请IP地址和相关的网络参数。
    前面说过,如果两台计算机在同一个子网络,必须知道对方的MAC地址和IP地址,才能发送数据包。但是,新加入的计算机不知道这两个地址,怎么发送数据包呢?DHCP协议做了一些巧妙的规定。

    DHCP协议

    首先,它是一种应用层协议,建立在UDP协议之上,所以整个数据包是这样的:

    6d162dc04257f37a9d0e0354772fadc0.png
    • 1)最前面的"以太网标头":设置发出方(本机)的MAC地址和接收方(DHCP服务器)的MAC地址。前者就是本机网卡的MAC地址,后者这时不知道,就填入一个广播地址:FF-FF-FF-FF-FF-FF。
    • 2)后面的"IP标头":设置发出方的IP地址和接收方的IP地址。这时,对于这两者,本机都不知道。于是,发出方的IP地址就设为0.0.0.0,接收方的IP地址设为255.255.255.255。
    • 3)最后的"UDP标头":设置发出方的端口和接收方的端口。这一部分是DHCP协议规定好的,发出方是68端口,接收方是67端口。


    这个数据包构造完成后,就可以发出了。以太网是广播发送,同一个子网络的每台计算机都收到了这个包。因为接收方的MAC地址是FF-FF-FF-FF-FF-FF,看不出是发给谁的,所以每台收到这个包的计算机,还必须分析这个包的IP地址,才能确定是不是发给自己的。当看到发出方IP地址是0.0.0.0,接收方是255.255.255.255,于是DHCP服务器知道"这个包是发给我的",而其他计算机就可以丢弃这个包。
    接下来,DHCP服务器读出这个包的数据内容,分配好IP地址,发送回去一个"DHCP响应"数据包。这个响应包的结构也是类似的,以太网标头的MAC地址是双方的网卡地址,IP标头的IP地址是DHCP服务器的IP地址(发出方)和255.255.255.255(接收方),UDP标头的端口是67(发出方)和68(接收方),分配给请求端的IP地址和本网络的具体参数则包含在Data部分。
    新加入的计算机收到这个响应包,于是就知道了自己的IP地址、子网掩码、网关地址、DNS服务器等等参数。

    上网设置:小结


    这个部分,需要记住的就是一点:不管是"静态IP地址"还是"动态IP地址",电脑上网的首要步骤,是确定四个参数。这四个值很重要,值得重复一遍:

    • * 本机的IP地址;
    • * 子网掩码;
    • * 网关的IP地址;
    • * DNS的IP地址。


    有了这几个数值,电脑就可以上网"冲浪"了。接下来,我们来看一个实例,当用户访问网页的时候,互联网协议是怎么运作的。

    一个实例:访问网页

    本机参数

    我们假定,经过上一节的步骤,用户设置好了自己的网络参数:

    • * 本机的IP地址:192.168.1.100;
    • * 子网掩码:255.255.255.0;
    • * 网关的IP地址:192.168.1.1;
    • * DNS的IP地址:8.8.8.8。


    然后他打开浏览器,想要访问Google,在地址栏输入了网址:www.google.com。

    902acc855c5d760868e4d0a3a5f6553a.png


    这意味着,浏览器要向Google发送一个网页请求的数据包。

    DNS协议


    我们知道,发送数据包,必须要知道对方的IP地址。但是,现在,我们只知道网址www.google.com,不知道它的IP地址。DNS协议可以帮助我们,将这个网址转换成IP地址。已知DNS服务器为8.8.8.8,于是我们向这个地址发送一个DNS数据包(53端口)。

    1f3a4447b0fcfa9ce2c617557c1917dd.png


    然后,DNS服务器做出响应,告诉我们Google的IP地址是172.194.72.105。于是,我们知道了对方的IP地址。

    子网掩码


    接下来,我们要判断,这个IP地址是不是在同一个子网络,这就要用到子网掩码。
    已知子网掩码是255.255.255.0,本机用它对自己的IP地址192.168.1.100,做一个二进制的AND运算(两个数位都为1,结果为1,否则为0),计算结果为192.168.1.0;然后对Google的IP地址172.194.72.105也做一个AND运算,计算结果为172.194.72.0。这两个结果不相等,所以结论是,Google与本机不在同一个子网络。
    因此,我们要向Google发送数据包,必须通过网关192.168.1.1转发,也就是说,接收方的MAC地址将是网关的MAC地址。

    应用层协议

    浏览网页用的是HTTP协议,它的整个数据包构造是这样的:

    239a38e4804ba851dee9aeed1357b83f.png

    HTTP部分的内容,类似于下面这样:

    3eb26b93d3e806e111d7fbd310df7a17.png


    我们假定这个部分的长度为4960字节,它会被嵌在TCP数据包之中。

    TCP协议


    TCP数据包需要设置端口,接收方(Google)的HTTP端口默认是80,发送方(本机)的端口是一个随机生成的1024-65535之间的整数,假定为51775。TCP数据包的标头长度为20字节,加上嵌入HTTP的数据包,总长度变为4980字节。

    IP协议


    然后,TCP数据包再嵌入IP数据包。IP数据包需要设置双方的IP地址,这是已知的,发送方是192.168.1.100(本机),接收方是172.194.72.105(Google)。IP数据包的标头长度为20字节,加上嵌入的TCP数据包,总长度变为5000字节。

    以太网协议


    最后,IP数据包嵌入以太网数据包。以太网数据包需要设置双方的MAC地址,发送方为本机的网卡MAC地址,接收方为网关192.168.1.1的MAC地址(通过ARP协议得到)。
    以太网数据包的数据部分,最大长度为1500字节,而现在的IP数据包长度为5000字节。因此,IP数据包必须分割成四个包。因为每个包都有自己的IP标头(20字节),所以四个包的IP数据包的长度分别为1500、1500、1500、560。

    be0240fad26ef5f5cb3c4548d9d8c367.png

    服务器端响应


    经过多个网关的转发,Google的服务器172.194.72.105,收到了这四个以太网数据包。根据IP标头的序号,Google将四个包拼起来,取出完整的TCP数据包,然后读出里面的"HTTP请求",接着做出"HTTP响应",再用TCP协议发回来。
    本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。

    6d4456c1c75bfbe7d3ad4efdf74bd417.png


    这个例子就到此为止,虽然经过了简化,但它大致上反映了互联网协议的整个通信过程。

    另外还有一些关于c++ Linux后台服务器开发的一些知识点分享:Linux,Nginx,MySQL,Redis,P2P,K8S,Docker,TCP/IP,协程,DPDK,webrtc,音视频等等视频。

    喜欢的朋友可以后台私信【1】获取学习视频

    28a51fd78506026fc225c0fbd629a89c.png
    展开全文
  • 大家好,我Modbus-TCP协议。前面文章,我大哥(Modbus-RTU协议)曾做过自我介绍(原文网址:https://www.founderchip.com/?id=65),今天这篇文章,我也想和大家认识下。我来自Modbus大家庭,我们家有三个兄弟:大哥...
  • 为了克服车载网络速度挑战,下一代汽车正在转向以太网通信。市场趋势表明,绝大多数汽车制造商正计划将所有类别汽车转向以太网,目前宝马较为激进者,此外现代汽车开始利用以太网开展信息娱乐系统开发,而大众...
  • 以太网(Ethernet)当今现有局域网采用的最通用的通信协议标准,局域网的一种,其主要通过MAC地址识别各个结点。 那什么是MAC地址呢? MAC地址(Media Access Control Address)一种标识符,用来标记网络中...
  •  串行数据通信的协议从RS-232到千兆位以太网,虽然每种协议都有特定应用领域,但任何情况下我们都必须考虑成本和物理层(PHY)性能。本文主要介绍RS-485协议及该协议所适合应用。同时给出了根据电缆长度、系统...
  • (图片说明:TCP 是以太网协议和 IP 协议的上层协议,也应用层协议的下层协议。)最底层的以太网协议(Ethernet)规定了电子信号如何组成数据包(packet),解决了子网内部点对点通信。(图片说明:以太网协议解决了...
  • 从设计者角度看问题,今天我想切换到用户角度,看看用户如何从上至下,与这些协议互动。七、一个小结先对前面内容,做一个小结。我们已经知道,网络通信就是交换数据包。电脑A向电脑B发送一个数据包,...
  • 工业以太网即通用工业协议以太网技术结合,指的是应用于工业配置的以太网。工业以太网是继现场总线之后发展起来,富有发展前景一种工业通信网络。其本质就是以太网技术办公自动化走向工业自动化。工业以太网...
  • 以太网到底是什么

    2020-08-02 10:48:17
    以太网(Ethernet)指的由 Xerox公司创建并由Xerox、Intel和 DEC公司联合开发的基带局域网规范,通用的以太网标准于1980年9月30日出台,当今现有局域网采用的最通用的通信协议标准。(局域网的一种) 以太网络...
  • PTP协议是什么

    2021-03-27 18:34:51
    最近在接触诊断功能时,碰到有两个DTC是关于以太网时钟同步,它的协议是PTP协议,大概了解下 PTP 网络通信中,有时候会要求主机和其他主机保持时钟同步,或者说是在可接受误差范围内 网络时钟同步分为时间...
  • SPI通信协议基础

    2020-08-21 16:03:29
    对我们来说幸运的是,在构建大多数DIY电子产品项目时,我们只需要知道一些通信协议即可。 首先,我们将从有关电子通信一些基本概念开始,然后详细说明SPI工作原理。 SPI,I2C和UART比USB,以太网,蓝牙和WiFi...
  • 计算机之间互相通讯层次,以及各层中的协议和层次之间接口集合,它为网络硬件,软件,协议,存取控制和网络拓扑提供标准。 网络拓扑结构: 定义: 指用传输媒体互连各种设备物理布局,即用什么方式把网络中...
  • 分层参考模型的设计非常经典的理念:层次化的模型设计将网络的通信过程划分为更小、更简单的部件,因此有助于各个部件的独立开发、设计和故障排除;层与层之间相互独立,又互相依赖,每一层都有该层的功能、以及...
  • TCP/IP通信协议

    2019-12-26 09:45:33
    当服务器接受到一个以太网数据帧时,数据就会开始从协议...协议相当于两个需要通信的程序预设一种约定,它规定了报文交换方式和意义。比如HTTP协议为为了解决服务器之间超文本对象传递问题 IP协议 IP协议...
  • 数据链路层数据链路层与网络层关联以太网协议什么是以太网以太网帧格式MAC地址MAC地址与IP地址MTUMTU对TCP影响MTU对UDP影响ARP协议什么是ARP协议ARP数据报格式ARP协议的工作流程ARP局域网欺骗攻击 数据链路层...
  • 什么是实时以太网

    2020-09-03 14:48:55
    什么是实时以太网 工业以太网实时以太网,在过去几年中经历了巨大增长。虽然经典现场总线仍大量存在,但它们已经过了巅峰期。流行实时以太网协议扩展了以太网标准,可以满足实时功能要求。现在,TSN为...
  • modbus通信协议

    热门讨论 2010-08-06 15:26:22
    Modbus通信协议 摘 要:工业控制已从单机控制走向集中监控、集散控制,如今已进入网络时代,工业控制器连网也为网络管理提供了方便。Modbus就是工业控制器网络协议中一种。关键词:Modbus协议;串行通信;LRC...
  • 以太网(Ethernet)指的由Xerox公司创建并由Xerox、Intel和DEC公司联合开发的基带局域网规范,当今现有局域网采用的最通用的通信协议标准。以太网络使用CSMA/CD(载波监听多路访问及冲突检测)技术,并以10M/S的...
  • 然而,对当今服务提出的严格服务质量 (QoS) 预期要求服务提供商提供的解决方案既利用以太网的成本效益,而又不牺牲面向连接的(虽然昂贵)时分复用 (TDM) 解决方案(如 SONET/SDH)的优点。  在服务开通时立即...
  • ARP协议是“Address Resolution Protocol”(地址解析协议)缩写。在局域网中,网络中实际传输是“帧”,帧里面是有目标主机MAC地址。在以太网中,一个主机和另一个主机进行直接通信,必须要知道目标主机...
  • 如何实现三菱FX5U PLC和LabVIEW的以太网通信-Modbus TCP什么是Modbus TCP协议通信使用软硬件连接和测试步骤 什么是Modbus TCP协议 Modbus协议使用的是主从通讯技术,即由主设备主动查询和操作从设备。一般将主控...
  • 什么是以太网

    2008-11-14 14:35:40
    以太网概述: 以太网是当今现有局域网采用的最通用的通信协议标准,组建于七十年代早期。Ethernet(以太网一种传输速率为10Mbps的常用局域网(LAN)标准。在以太网中,所有计算机被连接一条同轴电缆上,采用具有...
  • 什么是以太网?

    千次阅读 2015-03-26 09:25:49
    以太网是当今现有局域网采用的最通用的通信协议标准。该标准定义了在局域网(LAN)中采用的电缆类型和信号处理方法。以太网在互联设备之间以10~100Mbps的速率传送信息包,双绞线电缆10 Base T以太网由于其低成本、高...
  • 一、串口转以太网模块是什么串口转以太网模块是一种支持10M/100M自适应以太网接口,集成众多网络通信协议,支持TTL串口转以太网,可以实现UART转以太网双向透传功能嵌入式物联网设备。成都众山科技生产销售串口...
  • 以太网是一种允许单个计算机相互通信的系统,通常最常用局域网(LAN)技术,因此,如果您在办公室网络上使用计算机,则几乎可以肯定通过以太网进行通信什么是以太网以太网是与传输控制协议(TCP)和...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 401
精华内容 160
关键字:

以太网的通信协议是什么协议