本文欢送转载,转载请注明出处和作者。
持续讨论一下 OSI 七层模型,如果上篇的解释还是意犹未尽,那么咱们持续尝试以应用 QQ 软件聊天的类比阐明,来阐明 OSI 七层模型。
两主机通信的过程,从发送者(以下简称 A)到接收者(以下简称 B),属于从 7 层(应用层)->1 层(物理层)封装,而后传输到远端,再从 1 层(物理层)->7 层(应用层)解封装的过程。
1、当 A 关上了 QQ 这个软件,相当就达到应用层了;因为软件会依据你的操作调动机器底层的硬件工作了。
2、当 A 往 QQ 这个软件的聊天窗口外面输出信息,收回后,QQ 会将这个信息保留在本地聊天记录文件 MSGEX.db(个别就保留在 QQ 目录下以你的 QQ 号码为文件夹里)。以某种格局编码 / 保留某种信息,这能够了解为表示层了。
3、当 A 关上与 B 的聊天窗口,输出信息,按下“输出”按钮,用户的操作就完结了,剩下都是机器本人的操作了。理论传输之前 QQ 会先建设 A 与 B 的会话连贯,才真正开始传输信息 / 数据(你能够了解借传输文件了解:你发送文件给对方,要期待对方按下接管,才算建设了会话,而后才开始传输。)这算会话层了。
4、会话建设后,会将 A 发的信息斩件,如 A 发送“你吃了饭没有”?传输层将这句话斩成“你”“吃”“了”“饭”“没”“有”6 个数据段,标记号应用的端口号,而后筹备收回去。
5、接上一层,信息还未收回去,这时候在网络层做路由选路,能够了解为,从 A 家进来,能够别离经“联通”“电信”“挪动”3 个网络中的一个再到 B 家。
网络层依据路由协定负责选路(依据链路品质、带宽、开销等方法论)。假如最初选了 2 条,可能就 A -> 联通 ->B 发送“你”“吃”“了”3 个数据段,A-> 电信 ->B 发送“饭”“没”“有”3 个数据段。
选路后,这一层要标记 IP 包头,包头次要内容是源 IP 地址,目标 IP 地址,应用什么协定。其中源、目标 IP 相当于你寄信的时候的收发的地址与邮政编码,标记出发送者与接收者。而协定相当于这封信到底用什么语言书写。(只有保障 2 端应用同种语言,能力确保通信起来,否则你用英文写信给大妈,大妈怎么看得懂呢?)
6、而后再到数据链路层,数据链路层次要是负责同一个子网内的通信的。例如 A、B 连贯在同一台二层交换机,就属于同一个子网,那么数据帧的通信是不须要通过网络层的(即三层交换机或者路由器),间接在这台二层交换机就过来了。这一层打的是 MAC 地址的帧头,对于上述通信过程来说,就是为数据帧打上 A 的机器的 MAC 与 A 的网关的 MAC。这一层的工作就实现了。
7、最初一层了,通过上述斩件、打完各层标签后的 6 个数据帧,物理层将他们翻译文 6 段 0、1 示意的比特流,而后通过光纤、铜缆进行传输。
8、当比特流传输到了远端,接着 B 的机器依照上述的 1~7 的步骤反方向运行一次即可(即有物理层到应用层)。就是一层层读取标签,传输给标签标记着的相应对象,而后摘除标签,再读取上一层标签,直到最初 B 的应用程序可能读到 A 往应用程序输出的数据为止。
2 个主机之间的通信,对于 2 台主机来说,必定是都须要逾越 7 层的,而平时说的只须要去到 2 层或者 3 层,其实是对于两头零碎而言的,就是说两头的交换机、路由器而言;
例如图 1 的假如两端的通信实体在一个局域网内,其实传输的数据包去到交换机时,交换机拆开二层帧头,再查本身的 MAC 地址表,发现表外面有对应的目标 MAC 地址,而后对应的端口是哪个,接着就把帧发送到该端口转发进来,它的工作就实现了。基本不须要达到网络层的意思是,基本都不须要拆开 3 层的 IP 包头来读取外面的信息。
通过转发,最初达到 B 主机,而后从 1 层拆到 7 层,B 用户的主机最终就读取到信息了。
对于图 2,因为 A、B 两通信实体跨域广域网,所以光靠 MAC 地址表,必定是查不到的,这时候路由器会把 IP 包头也拆开,读取目标 IP 地址,再查路由表,就晓得往哪个端口收回去了。而后层层转发,就能够达到目的地了,接下来就和图 1 的一样了。
对于网络的实践还有很多很多,VLAN、STP、VRRP、动静路由(OSPF、EIGRP、BGP)、×××、GRE TUNNEL 等,俗话说抛开剂量论毒性就是耍流氓,如果光说不练,来讲述下面的这些实践,根本无法很好地了解与消化。因而前面,网络局部咱们以 packet tracer 模拟器来作为入口,试着每个概念既讲述实践,又尝试入手试验,穿插着讲,务求学以致用。
更多精彩内容,能够关注我的 微信公众号:Waiting 的运维日常
本篇文章由一文多发平台 ArtiPub 主动公布