OSI(Open System Interconnect),即开放式系统互联。 一般都叫OSI参考模型,是ISO(国际标准化组织)组织在1985年研究的网络互连模型。
ISO为了更好的使网络应用更为普及,推出了OSI参考模型。其含义就是推荐所有公司使用这个规范来控制网络。这样所有公司都有相同的规范,就能互联了。
在七层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。
OSI七层网络模型 | TCP/IP四层概念模型 | 对应网络协议 |
应用层(Application) | 应用层 | HTTP、TFTP, FTP, NFS, WAIS、SMTP |
表示层(Presentation) | Telnet, Rlogin, SNMP, Gopher | |
会话层(Session) | SMTP, DNS | |
传输层(Transport) | 传输层 | TCP, UDP |
网络层(Network) | 网络层 | IP, ICMP, ARP, RARP, AKP, UUCP |
数据链路层(Data Link) | 数据链路层 | FDDI, Ethernet, Arpanet, PDN, SLIP, PPP |
物理层(Physical) | IEEE 802.1A, IEEE 802.2到IEEE 802.11 |
7、应用层:用户APP里的数据
我们在使用APP过程中看到的图片,文字和听到的声音都是应用层的数据。
6、表示层:对APP数据进行编码
即对我们在各个APP使用过程中所见的图片文字,图片,所听到的声音用计算机的编码表示出来。应用层所见的用编码在表示层表示。BMP或者JPEG编码,表示图片数据WAV或MP3编码,表示声音数据WMV或AVI编码,表示声频数据,独创一套编码方式,只有自己人才知道的解码方法,从而实现数据的加密
5、会话层:建立两个APP之间的会话
两个APP之间能否对接
4、传输层-建立TCP或UDP连接
传输层要选用确定连接,或选用可靠性高的TCP链接,或选用速度快的UDP连接,根据需求而定,文件传输对数据完整性要求高,如有丢失,将导致文件无法打开传输层用TCP协议的最大特点是保证数据传送的完整性。但会造成一定的延时。适合对完整性要求高的应用。UDP 协议完整性要求不高,但延时性要求高,希望速度快。主要特点是快。比如语音视频通话,实时采集数据,可以接受少量的丢包,但对延时要求高,希望速度更快
4.1 TCP 和 UDP 的区别
TCP
:面向连接的Transmisson Control Protocol
传输控制协议UDP
: 无连接的包传输User DataProtocol
用户数据报协议
UDP | TCP | |
---|---|---|
是否连接 | 无连接 | 面向连接 |
是否可靠 | 不可靠传输,不使用流量控制和拥塞控制 | 可靠传输,使用流量控制和拥塞控制 |
连接对象个数 | 支持一对一,一对多,多对一和多对多交互通信 | 只能是一对一通信 |
传输方式 | 面向报文 | 面向字节流 |
首部开销 | 首部开销小,仅8字节 | 首部最小20字节,最大60字节 |
场景 | 适用于实时应用(IP电话、视频会议、直播等) | 适用于要求可靠传输的应用,例如文件传输 |
4.2 TCP 三次握手
三次握手确认双方各自的接收与发送能力是否正常
- 第一次握手:客户端发送网络包,服务端收到了。 此时服务端就能得出结论:客户端的发送能力、服务端的接收能力是正常的。
- 第二次握手:服务端发包,客户端收到了。
- 此时客户端就能得出结论:服务端的接收、发送能力,客户端的接收、发送能力是正常的。
- 此时服务器并不能确认客户端的接收能力是否正常。
- 第三次握手:客户端发包,服务端收到了。此时服务端就能得出结论:客户端的接收、发送能力正常,服务器自己的发送、接收能力也正常。
4.3 TCP 四次挥手
为什么连接的时候是三次握手,关闭的时候却是四次握手?
建立连接时因为当Server端收到Client端的SYN连接请求报文后,可以直接发送SYN+ACK报文。其中ACK报文是用来应答的,SYN报文是用来同步的。所以建立连接只需要三次握手。
由于TCP协议是一种面向连接的、可靠的、基于字节流的运输层通信协议,TCP是全双工模式。这就意味着,关闭连接时,当Client端发出FIN报文段时,只是表示Client端告诉Server端数据已经发送完毕了。当Server端收到FIN报文并返回ACK报文段,表示它已经知道Client端没有数据发送了,但是Server端还是可以发送数据到Client端的,所以Server很可能并不会立即关闭SOCKET,直到Server端把数据也发送完毕。当Server端也发送了FIN报文段时,这个时候就表示Server端也没有数据要发送了,就会告诉Client端,我也没有数据要发送了,之后彼此就会愉快的中断这次TCP连接。
3、网络层-基于IP地址进行路由转发
路由技术是网络工程师的核心技术之一,直接影响到各个互联网APP的应用体验
2、数据链路层
隔断链路的通信协议所有的设备都必须遵守IP协议网络层用的IP协议(相当于普通话),数据链路层用的协议(相当于方言)如:以太网协议,帧中继协议,PPP协议,,802.11协议(无线)为什么不统一用一种协议,因为各个不同的协议由不同的优点,PPP协议适用于点到点,以太网协议适合于广播型,802.11适合于无线网络,所以,我们为了让整个网络的性能更加强大可以使用不同的链路段使用不同的协议