1-2:网络初识之了解OSI和TCP/IP及网络分层(物理层,数据链路层,网路层,传输层,应用层)

Posted 快乐江湖

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了1-2:网络初识之了解OSI和TCP/IP及网络分层(物理层,数据链路层,网路层,传输层,应用层)相关的知识,希望对你有一定的参考价值。

一:生活中的协议分层

(1)生活中的分层1——汉堡包

汉堡包属于一种快餐,之所以称之为快餐,是因为它的制作效率高,在一定时间内可以满足不同口感,搭配出不同风格的食物。之所以这样是因为汉堡包采用了分层结构,想要替换哪一步就替换那一部分,每一层与每一层互不干扰

在这里插入图片描述
这样带来的好处就是解耦,在软件设计中我们经常提到高内聚,低耦合,汉堡包所做的目的就是这样,我们学习C++也是这样,在C语言中所有代码都是通过调用接口完成,耦合性太强,中间一旦一个环节出现错误,满盘皆输。但是增加了类之后,类于类之间互不干扰,就像STL中的vector,它可以放自定义类型,vector一定能保证它的插入删除接口是不出现错误的,那么最终如果仍然产生问题的话,就一定是你的自定义了类型有问题了

(2)生活中的分层2——打电话

如下图,有两个人通过通信设备进行交谈。在这个过程中,他们使用的语言协议作为麦克风的音频输入,在通信设备那一层转换为电信号,然后将电信号传送到另一个人的通信设备,再向上转化为我们可识别的内容,依次完成通信
在这里插入图片描述
上图中反应的就是:上层需要使用下层接口完成通信,而下层需要将数据通过某种方式翻译后反馈给上层

如下图,在实际生活中,我们与人交谈可以使用座机也可以使用手机,并且在通信设备不变的情况下,也可以使用英语交流(前提是双方都采用这种“协议”)
在这里插入图片描述
这样做带来的好处就是下层只负责能将数据正确翻译给上层,而上层负责会使用这些接口(就像会使用手机一样),依次达到通信

上面的例子其实只涉及到了两层,实际的协议分层相较它还是比较复杂的,但是所体现的思想是一致的。

二:网络分层

(1)OSI七层模型

OSI将协议分为如下7层,协议规定了每一层各自的作用,也就是说每一层应该干什么

需要注意的是这只是一种参考模型,实际的网络协议如TCP/IP在设计时思想上基本一致,但是还是存在区别
在这里插入图片描述

  • 物理层:负责0,1比特流(0,1序列)与电压的高低,光的闪灭之间的互换
  • 数据链路层:负责物理层面上互连的,节点之间的通信传输。关键设备就是交换机
  • 网络层:解决跨网络的通信问题,主要负责寻址和路由选择。关键设备就是路由器
  • 传输层:保证传输的稳定,可靠和效率等问题
  • 会话层:负责建立和断开通信连接,以及数据的分割等数据传输相关的管理
  • 表示层:主要负责数据格式的转换
  • 应用层:为应用程序提供服务并规定应用程序通信的相关细节

也就是说按照OSI的规定,完成通信应该是下面这样的
在这里插入图片描述

(2)TCP/IP分层模型

OSI规定的七层模型太过负责,所以TCP/IP协议将网络分为了下面5层(TCP/IP协议是一组协议的集合的代表,只不过这两个协议太过著名,就以他们的名字命名了)。
在TCP/IP协议中,每一层都呼叫它的下一层所提供的网络或者接口完成自己的需求。
在这里插入图片描述

  • 物理层: 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层.
  • 数据链路层:: 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层.
  • 网络层:: 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层.
  • 传输层:: 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机.
  • 应用层:: 负责应用程序间沟通。如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等我们的网络编程主要就是针对应用层

可以看出:OSI参考模型注重“通信协议必要的功能是什么”,TCP/IP则强调“在计算机上实现协议应该开发哪种程序”。也就是说操作系统承担了网络协议中非常重要的角色

以上是关于1-2:网络初识之了解OSI和TCP/IP及网络分层(物理层,数据链路层,网路层,传输层,应用层)的主要内容,如果未能解决你的问题,请参考以下文章

1-1:网络初识之了解什么是协议以及TCP/IP协议

网络之OSI七层协议模型TCP/IP四层模型

初识网络编程

Linux应用程序设计之网络基础编程

8计算机网络模型了解,TCP/IP模型介绍和OSI七层模型对比

OSI七层模型和TCP/IP五层模型iproute家族命令管理工具介绍