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