分层原则
根据不同层次的抽象分层。
每层应当实现一个定义明确的功能。
每层功能的选择应该有助于制定协议的国际标准。
各层边界的选择应尽量减少跨过接口的通信量。
层数适中。
两种模型
OSI参考模型(Open Systems Interconnection)开放系统互联:模型有普遍意义,但是协议没人用
TCP/IP参考模型:模型本身没用,但是协议广为流传
OSI模型
1-物理层(physical layer)
传输原始比特流
2-数据链路层(data link layer)
将原始传输设施变成一条无差错线路(将真实错误隐藏,使得网络层看不到)
形成数据帧(差错控制 data frame)
流量控制(避免发送方数据包“淹没”接收方 flow control)
控制对共享信道的访问(MAC层完成,数据链路层的一个特殊子层)
3-网络层(network layer)
子网运行控制
确定分组从源端到目的端的路由选择(路由表:静态(可几乎不变,也可会话开始时决定),动态(根据网络负载状况灵活决定))
拥塞控制(避免子网包含太多数据包 congestion control)
网络服务质量(延迟、传输时间、抖动 QoS)
4-传输层(transport layer)
从会话层接收数据,在必要时把它分成较小的单元,传递给网络层,并确保到达对方的各段信息正确无误
真正的“端到端”的层(1-3层链式连接(很多个),4-7层端到端(2个))
5-会话层(session layer)
允许不同机器上的用户建立会话
对话控制(记录由谁来传递数据 dialog control)
令牌管理(禁止双方同时执行一个关键操作 token management)
同步功能(在长传输中设置断点,便于崩溃突发后恢复 synchronization)
6-表示层(presentation layer)
表示层关心的是所传输的信息的语法和语义,而表示层以下各层只关心可靠地传输比特流
用一致同意的标准方法对数据编码
7-应用层(application layer)
包含大量人们普遍需要的协议