本帖最后由 莫冷 于 2022-10-16 22:33 编辑
哈喽,大家好,纯洁的小莫冷又来啦~
想必OSI七层参考模型大家都已经背的滚瓜烂熟了,今天不给大家讲定义啥的,把我个人的一些理解写出来方便大家参考,如果有哪里说的不对的地方还请各位给指出来。
首先,OSI七层从下到上依次是物理层、数据链路层、网络层、传输层、会话层、表示层、应用层这七层,每一层都有其特定的功能,而每一层都会使用下层提供服务,并向其上层提供服务,比如网络层的IP需要用到数据链路层的MAC地址,并且向上层,也就是传输层TCP/UDP提供服务,就是这个逻辑。
OSI各层对应的协议
物理层
对于物理层的理解,我个人认为就是网线、网卡等设备,也就是实际存在的,看得见摸得着的东西,他们就是属于物理层的设备,而对应的协议的话就是RJ45等,在这层,数据的单位为比特。
数据链路层
数据链路层最具有代表性的就是MAC地址了,每个网口都有一个MAC地址,而且是唯一的,数据链路层最主要的作用就是物理寻址了,这一层的数据单位为帧。
与之对应协议则是STP、SDLC、HDLC、PPP、帧中继等
网络层
网络层就是咱们经常打交道的了,这一层,数据的单位称为数据包,我们在调试设备时写的路由、ping操作等都是属于这一层提供的服务。
网络层协议包括:IP、IPX、RIP、OSPF、ARP、RARP、ICMP、IGMP等。
传输层
传输层是第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。此外,传输层还要处理端到端的差错控制和流量控制问题。 在这一层,数据的单位称为数据段。
传输层协议的包括:TCP、UDP、SPX等。
会话层
会话层管理主机之间的会话进程,即负责建立、管理、终止进程之间的会话。会话层还利用在数据中插入校验点来实现数据的同步。
表示层
表示层对上层数据或信息进行变换以保证一个主机应用层信息可以被另一个主机的应用程序理解。表示层的数据转换包括数据的加密、压缩、格式转换等。
应用层
应用层是OSI参考模型的最高层,是用户与网络的接口。该层通过应用程序来完成网络用户的应用需求,如文件传输、收发电子邮件等。
TCP与UDP用一个端口发送信息是否冲突,如果不冲突,TCP/UDP则会绑定同一个端口来进行通信,许多协议已经这样做,因为数据接受时根据五元组(传输协议,源ip,目的ip,源端口,目的端口)判断接受者的
看到上面,大家应该都已经理解了,我们经常写的IP地址,是属于三层的协议,而流控是四层的协议,而对于端口号的问题,各位可能有点懵,因为四层的TCP/UDP是有端口号的,七层的应用层协议也有端口号,这是怎么回事呢?
这就得说说四层和七层的区别了,像我们经常写的端口映射、代理上网等功能,其实是属于ip+端口转发,这是属于四层的服务,而七层的端口在我们的配置里更多的应用于负载均衡方面,相比较于四层负载,七层提供的是协议+内容交换的转发,它起到的作用是反向代理的作用,服务器建议一次TCP链接要三次握手,而客户端要访问服务器则先要与负载均衡设备进行三次握手后建立TCP链接,把要访问的信息发给负载,再由负载设备根据负载规则选择服务器,再由负载与服务器三次握手后,拿到需要的数据,再把数据转发给客户端,也就相当于中间人的身份。
那四层负载和七层负载到底孰优孰劣呢?其实两种方式各有优势,比如七层代理可以更好的处理资源转发,比如图片类、静态文件类分别转发到不同的服务器,针对SYN Flood攻击也可以在负载上进行拦截,但是它的资源占用率却大大不如四层负载所需要的资源,但是大多数情况下,设备的性能是可以满足业务需求的,建议大家选择七层负载。
好了,今天的分享就到这里了,感谢大家支持。 |