一起重温计网咯 | OSI的七层模型与TCP/IP的四层模型
如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!博客目录 | 先点这里
- 前提概要
- 概念
- 路由器和交换机
- OSI七层模型
- OSI七层模型简介
- TCP/IP四层模型
- TCP/IP四层模型简介
- 七层模型与四层模型
- 七层模型与四层模型的关系
- 七层模型与四层模型比较
- TCP/IP四层模型中数据封装的过程
- 数据封装的过程
- 其他问题
- 为什么要有通信协议模型?
- 为什么要有通信协议模型?
前提概要
概念
- ISO 国际标准化组织,OSI 开发系统互联模型
- 机器与机器之间的交流,传输层确定协议和端口号,网络层确定IP, 数据链路层确定Mac地址; IP 用于公网传输,MAC用于局域网传输, 局域网IP最终会在数据链路层被翻译成网卡的MAC地址
- 为了实现协议的标准化,ISO制定了一个国际标准OSI七层模型,对通信系统进行了标准化,不过却没有得到广泛的普及。在七层模型基础上,由IETF民间标准化组织进一步推动制定的TCP/IP四层模型在实践的应用下,俨然已成为世界所广泛应用的通信协议标准
路由器和交换机
- 路由器就是工作在网络层的,交换机就是工作在数据链路层的
- 一般路由器通过公网的IP进行路由通信,所以不同机器之间的公网通信,公网与局域网之间的通信都是依赖路由器来完成的,而路由器则依赖IP协议
- 而交换机因为是工作在数据链路层的,交换机可以用于内网之间的通信。这里不是重点说IP,即交换机可以作为内网通信的载体,通过一张MAC表,记录内网IP与MAC地址的映射,当出现内网交流时,就在数据链路层把IP翻译成机器网卡的MAC地址。只要知道了目标机器的MAC地址,我们才能与目标机器进行通信
- 路由器和交换机一样,都会有一个表用于自主学习和维护
OSI七层模型
OSI七层模型简介
层数 | 名称 | 数据单位 | 常见协议 | 描述 |
---|---|---|---|---|
7 | 应用层 | APDU | HTTP WebSocket | 针对应用 |
6 | 表示层 | PPDU | 数据的语法语义的表示,如加密解密,转换翻译,压缩解压等,比如将我们应用层传递的信息翻译成机器语言传给会话层 | |
5 | 会话层 | SPDU | SSL TLS | 会话管理,比如不同机器上的用户之间会话的建立 |
4 | 传输层 | TPDU | TCP UDP | 可靠与不可靠的传输,传输前的错误检测、流量控制,OSI模型中最重要的一层 |
3 | 网络层 | 报文 | IP ICMP | 逻辑编址,分组传输,路由选择(IP路由) |
2 | 数据链路层 | 数据帧 | ARP | 物理寻址(根据Mac地址),错误检查与修正,以数据帧的形式进行传输交流 |
1 | 物理层 | 比特 | IEEE 802.2 Ethernet v.2 | 机械,电子等硬件设别,以原始比特流进行传输交流, 比如网线,网卡 |
TCP/IP四层模型
TCP/IP四层模型简介
层数 | 名称 | 数据单位 | 常见协议 | 描述 |
---|---|---|---|---|
4 | 应用层 | 消息 | HTTP WebSocket FTP DNS SMTP | 针对用户 |
3 | 传输层 | 段 | TCP UDP | 为应用层实体提供端到端的通信功能,保证数据包的顺序传送和完整性 |
2 | 网际层 | 包或报文 | IP ICMP IGMP | 主要解决主机要主机之间的通信问题,比如IP路由 |
1 | 链路层 | 帧 -> 比特 | 负责监视数据在主机和网络之间的交互,包含了七层模型的数据链路层和物理层;以太网,无线LAN |
- 链路层又叫数据链路层,网络接口层等
- 每一层如果要对应具体的实现场所的话,应用层是通过应用程序实现的,传输层和网际层是通过操作系统实现的,而数据链路层则是通过网卡以及网络接口设备等硬件设备实现的
七层模型与四层模型
七层模型与四层模型的关系
OSI模型仅仅是一个概念,并没有提供实现,所以OSI模型仅仅是在制定标准时的概念性框架;OSI概念的真正实现者是 TCP/IP四层模型,所以TCP/IP四层模型才是事实上的标准模型
我们可以这么去比喻,汽车工厂主要的工作就是生成汽车
-
OSI七层模型
就是各个国家为了规范车辆标准而制定的汽车生成标准草案,希望各个国家的汽车工厂都能尊重这么一个原则去生产汽车,让标准尽可能的在世界范围通用。比如车长不能大于多少呀,车宽,车高不能超过多少啊。 -
TCP/IP四层模型
就是各个汽车公司觉得上层定义的OSI七层模型过于书生气,距离实际的生产有太多的条条框框,影响了生产效率,所以又进行了一次会议讨论,希望在符合世界标准OSI七层模型的框架下,简化改进标准,提供汽车的生产效率。 -
其他的一些模型
呢,比如可能会有一些五层模型的概念,这些模型的出现就是各个国家有各个国家的国情,七层或是四层模型的某些规定在我这个国家显得不太实际,不贴近事实,所以每个国家的汽车公司又在七层或四层的基础上,因地制宜,对模型进行本地化改造
总的来说,我们可以得出一个结论
- OSI七层模型是一个世界通用的标准化规定,只是没有具体实现的标准。而TCP/IP四层模型才是事实上得到实践的模型,而其他的一些模型,譬如五层则是因地制宜,有一些特殊的需求而出现的小众模型。但大体事实上世界范围通用的标准还是TCP/IP四层模型,或者说最接近TCP/IP四层模型
七层模型与四层模型比较
共同点:
- OSI七层模型和TCP/IP四层模型都采用了层次结构的概念,分层结构更容易排查错误,结构清晰
- 都能够提供面向连接和无连接两种通信服务机制
不同点:
- 七层模型是七层,四层模型是四层
- 两种对可靠性的要求不同,四层模型对可靠性要求更高
- OSI模型是在协议开发前设计的,具有通用性。TCP/IP模型是先有协议集,然后再建立的模型,把对应的协议放到对应的层次,所以它不适用于非TCP/IP的网络环境
- 实际市场应用的不同,OSI模型只是理论上的模型,并没有成熟的产品,而TCP/IP模型已经成为“实际上的国际标准”
TCP/IP四层模型中数据封装的过程
数据封装的过程
假设传输层协议是TCP的数据封装流程图如下
从上图,我们可以了解到从发送端到接收端,数据传递的一个过程。
- 发送到从应用层开始发送数据,依次传递到链路层,每一个分层在处理由上层传过来的
数据
时,都会附加上当前分层协议所需要的首部信息
, 然后再传递给下一层 - 接收端也一样,从链路层获得好发送端传输的消息,自底而上,依次根据当前分层的协议对
首部
和数据内容
进行分离,再将内容部分传递给上层,最后解析出原始数据 - 每个分层的首部都会还有一个标识位,用来标识上一分层用的是什么协议,例如以太网首部的中的以太网类型,IP首部中的协议类型
其他问题
为什么要有通信协议模型?
- 如果没有通信协议模型的出现,每个厂商的机器只能跟每个厂商的机器通信,说不定同一厂商的不同型号的机器都无法通信。这就给计算机网络的发展带来了很大的阻碍。
- 就类比成人一样,美国人讲英语,日本人讲日语,中国人讲汉语,不同国家的人有自己的语言,如果大家都只会自己国家的语言,那么美国人,日本人和中国人之间是无法交流的。甚至本国人,不同年龄段,不同地域,都可能因为方言的存在而不能愉快的交流。
- 所以为了解决机器通信之间的兼容性问题,让不同的厂商,不同的型号的机器都能够使用大家都会的语言进行沟通,那么就必须制定一个标准化的通信协议模型
参考资料
- Linux网络管理 -@作者:Tony
- TCP/IP协议栈与数据报封装 -@作者:AlanTu
- 如果觉得对你有帮助,能否点个赞或关个注,以示鼓励笔者呢?!