面试题:计算机网络中的七四五是什么?
计算机网络中说的七四五是指:OSI 七层模型、TCP/IP 四层模型、OSI 与 TCP/IP 的综合五层模型
OSI 七层模型
OSI 将计算机网络分为了七层,每一层抽象底层的内容,并遵守一定的规则。基于 OSI 模型,网络中的节点(物理设备)得以进行通信。
同一层中的各个节点层次结构和功能相同。
同一节点相邻层通过接口通信。
每一层使用底一层提供的服务,并向顶一层提供服务。
同一层中的不同节点按照协议实现对等层的通信。
层(从底层到顶层) | 数据单元 | 作用 | 可能会出现的问题 |
---|---|---|---|
物理层 | 比特 | 通过网线、电缆等方式将设备物理连接 | 电缆失效(电线损坏、连接器村换等) 网络硬件设备故障(电路损坏) |
数据链路层 | 帧,包括帧头(源节点和目的节点的 MAC 地址)、主体(传输的比特)、帧尾(检测错误信息) | 定义了数据的传输格式(将比特流封装为数据帧); 进行了线路规划(谁交流?交流多久?传输信息的持续多久?)与流量控制(传输的数据量是多少?); 进行了错误检测与校正(主要关注检测)。 总:允许局域网内的各物理设备彼此互相通信。 | 可能发生在物理层的所有问题 物理设备之间的会话建立失败 帧冲突 |
网络层 | 数据包,一个数据包封装了一个帧及设备 IP 地址。数据包中的数据又称负载。 | 通过路由器在网络间进行通信(路由器可以跨越多个网络移动数据包) | 可能发生在之前层的所有问题 路由器或物理设备故障 IP 地址配置错误 可以使用 ping 命令进行错误排查 |
传输层 | 数据包(对于 TCP);数据报(对于 UDP) | (网络层的 MAC + IP 可以确定数据包发送给哪个设备,而传输层中)通过 TCP 或 UDP 将数据发送给设备的特定端口,从而建立数据通信(套接字 = IP 地址 + 端口号) | 可能发生在之前层的所有问题 端口被封锁(防火墙、访问控制列表 ACL) 服务质量设置(Qos) |
会话层 | 数据 | 负责建立、维持和终止两个用户应用程序之间的连接。会话层响应来自表示层的请求,并向传输层发起请求。 | 服务器不可用 服务器配置失误 会话断连、超时 |
表示层 | 数据 | 负责数据格式化(字符编码控制、将数据转换为另一种格式,如图片)与数据加密(SSL 或 TLS 协议,确保传输的数据抵御恶意用户的攻击) | 驱动程序不存在或损坏 OS 用户访问级别错误 |
应用层 | 数据 | 负责支持用户程序使用的服务 | 可能发生在之前层的所有问题 软件应用程序配置不正确 |
补充说明
物理层:根据物理设备的发送、接收比特的形式,分为单工(只能收或只能发)、半双工(可以收也可以发,但不能同时进行)、全双工模式(可以同时进行收发)。
数据链路层:数据链路层包含两个子层,介质访问控制层(MAC)(负责分配唯一标识网络设备的硬件标识号 —— MAC 地址)、逻辑链路控制层(LLC)(处理帧的寻址与流量控制)。
网络层
- 物理设备一旦连接到因特网,就会被赋予一个因特网协议(IP)地址。IP 地址分为 IPv4 和 IPv6 两种形式。IP 地址通过地址解析协议(ARP)与物理设备的 MAC 地址关联,因此 APR 可以用物理设备的 IP 地址解析出 MAC 地址。
- 路由器通过连接到网络服务商(ISPs)提供因特网访问;同时记录了其所连接的网络,以及这些网络中路由数据包的路径。
- 网络层的传输是无连接的,只会将数据发送给对应的地方,也仅此而已。
传输层:传输层有两个重要协议,传输控制协议(TCP)、用户数据报协议(UDP)
协议 类型 特点1 特点2 传输控制协议 面向连接的协议 优先保证数据质量而不是传输速度(需要进行握手) 可以确保数据包以正确的顺序交付或重组 用户数据报协议 无连接的协议 优先保证传输速度而不是数据质量(不需要进行握手) 并非所有的数据都能成功传输,也无从得知哪些数据传输失败;如果信息被拆分为多个数据包,这些多个数据包必须包含一个序列号,否则无法正确重组数据包 会话层:根据所使用的应用程序,会话可能支持单工,半双工,全双工模式。此外,会话层及以上的网络层关注:如何与用户应用程序建立连接 + 如何向用户展示数据。
应用层:应用层包含若干协议,文件传输协议(FTP)、安全壳协议(SSH)、简单邮件传输协议(SMTP)、因特网消息访问协议(IMAP)、域名服务(DNS)、超文本传输协议(HTTP)
TCP/IP 四层模型
TCP/IP 四层模型可以看作是对 OSI 七层模型的简化。
层(从底层到顶层) | 功能 |
---|---|
数据链路层(网络访问层、网络接口层) | 包含了 OSI 物理层和数据链路层,通过物理手段连接设备,并对比特流数据进行分组 |
网络层(IP 层) | 处理 IP 数据包的传输,建立主机间通信 |
传输层 | 定义端口,标识应用程序,实现端口到端口的通信(两台主机间进程通信)包含 TCP/IP 协议 |
应用层 | 包含 OSI 会话层、表示层和应用层,负责建立连接、数据格式转换、呈现给用户内容 |
五层网络模型
五层网络模型结合了 OSI 和 TCP/IP 模型。
层(从底层到顶层) | 功能 |
---|---|
物理层 | 通过物理手段连接设备,确保数据可以在各种物理媒介上传输,为数据传输提供环境 |
数据链路层 | 将数据包装成帧,便于后续的数据传输 |
网络层 | 处理 IP 数据包的传输,建立主机间通信 |
传输层 | 定义端口,标识应用程序,实现端口到端口的通信(两台主机间进程通信)包含 TCP/IP 协议 |
应用层 | 包含 OSI 会话层、表示层和应用层,负责建立连接、数据格式转换、呈现给用户内容 |
REFERENCES
https://www.freecodecamp.org/chinese/news/osi-model-networking-layers/
https://cloud.tencent.com/developer/article/2183899