前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >HTTP学习之五层网络模型

HTTP学习之五层网络模型

作者头像
wade
发布2020-04-24 13:09:15
3880
发布2020-04-24 13:09:15
举报
文章被收录于专栏:coding个人笔记coding个人笔记

最近学习一下HTTP,做点笔记,尽量让自己慢慢的记住这些东西。

HTTP几乎都是从五层网络模型说起,虽然觉得可以不用深入了解,但是还是需要简单的了解一些。

应用层:

我的理解就是,应用层就像是两个软件或者两个程序,比如我们的浏览器和服务器,我们通过浏览器去请求服务器,服务器程序之间操作数据,这些程序或者软件就称之为应用层。应用层之间有很多协议,比如HTTP协议、DNS协议、FTP协议、SMTP协议等等。

传输层:

这个层做的是建立主机端到端的连接,在这个层有两个协议,一个是UDP协议一个是TCP协议。UDP协议是尽最大努力保证数据送到,但是不保证数据一定能够送到的。我们经常用到的Ping命令,来测试主机之间是否联通,原理就是UDP协议。这种在数据传输途中把数据丢了的情况,在网络中我们称之为:丢包。TCP协议是会保证数据的正确性的,也会保证数据的顺序性。

网络层:

网络层用的是一种网络层协议,也叫IP协议,网络层通过IP寻址来建立两个节点之间的连接,IP是唯一的。

数据链路层:

数据链路层呢又分为两个部分或者称为两个子层,逻辑链路控制子层和媒体访问控制子层,这层的缩写大家肯定熟悉——MAC,也就是人们常说的MAC地址。一开始我一直以为是定义好了链路,然后发射出去,但是实际上第一次连接的时候是不知道链路的,是发射出去之后一直跳,最终定位到目标,然后会缓存这个链路地址。可以通过cmd命令行去看:

tracert www.baidu.com

可以看见跟踪的跳跃点,然后跳跃点ip是无序的。

物理层:

这个就不需要多说了,上面的所有东西都是基于物理硬件的,物理层是支撑一切的基础。当我们在链路层处理完成之后,是通过物理层发射数据出去的,比如网卡。

刚开始我其实是不知道这五层网络协议的运行过程,后来问了运维,才大概理解了一点。比如浏览器请求服务器,浏览器这边按顺序把数据在应用层封装,定义好协议,接着到传输层继续添加TCP/UDP协议,接着到网络层添加IP协议,然后在链路层先找缓存有没有链路,有就封装进去,没有就通过物理层发射出去数据包去找目标。数据包找到目标之后,通过物理层接收到数据包,然后通过链路层、网络层、传输层、应用层一层一层往上解包,然后使用。

在五层模型执行的时候,都是只在单独自己的程序上执行,比如TCP三次握手,就需要执行三遍这个过程。简单理解就是压包和解包的过程。当然,每一个的机制都是非常复杂的,每一层里面的协议的工作也都不只是那么简单。每层协议本质就是在外面套一层特殊格式的数据。所以在将数据送到的时候,需要将这一层层的协议拆开,然后才能得到里面的数据。

还有一个OSI的七层模型,只是把应用层分成了三个层,应用层,表示层和会话层,表示层和会话层没有相应的协议。一般表示层做的是数据格式化,或者加密编码解码等操作。

(完)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 coding个人笔记 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档