深入解析OSI七层模型与TCP/IP四层模型:计算机网络体系结构全攻略
哈喽,亲爱的读者们,这是计算机网络重构系列的第四篇文章。在这篇文章中,我们将了解著名的OSI七层模型和TCP/IP四层模型,并深入了解为什么需要分层。 。这篇文章在一处涵盖了计算机网络架构!1.计算机网络体系结构
通过研究我们知道,由于上个世纪缺乏统一的标准,各个厂家生产的计算机在硬件和软件方面都存在差异,无法正常通信,更不用说各地计算机的互联了。世界。
为了使不同架构的计算机网络能够互连,国际标准组织于1977年成立了专门机构来研究这个问题,并很快提出了一个试图将世界各地的各种计算机互连成网络的标准框架,即著名的“开放系统互连参考模型”,简称OSI,是一个七层协议架构。
OSI七层标准模型是合法的国际标准模型。为什么要强调这一点呢?因为到了20世纪90年代初,虽然整套OSI国际标准已经制定完毕,但互联网已经覆盖了全球大片区域。互联网于1983年开始使用TCP/IP协议族并逐渐发展。开发 TCP/IP 四层模型。
TCP/IP四层模型是事实上的国际标准。从这个意义上说,只有能够占领市场并被人们广泛认可的才是真正的标准。
通过比较这两个模型,我们可以看出TCP/IP四层模型实际上是OSI七层模型的合并和简化。 (由于IP的全称是,我们一般称其为 ,所以在TCP/IP协议中称为层)
TCP/IP四层模型之所以能够占领市场,OSI七层模型也得找到自己的原因。 OSI标准失败的原因可以概括为以下几个原因。
大多数用户每天都有访问互联网的需要,这就要求用户的主机使用TCP/IP协议。
用户主机的操作系统通常具有符合TCP/IP体系结构标准的TCP/IP协议族。
用于网络互连的路由器也具有符合TCP/IP体系结构标准的TCP/IP协议族,但路由器一般只包括网络接口层和层。
IP协议可以互连不同的网络,为其之上的TCP协议和UDP协议提供网络互连服务。 TCP协议可以在享受IP协议提供的网络互连服务的基础上,向应用层提供可靠的传输。服务。
IP协议和TCP协议是两个非常重要的协议,因此用TCP和IP来代表整个协议族,通常称为TCP/IP协议族。
TCP/IP体系结构的网络接口层没有规定任何具体内容。这样做的目的是为了互连世界各地的各种网络接口,例如有线以太网接口和无线WIFI接口。
https://img1.baidu.com/it/u=2053611188,621252345&fm=253&fmt=JPEG&app=120&f=JPEG?w=841&h=500
然而,这将是我们学习计算机网络的完整体系中缺失的一部分。因此,我们在学习计算机网络原理的时候,会结合OSI和TCP/IP模型的优点,学习五层模型,这样会更有利于我们对计算机网络的理解。研究计算机网络原理。
好吧,请不要忘记这张照片。这张图是我们学习计算机网络的主要脉络,也是我们以后接触最多的图。
2.计算机网络架构分层的必要性
我们首先考虑最简单的情况。两台计算机想要相互通信。怎么做呢?
我们需要考虑以下问题:
上述问题实际上是物理层应该关注的问题。
严格来说,传输介质不属于物理层,不包含在架构中;计算机网络中传输的信号并不是简单的方波信号。
假设我们已经解决了上述问题,并且两台主机可以互相发送位0和1。让我们继续思考一下。事实上,计算机网络是由多台计算机组成的,如下图所示,采用总线拓扑结构。已建成的网络:
假设主机A要向主机E发送消息,我们知道在总线型网络拓扑中,代表消息的信号都是通过这条总线传输的,其他所有主机都可以接收到这个信号,那么自然就会有一个问题:主机E怎么知道这条消息是发给我的呢?其他主机怎么知道这个信息不是发给我而是要丢弃的?
如何解决这个问题呢?这就引出了如何识别网络中每台主机的问题。您可能听说过网卡的MAC地址。事实上,我们就是用这个MAC地址来标识唯一的网卡的。 (记住,MAC地址唯一标识网卡。MAC地址与主机地址不同,因为一台主机可能有多个网卡)
另外,既然有了地址信息,就需要区分地址信息和实际数据。如何从信号中区分出地址和数据也是一个问题。
此外,这种总线网络拓扑还存在消息冲突问题。如何解决这个问题呢?后续文章会详细解释,所以就到此为止。另外,值得注意的是,总线网络拓扑结构早已被淘汰。目前的主流是利用交换机将多台主机互连,形成交换式以太网。那么以太网交换机是如何实现的呢?
我们可以将这些问题归咎于数据链路层。
好吧,假设我们已经解决了前面的所有问题,那么我们会神奇地发现主机可以在网络中相互通信!
然而,我们必须继续。我们不能仅仅依靠以上两层来使用互联网,因为我们日常使用的互联网是由多个网络组成的,这些网络之间通过路由器互连:
面对这个结构,我们需要思考以下问题:
这就是网络层解决的问题。
好了,现在一条消息可以通过多个网络发送到另一台主机了,但是还有问题需要解决。
https://img0.baidu.com/it/u=696196017,1507162714&fm=253&fmt=JPEG&app=138&f=JPEG?w=500&h=667
例如,如果服务器返回消息,并且客户端有多个应用进程监听,那么收到的数据包将交给哪个进程处理?
所以我们需要思考:
我们可以将这些问题分解到传输层。
如果解决了上述问题,那么我们就可以实现进程间基于网络的通信。在此基础上,我们只需要制定各种应用层协议,并根据协议标准编写相应的应用程序,然后就可以通过应用程序进程之间的交互进行通信。完成特定的网络应用,如HTTP协议支持万维网应用、SMTP协议支持电子邮件、FTP协议支持文件传输等。
我们把这些问题划分到应用层。
下面简单总结一下各层的基本功能:
试想一下,如果是你,你应该把这些要解决的问题放在一个模块中解决,还是应该放在单独的模块中解决?我认为分层的需求是很确定的。
了解了五层模型之后,我们以浏览器向服务器请求网页为例,来看看整个五层模型的大致工作原理。
3. 层次模型的两个重要原则 3.1.每层相对独立
每一层都有自己的使命。每一层的改变不需要改变其他层。例如,网络层目前使用IPV4(32位),但由于地址数量已经不够了,需要逐步演进到IPV6(128位)。
此时只需更改第三层,即网络层协议,其他层可以保持不变。 ,
另外,下层协议为上层协议服务,并且对上层协议是透明的,即上层只需要享受下层服务,而不需要知道实现细节。
3.2.每层只能与相邻层通信。
我们知道,我们浏览的时候,其实是遍历了整个TCP/IP模型:应用层-->传输层-->网络层-->数据链路层-->物理层。
服务器处理时则相反:物理层-->数据链路层-->网络层-->传输层-->应用层。
那么得益于这个原理,就保证了通信过程中所有的层都会被使用到,这也就保证了每一层的作用都能得到实现。
本文的内容到这里就结束了。核心是理解TCP/IP分层模型的必要性、各层的一般作用以及各层的作用。
页:
[1]