当前位置: 首页 > news >正文

【计算机网络】网络原理

目录

1.网络的发展

2.协议

3.OSI七层网络模型

4.TCP/IP五层网络模型及作用

5.经典面试题

 6.封装和分用

发送方(封装)

接收方(分用)


1.网络的发展

路由器:路由指的是最佳路径的选择。一般家用的是5个网口,1个WAN口+4个LAN口(口:端口)。可以连接连接多个局域网。

局域网:把几个电脑通过路由器连接到一起。

广域网:将多个局域网连接起来。可能会覆盖一个城市,一个国家。

交换机:可以扩展路由器的端口。

IP地址:描述了一个设备在网络上的地址。计算机中使用一个32位4字节数字表示地址,由于这样太大,为了表示出来,4个字节分4部分表示。采用的是点分十进制(127.0.0.1)。每个数字范围是0~255。分别代表一个字节。

我们可以通过ipconfig指令在终端上查看我们电脑上的ip地址。

端口号:区分一个主机上不同的应用程序的。端口号是一个整数(2个字节)。范围是0~65535。

使用端口号的规则:要求同一个主机上的应用程序不能关联到同一个端口号。一个端口号只能被一个应用程序绑定。但一个应用程序可以绑定多个端口号。0一般不使用,1~1023这个范围的端口号供系统使用。就像有些国家的一夫多妻制。夫相当于应用程序;妻相当于端口号。

例如:443->https   80->http    22->ssh    23->telnet


IP和端口号

IP和端口号往往是"一对",比如,买个东西:

  • 收件人地址(源IP),收件人电话(源端口号)。
  • 发件人地址(目的IP),发件人电话(目的端口号)。

2.协议

网络上,本质是通过光/电信号来传输数据。比如:低电平表示1,高电平表示0;高频光信号表示1,低频光信号表示0。本质上还是二进制数据。

协议就是一种约定,规定。约定了通信双方按照一定的方式来传输数据。

五元组

  • 源IP
  • 源端口
  • 目的IP
  • 目的端口
  • 协议类型

协议拆分

将一个大的协议·拆分成多个小的协议。

协议分层

由于通信网络很复杂,拆分就拆分出来太多的小的协议,小的协议太多,不好管理,这时候就需要分层了。按照协议的定位/作用分类,并且约定了不同层协议之间的"调用关系"。(上层协议调用下层协议,下层协议给上层协议提供支持)。类似于一个公司。公司大了就要进行细分。


3.OSI七层网络模型

OSI七层网络模型仅仅出现在教科书中。

实际开发中大都用的是TCP/IP五层网络模型


4.TCP/IP五层网络模型及作用

                     

是OSI七层模型的简化版本。下面讲述这五层协议的作用,以网购为例

1.物理层

  • 描述的是网络通信的硬件设备。

2.数据链路层

  • 两个相邻节点之间的数据传输情况。
  • 比如商家和我中间隔了许多城市,可能中间还有水路等。关心的是每一步应该使用什么交通工具。

3.网络层

  • 进行路径规划。
  • 即从商家的位置到我的位置发货选哪条路发货最合适(传输成本,传输时间,传输效率)。先从哪个城市到哪个城市,再从哪个城市到哪个城市。

4.传输层

  • 只关注起点和终点。
  • 从商家角度来看,他只关心他自己的发件人地址/电话以及收件人地址/电话,只关心货是不是已经发出和我是不是已经收到货。

5.应用程序层

  • 数据传输过来后,如何使用这个数据。
  • 即我收到货后使用这个商品干啥,比如我买了一个刷子,我可以刷鞋,刷床,还可以刷沙发等。

如果有TCP/IP四层模型的这种说法,那应该就是不算物理层。


5.经典面试题

某某某这个设备应用工作在哪一层?

主机:

  • 它的操作系统内核实现了从传输层到物理层的内容。即就是TCP/IP五层模型的下四层。

路由器:

  • 实现了从网络层到物理层的内容,是TCP/IP五层模型的下三层。

交换机:

  • 实现了从数据链路层到物理层。是TCP/IP五层模型的下两层。
  • 交换机的作用是针对路由器的端口进行扩展。因为路由器上的端口是有限的,有可能不够用。

集线器:

  • 只实现了物理层。作用是把网线一分为二。

 

 6.封装和分用

描述了网络通信过程中,基本的数据传输流程。(即发送方一步步封装,接收方一步步拆解)


发送方(封装)

1.应用层(发送方)

协议:由程序员自定义协议

举个例子:例如,QQ发消息,A通过QQ把一个hello传递给B。

在应用层中就会把这个输入的"hello"打包成一个应用层的数据报(格式:字符串拼接)数据报中是二进制形式,这个数据报的内容格式由开发QQ的人员自定义的。我们假设是下面这种:

       


2.传输层(发送方)

典型协议:TCP,UDP

就是要对刚才的应用层数据再进行打包,变成传输层的数据报,打包过程即字符串拼接。把刚才的应用层数据的基础上再拼接传输层的报头。

一个数据报 = 报头 + 载荷

UDP报头中最关键的信息:就是"源端口"和"目的端口"。

传输层数据报搞好之后,这个数据会进一步交给网络层。


3.网络层(发送方)

主要协议:IP协议

IP报头包含最重要的属性:源IP和目的IP。

网络层的数据打包之后,继续把数据交给"数据链路层"再进一步打包。


4.数据链路层(发送方)

主要协议:以太网

以太网报头包含最重要的属性:源mac地址和目的mac地址。这个地址也是用来描述一个设备在网络上的地址的。

打包好后,继续交给物理层。


5.物理层(发送方)

把上述数据转换成二进制的01序列。再通过光信号/电信号进行传输。

上述这五步操作都为层层封装,就像是发快递一样。而下面的操作就相当于是拆快递了。


接收方(分用)

1.物理层(接收方)

将获得的光/电信号转成二进制数据,得到以太网数据报。


2.数据链路层(接收方)

通过以太网协议,针对以太网数据报进行解析。这个解析过程会解析出报头和报尾以及中间的载荷。把载荷部分进一步再交给网络层的协议处理。


3.网络层(接收方)

通过IP协议进一步针对网络层的数据报进行解析,去掉报头,拿到载荷,再把载荷交给传输层。


4.传输层(接收方)

通过UDP协议,再去掉报头,拿到载荷,再交给应用层。


5..应用层(接收方)

把上述数据通过端口号,交给各个应用程序。

相关文章:

【计算机网络】网络原理

目录 1.网络的发展 2.协议 3.OSI七层网络模型 4.TCP/IP五层网络模型及作用 5.经典面试题 6.封装和分用 发送方(封装) 接收方(分用) 1.网络的发展 路由器:路由指的是最佳路径的选择。一般家用的是5个网口,1个WAN口4个LAN口(口:端口)。可…...

力扣第39题 组合总和 c++ 回溯剪枝题

题目 39. 组合总和 中等 相关标签 数组 回溯 给你一个 无重复元素 的整数数组 candidates 和一个目标整数 target ,找出 candidates 中可以使数字和为目标数 target 的 所有 不同组合 ,并以列表形式返回。你可以按 任意顺序 返回这些组合。 cand…...

qt软件正常运行的崩溃了定位行号方法

软件(debug版exe或者release版exe)在正常运行状态下(不是gdb调试运行),如果软件崩掉,那么会直接闪退,软件什么也做不了,此时无法保存软件中的状态信息,此外,也…...

软件工程与计算总结(十五)详细设计中面向对象方法下的信息隐藏

软件工程与计算总结(十三)详细设计中的模块化与信息隐藏 之前的博客中,模块需要隐藏的决策主要由“职责的实现”and“实现的变更”两类,在面向对象方法中,需要做到的就是: 封装类的职责,隐藏职…...

鸿蒙初体验

下载与安装DevEco Studio 在HarmonyOS应用开发学习之前,需要进行一些准备工作,首先需要完成开发工具DevEco Studio的下载与安装以及环境配置。 进入DevEco Studio下载官网,单击“立即下载”进入下载页面。 DevEco Studio提供了Windows版本和…...

hive复合类型的数据查询

hive数据表创建-CSDN博客 --第一个名字以M开头的 访问数组array 数组( array) 引用方式 列名 [ 元素索引 _ 以 0 开始 ] select * from emp where emp_name[0] rlike "^M"; -- 出生日期是在 5 几年 访问 Map map 引用方式 列名 ["Key"] selec…...

Notes/Domino 14 Early Access Drop3发布

大家好,才是真的好。 其实上周,就是国庆假期的时候,HCL Notes/Domino 14 Early Access Drop3(以下简称EA3)就已经发布,而且和传说中的一样,带来了数项惊人的新特性。 我们先讲讲这一版本新特性…...

前端、后端开发者常用到的免费API整理

以下是我整理的前端、后端工程师在开发中经常使用到的API接口,希望能帮到大家~ 手机号码归属地:可根据手机号码查询其省市区、运营商区号行政区划代码等信息。 上亿条数据囊括最新的170、166、147等号段,更新及时、准确度高。空号检测&#…...

【LeetCode高频SQL50题-基础版】打卡第9天:第46~50题

文章目录 【LeetCode高频SQL50题-基础版】打卡第9天:第46~50题⛅前言患某种疾病的患者🔒题目🔑题解 第二高的薪水🔒题目🔑题解 按日期分组销售产品🔒题目🔑题解 列出指定时间段内所有的下单产品…...

中断机制-通过volatile实现线程中断停止

4.1.4 大厂面试题中断机制考点 如何停止中断运行中的线程? 通过一个volatile变量实现 package com.nanjing.gulimall.zhouyimo.test;import java.util.concurrent.TimeUnit;/*** author zhou* version 1.0* date 2023/10/15 2:34 下午*/ public class InterruptD…...

Elasticsearch 8.11 中的合并更少,摄取更快

作者:ADRIEN GRAND Elasticsearch 8.11 改进了管理索引缓存的方式,从而减少了段合并。 我们对 Elasticsearch 8.11 从索引缓存回收内存的方式进行了重大更改,这有助于减少合并开销,从而加快索引速度。 使用我们的日志跟踪&#x…...

算法村开篇

大家好我是苏麟从今天开始我将带来算法的一些习题和心得体会等等...... 算法村介绍 我们一步步地学习算法本专栏会以闯关的方式来学习算法 循序渐进地系统的学习算法并掌握大部分面试知识 , 期待和大家一起进步 . 索大祝大家学有所成 , 前程似锦....

Leetcode—136.只出现一次的数字【简单】

2023每日刷题&#xff08;二&#xff09; Leetcode—136.只出现一次的数字 位运算法 实现代码 int singleNumber(int* nums, int numsSize){int i 0;int res 0;for(; i < numsSize; i) {res ^ nums[i];}return res; }运行结果 之后我会持续更新&#xff0c;如果喜欢我的…...

关于RNNoise、webrtc_ns、三角带通滤波器、对数能量

语音特征参数MFCC提取过程详解 其中讲解了&#xff1a;三角带通滤波器 、计算每个滤波器组输出的对数能量、对数能量、经离散余弦变换&#xff08;DCT&#xff09;得到MFCC系数 推荐阅读某乎这位大佬的全部文章&#xff1a; 下面是几篇出自这位大佬的很好的文章&#xff1a; …...

c语言练习89:链表的使用

链表的使用 虽然有这么多的链表的结构&#xff0c;但是我们实际中最常⽤还是两种结构&#xff1a; 单链表 和 双向带头循环链表 1. ⽆头单向⾮循环链表&#xff1a;结构简单&#xff0c;⼀般不会单独⽤来存数据。实际中更多是作为其他数据结 构的⼦结构&#xff0c;如哈希桶、…...

ArkTS及openHarmony

补充 padding&#xff1a;内边距&#xff0c;也就是盒子边和盒子内部的距离 margin&#xff1a;外边距&#xff0c;也就是盒子和盒子的距离 openHarmony应用开发及UI界面 常用布局 Row 水平线性布局核心代码 子控件会共享同一行&#xff0c;也就是都在同一行内 Preview C…...

Idea怎么配置Maven才能优先从本地仓库获取依赖

网上的方法 : 在设置中搜索 Runner ,在VM Option中设置参数 -DarchetypeCataloginternal删除 解压后的依赖包中的 _remote.repositories m2e-lastUpdated.properties *.lastUpdated 文件。 上边都没有效果 最终的解决方法&#xff0c;修改maven配置文件settings.xml 主要两个…...

聊聊HttpClient的DnsResolver

序 本文主要研究一下HttpClient的DnsResolver DnsResolver org/apache/http/conn/DnsResolver.java /*** Users may implement this interface to override the normal DNS lookup offered* by the OS.** since 4.2*/ public interface DnsResolver {/*** Returns the IP a…...

剑指智能驾驶,智己LS6胜算几何?

监制 | 何玺 排版 | 叶媛 10月12日&#xff0c;IM智己旗下的新车智己LS6宣布上市。 新车型搭载尖端科技多项&#xff0c;其中以“全画幅数字驾舱屏”、和城市高阶智能辅助驾驶为核心的智驾技术&#xff0c;更是引来众多用户关注。 01 新能源新卷王智己LS6 智己LS6一发布就…...

网络工程师知识点5

71、什么是FTP&#xff1f; FTP是文件传输协议。 FTP传输数据时支持两种传输模式&#xff1a;ASCII模式和二进制模式。 需要TCP的21号端口来建立控制连接 需要TCP的20号端口来建立数据连接 72、什么是telnet&#xff1f; Telnet提供了一个交互式操作界面&#xff0c;允许终端远…...

反向工程与模型迁移:打造未来商品详情API的可持续创新体系

在电商行业蓬勃发展的当下&#xff0c;商品详情API作为连接电商平台与开发者、商家及用户的关键纽带&#xff0c;其重要性日益凸显。传统商品详情API主要聚焦于商品基本信息&#xff08;如名称、价格、库存等&#xff09;的获取与展示&#xff0c;已难以满足市场对个性化、智能…...

SciencePlots——绘制论文中的图片

文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了&#xff1a;一行…...

day52 ResNet18 CBAM

在深度学习的旅程中&#xff0c;我们不断探索如何提升模型的性能。今天&#xff0c;我将分享我在 ResNet18 模型中插入 CBAM&#xff08;Convolutional Block Attention Module&#xff09;模块&#xff0c;并采用分阶段微调策略的实践过程。通过这个过程&#xff0c;我不仅提升…...

高等数学(下)题型笔记(八)空间解析几何与向量代数

目录 0 前言 1 向量的点乘 1.1 基本公式 1.2 例题 2 向量的叉乘 2.1 基础知识 2.2 例题 3 空间平面方程 3.1 基础知识 3.2 例题 4 空间直线方程 4.1 基础知识 4.2 例题 5 旋转曲面及其方程 5.1 基础知识 5.2 例题 6 空间曲面的法线与切平面 6.1 基础知识 6.2…...

浪潮交换机配置track检测实现高速公路收费网络主备切换NQA

浪潮交换机track配置 项目背景高速网络拓扑网络情况分析通信线路收费网络路由 收费汇聚交换机相应配置收费汇聚track配置 项目背景 在实施省内一条高速公路时遇到的需求&#xff0c;本次涉及的主要是收费汇聚交换机的配置&#xff0c;浪潮网络设备在高速项目很少&#xff0c;通…...

tauri项目,如何在rust端读取电脑环境变量

如果想在前端通过调用来获取环境变量的值&#xff0c;可以通过标准的依赖&#xff1a; std::env::var(name).ok() 想在前端通过调用来获取&#xff0c;可以写一个command函数&#xff1a; #[tauri::command] pub fn get_env_var(name: String) -> Result<String, Stri…...

使用SSE解决获取状态不一致问题

使用SSE解决获取状态不一致问题 1. 问题描述2. SSE介绍2.1 SSE 的工作原理2.2 SSE 的事件格式规范2.3 SSE与其他技术对比2.4 SSE 的优缺点 3. 实战代码 1. 问题描述 目前做的一个功能是上传多个文件&#xff0c;这个上传文件是整体功能的一部分&#xff0c;文件在上传的过程中…...

面试高频问题

文章目录 &#x1f680; 消息队列核心技术揭秘&#xff1a;从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"&#xff1f;性能背后的秘密1.1 顺序写入与零拷贝&#xff1a;性能的双引擎1.2 分区并行&#xff1a;数据的"八车道高速公路"1.3 页缓存与批量处理…...

DAY 26 函数专题1

函数定义与参数知识点回顾&#xff1a;1. 函数的定义2. 变量作用域&#xff1a;局部变量和全局变量3. 函数的参数类型&#xff1a;位置参数、默认参数、不定参数4. 传递参数的手段&#xff1a;关键词参数5 题目1&#xff1a;计算圆的面积 任务&#xff1a; 编写一…...

32单片机——基本定时器

STM32F103有众多的定时器&#xff0c;其中包括2个基本定时器&#xff08;TIM6和TIM7&#xff09;、4个通用定时器&#xff08;TIM2~TIM5&#xff09;、2个高级控制定时器&#xff08;TIM1和TIM8&#xff09;&#xff0c;这些定时器彼此完全独立&#xff0c;不共享任何资源 1、定…...