协议对比

木有对比就不知道差距。

只要一个协议定义了phy和mac,那么这个协议就可以正常传输数据了。因为
定义了物理层phy,就是把物理传输线,连接方式,01代表的电压值等明确了。
定义了链路层mac(llc),就是把最底层的帧也定义了。帧的定义包括起始位,停止位,数据,地址等。
至于把其他高层帧再装进链路层帧,那就只是软件逻辑了。比如把IP帧装进以太网帧,把IP帧装进PPP帧等。想装什么就装什么,比如也可以把IP帧装进can帧,装进串口帧,装进iic帧等,根据需要而已。

学习一个协议的最快的方法就是直接看帧的格式。某帧的每个字段都有特定的功能的。
学习一个协议栈最快的方法就是也是直接看帧,同时看每层协议的帧是怎么包含在下一次协议的帧的payload里面的。

osi参考模型 7层

Application
Presentation
Session
Transport
Network
Data link
Physical

tcp/ip 4层

app
transport
internet
link

各层功能de实现:
phy:除了cpu集成,还可以由专门的收发器芯片来实现,比如lan8720等
internet:

pcie 3层

transaction
data link
physical

pcie通信网络由如下角色组成
root complex
switch
endpoint


zigbee 4层

app
nwk
mac
phy


zigbee通信网络有如下角色组成
coordinator
router
enddevice

can 3-2层

object
transfer
phy

各层功能de实现:
phy:除了cpu集成,还可以由专门的收发器芯片比如TJA1043,MCP2551等来实现,比如用于接口电平的转换等
transfer:

can传输特点:
属于多主模式,即总线上所有站点都可以主动发送数据,冲突检测由硬件控制器完成。这一点让同是两根线的485很羡慕,如果大家都发,485总线就崩溃了。
帧的定义很完备,里面包括地址,数据,校验等。这一点485也很羡慕,485站点还得借助modbus等才能完成同样的功能。
半双工。

spi 2层

phy:mosi,miso.clk.css
mac:all data

帧格式
是纯数据

spi数据传输特点:
属于主从网络,单主模式。一个master和n个slave组成spi网络。
属于同步传输,master产生clock信号。
和iic不同的是,由于spi的master通过css引脚来选择和哪个slave传输数据,所以在spi帧里面就没有slave的地址,同时连iic帧里的start和stop位也没有,完全是data数据。
连接到网络里的所有slave都能监听到总线的数据,但是理论上是只有css被选中的slave才会去响应。
通过mosi和miso,可以收发同时进行,是全双工。


iic 2层

mac
phy
主机发送数据时的帧:

主机接收数据时的帧:


iic数据传输特点:
iic传输属于同步传输,即有专门的clock脚控制数据的传输,这个clock信号有master控制
iic属于主从网络,单主模式,可以多个slave设备。iic数据传输只能由master主动发起
连接在同一个iic总线上的所有slave设备,都可以监听到master发出的帧。但是帧里面有地址字段表明当前帧需要哪个从设备响应。

uart   2层

各层功能de实现:
mac: 数据链路层,定义数据在物理层上的传输格式,也就是起始位、数据位、停止位。
phy:定义多少v代表1,0,有TTL串口、RS232串口、RS485串口,可以由专门的收发器芯片比如max232等来转换
232的帧格式


对于485而言,其帧格式仍然与232一样,只不过其phy(物理信号)不一样,485是差分传输。相比232最远能传30米,485差不多可以传1500米。
uart传输特点:
uart是异步传输,即没有一个master产生的clock信号去控制数据的传输。但是发送者和接收者都使用相同的波特率去发或接数据,来同步传输信号。
uart的帧里面不包含设备地址,这样导致不能组网。如果要实现组网功能,就得再套一层协议,加上地址字段才行。比如modbus.
modbus的网络里面,属于主从模式,即所有数据的传输必须是master主动去读或写。网里面的所有从设备都能监听到master发生的帧,但是modbus帧里面有站地址字段,
指定了需要哪个从站响应这个命令。

usb x层



hdmi x层

phy

各层功能de实现:
phy:除了cpu集成,可以由专门的收发器芯片比如TJA1043,MCP2551等来实现,比如用于接口电平的转换等

ir x层

phy

sata x层

phy





一对一的ppp帧格式 VS 一对多的以太网mac帧格式

现在全世界使用得最多的数据链路层协议是点对点协议 PPP (Point-to-Point Protocol)。
用户使用拨号电话线接入因特网时,一般都是使用 PPP 协议。







可以看出为什么ppp不能像以太网那样一对多了:mac帧里面可以指定不同的目的地址,而PPP帧没有

ppp属于广域网范畴,MAC是局域网范畴,按实际情况和环境就选用不同的协议,ppp支持的网络结构只能是点对点,mac支持多点对多点。
以太网中用mac,远程的话就用ppp(如ADSL拨号,就是基于ppp的)。
PPP在封装方式以以太网的封装方式不同,它没有以太网帧所要求的MAC地址,它通过自身的协商过程实现点到点的数据传输。
这类广域网协议,其帧的结构与以太网的完全不同,当然,PPPOE除外,因为PPPOE是基于以太网上的,即以太网mac帧的里面包装的是pppoe协议。

ppp和pppoe的协议区别:

PPP的典型步骤为:
1、LCP:链路控制协议,主要商议转义规则和选择客户授权协议,典型4个报文
2、PAP或CHAP:使用其中一种协议申请授权,典型2个报文
3、IPCP:获取IP地址,DNS地址等(注意没有网关和子网掩码),典型3个或5个报文。

而PPPOE的典型步骤为:
1、PPPOE的发现阶段:典型4个报文,目的是获取对方的MAC地址和确定一个sessionid。
2、PPPOE的会话阶段:包含上述所有PPP步骤。
由此可见,PPPOE是在以太网链路上通过发现阶段打通一条PPP链接,再进行PPP协议。


局域网中通过dhcp获取IP地址,广域网(ppp协议)中通过ipcp协议获取IP地址

refer to 
计算机网络 第5版 谢希仁


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值