精华内容
下载资源
问答
  • 论计算机网络通信协议网络协议是一种特殊的软件是计算机网络实现其功能的最基本机制本文来试论计算机网络通信协议1网络通信协议的内涵要了解计算机网络通信协议可以从通信协议的概念、网络协议的分类和网络协议的...

    论计算机网络通信协议

    网络协议是一种特殊的软件是计算机网络实现其功能的最基本机制本文来试论计算机网络通信协议

    1网络通信协议的内涵

    要了解计算机网络通信协议可以从通信协议的概念、网络协议的分类和网络协议的组成三个方面入手

    1.1通信协议的概念

    在计算机通信中两台计算机在进行通信时必须使用通信协议网络通信协议(NetworkCommunicationProtocol)通过信信道和设备互连起来的多个不同地理位置的数据通信系统是计算机之间进行相互会话所使用的共同语言通信协议具有层次性、可靠性和有效性

    1.2网络协议的分类

    网络协议是一种特殊的软件是计算机网络实现其功能的最基本机制每种协议都有其适用的应用环境网络协议的本质是规则即各种硬件和软件必须遵循的共同守则但网络协议又不是一套单独的软件它通常融合在其他软件系统中网络协议遍及OSI通信模型的各个层次基础型协议用来提供网络连接服务它在网络连接和通信活动中必不可少;应用型协议对于网络来说不是必需的而是在具体应用到网络服务时才需要

    1.3网络协议的组成

    从网络协议的组成上来看网络协议主要由语义、语法和时序三个要素组成语义是对协议元素的含义进行解释不同类型的协议元素所规定的语义是不同的语法是将若干个协议元素和数据组合在一起用来表达一个完整的内容所应遵循的格式也就是对信息的数据结构做一种规定而时序是对事件实现顺序的详细说明

    2网络通信协议的原则

    一般来说网络中的计算机与计算机间要想正确的传送信息和数据必须遵循三个原则即多选协议的一致性、通信协议的单一性和选择高版本的协议其具体内容如下:

    2.1所选协议的一致性

    所选协议要与网络结构和功能相一致是所选协议的一致性原则在网络通信协议中网络通信协议应在网络规模、网络间的兼容性和网络管理等几个方面进行综合考虑具体说来如果你的网络规模较小对网络的要求也不高只是为了简单的文件和设备的共享那么在网络选择的配置上往往最关心的就是网络速度对所选协议的要求也不一样选择占用内存小和带宽利用率高的协议可以满足网络速度的要求如NetBEUI当你的网络规模较大对网络通信的要求也不一样加之网络结构复杂所选协议与网络规模较小的协议就不一样则应选择可管理性和可扩充性较好的协议如TCP/IP

    2.2通信协议的单一性

    计算机与计算机之间的通信离不开通信协议除特殊情况外一个网络尽量只选择一种通信协议因为每个协议都要占用计算机的内存这样就增加了计算机内存的使用量选择的协议越多占用计算机的内存资源就越多通信协议较多会带来两个方面的影响一方面影响了计算机的运行速度另一方面不利于网络的管理通信协议的单一性则可以适应网络协议的要求遵循通信协议的单一性使一个网络中一般一种通信协议就可以满足需要

    2.3选择高版本的协议

    在网络通信协议中选择高版本的协议也是网络通信协议应遵循的原则计算机网络的高版本协议的功能和性能要比低版本好但在选择计算机网络协议中还要注意协议的版本每个版本的协议都有它最为合适的网络环境应根据计算机网络的实际情况选择合适的版本协议因此在选择计算机网络通信协议的版本时时应尽量选择高版本的通信协议

    3常见的网络通信协议

    计算机网络通信协议是一项综合的系统工程具有长期性和复杂性为确保网络通信的正常在选择计算机网络通信协议的时候应结合计算机网络应用的实际情况综合选择网络通信协议通常来说常见的网络通信协议有TCP/IP协议、HTTP协议、SMTP协议和POP3协议下文将逐一进行分析:

    3.1TCP/IP协议

    TCP/IP协议在网络通信协议中比较常见TCP/IP协议是一个协议集合也是Internet的基础协议TCP/IP是目前最常用到的一种通信协议TCP用于从应用程序到网络的数据传输控制它是计算机世界里的一个通用协议在局域网中TCP/IP最早出现在Unix系统中即TCP传输控制协议和IP互联网协议现在几乎所有的厂商和操作系统都开始支持它

    3.2HTTP协议

    超文本传送协议(HTTP)是分布式协作式超媒体系统应用之间的通信协议HTTP协议是常见的网络通信协议之一它允许将超文本标记语言(HTML)文档从Web服务器传送到Web浏览器HTML是一种用于创建文档的标记语言客户机和服务器必须都支持HTTP才能在万维网上发送和接收HTML文档并进行交互HTTP是一个属于应用层的面向对象的协议由于其简捷、快速的方式适用于分布式超媒体信息系统

    3.3SMTP协议

    SMTP是一种提供可靠且有效电子邮件传输的协议SMTP协议在计算机网络通信协议中占据着一席之地目前已是事实上的在Internet传输EMail的标准从SMTP协议的组成上来看SMTP协议是一个相对简单的基于文本的协议SMTP是建立在FTP文件传输服务上的一种邮件服务可以很简单地通过Telnet程序来测试一个SMTP服务器SMTP使用TCP端口25要为一个给定的域名决定一个SMTP服务器需要使用MX(MaileXchange)DNS

    3.4POP3协议

    POP适用于C/S结构的脱机模型的电子邮件协议POP3协议即“邮局协议版本3”是TCP/IP协议族中的一员本协议主要用于支持使用客户端远程管理在服务器上的电子邮件POP3客户端通常采用“offline”离线方式访问邮件服务器在计算机网络通信协议中提供了SSL加密的POP3协议被称为POP3SPOP协议支持“离线”邮件处理但目前的POP3邮件服务器大都可以“只下载邮件服务器端并不删除”也就是改进的POP3协议

    展开阅读全文

    展开全文
  • 计算机网络通信协议

    2021-07-25 16:56:29
    协议:是双方进行数据传输的一种格式。 OSI :open system interconnection,开放式系统互联,ISO发起,其任务是制定国际计算机通信标准,特别是促进兼容系统间的互联。 www:world wide web 万维网 ...

    名词解释

    协议:是双方进行数据传输的一种格式。

    OSI :open system interconnection,开放式系统互联,ISO发起,其任务是制定国际计算机通信标准,特别是促进兼容系统间的互联。

    www:world wide web 万维网

    HTML:hyper text markup language 超文本标记语言

    CGI:common gateway interface 通用网关接口

    MIME-type:multipurpose internet mail extensions 多用途因特网邮件扩展

    URL:uniform resource locator 统一资源定位符,是对可以从互联网上得到的资源的位置和访问方法的一种简洁的表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该怎么处理它。

    URI:uniform resource identifiers 统一资源标识符

    Servlet:Server Applet,是Java Servlet的简称,称为小服务程序或服务连接器,用Java编写的服务器端程序,主要功能在于交互式地浏览和修改数据,生成动态Web内容。

    ASP:active server pages,是MicroSoft公司开发的服务器端脚本环境,可用来创建动态交互式网页并建立强大的web应用程序。

    HTTP:hyper text transfer protocol 超文本传输协议,用于从WWW服务器传输超文本到本地浏览器的传送协议。它不仅保证计算机正确快速地传输超文本文档,还确定传输文档中的哪一部分,以及哪部分内容首先显示等。

    TCP/IP:transmission control protocol 传输控制协议;Internet protocol address 互联网协议地址

    FTP:file tansfer protocol 文件传输协议

    CRLF:carriage return line feed 传输返回行“饲料”,在计算机中,即 回车换行,enter键。

    TLS:transport layer security 传输层安全协议

    SSL:secure sockets layer 安全套接层

    DNS:domain name system 域名系统,是万维网上作为域名和IP地址相互映射的一个分布式数据库,能够使用户更方便地访问互联网,而不用去记住能够被机器直接读取的IP数串。通过域名,最终得到该域名对应的IP地址的过程叫做域名解析(或主机名解析)。DNS协议运行在UDP协议之上,使用端口号53。

    UDP:user datagram protocol 用户数据报协议,是OSI参考模型中一种无连接的传输层协议,提供面向事务的简单不可靠信息传送服务。在网络中与TCP协议一样用于处理数据包,是一种无连接的协议。

    Hub:集线器,是工作在物理层的网络设备,用于双绞线的连接和信号中断(将已衰减的信号再次放大使之传得更远)。

    Switch:交换机,是工作在链路层的网络设备,可以在不同的链路层网络之间转发数据帧(比如 十兆以太网和百兆以太网之间、以太网和令牌环网之间),由于不同链路层的帧格式不同,交换机要将进来的数据包拆掉链路层首部重新封装之后再转发。

    Route:路由器,是工作在网络层的网络设备,同时兼有交换机的功能,阔以在不同的链路层接口之间转发数据包,因此路由器需要将进来的数据包拆掉网络层和链路层两层首部并重新封装。

    MAC地址:media access control address,媒体访问控制地址(也称为 局域网地址(LAN Adress)/以太网地址(Ethernet Address)/物理地址(Physical Address)),是一个用来确认网上设备位置的地址。在OSI模型中,由第2层数据链路层负责MAC地址。MAC地址用于在网络中唯一表示一个网卡(一台设备若有多个网卡,则每个网卡都需要并会有一个唯一的MAC地址)。

    SSH:Secure Shell缩写(安全壳),是一种通用的、功能强大的、基于软件的网络安全解决方案,由IETF的网络工作小组所制定。计算机每次向网络发送数据时,SSH都会自动对其进行加密。SSH是创建在应用层和传输层基础上的安全协议。专为远程登录会话和其他网络服务提供安全性的协议,利用它可以有效防止远程管理过程中的信息泄露问题,通过它可以对所有传输的数据进行加密,也能防止DNS和IP欺骗。很多人使用OpenSSH(SSH的替代软件包、SSH免费的开源实现),因为免费,而且不受版权和加密算法的限制。简而言之,SSH是一种安全访问远程服务器的网络协议。举例:通过SSH服务,实现本机(Ubuntu,也可以是Win下)与远程服务器(如 腾讯云服务器提供的Ubuntu系统)之间的连接,能够在本地对服务器进行操作(如:从服务器上下载文件、上传本地文件到服务器等操作)

    将 IP 比作一个高速公路,它允许其他协议在上面行使并找到 到其他电脑的出口。

    TCP、UDP是高速公路上的卡车,它们携带的货物就像HTTP、FTP协议。(TCP、UDP都是用来传输其他协议的)

    每个IP地址 都包括两个标识码(ID):网络ID、主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站、服务器、路由器等)有一个主机ID与其对应。

    Internet委员会定义了5种IP地址类型以适合不同容量的网络,即A类~E类。其中A、B、C类由InternetNIC在全球范围内统一分配,D、E类为特殊地址。

    TCP/IP 是传输层协议,主要解决数据如何在网络传输;HTTP 是应用层协议,主要解决如何包装数据。

    TCP/IP网络协议栈 分为应用层(Application)、传输层(Transport)、网络层(Network)、链路层(Link)4层。

    层名 包含的协议

    应用层 Telnet、FTP、e-mail等

    传输层 TCP和UDP

    网络层 IP、ICMP和IGMP

    链路层 设备驱动程序及接口卡

    不同的协议层对数据包有不同的称谓:

    在传输层称为段(segment)

    在网络层称为数据报(datagram)

    在链路层称为帧(frame)

    数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,最后将应用层数据交给应用程序处理。

    在链路层下的物理层,指的是电信号的传递方式,如现在以太通用的网线(双绞线)、早期以太网采用的同轴电缆(现在一般用于有线电视)、光纤等都属于物理层的概念。

    网络层的IP协议 是构成Internet的基础。IP协议不保证传输的可靠性,数据包在传输过程中可能丢失,可靠性阔以在上层协议或应用程序中提供支持。

    传输层可选择TCP或UDP协议:

    TCP 是一种面向连接的、可靠的协议,

    可类比打电话:双方拿起电话互通身份后就建立了连接,然后说话就行了,双方说的话都保证能听到,并且是按说话的顺序听到的,说完话挂机断开连接。

    即TCP传输的双方需要首先建立连接,之后由TCP协议保证数据收发的可靠性,丢失的数据包自动重发,上层应用程序收到的总是可靠数据流,通讯之后关闭连接。

    UDP 协议不面向连接,也不保证可靠性,

    可类比寄信:写好信放到邮筒里,既不能保证信件在邮递过程中不会丢失,也不能保证信件是按顺序寄到目的地的。

    使用UDP协议的应用程序需要自己完成丢包重发、消息排序等工作。

    以太网驱动程序 首先根据以太网首部中的“上层协议”字段确定该数据帧的有效载荷(payload,是指除去协议首部之外实际传输的数据)是IP、ARP、还是RAPP协议的数据报,然后交给相应的协议处理。

    假如是IP数据报,IP协议再根据IP 首部中的“上层协议”字段确定该数据报的有效载荷是TCP、UDP、ICMP还是IGMP,然后交给相应的协议处理;

    假如是TCP段 或UDP段,TCP或UDP协议再根据TCP首部或UDP首部的“端口号”字段确定应该将应用层数据交给哪个用户进程;

    IP地址是标识网络中不同主机的地址,而端口号就是同一台主机上标识不同进程的地址,IP地址和端口号合起来标识网络中唯一的进程。

    虽然IP、ARP、RARP数据报都需要以太网驱动程序来封装成帧,但是从功能上划分,ARP和RARP属于链路层,IP属于网络层。

    虽然ICMP、IGMP、TCP、UDP的数据都需要IP协议来封装成数据报,但是从功能上划分,ICMP、IGMP与IP同属于网络层,TCP和UDP属于传输层。

    以太网帧格式

    源地址、目的地址 是指网卡的硬件地址(MAC地址),长度是48位,是在网卡出厂时固化的;

    网卡芯片(如DM9000A)收到的数据即如上所示的一长串数据。其中包括以太网帧头、IP报报头、传输层协议段头、应用层所需数据。

    以太网帧中的数据长度规定最小46字节,最大1500字节,ARP和RARP数据包的长度不够46字节,要在后面补填充位。

    最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU,如果一个数据包从以太网路由到拨号链路上,数据包都大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)。

    ifconfig命令的输出中也有“MTU:1500”。不过注意,MTU 指数据帧中有效载荷的最大长度,不包括帧首部的长度。

    IP数据报格式:IPv4

    IP数据报的首部长度和数据长度都是可变长的,但总是4字节的整数倍。

    对于IPv4,4位版本字段是4,。4位首部长度的数值是以4字节为单位的,最小值为5,即 首部长度最小是4*5=20字节,不带任何选项的IP首部,4位能表示的最大值是15,那么首部长度最大是40字节。

    8位TOS字段有3个位用于指定IP数据报的优先级(目前已废弃不用),还有4个位表示可选的服务类型(最小延迟、最大吞吐量、最大可靠性、最小成本),还有一个位总是0。

    总长度是整个数据报(包括IP首部、IP层payload)的字节数。每传一个IP数据报,16位的标识加1,可用于分片和重新组装数据报。其中,3位标志和13位片偏移用于分片。

    TTL(Time to live)的使用:源主机为数据包设定一个生存时间,比如64,每过一个路由器就把该值减1,如果减到0就表示路由已经太长了仍然找不到目的主机的网络,就丢弃该包,因此这个生存时间的单位不是秒,而是跳(hop)。

    协议字段 用于指示上层协议是TCP、UDP、ICMP还是IGMP。

    校验和:只校验IP首部,数据的校验由更高层协议负责。

    IPv4地址长度为32位。

    UDP段格式:

    UDP协议不面向连接,也不保证传输的可靠性。

    TCP段格式:

    序号:指出段中的数据部分在发送方数据流中的位置

    确认号:指出接收方希望收到对方下次发送的数据的第一个字节的序号

    TCP段首部的定长部分为20个字节,即5个单位的长度。

    URG位:紧急标志,和紧急指针配合使用,当其为1时表示,此报文要尽快传送。

    ACK位:确认标志,和确认号字段配合使用,当ACK位置为1时,确认号字段有效。

    PSH位:为推送标志,置1时,发送方将立即发送缓冲区的数据。

    RST位:复位标志,置1时,表明有严重差错,必须释放连接。

    SYN位:同步标志,置1时,表示请求建立连接。

    FIN位:终止标志,置1时,表明数据已经发送完,请求释放连接。

    窗口大小:32bit,用于向对方通告当前本机的接收缓冲区的大小。

    校验和字段长度:16bit,校验范围包括段首部、数据以及伪首部。

    TCP数据传输过程

    TCP连接的建立

    建立连接的过程:(三次握手)

    【1】客户端发出段1,SYN位表示连接请求。序号是1000,这个序号在网络通讯中用作临时的地址,每发一个数据字节,这个序号要加1,这样在接收端阔以根据序号排出数据包的正确顺序,也可以发现丢包的情况,另外,规定SYN位和FIN位也要占一个序号,这次虽然没发数据,但是由于发了SYN位,因此下次再发送应该用序号1001。mss表示最大段尺寸,如果一个段太大,封装成帧后超过了链路层的最大帧长度,就必须在IP层分片,为了避免这种情况,客户端声明自己的最大段尺寸,建议服务器端发来的段不要超过这个长度。

    【2】服务器发出段2,也带有SYN位,同时置ACK位表示确认,确认序号是1001,表示“我接收到序号1000 以及以前所有的段,请你下次发送序号为1001的段”,即应答了客户端的连接请求,同时也给客户端发出一个连接请求,同时声明最大尺寸为1024。

    【3】客户端发出段3,对服务器的连接请求进行应答,确认序号是8001。

    在这个过程中,客户端、服务器分别给对方发了连接请求,也应答了对方的连接请求,其中服务器的请求和应答在一个段中发出,因此一共有三个段用于建立连接,称为“三方握手(three-way-handshake)”。在建立连接的同时,对方协商了一些信息,例如双方发送序号的初始值、最大段尺寸等。

    4)TCP数据传输过程

    【1】客户端发出段4,包含从序号1021开始的20个字节数据。

    【2】服务器发出段5,确认序号为1021,对序号为1001-1020的数据表示确认收到,同时请求发送序号1021开始的数据,服务器在应答的同时也向客户端从序号8001开始的10个字节数据,这称为piggyback。

    【3】客户端发出段6,对服务器发来的序号为8001-8010的数据表示确认收到,请求发送序号8011开始的数据。

    在数据传输过程中,ACK和确认序号是非常重要的,应用程序交给TCP协议发送的数据会暂存在TCP层的发送缓冲区中,发出的数据包给对方之后,只有收到对方应答的ACK段才知道该数据包确实发到了对方,可以从发送缓冲区中释放掉了,如果因为网络故障丢失了数据包或丢失了对方发回的ACK段,经过等待超时后TCP协议自动将发送缓冲区中的数据包重发。

    5)TCP连接的关闭(四次握手)

    【1】客户端发出段7,FIN位表示关闭连接的请求。

    【2】服务器发出段8,应答客户端的关闭连接请求。

    【3】服务器发出段9,其中也包含FIN位,向客户端发送关闭连接请求。

    【4】客户端发出段10,应答服务器的关闭连接请求。

    建立连接的过程是三方握手,而关闭连接通常需要4个段(四次握手),服务器的应答和关闭连接请求通常不合并在一个段中,因为有连接半关闭的情况,这种情况下客户端关闭连接之后就不能再发送数据给服务器了,但是服务器还可以发送数据给客户端,直到服务器也关闭连接为止。

    HTTP协议

    一个HTTP操作 称之为一个事务,工作过程分为如下四步:

    首先客户端与服务器需要建立连接。只要单击某个超级链接,HTTP的工作开始。

    建立连接后,客户端发送一个请求给服务器。请求方式的格式为:统一资源标识符(URI)、协议版本号、MIME信息(包括请求修饰符、客户端信息和可能的内容)

    服务器接到请求后,给予相应的响应信息。

    客户端接到服务器所返回的信息,通过浏览器显示在用户的显示屏上,然后客户端与服务器断开连接。

    一个传输流作为发送端的客户端在应用层(HTTP协议)发出一个想看某个web页面的HTTP请求;

    为了传输方便,在传输层(TCP协议)将从应用层收到的数据(HTTP请求报文)进行分割,并在各个报文上打上标记序号及端口号转发给网络层。

    在网络层(IP协议),增加作为通信目的地的MAC地址转发给链路层。

    这样,发往网络的通信请求就准备齐全了。

    接收端服务器在链路层接收到数据,按序往上层发送,一直到应用层。当传输到应用层,才能算真正接收到由客户端发送过来的HTTP请求。

    IP协议:它的作用是把各种数据包传送给对方。而要保证确实传送到对方那里,则需要满足各类条件。其中龙哥重要的条件是IP地址、MAC地址。其中IP地址指明了被分配到地址,MAC地址是指网卡所属的固定位置,IP地址可变换,但MAC地址基本上不会更改。

    TCP协议:按层次分,TCP协议位于传输层,提供可靠的字节流服务,字节流服务指的是为了传输方便,将大块数据分割成以报文段为单位的数据包进行管理。

    DNS:DNS服务是和HTTP协议位于应用层的协议,它提供域名到IP地址之间的解析服务。

    TCP协议对应于传输层

    HTTP协议对应于应用层。本质上二者没有可比性。HTTP协议是建立在TCP协议基础之上的,当浏览器需要从服务器获取网页数据时,会发出一次HTTP请求。HTTP会通过TCP建立起一个到服务器的连接通道,当本次请求需要的数据完毕后,HTTP会立即将TCP连接断开,这个过程是很短的。因此 HTTP连接是一种短连接,是一种无状态的连接。

    HTTP协议状态码:

    100~199:信息状态码,表示成功接收请求,要求客户端继续提交下一次请求才能完成整个处理过程;

    100(continue)继续发送;

    200~299:成功状态码,表示成功接收请求并已完成整个处理过程,常用200(OK)成功接收

    300~399:重定向状态码,例如请求的资源已经移动一个新地址,常用302、307和304

    400~499:客户端的请求有错误,常见404(Not Found),403(Fobidden)

    500~599:服务器端出现错误,常用500

    cookie、session异同:

    相同点:二者都是为了用来保存状态信息、保存客户端状态的机制、为了解决HTTP无状态的问题。

    不同点:

    1.cookie将状态保存在客户端;session将状态保存在服务器;

    2.cookies是服务器在本地机器上存储的小段文本,并随每一个请求发送至同一个服务器。网络服务器用HTTP头向客户端发送cookies,在客户端,浏览器解析这些cookies并将它们保存为一个本地文本,它会自动将同一服务器的任何请求缚上这些cookieds。session并没有字HTTP的协议中定义;

    3.session是针对每一个用户的,变量的值保存在服务器上,用一个session ID 来区分是哪个用户session变量,这个值是通过用户的浏览器在访问时返回给服务器的。当用户禁用cookie时,这个值也可以设置为由get来返回给服务器。

    4.对于安全性。在服务器的session机制更安全些,因为它不会任意读取客户存储的信息。

    HTTPS 是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL。

    展开全文
  • 通信协议-CAN总线

    2021-08-18 20:04:01
    首先了解一下,什么是...通常我们将通信与协议组成一个词来读,即:通信协议,那什么是通信协议呢?通信协议可以理解为两个对象想要完成数据交换,必须要遵守的规则。协议规定了数据从产生到接收所经历的历程以及中途必

    首先了解一下,什么是通信?

    通信是指两个对象之间能够进行信息的数据传输。

    通信的两个对象是指什么呢?

    如果不谈具体的领域,通信的两个对象可以是想要完成信息交换的任何对象。但是今天我们聚焦于汽车领域,我们所谈的对象是汽车内需要进行数据传输的各种ECU,更具体一点,是其内部的CPU,即通信为CPU与CPU之间的数据传输

    什么是协议?

    通常我们将通信与协议组成一个词来读,即:通信协议,那什么是通信协议呢?通信协议可以理解为两个对象想要完成数据交换,必须要遵守的规则。协议规定了数据从产生到接收所经历的历程以及中途必须要遵守的规则。

    OSI七层网络通信模型

    OSI(Open System Interconnection)开放系统互联模型,它是由ISO国际标准组织提出的概念模型,它将计算机网络体系结构划分为七层,每层都可以提供抽象良好的接口。它描述了两个主机之间(或者两个CPU之间)如果完成数据传输,所要经过的历程。
    在这里插入图片描述

    物理层

    物理层负责最后将信息编码成电流脉冲或其它信号用于网上传输。它由计算机和网络介质之间的实际界面组成,可定义电气信号、符号、线的状态和时钟要求、数据编码和数据传输用的连接器。

    数据链路层

    数据链路层通过物理网络链路提供数据传输。不同的数据链路层定义了不同的网络和协
    议特征,其中包括物理编址、网络拓扑结构、错误校验、数据帧序列以及流控:

    • 物理编址(相对应的是网络编址)定义了设备在数据链路层的编址方式;
    • 网络拓扑结构定义了设备的物理连接方式,如总线拓扑结构和环拓扑结构;
    • 错误校验向发生传输错误的上层协议告警;
    • 数据帧序列重新整理并传输除序列以外的帧;
    • 流控可延缓数据的传输,以使接收设备不会因为在某一时刻接收到超过其处理能力的信息流而崩溃。

    数据链路层实际上由两个独立的部分组成,介质存取控制(Media Access Control,MAC)和逻辑链路控制层(Logical Link Control,LLC)

    • MAC 描述在共享介质环境中如何进行调度、发送和接收数据。MAC 确保信息跨链路的可靠传输,对数据传输进行同步,识别错误和控制数据的流向。一般地讲,MAC 只在共享介质环境中才是重要的,只有在共享介质环境中多个节点才能连接到同一传输介质上。IEEE MAC 规则定义了地址,以标识数据链路层中的多个设备。
    • 逻辑链路控制子层管理单一网络链路上的设备间的通信,IEEE 802.2 标准定义了 LLC。LLC 支持无连接服务和面向连接的服务,在数据链路层的信息帧中定义了许多域,这些域使得多种高层协议可以共享一个物理数据链路。
    网络层

    网络层负责在源和终点之间建立连接,它一般包括网络寻址,还可能包括流量控制、错误检查等。
    相同 MAC 标准的不同网段之间的数据传输一般只涉及到数据链路层,而不同的 MAC标准之间的数据传输都涉及到网络层。网络层使不同类型的数据网络能够实现互联。

    传输层

    传输层向高层提供可靠的端到端的网络数据流服务。传输层的功能一般包括流控、多路传输、虚电路管理及差错校验和恢复:

    • 流控管理着设备之间的数据传输,确保传输端不发送比接收端处理能力大的数据;
    • 多路传输使得多个应用程序的数据可以传输到一个物理链路上;
    • 虚电路由传输层建立、维护和终止;
    • 差错校验包括为检测传输错误而建立的各种不同结构;
    • 而差错恢复包括所采取的行动(如请求数据重发),以便解决发生的任何错误。
    会话层

    会话层建立、管理和终止表示层与实体之间的通信会话。通信会话包括发生在不同网络应用层之间的服务请求和服务应答,这些请求与应答通过会话层的协议实现。它还包括创建检查点,使通信发生中断的时候可以返回到以前的一个状态。

    表示层

    表示层提供多种功能用于应用层数据的编码和转化,以确保以一个系统应用层发送的信息可以被另一个系统应用层识别。表示层的编码和转化模式包括公用数据表示格式、性能转化表示格式、公用数据压缩模式和公用数据加密模式:

    • 公用数据表示格式就是标准的图像、声音和视频格式。通过使用这些标准格式,不同类型的计算机系统可以相互交换数据;
    • 转化模式通过使用不同的文本和数据表示,在系统间交换信息,例如 ASCII 码(American Standard Code for Information Interchange,美国标准信息交换码);
    • 标准数据压缩模式确保原始设备上被压缩的数据可以在目标设备上正确的解压;
    • 加密模式确保原始设备上加密的数据可以在目标设备上正确地解密。
    应用层

    应用层是最接近终端用户的 OSI 层,这就意味着 OSI 应用层与用户之间是通过应用软件直接相互作用的。应用层并非由计算机上运行的实际应用软件组成,而是由向应用程序提供访问网络资源的 API(Application Program Interface,应用程序接口)组成,应用软件程序已经超出了 OSI 模型的范畴。应用层的功能一般包括标识通信伙伴、定义资源的可用性和同步通信。因为可能丢失通信伙伴,应用层必须为传输数据的应用子程序定义通信伙伴的标识和可用性。定义资源可用性时,应用层为了请求通信而必须判定是否有足够的网络资源。在同步通信中,所有应用程序之间的通信都需要应用层的协同操作。

    可以说OSI开放系统互联模型定义了通信双方之间的所有历程,但是这是在非常理想的情况下。而现实中,很少有一个协议可以完整的覆盖OSI模型,基本都是覆盖其中一部分。而此次我们所要讲述的CAN总线只覆盖了OSI七层模型中的物理层和数据链路层(参考ISO 11898和ISO 11519)
    在这里插入图片描述

    CAN总线通信机理

    CAN总线的定义以及背景本文忽略(网上一搜一大堆),我们直接从运行机理讲起:
    在这里插入图片描述
    如图上所示,其数据流向为:CPU——CAN控制器——CAN收发器——连接器(双绞线)

    • CPU:负责产生数据
    • CAN控制器:负责将CPU传输过来的数据加工成标准的数据格式,同时定义了数据传输的仲裁机制,错误校验以及过载通知等特点,是CAN协议的数据链路层
    • CAN收发器:将CAN控制器传输过来的信息编码(此信息编码已经由CAN控制器变为标准格式)转为电平信号,电平为差分信号,通过两根线之间的电压差表示逻辑0和1,是CAN协议的物理层
    • 连接器:CAN总线一般为双绞线,分CAN_H和CAN_L高低压线

    其具体流程为:
    发送时:CPU将二进制数据通过CAN控制器中定义好的接口发送给CAN控制器中的发送缓冲器(最多缓存3组数据),之后CAN核心模块会在发送缓冲器中拿取数据,对数据进行加工,生成CAN协议所规定的数据格式,之后将标准的数据格式发给CAN收发器,CAN收发器会按照规定将接收到的二进制信息编码转为对应的电平信号
    接收时:CAN收发器会收到CAN总线上发送过来的电平信号,根据规定,将电平信号转化为对应的二进制编码,然后传给CAN核心模块,CAN核心模块会对接收到的数据进行解析,将其中ID信息,数据信息解析出来,之后通过过滤器对ID进行过滤,过滤器中定义了允许通过的ID或者ID组,之后将通过的ID所对应的数据传入到FIFO中,这是一个队列,先进先出,最先传进去的数据,最先被CPU拿取进行处理。

    高速CAN和低速CAN

    在通信机理的图中,可能会有小伙伴发现,是存在两条CAN总线的,一条为低速CAN,一条为高速CAN,这两者有什么区别呢?
    正如其名称一样,在通信速率方面,一个传输速率低(最大125kbps),一个传输速率高(最大1Mbps),同样是CAN总线,为什么会有这样的区别呢?这是因为两个CAN协议(ISO 11898和ISO 11519)对物理层的定义不一样,也就是CAN收发器是不一样的,而CAN控制器是一样的,这就表示收到同样的信号编码,低速CAN和高速CAN所转化的电平信号是不一样的,同时电平的转化效率也是不一样的,这意味着同样时间内高速CAN可以进行更多次的电平转化,传输更多的数据。除了通信速率不一样外,高速CAN和低速CAN还存在一些其他差异,如下图:
    在这里插入图片描述

    CAN协议的5种数据类型

    上面我们仅仅是在物理层面对其进行了一个说明,但CAN协议最终的本质是数据的传输。那么CAN协议传输的数据是什么样的呢?在CAN协议中,根据作用不同,将数据分为5种数据类型,它们分别是:
    在这里插入图片描述

    CAN协议的数据结构

    通过上面我们知道了CAN协议中存在5种数据类型,分别有不同的作用。现在我们讲一讲每个数据类型的结构构成,在CAN总线中,只有满足这些结构的数据才能进行传输。

    在这里插入图片描述
    在对每个数据类型的大体结构有了一些了解后,我们对数据结构再进行更深一步的详细解析:

    数据帧

    之前我们讲CAN控制器会将CPU传输过来的二进制数据转为标准格式,所说的标准格式就是数据帧,CAN控制器会在原始数据的基础上加上起始位,ID还有校验等信息,补充的信息都有一定的含义,详解见下图:
    在这里插入图片描述

    遥控帧

    遥控帧是用于接收单元向具有同样的ID的发送单元请求数据的帧。遥控帧结构和数据帧结构基本一样,唯一不同就是没有数据段,因此,设置了RTR位,用来区分遥控帧和没有数据段的数据帧。
    在这里插入图片描述

    错误帧

    错误帧是用于接收和发送消息时检测出错误,进行错误通知的帧。
    在这里插入图片描述
    在CAN协议中,存在5种错误,只要触发这些错误,就会发送错误帧,此外多种错误可能同时发生。
    在这里插入图片描述
    这里需要强调几个特例,它们虽然满足上述的错误描述,但并不会被视为对应的错误类型

    1.位错误

    • 在仲裁段输出隐性电平,但检测出总线为显性电平时,将被视为仲裁失利,而不是位错误
    • 在仲裁段作为填充位输出隐性电平时,但检测出总线为显性电平时,将不视为位错误,而是填充错误
    • 发送单元在ACK段输出隐性电平,但检测到总线为显性电平时,将被视为其他单元的ACK应答,而非位错误
    • 输出被动错误标志(6个隐性位)但检测出显性电平时,将遵循错误标志的结束条件,等待检测出6个相同位的值(显性或隐性),并不视为位错误

    2.格式错误

    • 即使接收单元检测出EOF(7个位的隐性位)的最后一位(第8个位)为显性电平,也不视为格式错误
    • 即使接收单元检测出数据长度码(DLC)中9-15的值,也不视为格式错误

    我们上面讲述了错误的种类,即发送错误帧的条件,但触发了之后,什么时候开始发送错误帧呢?这里需要谈一下错误帧的时序
    在这里插入图片描述
    在输出错误帧时,我们将错误标志分为主动错误标志和被动错误标志,它们发送的电平是不一样的,我们应当如何区分主动还是被动呢?在CAN协议中,对主动还是被动,是有明确的定义的,其原理是内置一个计数值,根据计数值的大小来划分:
    在这里插入图片描述
    按照计数值的规则,总线除了主动错误和被动错误状态之外,还存在一种总线关闭态,这三者之间可以相互转化
    在这里插入图片描述
    我们一直提计数的规则,那计数的规则又是什么呢?或者说TEC和REC是怎么算出来的呢?在CAN中每种错误都对应着固定的分数,触发此错误,就会在原有的基础上加上此错误所对应的分数
    在这里插入图片描述

    过载帧

    过载帧是接收单元向其他节点通知暂缓发送新报文的帧。
    在这里插入图片描述

    帧间隔

    帧间隔是用于分隔数据帧和遥控帧的帧。数据帧和遥控帧可通过插入帧间隔将本帧与前面的任何帧(数据帧、遥控帧、错误帧、过载帧)分开。过载帧和错误帧前不能插入帧间隔。
    在这里插入图片描述

    CAN协议的特点

    1.多主控制

    在总线空闲状态下,所有单元都可开始发送消息。区别于主从机模式的总线,CAN总线中任何节点都没有绝对的控制权

    2.消息发送(仲裁机制)

    在总线空闲时,如果有多个节点同时发送数据,根据数据格式中的ID标识符进行仲裁比较,优先级高的ID节点可继续发送数据,优先级低的,也就是仲裁失利的ID节点则立刻停止发送,转为接收

    3.总线的拓展性

    与总线相连的节点没有类似“地址”的信息。因此,在总线增加新的节点时,连接在总线上的其他节点的软硬件和应用层都不需改变

    4.通信速度

    在同一条总线中,所有节点都必须设置为统一的通信速度

    5.远程数据请求

    可以通过遥控帧请求某个特定的节点发送数据

    6.错误检测、通知、恢复

    所有单元都可检测错误(错误检测)
    检测出错误的单元会立即同时通知其他所有单元(错误通知)
    正在发送消息的单元一旦检测到错误,会强制结束当前的发送。强制结束发送的单元会不断反复的重新发送此消息直到成功发送为止(错误恢复功能)

    7.故障封闭

    CAN可以判断错误类型是暂时性错误(如外部噪声)还是持续错误(如单元内部故障,驱动器故障,断线等)。当总线上发生持续错误时,可将引起此故障的单元从总线上隔离出去

    8.连接

    CAN总线可同时连接多个单元。连接的单元数理论上没有限制,但实际过程中会受到总线上时间延迟和电器负载的限制,连接数一般在30个左右,可改变通信速度进行调整。

    展开全文
  • 三、消息推送技术演进 Ajax技术是微信硬件平台框架中推荐的页面交互技术,但其本质还是遵守HTTP单向通信的规则,只是页面交互时不需要刷新整个页面。其双向通信实时性问题依然未能解决。 3.Websocket 5.CoAP CoAP是...
    消息触达能力是物联网(internet ofthings, IOT)的重要支撑,而物联网很多技术都源于移动互联网。 53582fd8cdf87be30a05893502929e06.png

    一、物联网架构和关键技术

    从开发的角度,无线接入是物联网设备端的核心技术,身份设备管理和消息推送技术是物联网云端的核心技术。而从场景体验的角度,除了前者,还要包括手机的前端开发技术。 IP互联架构已是物联网的事实标准(有关物联网TCP/IP层关键技术将另文阐述,敬请关注)。本文所讲的消息推送技术是基于TCP/IP协议的应用层协议技术。 我们先进一步抽象基于IP架构的物联网组成,如下图(忽略internet和路由等基础技术):
    40c4529f861dbba37018108915f32233.png
    可见,核心组成就是物联设备、网关和云端。物联设备分为两类,一类是其自身天然支持TCP/IP而能直接接入物联网,如wifi、GPRS/3G/4G(当然,还有即将到来的5G)等设备;另一类是其未能支持IP协议而需要网关(协议转换)来接入物联网,如Zigbee、蓝牙等设备。对于蓝牙设备而言,手机其实是一个网关。 手机通过自身的蓝牙跟外设蓝牙设备通信,并将消息通过手机的wifi或者3G/4G模块与云服务端通信。
    e9fde43f9bb599b0243a7a8da643747f.png
    从场景的角度来分析,物联网最终是给人类服务的,而手机是人类体验的最直接入口。因此在上图中可以单独添加手机组成部分,并将其与一般意义上的网关区分出来。这样物联网核心组成就是:设备端—网关—云端—手机。 从应用层开发技术的角度来看,物联网应用是基于TCP/IP架构建立,在屏蔽底层的网关协议转换的基础上,物联网应用的组成部分就是:设备端—云端—手机。 OK,有了以上的介绍,我们就从物联网应用的角度来分析设备、云端、手机直接的消息推送技术,它包括云端和设备端的双向通信技术、手机和云端的双向通信技术。

    二、移动互联网通信模式

    互联网有B/S和C/S两种通信模式。在移动互联网领域,APP是以C/S的方式以client的角色跟服务器server进行通信;而微信是一个超级APP,其是通过内置浏览器让用户进行H5编程以获得操控硬件设备的能力,因此微信硬件平台的通信模块是B/S模式。 移动互联网B/S技术跟传统互联网没有区别,微信内置浏览器支持H5,因此可以获得很好的平台扩展性。我们近期重点关注基于微信硬件平台的物联网,因此就围绕B/S模式的消息推送技术讲述其演进。 HTTP协议是B/S的基础,HTTP有GET和POST两种方式。
    b7f09d9c9d103948c7a027e014b906b9.png

    三、消息推送技术演进

    3e2eee8bd2d59c7b87e9d5efee2a79e0.png

    3a84a066066ddd432dd28080d771d231.png

    7f558d8de941d9c83f1361fd441e4950.png

    92314f1d6b8406a8dc9ed39ed6739dd8.png
    Ajax技术是微信硬件平台框架中推荐的页面交互技术,但其本质还是遵守HTTP单向通信的规则,只是页面交互时不需要刷新整个页面。其双向通信实时性问题依然未能解决。 3.Websocket

    0e17a1ab14c097b8b80f81eda3529d8f.png

    37edd65523d8af3ea5c7842669204f7e.png

    509a35de4ed7402400ffe99a78e3a3b0.png

    a97388b2d826b9b64c90a016fdbd992b.png

    8e2af8eb900884e944a0da5b1c5da204.png

    5.CoAP CoAP是受限制的应用协议(ConstrainedApplication Protocol)的代名词。其基于UDP协议,也就是在设备终端上只需要底层实现UDP协议,而不需要实现较为复杂的TCP协议。这种协议用得比较小。笔者也没有用C语言模拟过,就不展开了。
    377474b7b2235f78898ae0d754ff9ef2.png
    f6ac3265cb1c28a6f5e663e9f53de204.png
    展开全文
  • 网络协议常见问题2.1 详细说一下TCP三次握手的过程2.1.1 三次握手2.1.2 为什么两次握手不可以?2.1.3 为什么不需要四次握手?2.1.4 Server端接收到Client端的SYN后,为什么还要传回SYN?2.1.5 为什么发送了SYN,还要...
  • 通信协议

    2021-04-11 22:04:26
    web应用层网络通信协议,涉及概念 1.资源 2.媒体类型 3.URL 4.方法 5.报文 6.状态码 2.HTTPS: https则是一种加密的超文本传输协议,它与HTTP在协议的本质上是一样的,多了一个“s”,差异就在于对数据...
  • 串口通信协议

    2021-07-22 00:17:56
    串口通信协议是指规定了数据包的内容,内容包含了起始位、主体数据、校验位及停止位,双方需要约定一致的数据包格式才能正常收发数据的有关规范。在串口通信中,常用的协议包括RS-232、RS-422和RS-485。中文名串口...
  • 本帖最后由 360fans_hhd 于 2019-9-25 20:05 编辑大家好360安全浏览器10.1beta版本开始支持国密通信协议,需要测试国密功能的用户和开发者请阅读以下信息:如何启用国密通信协议功能1.下载10.1beta版的360安全浏览器...
  • Mysql的通信协议mysql的连接连接mysql操作是一个连接进程和mysql数据库实例进行通信。本质上来说是进程间通信。常用的进程通信方式有管道、命名管道、命名字、TCP/IP套接字、UNIX域套接字。mysql数据库提供的连接...
  • 通信协议学习过程

    2021-02-26 10:27:19
    范围0到65525,其中知名端口是众所周知的端口号,80分配给http,21端口分配给ftp,范围从0到1023,动态端口的范围是1024到65535,它不固定分配某种服务,而是动态分配,当进程需要网络通信服务时,它就会向主机申请...
  • 1.软件结构 C/S结构 :全称为Client/Server结构,是指客户端和服务器...2.网络通信协议 通过计算机网络可以使多台计算机实现连接,位于同一个网络中的计算机在进行连接和通信时需要遵守一定的规则。 在计算机网络中,这
  • 6. XMPP协议(即时通信) 7. JMS TCP/IP协议与Http协议的区别 TPC/IP协议是传输层协议,主要解决数据如何在网络中传输. HTTP是应用层协议,主要解决如何包装数据. 关于TCP/IP和HTTP协议的关系,网络有一段比较...
  • 网络通信协议基础

    2021-01-14 18:32:17
    网络通信协议基础一.操作系统基础二.网络通信原理2.1 互联网的本质就是一系列的网络协议2.2 osi七层协议2.3 tcp/ip五层模型讲解2.3.1 物理层2.3.2 数据链路层2.3.3 网络层2.3.4 传输层2.3.5 应用层2.3.6 socket2.3.7...
  • SPI通信协议详解(二)

    2021-11-16 22:28:35
    SPI是一种高速的,全双工,同步的通信总线,并且在芯片的管脚上只占用四根线,节约了芯片的管脚,同时为PCB的布局上节省空间,提供方便,正是出于这种简单易用的特性,现在越来越多的芯片集成了这种通信协议。...
  • mysql源码剖析–通信协议分析引言1 协议简介1.1 server->client握手协议1.2 client->server认证协议 引言 我们使用驱动连接mysql服务器,其协议通常以TCP/IP为主;此外,mysql还支持命名管道等方式交付。无论...
  • 网络通信协议了解

    2021-11-30 21:55:03
    文章目录1、网络通信了解1.1 CS/BS架构1.2 网络通信三要素1.2.1 IP地址1.2.2 端口号1.2.3 通信协议1.3 UDP协议1.4 TCP协议1.4.1 TCP协议特点1.4.2 三次握手1.4.3 四次挥手1.4.4 总结 1、网络通信了解 1.1 CS/BS架构 ...
  • 物联网通信协议一览

    2021-05-25 16:28:49
    物联网协议的选择 发布/订阅服务更适合物联网环境下通信 DDS、MQTT、AMQP和JMS都是基于发布/订阅模式,发布/订阅框架具有服务自发现、动态扩展、事件过滤的特点,它解决了物联网系统在应用层的数据源快速获取、物的...
  • 远程通信协议

    2021-02-05 22:18:48
    首先,用户访问一个域名,会经过 DNS 解析DNS(Domain Name System),它和 HTTP 协议一样是位于应用层的协议,主要提供域名到IP 的解析服务。我们其实不用域名也可以访问目标主机的服务,但是 IP 本身不是那么容易记...
  • Lin2.1通信协议入门解析_笔记(1)

    千次阅读 2021-01-05 22:00:14
    概述 本文对Lin的特征,物理层,协议层和应用层进行说明。
  • AT指令集感觉本质就是基于串口之上的一个通信协议罢了。只是可能用这种通信协议的很多,所以多次见到AT指令集,像wifi模块,蓝牙模块的设置。 所以既可以串口助手发送这些字符串 也可以代码里通过串口发送...
  • 以下是对常用电子通信接口及通信协议的总结 ↓通信何为通信?在英文中,通信用Communication表示,这个词也有交流的意思。实际上,通信和交流确实是一样的意思。不过在汉语中,交流常用来表示人与人之间的交流;而...
  • 上一篇文章中已经完成了spi_read模块程序的编写,剩余的按键检测消抖模块和串口发送模块分别在“三大通信协议(2)IIC 续”、“三大通信协议(1)UART”两篇文章中都有说明,这里直接给出程序代码。 `timescale 1...
  • 不可对比性RPCHTTP其他通信协议通信协议实质Q&A附录 RPC 和 HTTP 有哪些区别?通信协议、网络模型、服务治理框架… 之前有小朋友问 RPC 请求和 HTTP 请求有什么区别? 公司里服务之间使用 RPC 、对外服务的接口...
  • 说说网路通信协议

    2021-08-06 16:39:54
    通过上图,基于TCP/IP 4层模型来看,网路分层与网络通信协议对应关系为: 应用层 ——> http、telnet 、ftp 、smtp等应用协议 传输层 ——> tcp、udp等传输协议 网络层 ——> ip 网络协议(IP地址, ...
  • C/C++知识点之服务端使用c++实现websocket协议解析及通信小标2018-12-03来源 :阅读 2289评论 0摘要:本文主要向大家介绍了 C/C++知识点之服务端使用c++实现websocket协议解析及通信,通过具体的内容向大家展示,...
  • 在计算机网络中,这些连接和通信的规则被称为网络通信协议,它对数据的传输格式、传输速率、传输步骤等做了统一规定,通信双方必须同时遵守才能完成数据交换。 TCP/IP协议:传输控制协议/因特网互联协议...
  • redis 客户端与服务端通信的本质就是基于 socket 的网络编程, 通过字节流来传输数据, 在将数据转成字节流之前, 客户端需要将待传输的数据按照具体的通信协议格式组装一下, 本文主要来分析的是 redis 客户端是通过...
  • 带你了解tcp/ip、http、scoket之间的关系 什么是网络通信协议 常用的通信协议 协议之间的关系 什么是scoket 什么是网络通信协议   通信协议是指双方实体完成通信或服务所必须遵循的规则和约定。通过通信信道和设备...
  • 前面讲了IIC协议的介绍和IIC协议的编程实现,接下来我们来做一个关于IIC的小项目。 一、项目的实现功能: 1、使用STM32单片机用IIC协议对AT24C02进行数据写入。 2、使用STM32单片机用IIC协议对MPU6050、AT24C02进行...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 123,990
精华内容 49,596
关键字:

通信协议的实质