前端面试题之计算机网络篇 OSI七层网络参考模型

news2024/12/26 11:59:11

互联网数据传输原理 |OSI七层网络参考模型

OSI七层网络参考模型
在这里插入图片描述
在这里插入图片描述

   应用层:产生网络流量的程序
   
   表示层:传输之前是否进行加密或者压缩处理

   会话层:查看会话,查木马  netstat-n

   传输层:可靠传输、流量控制、不可靠传输

   网络层:负责选择最佳路径、规划ip地址

   数据链路层:帧的开始和结束、透明传输、差错校验

   物理层:接口标准、电器标准、如何更快传输数据

​ 需求:我们在家里计算机访问百度

1.物理层:需要网线,网卡

2.数据链路层:设备是网卡和交换机,我们访问出去时需要经过局域网交换机,而经过局域网交换机需要通过物理地址寻址MAC

3.网络层:我们的电脑和百度服务器之间在不同的网络,所以不同网络之间的路径选择需要通过IP地址来决定

4.传输层:传输时,需要遵守一定的协议(TCP稳定,UDP速度快)和协议的端口号来传输

5.会话层:建立连接到断开连接整个完整的过程需要会话层去控制

6.表示层:负责将我们的数据①翻译为二进制数据加密–②压缩(为了传输速度)–③百度服务器进行解压缩–④解译解密

7.应用层:经表示层翻译后,在我们的计算机可以进行输入,交互的界面(终端)中表现出来

所以不同网络之间的路径选择需要通过IP地址来决定



在这里插入图片描述
应用层是最接近用户那一层
在这里插入图片描述

1.物理层

实际上的物理连通是需要物理层的
物理层就是把比特用不同的媒介传输出去,可以用电,用光或者其他形式的电磁波来表示和传输信号,

在这里插入图片描述
数据从网络接口出去以后
会经过不同的网络拓扑
在这里插入图片描述

并不是一条线走到底,需要中继器和集线器这样的设备
在这里插入图片描述
但还是不够

2.数据链路层

信号要去到那台设备是需要定向的,因此需要高一点的网络模型,所以在数据链路层这里,比特会被封装成帧,帧就是这一层表示数据的特殊名字
封装的时候加上MAC地址 ----也就是物理地址

在这里插入图片描述
封装的时候加上MAC地址 ----也就是物理地址
在这里插入图片描述
为了可以通过mac地址对不同设备进行数据的传输
在这里插入图片描述
在这里插入图片描述
发送端发送数据的时候,交换机就知道了发送端的MAC地址,如果此时交换机也知道接收端的MAC地址,就可以把数据直接发送过去
物理地址就是这样一跳一跳地进行传统
在这里插入图片描述

另外因为物理层在传输0和1的时候,可能0变成1,1变成0,会进行差错检测,以及一定的差错纠正,另外设备之间的传输能力以及接收能力也是问题
在这里插入图片描述

可能一边喷水式传输,一边夹缝式接收,因此需要流控制来避免这种不对称
在这里插入图片描述

我们知道互联网是一张大网,如果用mac物理地址来作为唯一的寻址方法是不科学的

3.网络层

在这里插入图片描述

比如我和你买了一个厂出的网卡,差别就只有一个字母,但是距离位置十分遥远,物理地址就会很难做出快速定位

相当于我有你的名字,但我不知道你在哪里,找不到你,
在这里插入图片描述

因此需要IP地址来进行寻址和路由选择,IP这样的逻辑地址就是实现端到端的基础,而不是物理地址那样跳到跳传输在这里插入图片描述
说到路由选择,也就是路由器也是网路层的核心

在这里插入图片描述
包就是网络层里数据的名字,在封装为第二层的帧之前就是包,路由器根据包里的IP地址进行路由转发,地址管理和路由选择就是这一层的核心
在这里插入图片描述

4.传输层

虽然有MAC和IP地址可以抵达对方主机,但是对方主机可能运行着无数多个软件进程,
在这里插入图片描述

假设我用谷歌和火狐浏览器同时登录网站,如何让数据去到指定的软件服务器上,就需要用到端口号作为地址来定位了,比如客户端这里生成不同的端口号,即时同时访问HTTP端口80也是没问题的,根据不同的源端口号来作出响应就可以了,所以传输层(运输层)在网络层的端到端基础上,实现了服务进程到服务进程的传输

,
段就是传输层里的数据的名字,在封装为三包之前就是段
在这里插入图片描述
传输层管理两个节点之间数据的传输,负责可靠传输(TCP协议)和不可靠传输(UDP协议)
可靠传输(TCP协议):允许把字节流变成多份段,而不是整个字节数据完整发送出去,

在这里插入图片描述
传输层还有流量控制来确保传输速度,在加上错误控制来进行数据完整的接收
在这里插入图片描述

5.会话层

在这里插入图片描述
不用每次都输入账号和密码,当然网站服务会管理和控制登录状态,会话层还负责同步服务
在这里插入图片描述

再次登录账号的时候
在这里插入图片描述

6.表示层

在这里插入图片描述
表示层负责这样的转换,也就是编码和解码,数据往往还是需要加密。
比如说HTTPS(SSL/TLS)就会对我们的数据进行加密和解密
另外我们也会对文件进行瘦身—压缩 ,压缩也是这一层负责的

7.应用层

应用层,表示层和会话层的数据统称为应用数据,或者应用负载,也可以叫上层数据或者报文
在这里插入图片描述

地址来说,有端口号,IP逻辑地址和MAC物理地址
就传输功能来讲,有服务进程和服务进程,端到端,跳到跳
在这里插入图片描述

了解各层作用,现在可以把全部进行关联起来

  1. 客户端要发送数据,也就是报文
    在这里插入图片描述

  2. 报文来到了传输层,加上端口号,封装成段
    在这里插入图片描述

  3. 段来到了网络层,加上IP地址(源IP+目标IP地址),封装成包(这里的包是含有目标IP地址的,知道数据要发送到哪里,但因为目标IP地址不是同一个网络下的,要发送到其它的网络,就需要经过默认网关)
    在这里插入图片描述

  4. 现在出现了一个问题,客户端最初不知道默认网关的MAC地址,没有办法封装成帧,
    在这里插入图片描述

这个时候就可以用ARP协议进行广播,找到网关的IP对应的MAC地址,把包封装成帧,
源MAC地址填写自己的,目标MAC地址填广播地址
在这里插入图片描述
假设当前网络有个二层交换机,这个交换机只需要记录下不同的接口对应的MAC地址就好了

在这里插入图片描述

交换机收到广播后就帮忙发送出去,人手一份,
在这里插入图片描述

所以默认网关收到消息后,查看了帧,发现了发送端的MAC地址,再解封发现包里面的IP地址,就会把客户端MAC地址和IP地址关联为一台主机,
在这里插入图片描述

同时默认网关会把自己的IP地址放入包里,再结合自己的MAC地址封装成帧,
在这里插入图片描述

默认网关就这样做出响应,这样原路返回,发送端就知道默认网关的MAC地址了。
在这里插入图片描述

现在就可以封装成帧,并且发送数据,
在这里插入图片描述

比特流到了默认网关的时候,解封为帧发现是发送给自己的,
在这里插入图片描述

在解封为包查看到目标IP地址是在另一个网络中的,就会进行路由转发,最终到达了目的网络。

在这里插入图片描述

在这里插入图片描述

如果目标的网关知道目标IP地址和MAC地址是那台主机,封装成帧就可以直接发送过去了,

在这里插入图片描述

如果不知道也还可以用ARP喊下街就好。目标主机收到包确定是自己的IP地址以后,解封查看端就可以发现源和目标端口号,用目标端口号给定指定的应用程序,

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

应用程序处理好后,就可以按照源的信息作出响应,回去的原理也是一样的

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/124181.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亿级流量的互联网项目如何快速构建?手把手教你构建思路

一. 大流量的互联网项目 1.项目背景 索尔老师之前负责的一个项目,业务背景是这样的。城市的基础设施建设是每个城市和地区都会涉及到的,如何在基建工地中实现人性化管理,是当前项目的主要诉求。该项目要实现如下目标: 工地工人的…

C语言实现http下载器(附代码)

C语言实现http的下载器。 例:做OTA升级功能时,我们能直接拿到的往往只是升级包的链接,需要我们自己去下载,这时候就需要用到http下载器。 这里分享一个: 功能: 1、支持chunked方式传输的下载 2、被重定…

Apollo开放平台8.0发布:多维升级“为开发者而生”

Apollo开放平台8.0重磅发布:多维升级“为开发者而生” Apollo开放平台迎来8.0版本,百度自动驾驶开放平台迈向易用性时代 百度Apollo EDU计划进展公布:已覆盖自动驾驶技术人才33.5万、700多所院校 Apollo Studio学习实践社区上线,新…

剑指offer----C语言版----第一天

目录 1. 数组中重复的数字Ⅰ 1.1 题目描述 1.2 思路一 1.3 思路二 1.4 思路三(最优解) 1. 数组中重复的数字Ⅰ 原题:剑指 Offer 03. 数组中重复的数字 - 力扣(LeetCode)https://leetcode.cn/problems/shu-zu-zhong-…

Python语言快速入门上

目录 1、前言 2、变量和常量 1)Python对象模型 2)Python变量 二、运算符和表达式 【运算符和表达式】 【位运算符】 【逻辑运算符】 【成员运算符】 【身份运算符】 【常用内置函数】 【基本输入输出】 【模块导入与使用】 【Python代码编…

【PCB专题】Allegro导出3D文件

在PCB布局时,已经决定了大部分器件要放置的位置。如接口、主要的芯片、模块等。因为放置好器件后可能与结构干涉,如果没有发现,那么不得不在Layout的后期调整器件位置,增加工作量。所以前期布局基本确定后就需要导出3D文件给结构工程师,由他查看是否有器件与结构、螺丝孔等…

全志Tina Linux Display 开发指南支持百问网T113 D1-H哪吒DongshanPI-D1s V853-Pro等开发板

1 概述 让显示应用开发人员了解显示驱动的接口及使用流程,快速上手,进行开发;让新人接手工作时能快速地了解驱动接口,进行调试排查问题。sunxi 平台DE1.0/DE2.0。与显示相关的应用开发人员,及与显示相关的其他模块的开…

操作系统期末考试必会题库1——引言+用户界面

1.请简要描述操作系统的定义及其功能。 操作系统定义: 是计算机系统中的一个系统软件,是一些程序模块的集合 ,它们管理和控制计算机系统中的软硬件资源,合理的组织计算机的工作流程,以便有效的利用这些资源为用户提供一…

Linux用户权限详解

为什么有人冲了钱就能享受至尊VIP待遇?为什么冲了黄钻、绿钻、紫钻就会享受一些特殊活动呢?我们起初都是一群普通用户,为什么有些人就能通过某些手段得到一些异于常人的服务呢?这其中的奥秘是什么呢?接下来带大家了解这…

【Vue】course_1

一、vue简介 Vue是一款用于构建用户界面的 JavaScript 框架。 它基于标准 HTML、CSS 和 JavaScript 构建,并提供了一套声明式的、组件化的编程模型,帮助你高效地开发用户界面。 无论是简单还是复杂的界面,Vue 都可以胜任。 二、vue3选项式…

ASEMI肖特基二极管MBR30100CT和MBR40200PT有什么区别

编辑-Z 别看ASEMI肖特基二极管MBR30100CT和MBR40200PT两种型号从名字上看很像,其实他们的参数和封装都是不一样的,具体MBR30100CT和MBR40200PT有什么区别呢? 肖特基二极管MBR30100CT参数: 型号:MBR30100CT 封装&…

[开源工具]使用Fiddler/Postman简单计算QPS[新手开箱可用]

使用Fiddler/Postman简单计算QPS1.什么是QPS?2.怎么计算QPS?3.如何使用Fiddler/Postman得到一个API接口的QPS?3.1Fiddler使用3.2Postman使用4.如何得到本机的核心数?5.根据公式计算QPS?6.扩展计算单机可支撑PV(理论值)?1.什么是QPS? qps即每秒查询率,是对一…

Postfix + Extmail 企业邮件服务器搭建

ExtMail套件用于提供从浏览器中登录、使用邮件系统的Web操作界面,而Extman套件用于提供从浏览器中管理邮件系统的Web操作界面。它以GPL版权释出,设计初衷是希望设计一个适应当前高速发展的IT应用环境,满足用户多变的需求,能快速进…

数据预处理和特征工程-sklearn

数据挖掘的五大流程: 获取数据数据预处理 数据预处理是从数据中检测,纠正或删除损坏,不准确或不适用于模型的记录的过程。 数据预处理的目的:让数据适应模型,匹配模型的需求特征工程 特征工程是将原始数据转换为更能代…

NLP 中文智能纠错 API 数据接口

NLP 中文智能纠错 API 数据接口 专注于中文语句智能纠错,基于 NLP,多模型参与纠错。 1. 产品功能 秒级 NLP 智能纠错性能;NLP 加载多个模型进行纠错处理;返回纠正字符以及对应位置索引;底层模型以及语料库持续更新集…

正大国际期货:五十句期货投资理念

1.许多期货投资人交易时没有计划。交易前,他们既不设定风险限度,也不设定盈利目标。即使是制定了计划,他们总是“半路出家”,并不坚持既定的计划,尤其是在出现亏损的情况下。结果往往是过量操作,把自己逼在…

Android 操作系统简介

Android 操作系统简介1. 起源2. 操作系统市场占有率3. Android 系统架构3.1 Linux Kernel3.2 Hardware Abstraction Layer (HAL)3.3 运行时 系统库3.3.1 Android Runtime3.3.1 Native C/C Libraries3.4 Java API Framework3.5 System Apps1. 起源 安卓(Android&…

程序员年底如何升职加薪?这份涨薪指南来了!

年底了,这个时间节点对于各个公司来说都很重要。 今年大家也知道情况,互联网整体行情都不太好,国外也不好过,硅谷裁员大刀阔斧,实实在在的 感受到了寒意。 能顺利熬到年底的程序员,现在就会关心“公司会普调…

一分钟搞定Netty 三大组件,如果搞不定,再看3遍

1. 三大组件简介 Channel 与 Buffer Java NIO 系统的核心在于:通道 (Channel) 和缓冲区 (Buffer)。通道表示打开到 IO 设备 (例如:文件、套接字) 的连接。若需要使用 NIO 系统,需要获取用于连接 IO 设备的通道 以及用于容纳数据的缓冲区。然…

黑客使用虚假 DDoS 保护页面分发恶意软件

WordPress 网站被黑客入侵后显示欺诈性 Cloudflare DDoS 保护页面,这些页面被用于分发恶意软件(例如 NetSupport RAT 和 Raccoon Stealer)。 “最近针对 WordPress 网站的 JavaScript 注入激增,通过弹出虚假的 DDoS 阻止提示&…