一切通信网络都遵循OSI七层协议标准:Physical Data Net Transport Session Presentation Application

OSI:Open Systems Interconnection开放式系统间互联

七层OSI VS 五层 VS 四层TCP:

七层OSI VS 四层TCP:

一张很牛的TCP/IP协议图:

参考:https://zhuanlan.zhihu.com/p/152590226

1、物理层协议

USB:物理、链路两层
以太网双绞线:物理、链路两层。有线(EIA/TIA-232-E,EIA-422,EIA/TIA-485-A)
高低电平:物理层

更多关于:RS-232C / RS-422 / RS-485
ANSI/EIA-232-E=EIA-232=RS-232C
https://www.contec.com/cn/support/basic-knowledge/daq-control/serial-communicatin/

2、数据链路层

2.1 协议

LLC:Logical Link Control逻辑链路控制;
MAC:Medium Access Control媒介访问控制;
USB:物理、链路两层
以太网双绞线:物理、链路两层

CAN总线的通讯协议中有5种类型的帧:

参考:
https://blog.csdn.net/qq_38880380/article/details/81113582
https://blog.csdn.net/FormalLn/article/details/106149826

2.2 功能

差错控制

2.3 差错控制

what:发现错误(差错检测),处理错误(差错处理)
利用差错编码(奇偶校验码,循环冗余码,海明码,校验和)进行差错检测,并基于某种差错处理机制(检错重发、前向纠错、反馈校验和检错丢弃)进行差错处理

(1)差错编码

差错编码的基本原理:就是在待传输(或待保护)数据信息的基础上,附加一定的冗余信息,该信息可建立起数据信息的某种关联关系。将数据信息以及附加的冗余信息一同发送到接收端,接收端可以检测冗余信息表征的数据信息的关联关系是否存在,如果存在则没有错误,否则就有错误。

典型的差错编码:

  • 奇偶校验码:一般指1位
    • 1bit奇偶校验位可以检测出奇数位差错,检测不出偶数位差错;2bit奇偶校验位可以检测奇数位差错和部分偶数位差错。
    • 奇偶检验码可以实现50%的检错率,当然漏检率也高达50%。
    • 优点是编码简单、编码效率高,是开销最小的检错编码,但缺点是检错率不高。
  • 循环冗余码(CRC,Cyclic Redundancy Checksum):也称为多项式编码(polynomial code)
    • 广泛应用于实际网络(以太网,802.11 WiFi,ATM)
  • 海明码(Hamming code):
    • 在数据通信以及数据存储系统中得到广泛应用。
    • 海明码只能检测出2位错,纠1位错(因此不要问如果3位错怎么办等幼稚问题)。汉明码是典型的线性分组码,可以实现单个比特差错纠正。
    • 海明码默认进行偶校验(除非特殊说明使用奇校验)。
      海明码是一串由0和1组成的序列(除01外没有其他的值,记住了!这是重点)
    • 海明码教程:https://www.cnblogs.com/godoforange/p/12003676.html
  • 校验和(Internet Checksum):提供差错检测,但它对差错恢复无能为力。

参考:
https://zhuanlan.zhihu.com/p/612162113
https://blog.csdn.net/qq_39583450/article/details/113848573

(2)差错处理机制=差错控制方式

典型的差错控制方式包括检错重发、前向纠错、反馈校验和检错丢弃4种基本方式。

差错处理机制

  • 检错重发
    • 在计算机网络中应用广泛。
    • 对于出错的数据,接收端请求发送端重发数据,直到收到正确数据为止。
  • 前向纠错(FEC,Forward Error Correction)
    • 接收端进行差错纠正
    • 需利用纠错编码,这类编码不仅可检错,还可定位错误并直接纠正。
    • 适用于单工链路或者对实时性要求比较高的应用。
  • 反馈校验
    • 接收端将收到的数据原封不动发回发送端,发送端通过比对接收端反馈的数据与发送的数据可以确认接收端是否正确无误接收了已发送的数据。
    • 如果发送端发现不同,则认为接收端没有正确接收到发送的数据,则立即重发数据,直到一致为止。
    • 优点:原理简单,易于实现,无须差错编码;缺点:需要相同传输能力的反向信道,传输效率低,实时性差。
  • 检错丢弃
    • 检测出错误数据后,直接丢弃,不纠错
    • 适用于容许一定比例的差错存在,只适用于实时性要求较高的系统。(如实时多媒体播报应用)

参考:
https://juejin.cn/post/7024376543291899918

3、网络层协议

4、传输层协议

COM:Cluster CoMmunication port,串行通讯端口,简称串口
CAN:Controller Area Network,控制器局域网络。CAN总线。
CAN在ISO中的定义:

CAN通信协议栈:

参考:https://zhuanlan.zhihu.com/p/403086300

5、会话层协议

6、表示层协议

7、应用层协议

TELNET,SSH,SMTP,POP3

基于TCP的应用层协议:

FTP:FTP使用2个端口:TCP端口21,是个侦听端口;TCP端口20或更高TCP端口1024以上用于源连接。
HTTP、HTTPS:拉模式
WebSocket:推模式

gRPC:Google远程过程调用,Google Remote Procedure Call。应该还是应用层协议,基于的是另一个应用层协议HTTP2.0。

参考:https://info.support.huawei.com/info-finder/encyclopedia/zh/gRPC.html

基于UDP的应用层协议:

NFS: 网络文件系统
TFTP: 简单文件传输协议。TFTP仅使用一个具有停止和等待模式的端口:端口69。
DHCP: 动态主机配置协议
BOOTP: 启动协议(用于无盘设备启动)
DNS: 域名解析协议
SNMP:大多数基于UDP,常用UDP端口号161/162。有时也基于传输层安全性(TLS)或数据报传输层安全性(DTLS)协议。

参考:https://info.support.huawei.com/info-finder/encyclopedia/zh/SNMP.html

其他应用层协议,没有传输层:

1553B:拉模式。基于高低电平,直接物理层

此外,还有自己写UDP程序时自定义的应用层协议。

posted on 2022-10-12 14:25  西伯尔  阅读(142)  评论(0编辑  收藏  举报