网络原理初识(基础)

article/2025/9/29 0:54:20

目录

一,网络的划分

1.局域网(LAN)

概念

局域网的组建(连接方式)

2.广域网(WAN)

概念

二,网络通信基础

1.IP地址

概念

格式

组成

分类

特殊IP

2.端口号(port)

概念

格式

注意

3.五元组

4.子网掩码

格式

作用

计算方式

5.MAC地址

概念

作用

特殊的MAC地址

6.一跳一跳的网络传输

解释

总结IP地址和MAC地址

三,协议

1.认识协议

概念

三要素

体现形式

2.协议分层

分层的作用

3.OSI七层模型

概念

七层模型

4.TCP/IP五层(四层)模型

概念

五层模型 

5.网络设备所在分层

四,封装和分用 

前言

1.封装

概念

封装过程

2.分用

概念

过程


一,网络的划分

1.局域网(LAN)

概念

  • 局域网,即 Local Area Network,简称LAN
  • Local 即标识了局域网是本地,局部组建的一种私有网络
  • 局域网内的主机之间能方便的进行网络通信,又称为内网
  • 局域网和局域网之间在没有连接的情况下,是无法通信的

局域网的组建(连接方式)

1)基于网线直连

2)基于集线器组建

3)基于交换机组建

4)基于交换机和路由器组建

2.广域网(WAN)

概念

  • 广域网,即 Wide Area Network,简称WAN
  • 通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网
  • 广域网内部的局域网都属于其子网

二,网络通信基础

1.IP地址

概念

  • IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址

格式

  • IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)
  • 或者称为四位0-255的十进制数

组成

IP地址分为两个部分,网络号和主机号

  • 网络号:标识网段,保证相互连接的两个网段具有不同的标识;
  • 主机号:标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号

通过合理设置网络号和主机号,就可以保证在相互连接的网络中,每台主机的IP地址都是唯一的。

分类

分 类范围适用网络网络数量主机最大连接数
A类0.0.0.0 ~ 127.255.255.255大型网络12616777214(
-2)
B类128.0.0.0 ~
191.255.255.255
中等规模网
约16000
65534( -2)
C类192.0.0.0 ~
223.255.255.255
小型网络-254( -2)
D 类224.0.0.0 ~
239.255.255.255
E类240.0.0.0 ~
247.255.255.255

备注:主机最大连接数减去2,是扣除主机号为全0和全1的特殊IP地址 

特殊IP

  • 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
  • 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
  • 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  • 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),
  • 对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。 

2.端口号(port)

概念

  • 在网络通信中,IP地址用于标识主机网络地址,端口号可以标识主机中发送数据、接收数据的进程
  • 简单说:端口号用于定位主机中的进程

格式

端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定一个端口号,来发送及接收网络数据

注意

两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号

3.五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP:标识源主机
  2. 源端口号:标识源主机中该次通信发送数据的进程
  3. 目的IP:标识目的主机
  4. 目的端口号:标识目的主机中该次通信接收数据的进程
  5. 协议号:标识发送进程和接收进程双方约定的数据格式

4.子网掩码

格式

  • 子网掩码格式和IP地址一样,也是一个32位的二进制数。其中左边是网络位,用二进制数字“1”表示,1的数目等于网络位的长度;右边是主机位,用二进制数字“0”表示,0的数目等于主机位的长度。
  • 子网掩码也可以使用二进制所有高位1相加的数值来表示,如以上子网掩码也可以表示为24。

作用

(1)划分A,B,C三类 IP 地址子网

(2)网络通信时,子网掩码结合IP地址,可以计算获得网络号(划分子网后的网络号)及主机号(划分子网后的主机号)。一般用于判断目的IP与本IP是否为同一个网段 

计算方式

  • 将 IP 地址和子网掩码进行“按位与”操作(二进制相同位,与操作,两个都是1结果为1,否则为0),得到的结果就是网络号。
  • 将子网掩码二进制按位取反,再与 IP 地址位与计算,得到的就是主机号
十进制二进制
IP地址180.210.242.13110110100.11010010.11110010.10000011
子网掩码255.255.248.011111111.11111111.11111000.00000000
网络号180.210.240.010110100.11010010.11110000.00000000
主机号0.0.2.13100000000.00000000.00000010.10000011

5.MAC地址

概念

MAC地址,即 Media Access Control Address,用于标识网络设备的硬件物理地址

作用

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡;其中每个网卡都有唯一的一个MAC地址。
  • 网络通信,即网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡接收数据。
  • 硬件层面,只能基于MAC地址识别网络设备的网络物理地址

特殊的MAC地址

  • 广播数据报:发送一个广播数据报,表示对同网段所有主机发送数据报
  • 广播数据报的MAC地址为:FF:FF:FF:FF:FF:FF

6.一跳一跳的网络传输

解释

总的来说,虽然我们在网络传输时输入了IP地址,但实际上网络传输并不是一次性就走到的,时通过MAC地址,从一个设备到另一个设备最终到达了目的设备

总结IP地址和MAC地址

  • IP地址描述的是路途总体的起点和终点;是给人使用的网络逻辑地址

  • MAC地址描述的是路途上的每一个区间的起点和终点,即每一跳的起点和终点;是给网络硬件设备使用的网络物理地址

三,协议

1.认识协议

概念

  • 协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则
  • 如怎么样建立连接、怎么样互相识别等,只有遵守这个约定,计算机之间才能相互通信交流
  • 通常要遵守三要素:语法,语义,时序

三要素

  1. 语法:即数据与控制信息的结构或格式
  2. 语义:即需要发出何种控制信息,完成何种动作以及做出何种响应
  3. 时序,即事件实现顺序的详细说明

体现形式

协议(protocol)最终体现为在网络上传输的数据包的格式

2.协议分层

分层的作用

  • 分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
  • 在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用类(使用方,使用服务)
  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可

3.OSI七层模型

概念

OSI:即Open System Interconnection,开放系统互连

  • OSI 七层网络模型是一个逻辑上的定义和规范:把网络从逻辑上分为了7层。
  • OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输;
  • 它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯

七层模型

注:会话层和表示层并未落地 

4.TCP/IP五层(四层)模型

概念

  • TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
  • TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求

五层模型 

  1. 应用层:负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等。我们的网络编程主要就是针对应用层。
  2. 传输层:负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  3. 网络层:负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  4. 数据链路层:负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch)工作在数据链路层。
  5. 物理层:负责光/电信号的传递方式。比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤,现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub)工作在物理层

5.网络设备所在分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层
  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层
  • 对于集线器,它只实现了物理层

四,封装和分用 

前言

  • 不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报(datagram),在链路层叫做帧(frame)
  • 首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息

1.封装

概念

  • 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)
  • 通俗点说,就是在经过每层模型时,都需要使用本层的协议格式封装之后发送到下一层

封装过程

 

2.分用

概念

  • 数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理
  • 通俗点说,就是经过每层协议时,使用相同的协议进行解析,然后在交给上一层

过程


http://chatgpt.dhexx.cn/article/hXjLXQXF.shtml

相关文章

网络基本原理

一、网络与网卡 网络:进程与进程间跨主机(Host)通信 网卡: 网卡发送数据:1.填充数据 2.触发发送 网卡接收数据:1.接收数据 2.通过中断把控制权交给OS 3.OS把数据搬给进程 数据经过不断的封装之后才能发…

安装vue-devtool

新买了台电脑,想要安装vue-devtool,发现安装不上,特此记录下。 一,下载 因为某种大家都知道的原因,外网上不了。 可以使用这里的下载地址: https://chrome.zzzmh.cn/info?tokenljjemllljcmogpfapbkkighb…

嵌入式linux之yocto(六)devtool往返开发

1. 参考 yocto官方文档-devtool 微信读书:嵌入式Linux系统开发:基于Yocot Project 书中对于devtool讲解较少,官方文档对devtool的工作流和使用方法较为详细。 传统开发内核是直接进入内核路径修改源码,这里简述使用devtool工具开发Linux内核…

Chrome Devtool 调试 Javascript

重现错误 单击打开演示。演示在新选项卡中打开。在 Number 1 中输入数字5在 Number 2 中输入数字2点击 Add Number 1 and Number 2 熟悉 Sources 面板 UI 点击Source get-started 是 get-started.html(不包括JS) get-started.js 就是 get-started 的…

devtool使用介绍(2)

devtool使用介绍2 2.4.2 使用devtool Modify修改现有组件的来源 2.4.2 使用devtool Modify修改现有组件的来源 devtool Modify命令为使用已有代码的现有代码作准备,该代码已具有用于构建软件的本地recipe。 该命令足够灵活,可让你从上游源提取代码&…

webpack——devtool配置及sourceMap的选择

官方手册传送门 官方对devtool配置的定义很简单:选择一种 source map 格式来增强调试过程,不同的值会明显影响到构建build和重新构建rebuild的速度。 不过,什么是source map,官方用提供了许多种的source map,其中的区…

webpack:devtool配置中的source map

webpack:devtool配置中的source map 一、功能作用二、配置文件三、source map格式(1)source-map(2)inline-source-map(3)hidden-source-map(4)eval-source-map&#xff0…

sourceMap: devtool 模式以及SourceMapDevToolPlugin的使用

1. 什么是sourceMap sourceMap 是一个信息文件, 维护着代码转换编译前后的映射关系; 2. devtool : 选项控制是否生成,以及如何生成 source map source Map对应的模式 1)inline 2) cheap 3)module 4) eval 5) source-map …

webpack之devtool

关于Devtool 该选项控制是否以及如何生成源映射。官网上给出的可选值有: 其中一些值适合开发,一些用于生产。对于开发,您通常需要快速的Source Maps,以bundle的大小为代价,但是对于生产,您需要独立的Sourc…

chrome devtool使用基础

保存js和css setting > workspace 工作区设置后,自动映射工作区 带绿色图标的文件,不需要请求 blackbox script 黑盒调试,调试不进入第三方代码,只调试项目代码 setting > blackbox 或者鼠标右键设置 network throttling profile 设置网络模式,网速限制,在ne…

Chrome Devtool 使用指南

Chrome Devtool Performance使用指南 运行时性能表现(runtime performance)指的是当你的页面在浏览器运行时的性能表现,而不是在下载页面的时候的表现。这篇指南将会告诉你怎么用Chrome DevToos Performance功能去分析运行时性能表现。在RAI…

devtool使用

记录点没用的东西 1. 引入依赖 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-devtools</artifactId><version>2.3.2.RELEASE</version> </dependency> 2.pom中加入maven插件 <plugin…

webpack devtool详解

前言 devtool也是之前常用的一个配置&#xff0c;我们稍微了解下吧&#xff0c;不研究太深&#xff0c;毕竟现在都不怎配置他。 内容 devtool是配置sourceMap的。 sourceMap大家都知道&#xff0c;我们本地或者测试环境出了错误&#xff0c;可以在source中迅速定位错误&#x…

devtool配置

devtool配置 一、devtool配置1.source map 源码地图2.webpack中的source map3.对于开发环境 一、devtool配置 1.source map 源码地图 本小节的知识与 webpack 无关 前端发展到现阶段&#xff0c;很多时候都不会直接运行源代码&#xff0c;可能需要对源代码进行合并、压缩、转换…

dev-tool安装方法(手动安装版)

记录一下vue调试神器dev-tool的安装过程&#xff0c;由于是在公司内网&#xff0c;也不方便挂梯子&#xff0c;所以手动安装——下载源码在本地编译&#xff0c;再添加扩展程序的方式安装。过程如下&#xff1a; 一、dev-tool源码获取 git地址&#xff1a;https://github.com/…

一文彻底搞懂webpack devtool

为什么需要Source Map 首先根据谷歌开发者文档的介绍&#xff0c;Source Map一般与下列类型的预处理器搭配使用&#xff1a; 转译器&#xff08;Babel&#xff09;编译器&#xff08;TypeScript&#xff09;Minifiers&#xff08;UglifyJS&#xff09; 为什么呢&#xff1f;…

OpenBmc开发8:devtool简介与使用

1 简介 devtool是yocto中的一个工具&#xff0c;此命令行工具作为可扩展SDK&#xff08;eSDK&#xff09;的一部分&#xff0c;是基础组件。可以使用devtool来帮助构建&#xff0c;测试和打包eSDK中的软件。可以使用该工具有选择地将构建的内容集成到OpenEmbedded构建系统构建…

怎么在navicat(Navicat for MySQL)中运行SQL代码

1、首先在navicat中新建一个数据库&#xff08;之前已经建好数据库&#xff0c;忽略本步&#xff09; 2、点击上图中的“查询”命令 3、再点击“新建查询” 4、系统自动跳出如下图命令窗口 5、可以在命令行中敲代码或直接复制已有代码。如果代码是关于建表&#xff0c;执行成…

使用SQL语句创建数据表

写法一 create table student (sno char(10) primary key,sname varchar(20) not null,ssex char(2),sage smallint,sdept varchar(20),sid char(18) unique)写法二 create table student (sno char(10), sname varchar(20) not null, ssex char(2), sage smallint, sdept v…

SQL代码自动生成器

SQL代码自动生成器&#xff0c;效果图如下&#xff1a; 实现原理很简单&#xff1a; 通过数据库名&#xff0c;获取到数据表名&#xff0c;进而获取到数据字段。通过可视化的选择自定义的添加修改&#xff0c;一步一步完成SQL语句的编写。 其中对于常用的存储过程参数列表的书…