最近在看关于负载均衡的相关知识,由于负载均衡包括二、三、四、七层负载均衡,所以去了解了一下七层模型的相关知识。
该内容只适合程序员,涉及的网络结构知识比较浅,只是为了更好的编写web程序,同时也是自己做一下记录。
在了解osi七层模型之前,首先需要了解一下什么是协议,计算机中的协议是指为了从网络中的一台计算机传递到另一台计算机,所有设备必须讲相同的语言,就像人与人沟通,需要说相同的语言,其实语言也是一种协议。
网络通信很复杂,为了降低网络通信的复杂性,将协议进行了分层设计,这就像web开发中,常用的分层开发思想,表示层、逻辑层、数据层相互分开,mvc也是一个道理(当然web开发分层每层之间是不需要相互通信),所以每一层协议都是相互独立的,只要对上层提供一致的服务和一致的接口就可以了,上层和下层不会关心你具体的实现,所以你也可以写一个类似tcp的协议,只要双方机器认识你的协议就可以了,网络分层也带来了能够快速定位的好处,只要那一层坏掉,替换掉该层就可以了,不需要全部替换。
网络传输类似于发邮件的过程。
A用中文写信,为了防止再发送邮件的过程中,防止丢失,你可能会加一个信封,并且选择一个可靠的快递来传送你的邮件,并且能够实时监听,直到顺利到达收件人手中,这里的快递公司就是你的下层服务(类似于网络层),快递公司还会选择具体的送件人(类似于数据链路层),这个送件人就是快递公司的下层服务,由于信件很多,送件人可能会选择把信件放在车里,并乘车(类似于物理层)送达目的地(距离收件人地址最近的快递公司),然后再一层层分解,直到达到你的手中。
ie只是浏览器,一个应用,并不能提供http协议,而是调用http协议。
osi七层模型只是理论上的模型,现实中使用的而是tcp/ip四层协议。
tcp/ip四层模型如下: