什么是OSI七层模型?
开放系统互连参考模型 (Open System Interconnect 简称OSI)是国际标准化组织(ISO)和国际电报电话咨询委员会(CCITT)联合制定的开放系统互连参考模型,为开放式互连信息系统提供了一种功能结构的框架。,它从低到高分别是:物理层、数据链路层、网络层、传输层、会话层、表示层和应用层
实际上就是将上网的过程从底层到应用分为七个层级结构
在OSI参考模型中,物理层(Physical Layer)是参考模型的最低层,也是OSI模型的第一层 物理层的功能:利用传输介质为数据链路层提供物理连接,实现比特流的传输
物理层的作用:物理层的作用是实现相邻计算机节点之间比特流的透明传送,尽可能屏蔽掉具体传输介质和物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。“透明传送比特流”表示经实际电路传送后的比特流没有发生变化,对传送的比特流来说,这个电路好像是看不见的
把二进制转换成电流,把电流转换成二进制(单位是bit比特)
与物理层有关的设备:中继器(将电信号方法,因为电缆是金属有电阻)
1.2-数据链路层
数据链路层(Data Link Layer)是OSI模型的第二层,负责建立和管理节点间的链路。
该层的主要功能是:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路 在计算机网络中由于各种干扰的存在,物理链路是不可靠的。因此,这一层的主要功能是在物理层提供的比特流的基础上,通过差错控制、流量控制方法,使有差错的物理线路变为无差错的数据链路,即提供可靠的通过物理介质传输数据的方法
数据链路层的具体工作是:接收来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上层的数据帧,拆装为位流形式的数据转发到物理层 将二进制数据转换成标准帧格式(起始位、数据、地址、校验、结束位) 与数据链路层有关的设备:交换机,也就是大家常说的猫(为数据帧从一个端口到另一个任意端口的转发提供了低时延、低开销的通路)
如果把电脑比如成客户,数据链路比喻成物流,那么快递小哥如何找到客户地址?
通过电脑MAC地址(MAC地址由网卡决定)
1.3-网络层
网络层(Network Layer)是OSI模型的第三层,它是OSI参考模型中最复杂的一层,也是通信子网的最高一层。它在下两层的基础上向资源子网提供服务。
其主要任务是:通过路由选择算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与传输层之间的信息转发,建立、维持和终止网络的连接。具体地说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备
寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)。
交换:规定不同的信息交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者又包括报文交换技术和分组交换技术。 路由算法:当源节点和目的节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径由发送端传送到接收端。 连接服务:与数据链路层流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测 网络层有关的设备:路由器(一个作用是连通不同的网络,另一个作用是选择信息传送的线路)
网络层主要有两个作用
选择数据传输的最优路径,解决网络阻塞问题(网络阻塞的原因主要是CPU需要处理数据有一定延迟)
将大的数据切割成小的数据包,根据不同时间段的不同最优路径进行传输(可以联想看片时候的断点续传)
互联网如何识别电脑? 通过ip地址
1.4-传输层
OSI下3层的主要任务是数据通信,上3层的任务是数据处理。而传输层(Transport Layer)是OSI模型的第4层。因此该层是通信子网和资源子网的接口和桥梁,起到承上启下的作用 该层的主要任务是:定义了一些传输数据的协议和端口号(如HTTP的端口80等),TCP(传输控制协议,传输效率低,可靠性强,可以用于传输可靠性要求高,数据量大的数据),UDP(用户数据报协议,与TCP特性恰恰相反,用于传输可靠性要求不高,数据量小的数据,如QQ聊天数据就是通过这种方式传输的)。 主要是从下层接收的数据进行分段和传输,到达目的地址后再进行重组。常常把这一层数据叫做报文段 协议和端口号是在传输层定义的 电脑如何识别某一个应用程序? 通过端口号:每一个应用程序都有很多的服务,每一个服务对应着一个端口号
1.4.1-MAC地址、ip地址、端口号的理解
假如我想在淘宝买一个娃娃,首先需要登录淘宝账号,下单购买后卖家开始联系寄东西过来。如果把卖家比喻成电脑A,我比喻成电脑B,买的东西相当于A给B传输的数据,那么MAC地址就相当于B下单时填写的收货地址,这个地址是固定的,如果搬家了换了地址就相当于换了网卡更换了MAC地址,而ip地址就相当淘宝这个平台,我可以在淘宝买东西,也可以在京东买,ip地址是不固定的,端口号就相当于学校有很多楼也有很多教室,每一个教室对应的是一个端口号(好比用淘宝程序购买,虽然找到了这台电脑的地址但是电脑中有很多应用程序,如何找到你是用淘宝客户端发起的获取数据请求而不是你的其他软件就是通过端口号来识别的)
1.5-会话层
会话层(Session Layer)是OSI模型的第5层,是用户应用程序和网络之间的接口,主要任务是:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理
通过传输层(端口号:传输端口与接收端口)建立数据传输的通路。主要在你的系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者是主机名)
数据的传输是在会话层完成的,而不是传输层,传输层只是定义了数据传输的协议
1.6-表示层
表示层(Presentation Layer)是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等
可确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取。例如,PC程序与另一台计算机进行通信,其中一台计算机使用扩展二一十进制交换码(EBCDIC),而另一台则使用美国信息交换标准码(ASCII)来表示相同的字符。如有必要,表示层会通过使用一种通格式来实现多种数据格式之间的转换
表示层的任务:数据格式转换(可以理解成iOS中将c语言的char字符转换成OC语言的NSString)
1.7-应用层
应用层(Application Layer)是OSI参考模型的最高层,它是计算机用户,以及各种应用程序和网络之间的接口,其功能是直接向用户提供服务,完成用户希望在网络上完成的各种工作 是最靠近用户的OSI层。这一层为用户的应用程序(例如电子邮件、文件传输和终端仿真)提供网络服务
1.8-小结
由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。 在7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能
以上只是一些理解性的概念,一般用于面试,但是在OSI七层模型中有两个东西是要求一定要掌握的。
一个是TCP/UDP协议:对于网络管理的网络安全具有至关重要的意义 一个是Socket:是应用层与传输层之间的桥梁
http与https的区别
HTTP:超文本传输协议(HyperText Transfer Protocol),是目前互联网上应用最为广泛的一种网络传输协议,所有的WWW文件都必须遵守这个标准。设计HTTP最初的目的是为了提供一种发布和接收HTML页面的方法。现在主要是一个客户端和服务器端请求和应答的标准(TCP),但是正在被HTTPS取代。
HTTPS:安全套接字层超文本传输协议(Hyper Text Transfer Protocol over Secure Socket Layer)或超文本传输安全协议(Hypertext Transfer Protocol Secure),由网景公司(Netscape)于1994年创建的,是以安全为目标的HTTP通道。简单讲是HTTP的安全版。即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。
主要区别:
- URL:http 一般以http:// 开头,https以https:// 开头。
- 证书:http不需要证书;https需要到ca申请证书,一般免费证书很少,所以需要一定费用。
- 安全:http信息是明文传输;https 则是具有安全性的ssl加密传输协议。
- 端口:http 默认端口是80;https是443。
- 连接:http 的连接很简单,是无状态的;https协议是由SSL+http协议构建的可进行加密传输、身份认证的网络协议,所以首次建立连接会慢一些,但是比http协议安全。
附:https优缺点: 优点:
- 通过证书可以更信任服务器。
- 更安全,防篡改。
缺点:
- https 需要证书。
- 因为对传输进行加密,会一定程度增加cpu消耗。
- 由于https 要还密钥和确认加密算法的需要,所以首次建立连接会慢一些。
- 带宽消耗会增加,服务端压力大。
进阶Http:mp.weixin.qq.com/s/3TaonTzAs…
进阶Https:mp.weixin.qq.com/s/lCr7NuQNL…
Android与服务器交互的方式中的对称加密和非对称加密是什么
对称加密,就是加密和解密数据都是使用同一个key,这方面的算法有DES。
非对称加密,加密和解密是使用不同的key。发送数据之前要先和服务端约定生成公钥和私钥,使用公钥加密的数据可以用私钥解密,反之。这方面的算法有RSA。ssh 和 ssl都是典型的非对称加密。
简述 tcp 和 udp的区别
tcp 和 udp 是 OSI 模型中的运输层中的协议。tcp 提供可靠的通信传输,而 udp 则常被用于让广播和细节控制交给应用的通信传输。
两者的区别大致如下:
- tcp 面向连接,udp 面向非连接即发送数据前不需要建立链接;
- tcp 提供可靠的服务(数据传输),udp 无法保证;
- tcp 面向字节流,udp 面向报文;
- tcp 数据传输慢,udp 数据传输快;
https 三次握手四次挥手
三次握手: 在TCP/IP协议中,TCP协议提供可靠的连接服务,采用三次握手建立一个连接。
(1)第一次握手:建立连接时,客户端发送syn包(syn=j)到服务器,并进入SYN_SEND状态,等待服务器确认;
(2)第二次握手:服务器收到syn包,必须确认客户的SYN(ack=j+1),同时自己也发送一个SYN包(syn=k),即SYN+ACK包,此时服务器 进入SYN_RECV状态;
(3)第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入 ESTABLISHED状态,完成三次握手。 完成三次握手,客户端与服务器开始传送数据.
(1)客户端A发送一个FIN,用来关闭客户A到服务器B的数据传送。
(2)服务器B收到这个FIN,它发回一个ACK,确认序号为收到的序号加1。和SYN一样,一个FIN将占用一个序号。
(3)服务器B关闭与客户端A的连接,发送一个FIN给客户端A。
(4)客户端A发回ACK报文确认,并将确认序号设置为收到序号加1。