【计算机网络】网络原理

news2025/3/13 21:20:28

目录

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..应用层(接收方)

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

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

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

相关文章

JDK 21的新特性总结和分析

🌷🍁 博主猫头虎 带您 Go to New World.✨🍁 🦄 博客首页——猫头虎的博客🎐 🐳《面试题大全专栏》 文章图文并茂🦕生动形象🦖简单易学!欢迎大家来踩踩~🌺 &a…

[正式学习java②]——数组的基本使用,java内存图与内存分配

一、数组的两种初始化方式 1.完整格式(静态初始化) 数据类型[] 数组名 new 数据类型[]{元素1,元素2…}; //范例 int[] arr new int[]{1,2,3,4}; 简化书写 一般我们会省略后面的 new 数据类型[] int[] arr {1,2,3,4}; 2.动态初始化 当不知道数组里面的初始值的时候&#xf…

AI绘画使用Stable Diffusion(SDXL)绘制玉雕风格的龙

一、引言 灵感来源于在逛 LibLib 时,看到的 Lib 原创者「熊叁gaikan」发布的「翠玉白菜 sdxl|玉雕风格」 的 Lora 模型。简直太好看了,一下子就被吸引了! 科普下「翠玉白菜」: 翠玉白菜是由翠玉所琢碾出白菜形状的清…

四川天蝶电子商务有限公司抖音电商服务引领行业标杆

随着电子商务的飞速发展,四川天蝶电子商务有限公司作为一家领先的抖音电商服务提供商,已经脱颖而出。本文将详细解析四川天蝶电子商务有限公司的抖音电商服务,让您一探究竟。 一、卓越的服务理念 四川天蝶电子商务有限公司始终坚持以客户为中…

微前端三:qiankun 协作开发和上线部署

我们先看qiankun怎么上线部署: 我这边用的是yaml 文件在 rancher上部署的: base是基座,这里每个应用都是一个服务,这个还是跟之前一样并没有区别,那如何在一个域名上挂载多个服务呢? 最开始我们主要是在in…

【调度算法】NSGA II

简介 NSGA-II(Nondominated Sorting Genetic Algorithm II)是一种经典的多目标优化算法,由Srinivas和Deb于2000年在NSGA的基础上提出,用于解决多目标优化问题。相较于NSGA,NSGA-II在运行速度和解集的收敛性上表现更好…

nginx的优先级和匹配方式

Nginx的location的优先级和匹配方式: 在http模块当中有server,在server模块才有location,location匹配的是uri /test /image 在一个server当中有多个location,如何来确定匹配那个location Nginx支持正则表达式: ^…

PLC 学习day01 了解PLC 的组成和知识。

1.资料来源 链接:3.三菱PLC编程视频关于PLC工作原理的介绍_哔哩哔哩_bilibili 2. PLC 的知识 2.1 PLC 的概述及特点功能 PLC是可编程逻辑控制器(Programmable Logic Controller)的英文缩写,是融合了继电器控制功能和计算机运算功…

补体C3/C4(C3/C4)介绍

补体是一种血清蛋白质,存在于人和脊椎动物血清及组织液中,不耐热,活化后具有酶活性、可介导免疫应答和炎症反应。可被抗原-抗体复合物或微生物所激活,导致病原微生物裂解或被吞噬。可通过三条既独立又交叉的途径被激活&#xff0c…

DNS(二)

实现 Internet DNS 架构 架构图 实验环境 关闭SELinux、Firewalld。时间保持一致 主机名IP角色client192.168.28.146DNS客户端,DNS地址为192.168.28.145localdns192.168.28.145本地DNS服务器(只缓存)forward192.168.28.144转发目标DNS服务…

TARJAN复习 求强连通分量、割点、桥

TARJAN复习 求强连通分量、割点、桥 文章目录 TARJAN复习 求强连通分量、割点、桥强连通分量缩点桥割点 感觉之前写的不好, 再水一篇博客 强连通分量 “有向图强连通分量:在有向图G中,如果两个顶点vi,vj间(vi>vj)有…

【vue】vue实现海康ws协议的实时监控播放:

文章目录 一、效果图:二、实现过程:【1】官网下载h5player.js:【2】引入h5player.min.js:【3】使用: 一、效果图: 二、实现过程: 【1】官网下载h5player.js: 【H5视频播放器开发包】…

Linux shell编程学习笔记13:文件测试运算

Linux Shell 脚本编程和其他编程语言一样,支持算数、关系、布尔、逻辑、字符串、文件测试等多种运算。前面几节我们依次研究了 Linux shell编程 中的 字符串运算、算术运算、关系运算、布尔运算 和 逻辑运算,今天我们来研究 Linux shell编程中的文件测…

PowerShell批量修改DNS域名解析

批量添加DNS A记录 $dnsServerName"" # DNS服务器的服务器名称,如果是在DNS服务器本机执行则可留空 $containerName"test.com" # 域名的后缀也就是DNS Zone Name $mydns[WMIClass]"ROOT\MicrosoftDNS:MicrosoftDNS_resourceRecord"…

yarn : 无法加载文件 C:\Program Files\nodejs\yarn.ps1

问题描述: 问题分析: 这个错误提示说明在电脑系统上禁止运行 PowerShell 脚本,因此导致无法加载 Yarn 的安装脚本。这是由于系统的执行策略(Execution Policies)设置所导致的。 解决方法: 1. 以管理员身…

关于6轴球腕机械臂的肩部奇异描述纠正

对于常见的球腕6轴机械臂构型,在大多数资料中奇异点描述如下: 肩部奇异点(Shoulder singularity): 肩部奇异点是在机器人手腕的中心与J1轴关节在同一条直线上时发生。这种情况下,会导致关节轴1和4试图瞬间旋…

【Java-框架-SpringMVC】(01) SpringMVC框架的简单创建与使用,快速上手 - 简易版

前言 【描述】 "SpringMVC"框架的简单创建与使用,快速上手; 【环境】 系统"Windows",软件"IntelliJ IDEA 2021.1.3(Ultimate Edition)";“Java版本"1.8.0_202”,“Spring"版…

【Machine Learning】02-Advanced Learning Algorithms

02-Advanced Learning Algorithms 2. Advanced Learning Algorithms2.1 Neural Network2.1.1 概述2.1.2 Neural network model2.1.3 TensorFlow的实现2.1.4 Neural network implementation in Python2.1.5 强人工智能(AGI) 2.2 Vectorization2.2.1 矩阵使…

Hadoop分布式文件系统-HDFS

1.介绍 HDFS (Hadoop Distributed File System)是 Hadoop 下的分布式文件系统,具有高容错、高吞吐量等特性,可以部署在低成本的硬件上。 2.HDFS 设计原理 2.1 HDFS 架构 HDFS 遵循主/从架构,由单个 NameNode(NN) 和多个 DataNode(DN) 组成:

keep-alive 是 Vue 的一个内置组件,用于缓存其他组件的实例,以避免重复渲染和销毁,它可以在需要频繁切换的组件之间提供性能优化

目录 keep-alive 使用 keep-alive 的示例代码: 手动清除组件缓存的示例代码: keep-alive 组件有以下几个优点: keep-alive 的原理: 使用 keep-alive 组件,你可以包裹需要缓存的组件,然后这些组件在切…