网络基础知识介绍

news2025/4/1 22:05:45

目录

一、计算机网络背景与发展        

1.1 计算机网络的背景

​编辑1.2 计算机网络的发展历程        

二、网络协议        

2.1 认识网络协议          

2.3 协议分层        

2.4 OSI七层模型

2.5 TCP/IP 五层(或四层)模型   

三、网络传输基本流程        

3.1 网络传输流程图 

3.2 数据包封装和分用

四、网络中的地址管理                

4.1 IP地址

4.2 MAC地址     



一、计算机网络背景与发展        

1.1 计算机网络的背景

        计算机网络的出现源于对计算机资源共享和信息交流的需求,尤其是在军事、科研和商业领域。早期的计算机是大型的、昂贵的设备,通常只能在单一计算机上完成计算任务。随着计算机技术的不断进步,尤其是微型计算机的普及,为网络的出现提供了硬件基础。随着科技的不断发展,尤其是在军事实验和科研合作的推动下,远程通信成为一种迫切需求。不同地点的计算机需要通过某种方式进行连接,才能共享信息和资源。

1.2 计算机网络的发展历程        

        1960s-1970s:ARPANET的诞生,成为现代互联网的基础。通过该网络,计算机能够相互通信,发送电子邮件,进行文件传输,进行初步的信息共享。此时的计算机网络仍然局限于一些科研机构和军事部门。1980s,随着TCP/IP协议的诞生,计算机网络的互联性得到了加强。TCP/IP协议成为全球互联网的通信协议标准。网络开始从学术界和军事领域走向商业领域。与此同时,局域网(LAN)和广域网(WAN)得到了广泛应用。1991年,世界上第一个网站诞生,标志着万维网(World Wide Web,简称WWW)的开始。网络技术在这一时期得到了极大发展。随着浏览器、搜索引擎等应用的出现,互联网逐渐普及到全球。电子邮件、网页浏览、在线购物、即时通讯等应用形式逐步进入人们的日常生活。互联网进入宽带时代,速度得到了大幅提升。无线网络(Wi-Fi)移动互联网的普及进一步改变了人们的生活方式。社交媒体、云计算、大数据、物联网、人工智能等新兴技术的出现,使得计算机网络的发展进入了一个新的阶段。

        

        


二、网络协议        

2.1 认识网络协议          

        "协议" 是一种约定,网络协议是指在计算机网络中,不同的设备和系统之间进行通信时所遵循的规则和约定。它定义了数据交换的格式、顺序、处理方式以及如何处理错误等细节。网络协议确保了不同厂商、不同设备之间能够互通,从而实现信息的有效传输。计算机之间的传输媒介是光信号和电信号。通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息。要想传递各种不同的信息, 就需要约定好双方的数据格式。

        通俗地举个例子,假设你和你的朋友分别来自不同的地方,一个是讲粤语的,一个是讲东北话的。如果你们没有约定好“方言协议”,就直接交流,你可能会听不懂他说的话,或者他也听不懂你说的。假如你们事先约定了用普通话作为“共同协议”。无论你是粤语或东北话的使用者,大家都能理解普通话。这个普通话就类似于网络中的一个“协议”,它保证了你们能够沟通。

        对于计算机而言,计算机生产厂商有很多,计算机操作系统也有很多,计算机网络硬件设备还是有很多。如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要大家约定一个共同的标准,所有人都遵守,这就是网络协议。计算机之间通信的核心就是 网络协议
        

2.3 协议分层        

        我们很容易就能够理解,现实生活中很多“协议”是分层的,例如,打电话:        

        这个例子中,我们的协议只有两层,但是实际的网络通信会更加复杂,需要分更多的层次。分层最大的好处在于 "封装"。

        

2.4 OSI七层模型

        OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范,把网络从逻辑上分为了七层,每一层都有相关、相对应的物理设备。OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。

层级名称功能简介常见协议
7应用层直接为用户提供网络服务,处理高层应用数据,如网页浏览、文件传输等。HTTP, FTP, SMTP, POP3, DNS
6表示层负责数据的格式化、编码和加密/解密,确保数据能被应用层正确理解。JPEG, GIF, SSL/TLS, ASCII
5会话层管理会话的建立、维护和终止,确保数据通信的顺畅。NetBIOS, RPC, PPTP
4传输层提供端到端的可靠传输,确保数据的完整性和顺序。TCP, UDP
3网络层负责路由选择和数据包的传输路径,确保数据从源到目的地的正确传递。IP, ICMP, ARP, RIP
2数据链路层负责在物理链路上传输数据,进行错误检测和修正,控制数据的流量。Ethernet, PPP, HDLC, Frame Relay
1物理层负责物理媒介的数据传输,定义电气信号、光信号等传输方式。Ethernet (电缆), 光纤, 无线网络

2.5 TCP/IP 五层(或四层)模型   

        在实际应用中,TCP/IP 四层模型更为广泛使用,因为它更简化、更直接,更符合现代网络的实际需求。

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

        物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型。一般而言,对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;对于一台路由器, 它实现了从网络层到物理层;对于一台交换机,它实现了从数据链路层到物理层;对于集线器, 它只实现了物理层。此言并不绝对,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)。
        


三、网络传输基本流程        

3.1 网络传输流程图 

        我们通过下面两张图更好的了解网络传输的基本流程

        对于跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。

3.2 数据包封装和分用

        不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
        应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
        首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。
数据封装的过程        

数据分用的过程        

        


四、网络中的地址管理                

4.1 IP地址

        IP地址(Internet Protocol Address,互联网协议地址)是分配给每个连接到互联网的设备的唯一标识符,它类似于设备的“家地址”,用于定位和通信。IP地址的作用是让互联网上的设备能够找到彼此并进行数据交换。我们一般学习接触更多的是IPv4。        

IPv4(Internet Protocol version 4)

格式:IPv4地址是由4组数字组成,每组数字在0到255之间,数字之间用点分隔。例如:192.168.1.1。
地址长度:32位(4字节),最多支持约43亿个唯一地址。
示例:
192.168.0.1
10.0.0.1
172.16.0.1


IPv6(Internet Protocol version 6)

格式:IPv6地址由8组16进制数值组成,每组4个字符,用冒号分隔。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。
地址长度:128位(16字节),能够支持大量的设备(约340万亿个地址)。
示例:
2001:0db8:85a3:0000:0000:8a2e:0370:7334

IP地址的分类

  • 私有IP地址:这些IP地址通常在局域网(LAN)内部使用,不会被路由器转发到互联网。例如:

        192.168.0.0 到 192.168.255.255

        10.0.0.0 到 10.255.255.255

        172.16.0.0 到 172.31.255.255

        这些私有地址被广泛应用于家庭、公司和组织的内网。

  • 公共IP地址:这是在互联网上唯一的IP地址,可以被全球任何地方的设备访问。它由ISP(互联网服务提供商)分配。
  • 环回地址(Loopback address)127.0.0.1 是环回地址,通常用于测试计算机本身的网络功能,也被称为“本地回环地址”或“localhost”。

        在大型网络中,IP地址需要被划分为不同的子网,以便更高效地管理。例如,192.168.1.0/24 表示该网络的IP范围从 192.168.1.0192.168.1.255,而 /24 表示前24位是网络部分,剩下的用于主机部分。

        IP地址还可以分类为动态IP地址【Dynamic IP:由DHCP,即动态主机配置协议,自动分配。它们是临时的,每次设备连接到网络时,可能会分配一个新的IP地址】和静态IP地址【Static IP:由网络管理员手动配置的IP地址,保持不变。通常用于服务器、路由器等设备】。

        

4.2 MAC地址     

        MAC地址(媒体访问控制地址Media Access Control Address)是一种硬件地址,通常用于网络设备(如计算机、路由器、打印机等)之间的通信。每个设备的MAC地址在全球范围内是唯一的,用来标识设备在局域网中的身份。MAC地址在数据链路层(OSI模型的第二层)起作用,是网络通信中的基础元素之一。  

        

  • 每个网络设备的MAC地址都是全球唯一的,这使得它可以唯一标识网络中的每个设备。

  • MAC地址与硬件相关,通常由网络接口卡(NIC)制造商在设备制造过程中赋予设备。

  • MAC地址通常由6个字节(48位)组成,通常用十六进制表示。例如:00:14:22:01:23:45。前24位(3个字节):标识制造商(也叫 OUI,组织唯一标识符);后24位(3个字节):由制造商自行分配,确保同一制造商生产的所有设备具有不同的MAC地址。

  • MAC地址用于局域网内部的设备标识,通常与硬件绑定。IP地址用于广域网中的设备定位,是网络层的地址。IP地址与MAC地址是两个不同层次的标识,在局域网中,通过ARP协议将IP地址转换为MAC地址。

MAC地址的类型

  • 单播(Unicast)MAC地址:普通的MAC地址,标识网络中单个设备。所有的设备都有一个唯一的单播MAC地址。
  • 广播(Broadcast)MAC地址:FF:FF:FF:FF:FF:FF,用于在局域网内向所有设备广播消息。
  • 组播(Multicast)MAC地址:以特定的方式进行标识,供多个设备接收数据,但不包括所有设备。

        MAC地址常用于局域网通信【在局域网(LAN)中,MAC地址用于确定数据包的目的地设备】、网络设备的识别【网络交换机和路由器使用MAC地址来管理设备,并进行数据转发】、ARP协议【在IPv4网络中,ARP协议通过IP地址解析对应的MAC地址,使得设备可以在局域网内正确地进行通信】和网络安全【通过MAC地址可以实现网络访问控制,比如在Wi-Fi路由器中设置MAC地址过滤,以允许或阻止特定设备接入网络】。

        


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

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

相关文章

MIPS-32架构(寄存器堆,指令系统,运算器)

文章目录 0 Preview:寄存器32通用0 $zero1 $at2—3 \$v0-$v14—7 \$a0-$a38—15 \$t0-$t716—23 \$s0-$s724—25 \$t8-$t926—27 \$k0-$k128 $gp29 $sp30 $fp 指令系统运算存储器 0 Preview: MIPS架构有32位版本和64位版本,本文介绍32位版本 寄存器 正如笔者曾说…

【什么是机器学习——多项式逼近】

什么是机器学习——多项式逼近 机器学习可以分成三大类别,监督学习、非监督学习、强化学习。三大类别背后的数学原理不同。监督学习使用了数学分析中的函数逼近方法和概率统计中的极大似然方法;非监督学习使用聚类和EM算法;强化学习使用马尔可夫决策过程的想法。 机器学习的…

《午夜地铁的幽灵AP》

点击下面图片带您领略全新的嵌入式学习路线 🔥爆款热榜 88万阅读 1.6万收藏 文章目录 **第一章:末班车的二进制月光****第二章:ESP32的赛博墓志铭****第三章:都市传说与CRC校验****第四章:数字孪生的献祭仪式****终章…

创作领域“<em >彩</em><em>票</em><em>导</em><em>师</em><em>带</em><em>玩</em><em>群

天光揉碎最后一块夜斑,露珠压弯草叶的脆响惊醒了沉睡的巷子。青灰雾霭中,老墙上的爬山虎在打哈欠,卷曲的藤须滴落隔夜的月光。sFsTU

Spring Cloud Gateway中GatewayFilter Factories(网关过滤工厂)的详细介绍

文章目录 1、网关过滤工厂介绍2、 GatewayFilter 过滤器的基本配置3、 Spring Cloud Gateway 内置 GatewayFilter Factories3.1、AddRequestHeader GatewayFilter3.2、AddResponseHeader GatewayFilter3.3、AddRequestParameter GatewayFilter3.4、RewritePath GatewayFilter3.…

微服务架构:构建可持续演进的微服务架构的原则与实践指南

引言:微服务的价值锚点 某物流公司微服务化后,订单履约周期从2小时缩短至15分钟,但技术债务却以每年200%的速度增长。这个案例揭示了一个关键认知:‌微服务架构的成败不在于技术实现,而在于是否建立有效的演进机制‌。…

C++的四种类型转换

文章目录 const_cast:去掉常量类型的类型转换static_cast:提供编译器认为安全的类型转换&#xff08;在编译阶段完成类型转换&#xff09;reinterpret:类似c风格的强制类型转化dynamic_cast:主要用在继承结构里&#xff0c;可以支持RTTI类型识别的上下转换dynamic_cast<>…

《Python实战进阶》No37: 强化学习入门加餐版3 之 Q-Learning算法可视化升级

连续第4篇文章写Q-Learning算法及可视化 Q-Learning强化学习算法在迷宫寻路中的应用 引言 强化学习是机器学习的一个重要分支&#xff0c;其核心理念是通过与环境的交互来学习最优策略。在上三篇文章中&#xff0c;《Python实战进阶》No37: 强化学习入门&#xff1a;Q-Learn…

漏洞挖掘---灵当CRM客户管理系统getOrderList SQL注入漏洞

一、灵当CRM 灵当CRM是上海灵当信息科技有限公司旗下产品&#xff0c;适用于中小型企业。它功能丰富&#xff0c;涵盖销售、服务、财务等管理功能&#xff0c;具有性价比高、简洁易用、可定制、部署灵活等特点&#xff0c;能助力企业提升经营效益和客户满意度。 二、FOFA-Sear…

Java高频面试之集合-20

hello啊&#xff0c;各位观众姥爷们&#xff01;&#xff01;&#xff01;本baby今天来报道了&#xff01;哈哈哈哈哈嗝&#x1f436; 面试官&#xff1a;讲讲 HashSet 的底层实现&#xff1f; HashSet 是 Java 集合框架中用于存储唯一元素的高效数据结构&#xff0c;其底层实…

sort命令:排序

sort&#xff1a;默认首位排序 参数&#xff1a; -n&#xff1a;按整个数字排序 -r&#xff1a;降序 -u&#xff1a;去重 [rootrobin ~]# sort -n aa.txt #按数字排序&#xff08;正序&#xff09; [rootrobin ~]# sort -nr aa.txt #降序 [rootrobin ~]# sort -…

Javaweb后端 AOP快速入门 AOP核心概念 AOP执行流程

AOP是对特定方法编程&#xff0c;把共用都用的方法提取出来&#xff0c;统一维护 AOP基础 AOP快速入门 对原始方法无影响 AOP核心概念 连接点&#xff0c;是原始方法&#xff0c;被控制范围内的原始方法 通知&#xff0c;AOP类里面写的公共的方法 切入点&#xff0c;实际被AO…

deepseek ai 输入法

一、简介 使用java开发一个安卓输入法接入deepseek实现ai聊天&#xff0c;代码已开源。 二、视频演示 deepseek输入法_哔哩哔哩_bilibili 三、开源地址 https://github.com/deepseek/inputmethed 四、技术细节 CustomInputMethodService.java 输入法服务类 MainActivity.…

探究 CSS 如何在HTML中工作

2025/3/28 向全栈工程师迈进&#xff01; 一、CSS的作用 简单一句话——美化网页 <p>Lets use:<span>Cascading</span><span>Style</span><span>Sheets</span> </p> 对于如上代码来说&#xff0c;其显示效果如下&#xff1…

Verilog中X态的危险:仿真漏掉的bug

由于Verilog中X态的微妙语义&#xff0c;RTL仿真可能PASS&#xff0c;而网表仿真却会fail。 目前进行的网表仿真越来越少&#xff0c;这个问题尤其严重&#xff0c;主要是网表仿真比RTL仿真慢得多&#xff0c;因此对整个回归测试而言成本效益不高。 上面的例子中&#xff0c;用…

使用 uv 管理 Python 项目

介绍 首先, uv 工具是使用 rust 开发出来的, 速度要比传统的 pip, pipx 等一众包管理工具要快不少. 另外, 除了包管理之外, uv 还提供了脚手架的功能, 使用体验和前端开发使用过的 vue-cli 很相似, 可以帮助我们自动初始化项目, 创建好一个空的包含必要文件结构的文件夹. 此外…

《C++11:通过thread类编写C++多线程程序》

关于多线程的概念与理解&#xff0c;可以先了解Linux下的底层线程。当对底层线程有了一定程度理解以后&#xff0c;再学习语言级别的多线程编程就轻而易举了。 【Linux】多线程 -&#xff1e; 从线程概念到线程控制 【Linux】多线程 -&#xff1e; 线程互斥与死锁 语言级别的…

19-dfs-排列数字(基础)

题目 来源 842. 排列数字 - AcWing题库 思路 由于相对简单&#xff0c;是dfs的模板题&#xff0c;具体思路详见代码 代码 #include<bits/stdc.h> using namespace std; const int N10; int state[N],path[N];//是否使用过&#xff0c;当前位置 int n; void dfs(int …

32.代码题

接着上集...... 派对&#xff1a;超时了&#xff0c;总该受到惩罚吧&#xff1f; 洛西&#xff1a;至于吗&#xff1f;就0.1秒&#xff01; 晴/宇&#xff1a;十分应该。 洛西&#xff1a;我..................... 没办法&#xff0c;洛西只能按照要求去抓R了。 1.P1102 …

nacos 3.x Java SDK 使用详解

Nacos 3.x Java SDK 使用详解 Nacos 3.x 是云原生服务治理的重要升级版本&#xff0c;其 Java SDK 在性能、协议和扩展性上均有显著优化。 一、环境要求与依赖配置 基础环境 JDK 版本&#xff1a;需使用 JDK 17&#xff08;Nacos 3.x 已放弃对 JDK 8 的支持&#xff09;。Spri…