Linux下OSI七层模型与TCP/IP协议栈及每层结构详解
学习Linux,就算是像小编我这样的小萌新,也知道OSI模型。什么?!你不知道!!! 好吧,这篇秘籍拿走,不谢~~~
一、两个协议
(1)OSI 协议模型(7层)国际协议 PDU:协议数据单元对等层次之间传递的数据单位
OSI协议(7层) 国际协议 | PDU 单位 | 功能 | 实例 |
7 应用层 application | message | 为应用程序进程(例:mail、终端防伪)提供网络服务;提供用户访问界面 提供用户身份验证 | HTTP Telnet |
6 表示层 presention | message | 确保接受系统可以读出该数据 格式化数据;编码 构建数据、提供加密解密;压缩解压缩 协商用于应用层的数据传输语法 | ASCLL、EBCDIC JPEG |
5 会话层 session | 消息 message | 建立、管理和终止在应用程序之间的会话session | 操作系统 应用读取 |
4 传输层 transport | 数据网 segment | 终端对终端;确保数据传输的可靠性 建立、维护和终止虚拟电路 通过错误检测和恢复 信息流控制来保障可靠性 | TCP、UDP |
3 网络层 network | 数据包 packet/package | 支持逻辑寻址和路径选择 路由选择 选择传递数据和路径选择 | IP |
2 数据链路层 data link | 帧frame | 用MAC(物理)地址访问媒介、错误检测和修正 | 802.3/802.2 HDLC |
1 物理层 physical | 数据位 byte | 二进制传输;为启动、维护和关闭物理链路定义了电器规范、机械规范、过程规范和功能规范 | EIA/TIA-232 V.35 |
运作模型:
(2)TCP/IP 协议栈(4层),既是局域网又是互联网的默认主流协议
cat /etc/protocols 查询系统上存在的协议(linux)
(3)相同点
两者都是以协议栈的概念为基础
协议栈中的协议彼此相互独立
下层对上层提供服务,每层都有区分上层类型的标签
不同点
OSI是先有模型;TCP/IP是先有协议,后有模型
OSI适用于各种协议栈;TCP/IP只适用于TCP/IP网络
层次数量不同
(4)每层有自己的结构,下面会详解,下表是个简例
数据链路层 帧 | Internet IP协议 | 传输层 TCP协议 | 应用层 | ||||
目标mac 地址 | 源 mac 地址 | 源IP 地址 | 目标IP 地址 | 源端口 | 目标端口 | app | 数据 date |