开发者学堂课程【大数据 ZooKeeper 快速入门:网络编程:了解网络模型】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/549/detail/7578
网络编程:了解网络模型
目录:
一、网络模型图
二、七层参考模型分层
一、网络模型图
1.计算机之间何种规则进行通信?就是网络模型所研究的问题。
2.网络模型一般有一个参考标准,最常见的叫做 OSI 七层参考模型,这个七层参考模型,是有一个国际化的标准组织,叫做 ISO 来制定的,他把网络通信从用户接触到的应用层最上面一层,一直到最下面的物理层划分了七层,每一层都有各自的功能和协议。有的资料上也会把网络模型的划为所谓的 TCP/IP 的五层模型,还有什么四层模型的,不管怎么划分,可以发现这些五层模型还是四层模型,它都是来自于七层参考模型,只不过把它上面的当中的某一层做了一些分装。因此,重点来看这个七层参考模型是一个什么意思.
3.因为网络通信划成了七层,因此,在每一层都有各自的功能以及各自的意义,并且最重要的是每一层都会为它相邻的两层提供一个业务的支持,因此在这种七层参考模型下,网络通信变成了这种形式,由它的本质变成这种形式。
4.现在有两台机器,在两台机器之间进行通信意味着每台机器上都有一个所谓的七层参考模型,那么用户能够接触到的是哪一层呢?是应用层,那应用层上面会运行着很多的程序,比如说你的聊天软件,浏览器。以一个聊天软件来举例,左边这台机器上有一个聊天软件,这聊天软件可以进行一个聊天的通信。在右边这台机器上也有一个聊天软件,为了表示区分开,这两边都给他表示是两台不同的机器。两个聊天软件进行通信,实际上是这两个聊天软件直接建立一个通信。发送消息实际上是在两个应用之间建立了个连接。发送消息两方都可以接收。当在左边发送数据的时候,在应用层输入数据的时候,不是直接发送到对面的应用层,是经过了一个从上往下逐级封装的过程,就是说应用层的数据对于左边来说,首先流转到表示层,在表示层当中,它会把数据做一些封装,加入一些自己相关的信息,因此这里可以写一个专业的数据,数据的封装。
5.在左边这边,数据经过每一层都会经历一个封装,封装这一层相关的一些信息,然后当数据封装之后逐级往下铲,最终依旧来到了物理层。在物理层它的数据是一个什么格式呢?就是常见的0101就是这种形式。那么这一层的数据在物理层,是不是到这一层数据最终是要在物理层做传输。比如物理层,在两台机器之间通过光纤做一个连接,因此,最终在物理层传输的数据都是01的标志,那么右边传输的标识,在左边就可以接收到这种数据。接收到这个数据的话,如果直接表示传送给应用层,应用层也解决不了。因此在左边这里通信也经过一个逐级封装,逐级上传的过程。也就是说,物理层这条数据传输单层数据电路层,左边进行逐级的分装,右边就是相反的过程,数据的拆分。在左边这里,从应用层数据传输到物理层的时候呢,逐级进行一些封装,那么反之,在同方向的另一个机器上呢,就会进行一个逐级数据的拆分。方向的另一个机器上呢,就会进一个逐级数据的拆分,那么传一下左边数据链路层数据链路层封装的信息,对于右边来说,当然能够解析到,因此逐级分装,逐级解封,那解封之后传给上一层,然后上一层再进行解封,一直解析到聊天应用层。
6.在数据传输参考模型下,在网络模型中。数据的传输经历了逐级分装的过程,反方向反方向上经历了逐级拆分的过程。这才是数据传输的本质。
二、七层参考模型分层
1. 物理层:
主要去定义一些物理设备的标准,比如网线的接口类型,光纤的结构类型,以及各种传输介质的传输速率是多少。这一层最终会将数据编码为用0101标识的比特流,然后通过定义的这些物理介质进行传输,因此在这一层传输的数据叫什么?比特。这一层可以说是整个网络层当中最底层了,因为它已经编码为0101了,这一层的数据一般也不是所关心的,编程不会达到最底层,这是叫做物理层。
2. 数据链路层数:
主要将接收到的数据进行一个 MAC 地址,就是网卡地址的封装,因为涉及到两个方向在一边进行,封装在另一边就要进行解封装。那么这一层工作的数据把它叫做帧。这一层常常工作的设备是一个交换机,交换机主要就在这一层的工作,叫做数据电路层。
3. 网络层:
网络层主要是将接收到的数据进行 IP 地址的封装与解封装,那么同样可以发现,不管是封装还是什么操作,都是一个方向性的。左边进行封装,在右方进行解封装,左边进行拆分,右边进行反拆分啊,这就是一个所谓的一个方向的操作。网络层这一层工作的数据叫做数据包,这一层工作的设备常常是路由器。
4. 传输层:
主要去定了一些数据传输的协议和端口号。这一层主要将接收的数据进行一个分段和传输,在一边进行分段,到达目的地后,在另一边就要进行一个数据的重组,因此把这一层的数据叫做段。
5. 会话层:
会话层主要是通过传输层建立数据传输的通道,在系统之间发起会话请求和接收会话请求。
6. 表示层:
表示层主要进行接收数据的解释,一边加密一边解密,这是一个双向性的,一边数据压缩,一边就要解压缩。它主要表示在确保一个系统的应用层发送的数据能被另一个系统的应用层识别。可以把它理解为应用的秘书,在这一层进行了加密,解密压缩解压缩。
7. 应用层:
这一层主要是为一些终端的应用程序提供服务,比如聊天软件,浏览器,这一层是直接面对用户的是能够接触到的。
这七层参考模型,每一层都有不同的协议,那么要理解什么?要明白当前是开发在哪一层,工作在哪一层,比如是从事 Java 的开发,或 Java web 的开发,使用最多的是 HTTP 协议,那么应该开发在应用层?因此把 java 叫做企业级应用开发,因为使用最多的是 HTTP 协议,那么要想进行网络通信编程?使用最多的是一个 TCP 和 udp 协议,因此是在传输层进行开发,这就是所谓的网络模型。