一、OSI的设计目的
OSI模型的设计目的是成为一个所有销售商都能实现的开放网路模型,来克服使用众多私有网络模型所带来的困难和低效性。OSI是在一个备受尊敬的国际标准团体的参与下完成的,这个组织就是ISO(国际标准化组织)。什么是OSI,OSI是Open System Interconnection 的缩写,意为开放式系统互联参考模型。目的是更利于标准化 。降低层次之间的关联性---每一层都只执行对应的功能。 每一层都在上层的基础上提供增值服务。
二 、OSI七层参考结构
1.应用层
OSI应用层功能:应用层提供各种各样的应用层协议,这些协议嵌入在各种我们使用的应用程序中,为用户与网络之间提供一个打交道的接口。
2.表示层
表示层的基本作用就是对数据格式进行编译,对收到或发出的数据根据应用层的特征进行处理,如处理为文字、图片、音频、视频、文档等,还可以对压缩文件进行解压缩、对加密文件进行解密等。只有在表示层将数据处理完成后,才能将转格式编译后的数据呈现在应用程序中,让用户能够看懂。
3.会话层
建立维护和断开一次会话连接。
4.传输层
实现了端对端的传输。区分不同的进程和服务。是通过不同的端口号来识别不同的进程和服务
端口号是由16位二进制构成,其中0为保留端口号,其中比较常见的端口号例如http端口号为80。
5.网络层
为数据包选择路由 IP,ICMP,RIP,OSPF,BGP,IGMP
6.数据链路层
数据链路层主要有三个功能:封装成帧,透明传输和差错检测
7.物理层
1、物理层要尽可能地屏蔽掉物理设备和传输媒体,通信手段的不同,使数据链路层感觉不到这些差异,只考虑完成本层的协议和服务。
2、给其服务用户(数据链路层)在一条物理的传输媒体上传送和接收比特流(一般为串行按顺序传输的比特流)的能力,为此,物理层应该解决物理连接的建立、维持和释放问题。
3、在两个相邻系统之间唯一地标识数据电路。
三、TCP/IP模型-----TCP/IP协议簇
协议数据单元
应用层----数据报文
传输层---数据段
网络层---数据包
数据链路层---数据帧
物理层----比特流
四、封装与解封装
每一层在封装时都会默认将上一层传递的信息都作为数据部分,然后再进行封装。
五、TCP和UDP
1. TCP是面向连接的协议,而UDP是无连接的协议
2.TCP的传输是可靠的,排序、确认、重传、流控。而UDP的传输是不可靠 的。
3. TCP可以分段,而UDP不能
4. TCP可以进行流控,而UDP不能
5. TCP转发数据的效率比较低,UDP的转发效率比较高。
UDP适用的场景:视频聊天。对于数据可靠性要求比较低,但是对于实时性要求高的场景下使用UDP。
TCP对于数据可靠性要求很高,但是对于实时性要求相对较低的场景下使用 TCP。 TCP报头最小20字节。
TCP的三次握手
TCP的四次挥手