网络工程师:什么是网络模型
Posted 知了然
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了网络工程师:什么是网络模型相关的知识,希望对你有一定的参考价值。
有了IP协议,电脑就可以很轻松地把数据传给任意一台其他电脑,而不论它在什么地方。
现在,我们来了解一下网络的分层理论。
我们一直在说的“数据”、“信息”,到底是什么?
电脑虽然诞生于美国,但并不是说电脑认识英文。电脑处理的一切数据、信息,都是用二进制表示的。
归根到底,电脑只是人类的一种工具,不同国家的人可能会通过不同的语言使用它,不同的人可能也会通过不同的应用使用它。
我可能有时下载个软件,有时发个E-mail,有时打开网页看看新闻,有时面目狰狞地LOL……
我们所做的这一切,都是不同应用程序提供的功能。应用程序会产生五花八门、各种各样的数据,比如图片、动画、声音、文档等等。相同类型的应用程序之间可以交换数据。比如,我给你发QQ消息,你用微信可收不到。
但是,我们发的消息都是中文或其他有自然语言,电脑可不懂。要使应用程序之间能交换数据,那就要把这些数据“变成”电脑能“看懂”的二进制,才能在网络上传输。
“变”的方法有很多,不过这是应用程序关心的,我们知道会变就可以了。
应用程序之间要传输数据,还需要打开传输数据的“通道”。很多时候,可能还会打开多个“通道”传输数据,不同“通道”之间要互相隔离。
比如我们下载软件,浏览器通常是一个数据通道单线程下载,而下载软件通常是多个数据通道多线程同时下载,速度会更快。
我们前面了解的IP封装、以太网封装,都像快递小哥一样,只关心如何传输数据,还有三个问题不能解决:
一是数据到底是谁,收件人收到数据后该交给哪个应用程序?怎么知道用QQ接收还是用微信接收?你可能会说,IP格式中不是有个Protocol吗?你不是说IP会根据它来区分应该把数据交给谁吗?道理是对的,可是你注意到没有,Protocol只占一个字节,最多只能区分256个应用,这可不够用。
二是怎么保证可靠传输。IP是不可靠的,它只答应“我尽力”,可没拍着胸脯保证过什么,数据传丢了它可不负责。
三是怎么控制传输流量。什么是控制传输流量,我们举个栗子:电脑A的配置很高端,处理速度非常快,电脑B配置较低,处理速度很慢。如果电脑A通过一个应用程序发送大量数据给电脑B,电脑B由于应用程序处理速度较慢,跟不上电脑A的发送速度,导致电脑B会丢弃来不及处理的数据。
显然,还不能直接把应用程序数据交给IP来传输,还需要一个解决这些问题的办法。
这个办法就是应用程序不要把数据交给不靠谱的IP,而是交给一个“传输层”!
传输层并不是像IP一样真正去传数据,而是解决数据传输中可能遇到的问题。比如我们在运输货物之前,需要先协商一些运输中的细节问题,例如哪天开始,一天运多少,途中弄丢了怎么办,等等,是一种高层的设计,而IP、以太网是真正跑运输的人,他们只关心怎么把货送到目的地。
现在,我们就可以画出网络的所有层次了:
这个层次结构共有七层,我们把它称为“OSI七层参考模型”。前面的数字表示第几层,如网络层也可以叫“第三层“。
OSI是国际标准化组织ISO于1984年正式发布的“开放系统互联参考模型”,共有七层。它根据每一层的功能和定义,开发了相应的协议来支持数据传输。
但这个模型实在太复杂了,而且有的功能在不同层被重复定义,同时,它还规定应用层数据必须从第七层到第一层,层层封装,缺一不可。
我们曾经说过,复杂最终都会被简单取代!
网络的出现比OSI发布七层参考模型时间要早得多。1969年,美国国防部下属ARPA(后来改叫DARPA,后来又改回APRA,后来又改叫DARPA)就开始建立APRAnet网络。1973年,DARPA的罗伯特·卡恩和文顿·瑟夫开发出了TCP和IP协议,并应用于APRAnet网络,他俩还做了个有趣的实验来证明。从此以后,大部分网络都遵守TCP/IP协议。直到今天,TCP/IP协议成为了网络的主流协议。
需要指出的是,TCP/IP并不是TCP和IP两个协议,而是基于TCP/IP模型的协议的总称。有时也叫TCP/IP协议族。
TCP/IP模型只有四层,它的应用层包含了OSI模型的应用层、表示层和会话层。其实表示层和会话层都是应用程序要考虑的东西,合并起来合理又简单。
其实说“合并”不太准确,因为TCP/IP模型比OSI模型要早得多。
TCP/IP还把数据链路层和物理层合并为网络接口层,但我们还是习惯分开叫数据链路层和物理层。
相比OSI模型,TCP/IP模型还有个很重要的不同:跨层封装!
什么是跨层封装?就是说,不必一定从应用层向下层层封装,如果不需要哪一层,可以不要!
这就简单、方便太多了!
回忆下ARP协议,没有传输层,也没有网络层,ARP报文是不是直接被以太网封装的!
我们常常看到数据包、报文、帧这些名词,啥意思啊?
报文,是指能够实现某种网络功能的协议封装,与其他层封装没有关系;
数据段,被传输层封装后的叫法;
数据包,被网络层封装后的叫法;
数据帧,被数据链路层封装后的叫法;
但需要说明的是,由于TCP/IP可以跨层封装,所以报文不是只存在于应用层。如ARP报文直接被链路层以太网封装、OSPF报文直接被网络层IP封装,等等。
接下来,我们需要好好讨论下传输层了。
思考:既然OSI七层参考模型并没有普及使用,那为什么每本网络基础书上都还要让我们学习呢?只学TCP/IP模型不香吗?
以上是关于网络工程师:什么是网络模型的主要内容,如果未能解决你的问题,请参考以下文章
如何评测一个软件工程师的计算机网络知识水平与网络编程技能水平?