任务二 表示层11
知识点
1.表示层是什么
- 表示层(Presentation Layer)是 OSI 七层模型中的第 6 层,位于应用层之下、会话层之上。
- 表示层关心传输信息的语法和语义。
- 表示层负责网络中数据表示方式的内容,包括:转换(数据格式)、加密、压缩。
示例 场景:计算机A(ASCII编码),计算机B(EBCDIC编码)
- 应用层(A):写好报文,内容是
HELLO。应用层只管语义,只知道报文含义是“发送HELLO”,直接交给下层。
👉 这一步:应用层写好了报文。 报文在A内部是ASCII编码:
48 45 4C 4C 4F。
- 如果没有表示层:比特流原样传到B。B的应用层拿到这串编码,在本机EBCDIC编码体系里,
48 45 4C 4C 4F并不代表HELLO,对方看不懂。
👉 说明:报文虽然写好了,但对方不能正确理解。
- 表示层介入(核心任务)
发送方A的表示层,把本地ASCII编码,转换成网络标准传送语法;接收方B的表示层,再把标准编码转换成本机EBCDIC编码。
最后交给B的应用层时,B的应用层读到
HELLO,读懂报文含义。
2.表示层的主要功能是什么
- 语法转换:将抽象语法转化为传送语法。涉及内容:代码转换、字符转换、数据格式修改、数据压缩、数据加密
- 语法协商:协商确定传送语法
- 连接管理: 管理数据传输和同步控制、终止连接。
1)数据格式转换
不同计算机体系结构、操作系统、编程语言对数据的表示可能不同。
表示层负责把它们转换成通信双方都能理解的格式。
例如:
- 整数、浮点数的表示转换
- 大端序和小端序转换
- 不同文件格式之间的转换
2)字符编码转换
常见字符编码包括:
- ASCII
- EBCDIC
- Unicode
- UTF-8
- UTF-16
- GBK
表示层负责字符编码的转换,保证文本不乱码。
3)数据加密与解密
表示层可以为数据提供保密性,例如在发送前加密,接收后解密。
现实中,TLS/SSL 常被拿来举例,因为它提供加密功能。
但严格说,TLS 在实际协议栈中位于应用层和传输层之间,不完全等同于 OSI 的表示层。
4)数据压缩与解压缩
为了减少传输数据量,表示层可以对数据进行压缩。
例如:
- 文本压缩:gzip
- 图片压缩:JPEG、GIF、PNG
- 音视频压缩:MPEG、MP3、H.264
因为不同系统的数据表示可能完全不同:
- 字符编码不同:ASCII、EBCDIC、UTF-8、GBK
- 字节序不同:大端、小端
- 文件格式不同:JPEG、PNG、GIF
- 数据结构表示不同:JSON、XML、ASN.1、Protobuf
- 安全与效率需求:加密、压缩
如果每个应用层协议都自己处理这些,会非常重复:
- HTTP 要自己处理编码、压缩、加密
- SMTP 也要自己处理
- FTP 也要自己处理
- 每个 RPC 协议也要自己处理
3.表示层与相邻层的关系是什么
| 层次 | 关注点 |
|---|---|
| 应用层 | 业务语义和交互规则,如 HTTP 请求网页 |
| 表示层 | 数据语法和表示形式,如 UTF-8、JPEG、加密、压缩 |
| 会话层 | 对话管理,如建立、维持、同步会话 |
| 传输层 | 端到端进程通信,如 TCP/UDP |
可以这样理解:
- 应用层说:“我要发一个网页请求。”
- 表示层说:“这个请求里的文本用 UTF-8 编码,内容要不要压缩,要不要加密。”
- 会话层说:“我们之间的对话怎么开始、怎么维持、怎么结束。”
- 传输层说:“我负责把数据从你的进程送到对方的进程。”