OSI七层网络模型中各层的作用
物理层
物理层提供了两台机器互联的物理链路,比如网线(双绞线,光纤),无线网(电波)。
物理层不仅提供了物理链路,还提供了数据传输能力,比如双绞线使用电信号,光纤使用光信号,无线网使用电波信号,实现数据传输。
物理层使用信号来模拟出二进制数据0和1,来实现复杂数据的简单表示,所以物理层中数据也被称为比特流(因为二进制每一位都是bit,比特)。
数据链路层
物理层的比特流是一串0和1组成的信息流,它们之间没有分隔,所以无法被机器识别。而数据链路层的首要任务就是将物理层的比特流 按照 八位一组(字节) 的方式,依次发送。这样比特流就会被转成字节流(帧),就可以被机器有效解析了。
数据链路层还有一个重要作用就是:
发送请求时:加入发送方机器的MAC地址 和 接收方的MAC地址。作用是,方便接收方确认数据发送方MAC地址,以及帮助接收方确认数据是否是给它的。
收到响应时:解析接收方的MAC地址,确认该数据是否发送给本机。如果是,数据中接收方的MAC地址就应该是本机的MAC地址。
网络层
在数据链路层中,发送请求时,如何获取到接收方的MAC地址呢? 解决方案:ARP协议
如果发送方和接收方不在一个子网下,请求该如何发送?如果在一个子网下,请求该如何发送?
解决方案:IP协议
发送方如何选择最优路径找到接收方?解决方案:一组路由协议(静态路由,动态路由)
传输层
当发送的数据过多过大时,需要的传输事件就很长,如果传输过程中网络中断,那么如何保证数据重传?如何保证数据的完整性?
传输层会对发送的数据进行封装,会根据TCP协议或UDP协议进行封装。
数据的源头是来自于应用层的某个应用,而数据最终也要反馈到应用层的对应应用,那么我们如何将数据反馈到对应的应用中呢?
我们知道每个应用都会占用操作系统下的一个端口,且应用占用的端口号是固定的,无论应用安装在哪个机器上。此时,就可以通过端口号找到对应的应用。
所以传输层需要记录下数据来源的应用端口号,这样就可以根据端口找到对应应用,并将数据发送给他。
会话层
如果数据较大时,需要花费较多时间来进行数据传递,但是过程中网络中断,则需要数据重传。此时我们希望的是从网络断开时数据段开始重传,即断点续传。
会话层的作用就是从一个校验点开始恢复数据传递。
另外会话层还实现了自动收发包功能和自动寻址功能。
表示层
网络中互相通信的两台设备之间的操作系统完全可能不同,而操作系统不同就会导致数据传递实现方式出现差异,而表示层的作用就是提供一种公共语言,所有操作系统都可以识别的,来解决不同操作系统之间通信实现的差异性。即表示层做了一个翻译工作。
应用层
应用层直接面向用户,它需要将用户输入的数据整理后发送,即按照一定的协议(如HTTP协议),编排请求报文。
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数前端工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上前端开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
如果你觉得这些内容对你有帮助,可以扫码获取!!(备注:前端)
![](https://i-blog.csdnimg.cn/blog_migrate/3d249e8dce5b6d29cf440476ed15480a.jpeg)
最后
整理面试题,不是让大家去只刷面试题,而是熟悉目前实际面试中常见的考察方式和知识点,做到心中有数,也可以用来自查及完善知识体系。
《前端基础面试题》,《前端校招面试题精编解析大全》,《前端面试题宝典》,《前端面试题:常用算法》PDF完整版点击这里领取
cs/618191877)**
[外链图片转存中…(img-06Ga2jcE-1713183502435)]
[外链图片转存中…(img-M1FTkjQs-1713183502435)]
[外链图片转存中…(img-bV2sv4Mj-1713183502435)]