【Linux面经】OSI七层模型和TCP/IP四层体系结构

OSI七层模型

  1. 模型结构

    • 七层名称及顺序:物理层、数据链路层、网络层、传输层、会话层、表示层、应用层。面试官可能会直接让你写出这七层的名称和顺序,或者问到"OSI模型中,传输层上面一层是什么"等问题。

    • 各层功能:

      • 物理层:负责在物理媒体上传输原始的比特流。例如,面试官可能会问"物理层的主要职责是什么",答案是传输原始比特流,包括定义物理接口的电气特性、机械特性等。

      • 数据链路层:将物理层传来的比特流组装成数据帧,提供可靠的数据传输服务。可能会问到"数据链路层如何实现可靠传输",答案是通过差错控制(如循环冗余校验CRC)和流量控制(如滑动窗口机制)等技术。

      • 网络层:负责将数据包从源主机传输到目的主机。常见的问题有"网络层的主要功能是什么",答案是路由选择和转发数据包,以及提供逻辑地址(如IP地址)。

      • 传输层:提供端到端的可靠或不可靠通信服务。例如,面试官可能会问"TCP和UDP分别属于哪一层",答案是传输层。还会问到"TCP和UDP的区别",TCP是面向连接、可靠传输的,UDP是无连接、不可靠传输的。

      • 会话层:负责建立、管理和终止会话。可能会问到"会话层的作用是什么",答案是控制通信会话的建立和结束,例如通过三次握手建立TCP连接。

      • 表示层:负责数据格式的转换和加密解密等。例如,面试官可能会问"表示层的主要功能有哪些",答案是数据格式转换(如ASCII码和EBCDIC码之间的转换)、数据加密和解密等。

      • 应用层:为用户提供各种网络服务,如HTTP、FTP、SMTP等。可能会问到"常见的应用层协议有哪些",答案是HTTP、HTTPS、FTP、SMTP、POP3等。

  2. 协议与模型对应关系

    • "TCP/IP协议族中的IP协议对应OSI模型的哪一层",答案是网络层。
  3. 数据封装与解封装过程

    • 封装过程:从应用层到物理层,数据依次被封装成应用层数据单元、表示层数据单元、会话层数据单元、传输层数据单元(TCP或UDP报文)、网络层数据单元(IP数据报)、数据链路层数据单元(帧)、物理层的比特流。面试官可能会让你描述这个封装过程,或者问"在封装过程中,传输层添加了什么信息",答案是端口号,用于标识应用层的不同进程。

    • 解封装过程:从物理层到应用层,逐层去掉封装信息,最终将数据交给应用层。

TCP/IP四层体系结构

  1. 模型结构

    • 四层名称及顺序:链路层(也叫网络接口层)、网络层、传输层、应用层。面试官可能会让你写出这四层的名称和顺序。

    • 各层功能:

      • 链路层:负责将网络层传来的IP数据报封装成帧,在链路上传输。可能会问到"链路层的主要功能是什么",答案是帧的封装和解封装、差错控制等。

      • 网络层:核心是IP协议,负责将IP数据报从源主机传输到目的主机。常见的问题有"IP协议的主要功能是什么",答案是提供无连接的、不可靠的传输服务,以及路由选择。

      • 传输层:主要协议是TCP和UDP。面试官可能会问"TCP和UDP的区别",TCP是面向连接、可靠传输的,提供流量控制、拥塞控制等机制;UDP是无连接、不可靠传输的,但传输速度快。

      • 应用层:提供各种网络应用服务,如HTTP、FTP、SMTP等。可能会问到"常见的应用层协议有哪些",答案是HTTP、HTTPS、FTP、SMTP、POP3等。

相关推荐
未济4 天前
linux 配置环境变量
linux
傲世仙尊4 天前
目录即文件-Ext文件系统收尾篇
linux·c语言
虎头金猫4 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
晨米酱4 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
_艾伦 耶格尔.4 天前
进程间通信
linux
Liuqy-054 天前
Linux IO编程——静态库、动态库
linux
wuyk5554 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
彧azz4 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
-梅4 天前
linux(8) 软硬链接
linux·运维·服务器
AIgorithmGEEK5 天前
[Linux]线程三部曲(上):一个执行流的诞生——从操作系统一路拆到 pthread_create
linux·线程·pid