本文是介绍网络的基本结构,以及和OS之间有什么关系
OSI七层模型
引入
使用网络是为了解决信息的长距离传送,那就需要解决四个问题:
- 接收方如何使用数据
- 传输的可靠性
- 主机如何定位
- 数据包在局域网如何转发
人们选择用网络协议(tcp/ip协议)来解决。协议就是计算机之间通用的一套规则,为了减少通信成本。
为了使协议可扩展并且方便维护,就将网络协议划分为层状结构,这样层和层之间就是松耦合的。
结构
OSI(Open System Interconnection)
就是国际标准组织设计的第一套互联网标准,用于规范互联网。有如下七层:
分层 | 功能 |
---|---|
应用层 | 提供网络服务给应用程序,处理特定应用的网络协议 |
表示层 | 数据表示格式的转换和加密、解密,确保数据格式兼容性 |
会话层 | 管理会话(连接)的建立、维护和终止 |
传输层 | 管理端到端的数据传输,确保数据完整传输 |
网络层 | 负责路径选择和逻辑地址管理,实现跨网络的数据传输 |
数据链路层 | 负责节点到节点之间的数据传输和错误检测 |
物理层 | 处理物理介质上的比特流传输,将数据转化为电信号或光信号 |
TCP/IP模型
TCP/IP模型在OSI基础上进行合并,将应用层、表示层、会话层合并为应用层。因为这三层由程序员根据不同的需求来实现,其余三层软件层由操作系统给出实现。
除去物理层(网卡)我们不做过多关注,其余四层是很重要的。
TCP/IP模型与OS一一对应
这是操作系统的基本结构
他与模型是一对应的:
网络层次 | 系统层次 | 关系 |
---|---|---|
应用层 | 用户 | 应用层协议由用户自己实现 |
运输层 | 操作系统 | TCP / UDP 协议在操作系统内部实现 |
网络层 | 操作系统 | IP协议在操作系统内部实现 |
数据链路层 | 驱动程序 | 数据链路层协议在网卡的驱动程序实现 |
物理层 | 底层硬件 | 物理层基于操作系统的硬件设备网卡 |
讨论:OS为什么用c/c++实现,与网络有什么关系?
大部分操作系统都是c写的,作为OS的一部分网络也是c写的。而如果新的OS不是用c写的,他解析不了网络协议的结构体,就无法入网。
所以想要联网,OS就要遵守网络协议,进而使用c/c++实现内核
补充:
协议是用结构体实现的,是结构化的数据类型。
只有不同的主机利用相同的规则(哪些bit位对应哪些信息),才能正确的解读信息
小结
分为两篇来写,下半篇介绍三个基础指令、局域网内部和跨局域网的主机如何通信