OSI七层网络参考模型
一、物理层
我们要发送出去的数据在计算机里只不过是无数的0和1,0或1就叫做比特,物理层就是把这些比特用不同的媒介传输出去,可以用电、光或者其他形式的电磁波来表示和传输信号,数据从网络接口出去以后,会经过不同的网络拓扑,并不是一条线走到底,因此需要中继器和集线器这样的设备,但还是不够,信号要去到哪台设备是需要定向的,因此需要高级点的数据网络模型。
二、数据链路层
在数据链路层这里,比特会被封装成帧,帧就是这一层表示数据的特殊名字而已,在封装的时候会加上MAC地址,也就是物理地址,网卡出厂的时候就有着全球唯一的MAC地址,为了可以通过MAC地址对不同设备进行数据的传输,就出现了交换机,比方说这里有一台交换机,连接多台主机,发送端发送数据的时候,交换机就知道了发送端的MAC地址,如果此时交换机也知道接收端的MAC地址,就可以把数据直接发送过去了,物理地址就是这样一跳一跳的进行传递,另外因为物理层在传输0和1的时候,可能会0变成1或者1变成0,会进行差错检测,以及一定的差错纠正,另外设备之间的传输能力以及接受能力也是个问题,很可能这边喷水式发送,另一边”夹缝“式接受,因此需要流控制来避免这种不对称,我们知道互联网是一张大网,如果用MAC物理地址作为唯一的寻址方式是不科学的,比如我和你买了同一个厂出的网卡,我和你的网卡如果差别就只有一个字母,但是物理地址相距十万八千里,物理地址此时就很难做出快速定位,就相当于我知道你的名字,但不知道你住哪里,找不到你,因此需要ip地址来进行寻址和路由选择,IP这样的逻辑地址就是实现端到端的基础了,而不是物理地址那样跳到跳传输。
三、网络层
说到路由选择,也就是说路由器也是网络层的核心,包就是网络层里数据的名字,在封装为二层的帧之前就是包,路由器根据包里的IP地址进行路由转发,地址管理和路由选择就是这一层的核心,虽然有MAC和IP地址可以抵达对方主机,但是对方主机可能运行这无数多个软件进程,假设我用 谷歌和火狐浏览器同时登陆网站,如何让数据去到指定的软件服务上,就需要用到端口号作为地址来定位了,比如客户端这里生成不同的端口号,即使同时访问HTTP端口号80也是没问题的,根据不同的源端口号来做出响应就可以了。
四、传输层
所以传输层在网络层端到端的基础上,实现了服务进程到服务进程的传输,段就是传输层里数据的名字,在封装为3层包之前的就是段,传输层管理两个节点之间的数据的传输,负责可靠传输和不可靠传输,也就是大家熟知的协议TCP和UDP,其中TCP允许应用把字节流变成多份段,而不是整个字节数据完整的发送出去,传输层还有流量控制来确保传输速度,再加上错误控制来进行数据完整的接收。
五、会话层
会话层比如说现在登录了某个网站,网站服务可以保持你的登录状态,不用每次都输入账号和密码,当然网站服务会管理和控制登陆状态,另外会话层还负责同步服务,比方说上次看电影中途退出了,再次登录账号时候,就可以自动同步到上次看到的时间段。
六、表示层
不同计算机内部的各自表达方式可能不太相同,表示层就来负责这样的转换,也就是编码和解码,数据往往还需要进行加密,比方说HTTPS就会对我们的数据进行加密和解密,另外我们还需要给文件瘦身,压缩也是这一层负责的。
七、应用层
应用层表示层和会话层的数据统称为应用数据,或者应用负载,也可以叫上层数据,同时也是教科书上说的报文,数据在各层的名字分别是,报文、段、包、帧和比特,就地址来说,有端口号,IP逻辑地址和MAC物理地址,就传输功能来讲,有服务进程到服务进程,端到端,还有跳到跳。
总结
了解了各层的作用,就可以把各层之间联系起来,客户端要发送数据,也就是报文,报文来到传输层就,加上端口号,封装成段,段来到网络层封装成包,注意这里的包是包含有目标IP地址的,毕竟你要知道数据要发送到什么地方,但因为目标IP地址不是同一个网络下的,要发送到其他的网络,就需要经过默认网关,现在就出现了一个问题,客户端主机最初并不知道默认网关的MAC地址,没有办法封装成帧,这个时候就可以用ARP协议进行广播,找到网关IP对应的MAC地址,把包封装成帧,源MAC地址填自己的,目标MAC地址填广播地址,假设当前网络有个二层交换机,这个交换机只需要记录下不同的接口对应的MAC地址就好了,交换机收到广播后就帮忙发送出去”人手一份“,所以默认网关收到消息后,查看了帧,发现了发送端的MAC地址,再解封发现包里面的IP地址,就会把客户端MAC地址和IP地址关联为一台主机,同时默认网关会把自己的IP地址放入包里,再结合自己的MAC地址封装成帧,默认网关就这样做出响应,这样原路返回,发送端就知道默认网关的MAC地址了,现在就可以封装成帧,并且传输数据,比特流到了默认网关的时候,解封为帧发现是发送给自己的,再解封为包查看到目标IP地址是在另一个网络中的,就会进行路由转发,最终到达目的网络,如果目标网关知道目标IP地址和MAC地址是哪台主机封装成帧就可以直接发送过去了,如果不知道也还是可以用ARP广播下就好了,目标主机收到包确认是自己的IP地址以后,解封查看段可以发现源和目标端口号,用目标端口号给到指定的应用程序,应用程序处理好以后,就可以按照源的信息做出响应,回去的原理也是一样的。
相关文章:
OSI七层网络参考模型
一、物理层 我们要发送出去的数据在计算机里只不过是无数的0和1,0或1就叫做比特,物理层就是把这些比特用不同的媒介传输出去,可以用电、光或者其他形式的电磁波来表示和传输信号,数据从网络接口出去以后,会经过不同的网…...
RAG与知识库搭建
Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务,并且需要GPU资源,可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU,按时收费每卡2.6元,月卡只需要1.7元每小时&…...
MySQL提权之UDF提权
1、前言 最近遇到udf提权,几经周折终于搞懂了。感觉挺有意思的,渗透思路一下子就被打开了。 2、什么是udf提权 udf 全称为user defined function,意思是用户自定义函数。用户可以对数据库所使用的函数进行一个扩展(windows利用…...
【设计模式】结构型设计模式之 组合模式
介绍 这里的组合模式,与之前的设计模式中的"组合关系"完全是两码事,这里的组合模式主要用来处理结构为树形的数据。 组合模式(Composite Pattern)是一种结构型设计模式,它允许你将对象组合成树状结构来表示…...
我给KTV服务生讲解防抖,他竟然听懂了
端午节三天假期,的最后一天,我和朋友闲来无事,想着去唱会儿歌吧,好久不唱了,于是吃了午饭,石景山就近找了一家KTV,我们团好了卷就过去了。 装修还算不错,很快找到服务生,…...
抽象java入门1.3.1
前言: 本期内容是为了更好补充关于方法(函数)的定义 开始: 函数(function)表示每个输入值对应唯一输出值的一种对应关系。 核心在于:输入值和输出值这两个元素 真的吗? 错&…...
使用Rufus工具制作Ubuntu To Go——很详细
一、准备工作 准备工具: 1、下载Rufus(主角)软件 2、准备一个U盘(制作启动盘,32G足够) 3、准备一个U盘或硬盘(小白128G足够,装Ubuntu系统) 4、下载Ubuntu系统镜像文件 1、下载软件Rufus 先来看…...
Android Jetpack Compose 实现一个电视剧选集界面
文章目录 需求概述效果展示实现思路代码实现总结 需求概述 我们经常能看到爱奇艺或者腾讯视频这类的视频APP在看电视剧的时候都会有一个选集的功能。如下图所示 这个功能其实很简单,就是绘制一些方块,在上面绘制上数字,还有标签啥的。当用户…...
C++多线程并发
文章目录 C多线程并发std::chronoC中的多线程:std::thread主线程等待子线程结束:join主线程分离子线程:detach异步:std::async异步的另一种用法:std::launch::deferredstd::async的底层实现:std::promisest…...
新火种AI|摊上事儿了!13名OpenAI与谷歌员工联合发声:AI失控可能导致人类灭绝...
作者:小岩 编辑:彩云 2024年,OpenAI的CEO Sam Altman就没有清闲过,他似乎一直走在解决麻烦的路上。最近,他的麻烦又来了。 当地时间6月4日,13位来自OpenAI和Google Deep Mind的现任及前任员工联合发布了…...
Web前端后端精通:深度解析与技能进阶
Web前端后端精通:深度解析与技能进阶 在数字时代的浪潮中,Web前端后端技术的精通成为了信息科技领域的核心竞争力。本文将从四个方面、五个方面、六个方面和七个方面深入探讨Web前端后端技术的精髓,带领读者领略这一领域的魅力与挑战。 一、…...
【C语言】09.函数递归
递归其实是⼀种解决问题的方法,在C语言中,递归就是函数自己调用自己。 一、递归的介绍 1.1递归的思想 把⼀个大型复杂问题层层转化为⼀个与原问题相似,但规模较小的子问题来求解;直到子问题不能再被拆分,递归就结束…...
php高级之框架源码、宏扩展原理与开发
在使用框架的时候我们经常会看到如下代码 类的方法不会显示地声明在代码里面,而是通过扩展的形式后续加进去,这么做的好处是可以降低代码的耦合度、保证源码的完整性、团队开发的时候可以分别写自己的服务去扩展类,减少代码冲突等等。我自己…...
(2024,示例记忆,模型记忆,遗忘,差分评估,概率评估)深度学习中的记忆:综述
Memorization in deep learning: A survey 公和众和号:EDPJ(进 Q 交流群:922230617 或加 VX:CV_EDPJ 进 V 交流群) 目录 0 摘要 1 引言 0 摘要 深度神经网络(DNNs)驱动的深度学习ÿ…...
硬件产品经理
边端协调管理平台 主页一:模型管理1.1 边侧模型管理 二:配置管理2.1 终端软件配置管理 三:设备管理3.1 区域位置管理3.2 工控机管理(其实就是围绕授权)3.3 生产设备管理3.4 设备运行管理 四:数据服务4.1 实…...
AES加密、解密工具类
1、AES加密、解密工具类 这篇文章,主要记录一下AES加密、解密的工具类代码,在需要使用的时候,直接复制黏贴即可。 package com.gitcode.pms.common.util;import org.slf4j.Logger; import org.slf4j.LoggerFactory;import javax.crypto.Cipher; import javax.crypto.spec.…...
普通人想要自学ai,该如何入手,看完这篇你就懂了,零基础教程!
学会了AIGC之后,我只想说:无敌是多么寂寞? 之前我整理一篇会议记录起码要2小时。现在交给AI ,5分钟搞定; 之前整理账目总是出错,现在利用AI财务整合器,轻松解决统计难题; 之前写个…...
Less的简单总结
Less 是一个开源的 CSS 预处理器,它扩展了 CSS 语言,增加了变量、嵌套规则、运算符、函数等特性,使编写 CSS 更加高效、灵活且易于维护。下面是对 "Less" 的一个总结文档: 简介 名称:Less(通常表…...
Android:UI:Drawable:View/ImageView与Drawable
文章目录 在View/ImageVIew中显示DrawableDrawable对View的更新操作在View/ImageVIew中显示Drawable API View.setBackground(Drawable) ImageView.setImagDrawable(Drawable) 源码分析 View.mBackground在View.draw(Canvas)中绘制,调用Drawable.draw(Canvas) ImageView.m…...
网络安全实验BUAA-全套实验报告打包
下面是部分BUAA网络安全实验✅的实验内容 : 认识路由器、交换机。掌握路由器配置的基本指令。掌握正确配置路由器的方法,使网络正常工作。 本博客包括网络安全课程所有的实验报告:内容详细,一次下载打包 实验1-路由器配置实验2-AP…...
监控易监测对象及指标之:全面监控SQL Server 2008
随着企业信息化建设的不断深入,数据库作为存储和管理关键业务数据的核心,其稳定性和性能至关重要。SQL Server 2008作为一款广泛使用的关系型数据库管理系统,承载着众多企业的核心业务数据。 为了确保SQL Server 2008数据库的稳定运行和高效性…...
【学习记录】6.11 阅读记录
SpringBoot多环境配置详解(application-dev.yml、application-test.yml、application-prod.yml) springboot集成mybatis【使用generatorConfig.xml配置自动生成代码】 怎么快速查看自己mysql的安装位置 解决 http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd 报错...
100TOPS算力!16GB内存顶配NVIDIA Jetson Orin NX 16GB 开箱
观前提醒:你以为我斥资6600买了一个NX玩?我其实买了三个NX NVIDIA Jetson Orin NX 简介: NVIDIA Jetson Orin NX是NVIDIA推出的一款高性能边缘计算平台,其设计目标是提供卓越的计算能力以支持各种复杂的人工智能(AI&am…...
OCP学习笔记-007 SQL语言之一:DQL
1. DQL - Data Query Language 命令行提示符修改 SQL> set time on 10:33:58 SQL> define DEFINE _DATE = "11-DEC-22" (CHAR) DEFINE _CONNECT_IDENTIFIER = "orcl" (CHAR) DEFINE _USER = "SYS" (CHAR) DEFINE _P…...
Git之解决重复输入用户名和密码(三十九)
简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…...
Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战
Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 目录 Python 机器学习 基础 之 【实战案例】轮船人员获救预测实战 一、简单介绍 二、轮船人员获救预测实战 三、数据处理 1、导入数据 2、对缺失数据的列进行填充 3、属性转换,把某些列的字符串值转换为数字…...
安全相关的一些基础知识(持续更新)
目录 1. TRNG真随机数生成 2. 对称加密和非对称加密及其区别 3. Hash算法(摘要算法) 4. HTTPS、TLS、SSL、HTTP区别和关系 HTTPS的基本原理 5. PSS 1. TRNG真随机数生成 True Random Number Generator 在真随机数的生成里,把随机数的生…...
使用TensorFlow和Keras对以ResNet50模型进行微调
以下是使用ResNet50进行微调以识别特定的新东西的代码演示。将使用TensorFlow和Keras进行这个任务。 数据集下载地址,解压到工程里面去: https://www.kaggle.com/datasets/marquis03/cats-and-dogs原始代码: from keras.applications…...
Shell脚本要点和难点以及具体应用和优缺点介绍
Shell 脚本是一种用于自动化任务和简化常见系统命令的脚本语言,通常运行在 Unix 或 Unix-like 的系统上,如 Linux 和 macOS。Shell 脚本可以直接在命令行中执行,也可以保存为文件并通过 bash、sh、zsh 等 shell 解释器来执行。 以下是一个简单的 Shell 脚本示例,它演示了如…...
移动端浏览器的扫描二维码实现(vue-qrcode-reader与jsQR方式)
1. 实现功能 类似扫一扫的功能,自动识别到画面中的二维码并进行识别,也可以选择从相册中上传。 2. 涉及到的一些插件介绍 vue-qrcode-reader 一组用于检测和解码二维码的Vue.js组件 jsQR 一个纯粹的javascript二维码阅读库,该库接收原始…...
那个网站是做批发的/百度app安装下载
这篇博文一个多月前就发表过,但因当时在课程上该实验还未结束提交而删除了;对老师教学造成的不便深感歉意;写这些不是为了什么,也知道自己写的不好,只是记录自己的学习心历路程,同时也当作一个笔记…...
做请柬的网站/如何推广自己的产品
构建Linux下的Resin Apache jsp 参考:http://blog.chinaunix.net/uid-29140694-id-4018236.html 如果你的网站是建立在apache下现在又想使用jsp,怎么办呢?你可以通过一些支持apache的jsp引擎(如resin,tomcat,jser等)来实现。这里介绍怎么配置apacheres…...
做微信的微网站费用/什么平台可以免费打广告
代理缓存服务介绍Squid是Linux系统中最为流行的一款高性能代理服务软件,通常用作Web网站的前置缓存服务,能够代替用户向网站服务器请求页面数据并进行缓存。 Squid服务程序具有配置简单、效率高、功能丰富等特点,它能支持HTTP、FTP、SSL等多种…...
网站建设应用权限/百度搜索推广登录入口
为什么要写这个内容? 随着工作经历的积累,越来越感觉到,大量的关系型数据库的性能问题,其根源在于统计信息。这里说的是根源,其实很多时候大家觉得的那些什么索引失效等都只是表象。当然,不能一概而论&…...
乌鲁木齐市做平台网站/免费seo教程资源
👏👏👏 哈喽!大家好,我是【学无止境小奇】,一位热爱分享各种技术的博主!😍😍😍 ⭐【学无止境小奇】的创作宗旨:每一条命令都亲自执行过…...
安卓app软件开发教程/广州seo网站排名
chrome下运行编写的JavaScript代码时,在工具javascript控制台下有时会出现“Uncaught SyntaxError: Unexpected identifier ”的报错,经过我反复查看代码最后得出,原来是代码中缺少一个“,”(英文逗号)。 后经在网上查…...