TCP/IP 网络精讲:OSI七层模型(第二课)
内容简介
1、前言
2、第一部分第二课:互联网的创立,OSI七层模型
3、第一部分第三课预告:OSI第一层,连接你的机器
前言
PS:昨天做了课程大纲之后,发现这个坑挖得有点大。不过既然挖了,岂有不跳之理。男子汉一言既出,就什么马也难追了。
今天我们就来学习: 《OSI七层模型》
昨天说到,目前全球有18亿网民,互联网的规模已经是超乎想象般宏大。
那么问题来了:
我们怎么实现在这么多的机器之间通信呢?
怎么能够不在这数据的迷宫里失去方向呢?
我们一起来学习,以期找到问题的答案。
首先我们来理解互联网是怎么创建的,以及使用什么规范来很好地组织这么多信息。
第一部分第二课:互联网的创立,OSI七层模型
设想一下,假如你可以在任何时候通信,和任何人通信,岂不是很棒。这就是互联网的初衷。
平时,当我们身处一个10人小组,会感到表达自己的观点有点困难。如果是100人,就更困难。假如有1000人,那几乎就听不到你说话了。但是互联网就是要向不可能挑战,要能够做到:在任何时刻,同时和任何人通信。当然了,要达到这个目的,必须要建立一个复杂的通信系统,使得各台机器之间能够相互对话。
但是这样的一个通信模型如何构建呢?
我们可以从最熟悉的通信方式开始理解。
来盘点一下一般的通信方式吧:
说话
打电话
邮件
飞鸽传书 →_→
等等
接下来,让我们试着来理解,在这些通信方式中,有哪些基本要素是我们通信活动所必不可少的。
说话的方式,我们需要:
说话者
听话者
传声媒介(空气)
打电话的方式,跟说话是类似的,除了我们还需要一个在说话和电子学之间的中介。实际上,我们要把说话的声音转成电信号,电信号通过电话线等传播介质到达接收者那一端,然后转为声音被听见。在这里有一个信息的封装。
我们可以举邮件的例子来看一下这个封装信息的系统,在邮件收发时我们需要:
寄件人
收件人
传播介质(信)
容器(信封)
中介(邮局)
是不是慢慢能理解我们通信需要什么条件了。
问题又来了:
我们对电脑也能这样应用吗?
怎么才能让大家可以同时发出讯息呢?
我们能够即时和地球另一端的某人通信吗?
接下来我们就看一下网络的先驱者们如何把人类通信的原理“应用”到电脑的通信中。
他们把所有研究的成果重组,创立了一个标准,所有连到互联网的人都要遵守,这个标准就是:OSI七层模型。
OSI七层模型,听上去是不是很帅?这个标准诞生在1984年,只比我早了3年出生(不小心暴露了自己的年龄 →_→)。
聪明的读者也许注意到了,这个标准比互联网的出现晚了很久。
原因很简单:OSI七层模型是在人们有了不少机器之间通信的经验之后才能够诞生的。因此这个标准不仅能够适用于现有的通信,也适用于将来的通信及其可能的演进。它的目的是使通信标准化,以保证机器最大化的演进潜力和协同工作能力。
听起来很不错,但是到底OSI七层模型是什么啊?
OSI七层模型是一个标准,规定了机器(主要是电脑)之间如何通信。因此假如你想要让你的洗碗机和洗衣机通信的话,就需要遵从OSI模型,或者至少从OSI模型获得启发。这意味着需要遵从分层的通信方式。
这里的层又是什么呢?
OSI模型是一个分层的模型,就是说它分为几个部分,每一部分称为一层,每一层扮演固定的角色,就像下图所看到的:
OSI七层模型
上图中,我们可以看到OSI有7层,每一层名字都不一样。
为什么是7层,不是14层或者250层?
还记得之前提到的吗?我们知道要通信,需要有固定数目的组分,比如 发送者,接收者,语言,等等。网络的先驱者们设计了用于构建通信系统的主要元素,他们发现数目定为7最合适。因此OSI的每一层都有特定的分工,这7层合起来就可以使一台机器和另一台通信。
下面我们来看一下这7层各自的细节。
第1层或者物理层
名字: 物理层
作用:为通信提供传播媒介
辅助作用:没有
相关设备:集线器(也就是常说的Hub)
第2层或者数据链路层
名字: 数据链路层
作用:使局域网中的机器互相连接
辅助作用:侦测传输错误
相关设备:交换机(也就是常说的Switch)
第3层或者网络层
名字: 网络层
作用:使各个网络相互连接
辅助作用:分割传输的数据包
相关设备:路由器(也就是常说的Router)
第4层或者传输层
名字: 传输层
作用:管理应用程序的连接
辅助作用:保证连接的有效建立
相关设备:没有
第5层或会话层
我们不在乎!
是的,你没有看错:我们不在乎第5层。
在第4层以上的,除了第7层,我们都不在乎。当然了,我也有些夸大。但是第5层和第6层不在本课程考虑范围之内。
原因很简单:
OSI七层模型是一个理论模型,今天的互联网使用的实际模型是TCP/IP模型,而后者不使用OSI的第5层和第6层,因此我们无视它们。
好,我想你应该理解了。当然了,第7层我们需要考虑。其实正是为了这第7层上的应用程序我们才大费周章,构建这个模型。是的,第7层就是老总,就得伺候着,就是这么任性 →_→
第7层或者应用层:
名字: 应用层
作用:没有
辅助作用:没有
相关设备:代理(也就是常说的Proxy)
什么?第七层竟然没有作用!那“伺候”它干嘛?说白了,这一层就是展示我们构建通信架构所要服务的所有应用程序。
因此,第七层我们也不多做研究,而是把重心放在提供服务和引导数据传递的第1-4层。其实,还有一种说法是把1-4层合称为“网络层”。因为正是这四层负责引导数据从一台机器传递到另一台机器,以供机器上的属于第7层的应用程序使用。
在深入理解这四层之前,很有必要提一下使用OSI模型的两个原则:
1. 每一层都是相对独立的
2. 每一层只能和相邻的层通信
“每一层都是相对独立的”:
其所产生的影响是某一层所用的信息不能被另一层使用。例如,对于某些有一定网络知识的读者来说,应该知道IP地址是属于第3层的,就不能被另外的层所使用。
这样规定的好处是可以方便通信方式的变革。
想象一下,今天你使用互联网,虽然你可能并不了解它的原理,但实际上你使用的是第3层的IPv4(Internet Protocol Version 4,第四代互联网协议)这个协议。未来,我们将从IPv4演进到IPv6(第六代互联网协议,相比第四代的32位地址空间,可以达到128位地址空间)。这时,假如我们除了第3层以外,在另一些层中也用到了IPv4,那我们除了要改第3层的协议,我们也要改其他凡是用到IPv4协议的层,就会很麻烦。
保持各层的相对独立性可以使得我们改换一层所关联的协议时,无需更改其他的层。
“每一层只能和相邻的层通信”:
为了理解这个原则,我们必须了解机器是怎么利用OSI模型来通信的。
想象以下场景:
你坐在电脑前,打开你的浏览器。你在浏览器的地址栏里输入一个网址,那个网站就出现了。
虽然你并不知情,但其实你就在使用OSI模型。
大体来说,位于OSI第7层的应用程序(此处是浏览器),与第1-4层(合称“网络层”)对话,以便这4层把机器上的应用程序所要的信息从远端的机器上(比如google.com的服务器)传输过来。
在一个传输过程中,我们会跨越OSI模型的各层,从上到下。
由此可见,多亏了第2个原则,我们能保证在信息的传输过程中,OSI模型的各层都会被跨越,也就保证每一层的作用都能得到实现。当然了,差不多是这样。因为实际上对于互联网,OSI模型是一个理论模型,第7层其实是跳过5,6层而直接和底下4层通信的。所以是 7 -> 4 -> 3 -> 2 -> 1 。
好了,今天的课程就到这里。
总结一下需要记住的知识点:
OSI七层模型是一个规范,其规定了机器之间如何通信
OSI模型是一个理论模型,互联网实际使用的是TCP/IP模型
OSI模型有7层
每一层都有一个特定的作用
第1-4层合称为“网络层”
每一层相对独立
每一层只能和相邻的层通信
当传输数据时,我们从OSI的最上层遍历到最下层,在另一个机器那里,曾是相反的方向,从最下层到最上层
第一部分第三课预告:OSI第一层,连接你的机器
现在你应该对OSI七层模型有了一个大体的了解。
下一课,我们就深入其中,学习OSI第1层(物理层)的细节。
明天见啦!
程序员联盟
微信公众号*您若觉得本文不错,请点击“分享”
*新朋友请关注「程序员联盟」微信搜公众号
ProgrammerLeague
“程序员联盟”公众号专为程序员,App设计师,各位喜爱编程和热爱分享的小伙伴们推送各样编程相关知识,优秀软件推荐,业界动态等。搜索ProgrammerLeague
加关注~
持续关注 程序员联盟 微信公众号,更多有趣,有料,有亮点的内容等着你哦!
TCP/IP 网络精讲:OSI七层模型(第二课)的更多相关文章
- TCP/IP四层模型和OSI七层模型(模型分层的作用是什么)
TCP/IP四层模型和OSI七层模型的概念(模型分层的作用是什么) 一.总结 一句话总结: 减轻问题的复杂程度,一旦网络发生故障,可迅速定位故障所处层次,便于查找和纠错: 在各层分别定义标准接口,使具 ...
- TCP/IP:完全弄清OSI七层模型
OSI七层背景概述 诞生于1983年,iso(国际标准委员会)设计并推出. 目的:实现网络行业的兼容性 OSI七层模型与TCP/IP相对应的层次: 一般来说,我们把上三层被称为应用层,下四层被称为数据 ...
- TCP/IP四层模型和OSI七层模型
TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇.TCP/IP协议簇分为四层,IP位于协议簇的第二层(对应OSI的第三层),TCP位于协议簇的第三层(对 ...
- TCP/IP四层模型和OSI七层模型的概念
转:http://blog.csdn.net/superjunjin/article/details/7841099/ TCP/IP四层模型 TCP/IP是一组协议的代名词,它还包括许多协议,组成了T ...
- TCP/IP详解与OSI七层模型
TCP/IP协议 包含了一系列构成互联网基础的网络协议,是Internet的核心协议.基于TCP/IP的参考模型将协议分成四个层次,它们分别是链路层.网络层.传输层和应用层.下图表示TCP/IP模型与 ...
- 网络基础:OSI 七层模型、TCP/IP 四层模型
1.Internet历史 1. 1968年由美国ARPA机构提出"资源共享计算机网络”,让ARPA的计算机互联起来,叫做阿帕网;2. 1974年,第一个TCP协议详细说明发布了.3. 一个 ...
- TCP/IP 网络精讲:开宗明义及第一课
内容简介 1.课程大纲 2.第一部分第一课:互联网历史 3.第一部分第二课预告:互联网的创立,OSI七层模型 课程大纲 我们将带大家一起来学习很多网络方面的技能,向大家介绍TCP/IP的基础知识点.你 ...
- 网络基础笔记——OSI七层模型
OSI七层模型 由于整个网络连接的过程相当复杂,包含硬件.软件数据封包与应用程序的互相链接等等.假设想要写一支将联网所有功能都串连在一块的程序.那么当某个小环节出现故障时,整仅仅程序都须要改写.所以我 ...
- 网络基础之 OSI七层模型
OSI七层模型模型图如下: 前三层(应用层,表示层,会话层)=>给用户提供服务. 后四层(传输层,网络层,数据链路层,物理层)=>数据传递提供服务. 其中 数据链路层中MAC地址负责局域网 ...
随机推荐
- Hasor:生命周期
首先引用Wiki的介绍一下Hasor: “Hasor是一款开源框架.它是为了解决企业模块化开发中复杂性而创建的.Hasor遵循简单的依赖.单一职责,在开发多模块企业项目中更加有调理.然而Has ...
- https原理及tomcat配置https方法
一. 什么是HTTPS 在说HTTPS之前先说说什么是HTTP,HTTP就是我们平时浏览网页时候使用的一种协议.HTTP协议传输的数据都是未加密的,也就是明文的,因此使用HTTP协议传输隐私信息非常不 ...
- 用java代码实现环圈报数
环圈报数就是围一圈人,每一次数数数到三的人自动出圈,再接着数, 用数据结构的思想实现 public class Count3Quit { public static void main(Str ...
- C#函数参数传递解惑
C#语言函数参数的传递 就像C语言众多的后世子孙一样,C#的函数参数是非常讲究的.首先,参数必须写在函数名后面的括号里,这里我们有必要称其为形参.参数必须有一个参数名称和明确的类型声明.该参数名称 ...
- MySQL的一些基本操作
近期開始学习MySQL,主要是通过书籍,和看燕十八老师的视频,然后通过博客记录自己的学习过程. 登入数据库 zhiniaobu@telunsu-K55VD:~$ mysql -uroot -p Ent ...
- IntelliJ IDEA中怎样使用JUnit4
背景 近期參与了一个Anroid医疗项目,当中项目底层有非常多基础类及通讯类,并且非常多涉及复杂的字节操作还有多线程同步及状态机处理.这种项目做一下TDD还是必要的,尽量项眼下期把风险减少一些. ...
- TCP/IP协议栈源码图解分析系列10:linux内核协议栈中对于socket相关API的实现
题记:本系列文章的目的是抛开书本从Linux内核源代码的角度详细分析TCP/IP协议栈内核相关技术 轻松搞定TCP/IP协议栈,原创文章欢迎交流, byhankswang@gmail.com linu ...
- [置顶] Codeforces Round #197 (Div. 2)(完全)
http://codeforces.com/contest/339/ 这场正是水题大放送,在家晚上限制,赛后做了虚拟比赛 A,B 乱搞水题 C 我是贪心过的,枚举一下第一个拿的,然后选使差值最小的那个 ...
- Trie图
AC自动机是KMP的多串形式,当文本串失配时,AC自动机的fail指针告诉我们应该跳到哪里去继续匹配(跳到当前匹配串的最长后缀去),所以AC自动机的状态是有限的 但是AC自动机具有不确定性, 比如要求 ...
- 编程算法 - 不用加减乘除做加法 代码(C)
不用加减乘除做加法 代码(C) 本文地址: http://blog.csdn.net/caroline_wendy 题目: 写一个函数, 求两个整数之和, 要求在函数体内不得使用+, -, *, /四 ...