跳到正文

分层、协议、服务与接口

40 分钟

分层、协议、服务与接口

上一课的一次端到端传输同时涉及应用数据、分组、帧和物理链路。若所有功能写在一个巨大模块中,任何链路或应用变化都会牵动全局。本课只解决分层关系:协议是同层实体间的水平规则,服务是下层向上层提供的能力,接口是上层访问服务的位置。

发送端数据自上而下逐层封装,接收端自下而上解封装。对等层看似“直接交谈”,实际数据仍通过下层一路传输。协议三要素是语法、语义和同步:字段格式属于语法,字段表示什么属于语义,谁先发、超时后怎样做属于同步。

用一次 500 byte 应用消息量化封装。传输层加 20 byte 首部,网络层再加 20 byte,链路层首尾合计 18 byte,线上帧长

协议开销占线上字节 。物理层把整个帧编码成比特或信号,并不再添加一个可供对端“拆下”的普通协议首部。题目说“只有物理层不参与封装”时,应理解为教材的协议数据单元视角。

分层的收益是模块化、标准语言与异构互通;代价是首部开销、层间重复功能和跨层优化受限。服务与实现也要分开:OSI 可规定某层应提供可靠服务,却不规定必须使用哪一段具体代码。TCP/IP 则来自可运行协议族,模型与协议实践结合更紧。

错解反馈:协议不是相邻两层之间的约定,那是接口关系;服务也不是对等层之间传递的报文。记忆口诀若不能回答“水平还是垂直”,遇到变式就会失效。自检可拿 TCP:两端 TCP 实体遵循同一协议,向应用提供字节流服务,应用通过套接字接口访问。

练习:1000 byte 应用数据经过同样三层首部,线上共有多少字节?答案是 1058 byte,开销率 。消息变大后固定首部比例下降。下一课把分层思想落到 OSI 七层和 TCP/IP 四层,按职责而不是口诀完成映射。

Practice

本课练习

1

先独立作答再提交;编程题会在隔离沙箱中真实编译、运行并对拍。

1随课验收:分层、协议、服务与接口 2

1000 byte 数据加 20、20、18 byte 开销,线上共多少 byte?

登录 后答题可以领积分