mintist
2015-10-02 10:16:40 +08:00
对协议的理解:
首先,协议就是不同单元通信的约定。
比如 A 与 B 很简单的一次通信:
A <------> B
A 和 B 约定一个协议 1 说:我这边传的字符数据,且传过去的每个字符只要- 1 就可以原字符,然后 B 将 A 传过来的字符数据按照字符分别放在缓冲区,然后再传入一个- 1 函数,最后就通过以上的“协议”完成了通信。
当然,真实的协议往往包括,起始,终止,校验,数据,长度等冗余信息来应对较复杂的情况。
然后,不同的协议有不同的使用场景,且越上层设计就越复杂,考虑的因素就越多,如速度,方便和重传机制等等。
比如用于 SoC 内部的 AMBA 总线,主要用于不同单元的互斥访问。
再比如用于一块 PCB 板子内通信 IIC 和 SPI ,主要用于主控单元与外围器件的通信,前者具有线少一主多从的优点,但是速度慢;后者占用线多,但是速度快。(应根据使用场景决定)
再比如用于不同主体之间通信的 USB , Ethernet 和 WiFi ,主要用于数据的传输,速度快;中着就可以组网;后者使用比较方便。
最后,他们多说 TCP/IP 协议是很复杂的, Learn something the Hard Way ,学会这个就会对其它协议的设计理解起来就相对比较容易。