今天看winsock的时候注意到了一个特征,就是在同一个物理链路上使用了多个socket, 分时传输。这和usb传输里用endpoint很相似. 再进一步考虑,其实这是由他们包传输的特征决定的.
于是就想当然地归纳了包传输方式可以共有的一些特性:
1.由于使用了端口/端点这样的概念, 所以可以在一条物理连接上建立多个pipe, 同时进行多路传输. 而像传统的UART, I2C就没有这个概念.
2. 包传输就必须有包的header, 那么只要在header里添加或修改内容,就可以衍生/衍变成新的协议, 网络上的那堆协议好理解, 我们看看USB, 实际上我们通过在USB传输包的header里添加一些内容, 就可以模拟成serial或者ethernet了, 这也算是添加新协议吧..
3. 如果无限制地添加协议, 一层一层地把packet整个包作为新协议的数据区,然后再添加新的header, 那么最后会导致整个包的有效数据所占比例越来越低, 传输低效.
4. 在解包操作时, 对于当前协议内无法解析的内容, 是不可以进行操作的,而必须原封不动地传到下一层协议里.
暂时还没想到更多包传输的例子和共有特点, 如果谁还能想到一些请跟帖
浙公网安备 33010602011771号