初识五层网络模型
大家都经常听到 Http 协议、TCP/IP协议,UDP协议等等很多协议,这都是一些既熟悉又陌生的词,很多同学不理解这些协议是做什么的?好吃吗?不用协议行不行?这些协议有什么区别?今天我们就来聊聊这个话题~

话说小明平生,稳久必浪,浪久必稳。有一天,小刚给小明介绍了一个女朋友,名叫:赵铁锤~小明虽然平时抽烟喝酒烫头,但是性格还是比较内向的~所以决定先进行书信交流~
这时小明和铁锤妹妹就相当于两个软件或者两个程序,小明想给铁锤妹妹送信,就好像是两个软件或程序要进行通信,如果我们就拿浏览器和服务器之间的通信来举例,那么小明就相当于是浏览器,铁锤妹妹就相当于是服务器上的程序,这些程序或软件我们称之为应用层。
×××
于是小明找来了哆啦A梦来送信,但是小刚担心哆啦A梦把信送错了人,所以提前向小刚和铁锤妹妹约定了暗号。
这个暗号就好比是应用层协议,比如:Http协议,当然应用层协议还有很多,包括DNS协议(域名解析),FTP协议(文件传输),SMTP协议(邮件传输)等等。
如果送信时送错了地方,哆啦A梦把信送给铁锤妹妹的隔壁邻居老王,哆啦A梦说出暗号的上半句:“天王盖地虎”。对方一定会觉得这人脑子有病,肯定就不会收。只有能够认识这个暗号的人,才会收这封信。
就像是能识别Http协议的程序才能解读Http协议里传输的数据内容。
这时小明将信交给哆啦A梦了~小明这时需要考虑信件的传输过程。
这时对数据传输连接的建立和管理,在网络的世界中我们称之为传输层。
这时小明可以有很多种选择,可以搬一个小马扎坐在门口等,也可以边吃边等,也可以边睡边等,或者干脆不等。
这些方式每一种方式都称之为一种协议,这就是传输层协议。
×××
我们只举两个例子。一种是不管信有木有送到,现在都去睡觉。毕竟小明岁数大了要保养。就算是哆啦A梦在送信的半路把信丢了,也不管~
这种方式在网络的世界中,我们称之为:UDP协议,UDP协议是尽最大努力保证数据送到,但是不保证数据一定能够送到的。我们经常用到的Ping命令,来测试主机之间是否联通,原理就是UDP协议。这种在送信途中把信丢了的情况,在网络中我们称之为:丢包。
另一种方式就是小明搬个小马扎,坐在门口等~等待铁锤妹妹的回信,如果哆啦A梦在半路把信丢了,小明就再写一封送过去。
这种方式在网络中,我们称之为:TCP协议,TCP协议是会保证数据的正确性的,也会保证数据的顺序性。
×××
小明在两种方式中选择了搬个小马扎等待,伴随着那痴汉般的笑容。
哆啦A梦拿到信之后,要找到一个好的线路,把信送过去。于是打开了XX地图,问:谁是这个世界上最帅的人~?地图:帅了这么多年,你不累吗?(有兴趣的可以去撩一下地图~)哆啦A梦得到了内心的满足之后,开始寻找去铁锤妹妹家最合适的路线。小明住在害虫大街138号601室,铁锤妹妹住在如花大街100号502室。
这里的每一栋楼房都相当于连接到网络中的一台计算机,每个屋子都相当于是计算机上的一个端口,而交通网络就像是计算机世界的网络。
在网络的世界中,我们称之为网络层。在现实世界中我们要找到一个人的住址我们需要的是地址和门牌号,地址和门牌号具有一定的格式,这种格式类比到网络世界中就是一种协议,我们称之为网络层协议。
我们在网络中通常用IP加端口来定位一个程序的位置,这种方式就是一种网络层协议,我们称之为IP协议。
哆啦A梦在地图上找到了最好的路线,先到A地,再到B地,再到C地,最后到铁锤妹妹家。
这一层我们称之为数据链路层,这数据链路层呢又分为两个部分或者称为两个子层,一个是地图上显示的路线我们称之为:逻辑链路控制子层,另一个是现实世界中的路线,我们称之为:媒体访问控制子层,这层的缩写大家肯定熟悉——MAC,也就是人们常说的MAC地址。
在实际的送信过程中,需要做公交车,地铁,骑共享单车等等,坐公交需要公交卡,骑车子需要扫码。
这个层面在网络中我们称之为物理层,物理层也有很多协议,我们就不一一列举了~
×××
现在这封信已经从从小明手里到哆啦A梦手里了,哆啦A梦也乘坐交通工具在送信的路上。车到站之后哆啦A梦下车,然后根据地址和门牌号找到铁锤妹妹家,然后敲门,和铁锤妹妹对暗号。
这个过程就是从应用层到物理层的过程。但是数据到了对方的计算机时,就是一个从物理从到应用层的过程,坐车到站之后,先下公交车,这就是从物理层到数据链路层,这是哆啦A梦已经在数据链路层中最后一个环节上了。
然后根据门牌号找到相应的楼和门,这就是从数据链路层到网络层的过程。找到门之后,敲铁锤妹妹家的门,这就是网络层到运输层的过程,然后和铁锤妹妹对暗号,这就是运输层到应用层的过程。

好~到此为止我们就将五层网络模型的基本结构说完了,大家需要记住,五层网络模型分别是:应用层,运输层,网络层,数据链路层和物理层。
五层网络模型在数据传输的过程中,先是从A处的应用层到运输层到网络层到数据链路层到物理层,将数据运送到B处,然后再从B处的物理层到数据链路层到网络层到运输层到应用层。每层协议本质就是在外面套一层特殊格式的数据。所以在将数据送到的时候,需要将这一层层的协议拆开,然后才能得到里面的数据。

这个过程就像是我们出门的时候要先穿袜子再穿鞋,回到家之后要先脱鞋再脱袜子一样。我们不可能不脱鞋直接脱袜子~所以当我们的消息送到目的地之后,协议也是一层层去掉的,要先去掉最外层的物理层协议,然后一层一层逐渐地去掉,最后去掉应用层协议。
除了五层网络模型之外还有七层网络模型,那么七层网络模型是什么呢?就是将应用层一分为三,分别为:应用层,表示层和会话层。新出来的表示层和会话层没有相应的协议。一般表示层做的是数据格式化,或者加密等操作。就比方说小明的信,怕别人偷看,于是用甲骨文来写,这样就不怕别人看了。这就是表示层要做的事情。
小弟初次弄这个,还望各位大佬嘴下留情!!!