今天做助教突然被学弟问到OSI和TCP/IP协议,就顺手在这里写一下
目录
一、OSI分层模型
1)模型分层思想
通信需求 >> 定义协议标准
但是现实情况中往往定义一个协议是不够的,我们打个比方,今天是疯狂星期四,小明想吃9.9两块的吮指原味鸡,那么为了让小明吃到吮指原味鸡我们就要经历几个过程:生鸡块准备,生鸡块运输,生鸡块腌制,下锅油炸,小明吃到。
我们发现如果每个过程我们都指定一个标准,那么完成小明吃吮指原味鸡这件事需要的标准太多了,一个人掌握不来,具体我们用表格解释一下:
生鸡块制作 | 按鸡块制作标准制定制作规则 |
---|---|
生鸡块运输 | 按运输标准制定运输规则 |
生鸡块腌制 | 按腌制标准制定腌制规则 |
下锅油炸 | 按油炸标准制作烹饪规则 |
小明吃到 | 食用规则 |
那么每一层我们需要了解其他层是干什么的吗?很明显不需要,制作生鸡块的人不用会开车,同样开车的人也不用会油炸鸡块,小明也是只会吃就行了。
那么少一层可以吗?我们发现从上往下每一层都向下一层提供先提条件(原料),缺少任何一层都不行。
也就是说层之间有依赖关系又相互独立。
以上的过程就叫做分层,也就是将复杂的流程分解为几个功能相对单一的子过程
- 这样会使整个流程结构更加清晰,复杂的问题简单化。
- 更容易发现问题并给予针对性解决。
2)OSI七层模型
OSI七层模型产生于上世纪70年代,网络通信的过程很复杂,但在当时为了满足两台计算机之间的通信,采用分层的方法降低了复杂性。
1974年,ISO组织发布OSI参考模型。,也就是OSI七层模型。
应用层 | <-----------应用层协议-----------> | 应用层 |
表示层 | <-----------表示层协议-----------> | 表示层 |
会话层 | <-----------会话层协议-----------> | 会话层 |
传输层 | <-----------传输层协议-----------> | 传输层 |
网络层 | <-----------网络层协议-----------> | 网络层 |
数据链路层 | <-----------数据链路层协议-----------> | 数据链路层 |
物理层 | <—物理层协议—> | 物理层 |
OSI七层模型特点:
- 同层使用相同协议。
- 不同层之间下层为上层提供服务。
- 灵活性:
网络中各层相对独立,修改了某层协议也不会影响系统的其他部分。不同层次完成的职能不同,每层只完成有限的功能,上层请求下层的服务,下层实现上层的意图。
鉴于本身的特点,局域网的标准化工作由国际电子与电气工程师协会(IEEE)组织的802委员会制定,并陆续公布了一些标准文件,形成802系列。
在802系列中,目前用得较多的是802.3和802.5。前者称为以太总线(Ethernet)网,后者称为令牌环(Token Ring)网。
但是在科学家向每一层提供协议的时候发现表示层和会话层的重要性较低,所以生成了一个新的架构:TCP/IP五层协议架构或TCP/IP五层协议簇。
3)TCP/IP五层协议簇
1.数据的封装的解封装
首先应用层发送一个APDU交给传输层,这时传输层为此APDU加上一个TCP或UDP头,这个过程称为封装。接着传输层将封装好的数据段传送给网络层,网络层为其增加一个IP包头并交付给数据链路层。数据链路层为其增加一个MAC子层和一个FCS并交给物理层,物理层将其转化为比特流并传送给目标的物理层。
每一层附加到PDU上的信息,是指定给另一个系统的同等层的,这就是对等层进行一次通信会话协调的过程。通过从传输层段剥离报头,执行协议数据检测以确定作为传输层段的部分数据的协议段的数据,以及执行标志验证和剥离,从而处理数据段。同时提供用于处理数据段的技术,其中接收到协议数据单元的报头部分。利用所接收的报头部分来确定将储存在应用空间中的数据的字节数。而且,利用所接收的报头部分来确定下一个协议数据单元的下一个报头部分。然后,发出窥视命令以获得下一个报头部分。另外提供用于利用所储存的部分循环r冗余校验摘要和剩余数据来执行循环冗余校验的技术。
上面的名词看不懂不要紧,我们后面对每一层单独解释的时候会详细谈一谈这些东西都是什么。
2.每层的协议数据单元PDU以及工作设备、协议
TCP/IP 各层 | PDU名称 | 工作设备 | 协议 |
---|---|---|---|
应用层 | APDU | PC/防火墙 | HTTP(S),SSH,DNS,DHCP等等 |
运输层 | 段 | 防火墙 | TCP,UDP |
网络层 | 分组 | 路由器 | IP,ICMP,IGMP等 |
数据链路层 | 帧 | 交换机,网桥 | ARP,RARP等 |
物理层 | 比特流 | 网卡,集线器,中继器 | 数字信号 |
以上就是对OSI七层模型和TCP/IP协议簇的浅谈,要深入理解计算机,这些基础知识必不可少,并且基础知识掌握的扎实也方便后面理解很多更加深入的东西,往后有时间我也会单独谈谈每一层,也加深一下自身的理解和记忆。