Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)
一、网络
早期的计算机程序都是在本机上运行的,数据存储和处理都在同一台机器上完成。随着技术的发展,人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用,其运行环 境仅限于个人计算机内部。这种设置虽然提供了独立性和一定的安全性,但也使得这些程序与外界隔 绝,无法与其他设备进行通信或协同工作。因此,这种设置限制了信息的跨设备共享和应用程序的灵活性。
网络(Network)是指通过通信链路和交换设备将多个计算机、设备或节点连接在一起,以实现资源共享和信息交换的系统。网络可以是小型的局域网(LAN),也可以是覆盖全球的广域网(WAN),甚至是互联网(Internet)。
1.1、网络的组成部分
节点(Node):
网络中的设备,如计算机、服务器、打印机、手机等。
每个节点都有一个唯一的标识符(如IP地址或MAC地址)。
通信链路(Communication Link):
连接节点的物理或逻辑通道,如网线、光纤、无线信号等。
交换设备(Switching Devices):
用于转发数据的设备,如交换机、路由器、集线器等。
协议(Protocol):
网络通信的规则和标准,如TCP/IP、HTTP、FTP等。
网络服务(Network Services):
提供特定功能的软件或硬件,如DNS、DHCP、Web服务器等。
1.2、网络的分类
按规模分类:
局域网(LAN):覆盖小范围(如家庭、办公室、学校),速度快,延迟低。
城域网(MAN):覆盖一个城市或地区。
广域网(WAN):覆盖大范围(如国家、全球),互联网是最大的广域网。
按拓扑结构分类:
总线型网络:所有设备共享一条通信线路。
星型网络:所有设备连接到一个中心节点(如交换机)。
环型网络:设备形成一个闭合环。
网状网络:设备之间有多条连接路径,可靠性高。
按传输介质分类:
有线网络:使用网线、光纤等物理介质。
无线网络:使用无线电波(如Wi-Fi、蓝牙、4G/5G)。
按功能分类:
客户端-服务器网络:客户端请求服务,服务器提供服务。
对等网络(P2P,Peer-to-Peer):所有设备平等,既可以是客户端也可以是服务器。
1.3、网络的功能
资源共享:
硬件资源(如打印机、存储设备)。
软件资源(如应用程序、文件)。
数据资源(如数据库、文档)。
通信与协作:
电子邮件、即时通讯、视频会议等。
数据存储与备份:
通过网络将数据存储在远程服务器上,实现备份和恢复。
分布式计算:
将任务分配到多个设备上并行处理,提高效率。
远程访问:
通过网络访问远程设备或服务(如远程桌面、云服务)。
1.4、网络的特点
互联互通
无论设备在哪里,只要连入网络,就能与其他设备“对话”(如发送消息、传输文件)。
资源共享
共享打印机、文件、网络带宽等,避免重复购买硬件或数据孤岛。
分层协作
物理层:负责“物理搬运”(如网线传输电信号)。
网络层:负责“找路”(如IP地址和路由器决定数据包去向)。
应用层:直接为用户服务(如浏览器访问网页、微信聊天)。
智能路由
数据会自动选择最优路径传输,即使某条路堵了(网络故障),也能绕道送达。
1.5、网络的工作原理
数据封装与传输:
数据被分割成小的数据包,每个数据包包含源地址、目标地址和校验信息。
数据包通过网络设备(如路由器、交换机)转发到目标设备。
协议栈:
数据在网络中传输时,遵循分层的协议栈(如OSI模型或TCP/IP模型)。
每层协议负责不同的功能,如物理层负责传输比特流,网络层负责路由选择。
地址与路由:
使用IP地址和MAC地址定位设备。
路由器根据路由表选择最佳路径转发数据包。
错误检测与纠正:
通过校验和、重传机制等确保数据的完整性和可靠性。
1.6、网络的应用
互联网:
全球最大的网络,提供Web浏览、电子邮件、社交媒体等服务。
企业内部网络(Intranet):
企业内部的私有网络,用于内部通信和资源共享。
物联网(IoT):
将各种设备(如智能家居、传感器)连接到网络,实现智能化管理。
云计算:
通过网络提供计算资源、存储资源和应用程序服务。
二、网络发展史
2.1、ARPANET阶段
互联网的诞生可以追溯到上世纪60年代末,当时美国国防部高级研究计划局(ARPA,现在的DARPA) 为了在战争发生时保持通信的稳定性,开发了一个名为ARPANET的网络,这个网络实现了不同地点的计 算机通过网络连接起来,互相发送和接收信息。并且ARPANET是世界上第一个运营的包交换网络,它采 用了分组交换技术,这是现代互联网的一个核心技术。
ARPANET的建立通常被视为现代互联网诞生的标志,因为它开创了计算机网络互联的新时代,并为后来 的互联网发展奠定了基础。
早期的ARPANET使用了网络控制协议(Network Control Protocol,NCP),此时的ARPANET不能互联不 同类型的计算机和不同类型的操作系统,也没有纠错功能。
2.2、TCP/IP两个协议阶段
随着ARPANET的发展和扩展,以及网络技术的持续进步,人们逐渐认识到需要一个更加强大、更通用的 协议来支持更广泛的网络互联和更高效的数据传输。因此,TCP/IP(传输控制协议/互联网协议)在上世 纪70年代被开发出来,并最终取代了NCP,成为ARPANET的标准协议。TCP/IP的出现不仅解决了NCP的 局限性,而且为互联网的进一步发展奠定了坚实的基础。
TCP/IP协议分为两个主要部分:
1. TCP(传输控制协议):负责在数据传输过程中进行错误检测、数据包顺序的维护以及数据的可靠 性,确保数据能够正确无误地从发送方传送到接收方。
2. IP(互联网协议):负责将数据包从源地址路由到目的地址,处理不同网络之间的互联问题,确保 数据能够在复杂的网络环境中正确传输。
2.3、OSI开放系统互联模型
OSI是由ISO(国际标准化组织)提出的,它将网络的功能划分为不同的模块,以分层的形式有机组合在 一起。每层实现不同的功能,其内部实现方法对外部其他层次来说是透明的。每层向上层提供服务,同 时使用下层提供的服务。
OSI开放互联系统模型共有七层。
OSI是一个理想化的模型,尚未有完整的实现,但是OSI模型的提出为后续的新的网络结构的实现打下了 坚实的基础。
2.4、TCP/IP协议簇(族)
TCP/IP是互联网上的工业标准,也是我们目前互联网的基础,它确保了不同类型的计算机和网络能够相 互通信。TCP/IP协议簇延续了OSI模型的思路,但它将网络分成了四层:应用层、传输层、网络层、链 路层。
2.4.1、TCP/IP协议簇四层中常见的协议:
应用层:
1. HTTP(Hypertext Transfer Protocol):超文本传输协议,是用于从服务器传输超文本到本地浏 览器的传输协议。
2. FTP(File Transfer Protocol):文件传输协议,是用于在网络上进行文件传输的一套标准协议, 使用TCP传输。
3. TFTP(Trivial File Transfer Protocol):简单文件传输协议,是用于在网络上进行文件传输的一套 标准协议,使用TCP传输。
4. SMTP(Simple Mail Transfer Protocol):简单邮件传输协议,一种提供可靠且有效的电子邮件 传输的协议。
传输层:
1. TCP(Transport Control Protocol):传输控制协议,是一种面向连接的、可靠的、基于字节流的 传输层通信协议。
2. UDP(User Datagram Protocol):用户数据报协议,是一种无连接、不可靠、快速传输的传输层 通信协议。
网络层:
1. IP(Internetworking Protocol):网际互连协议,是指能够在多个不同网络间实现信息传输的协 议。
2. ICMP(Internet Control Message Protocol):互联网控制信息协议,用于在IP主机、路由器之间 传递控制消息。
3. IGMP(Internet Group Management Protocol):互联网组管理,是一个组播协议,用于主机和 组播路由器之间通信。
链路层:
1. ARP(Address Resolution Protocol):地址解析协议,通过IP地址获取对方mac地址。
2. RARP(Reverse Address Resolution Protocol):逆向地址解析协议,通过mac地址获取对方ip 地址。
三、网络协议
3.1、协议概念
协议是指一系列规则和标准,这些规则定义了数据如何在网络上从一个设备传输到另一个设备。协议确 保了不同计算机和网络设备之间能够理解和处理传输的数据。
3.2、协议的作用
1. 数据封装:协议定义了数据应该如何封装,以便在不同的网络层之间传递。例如,TCP协议会在数 据包前加上TCP头部信息。
2. 寻址和路由:协议规定了如何为数据包添加地址信息,以及数据包在网络中如何从源地址传送到目 的地址。例如,IP协议负责将数据包发送到正确的目的地。
3. 数据传输:协议定义了数据的传输方式,包括数据的发送和接收机制。例如,TCP协议提供了可靠 的、面向连接的数据传输。
4. 错误检测和纠正:许多协议包含了错误检测和纠正机制,以确保数据的完整性和可靠性。例如,校 验和(Checksum)是用于检测数据在传输过程中是否发生错误的一种方法。
5. 流量控制和拥塞控制:协议可以管理网络中的数据流量,以防止网络拥塞。例如,TCP协议中的窗 口大小调整就是流量控制的一种方法。
6. 会话管理:协议可以管理网络连接的建立、维护和终止。例如,HTTP协议在客户端和服务器之间 建立会话,以交换网页请求和响应。
7. 安全性:一些协议提供了安全机制,如加密和认证,以确保数据传输的安全性。例如,SSL/TLS协 议用于在传输层上加密数据。
四、IP地址
IP地址(Internet Protocol Address),即互联网协议地址,是分配给每一台联网计算机或设备的唯一 标识符。通俗的讲,IP地址就是每台联网设备的身份证,它使得网络中的设备能够相互识别并进行通 信。目前IP地址有两种:IPv4和IPv6。
4.1、IPv4地址
IPv4地址由32位二进制数组成,为了方便记忆,通常以点分十进制表示,即将32位二进制数分成4组, 每组8位,中间用小数点分隔,例如:192.168.1.1。每组(即每个字节)的二进制数转换为十进制数的 范围是0~255,也就是最大表示为255.255.255.255。IPv4地址由两部分组成:网络号和主机号,但是随 着网络的不断发展,网络设备的增多,IPv4地址空间有限,现在已经接近枯竭。
IP地址就像是我们的家庭住址一样,如果你要写信给一个人,你就要知道他(她)的地址,这样邮递员才能把信送到。计算机发送信息就好比是邮递员,它必须知道唯一的“家庭地址”才能不至于把信送错人家。只不过我们的地址是用文字来表示的,计算机的地址用二进制数字表示。 IP地址被用来给Internet上的电脑一个编号。大家日常见到的情况是每台联网的PC上都需要有IP地址,才能正常通信。我们可以把“个人电脑”比作“一台电话”,那么“IP地址”就相当于“电话号码”,而Internet中的路由器,就相当于电信局的“程控式交换机”。
分类依据 | 范围 | 使 用 单 位 | |
---|---|---|---|
A | 第一个字节的第一位固定为0,取值范围是00000000 01111111,即0-127,其中第一个字节为网络号,剩下 的为主机号。 | 0.0.0.0—— 127.255.255.255 | 政 府/ 大 公 司/ 学校 |
B | 第一个字节的前两位固定为10,取值范围是10000000 10111111,即128-191,其中前两个字节为网络号,剩 下的为主机号。 | 128.0.0.0—— 191.255.255.255 | 中等规模公司 |
C | 第一个字节的前三位固定为110,取值范围是11000000 11011111,即192-223,其中前三位为网络号,剩下的 为主机号。 | 192.0.0.0—— 223.255.255.255 | 个人 |
D | 第一个字节的取值范围是224-239。 | 224.0.0.0—— 239.255.255.255 | 用 于 多 播 通 信 |
E | 第一个字节的取值范围是240-255。 | 240.0.0.0—— 255.255.255.255 | 保 留 使 用 |
IPV4,采用32位地址长度,只有大约43亿个地址,它只有4段数字,每一段最大不超过255。随着互联网的发展,IP地址不够用了,在2019年11月25日IPv4位地址分配完毕。
公有地址
公有地址(Public address)由Inter NIC(Internet Network Information Center互联网信息中心)负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问互联网。
私有地址
私有地址(Private address)属于非注册地址,专门为组织机构内部使用。
A类 10.0.0.0--10.255.255.255
B类 172.16.0.0--172.31.255.255
C类 192.168.0.0--192.168.255.255
注意事项
- 127.0.0.1 本机地址
- 192.168.0.0--192.168.255.255为私有地址,属于非注册地址,专门为组织机构内部使用
4.2、 IPv6地址
IPv6是下一代互联网协议,用于解决IPv4地址枯竭的问题。IPv6使用128位地址,这极大地扩展了地址空 间。IPv6地址通常表示为八组四位十六进制数,每组之间用冒号隔开,例如: 2001:0db8:85a3:0000:0000:8a2e:0370:7334。
但尽管IPv6已经存在了一段时间,但它的全面采用仍在进行中,目前大家用的还是IPv4地址,这是因为 使用了其他的技术缓解了IPv4地址不够的情况,比如NAT技术:每个IP地址都可以通过路由器下发局域 网。这样就大幅度的缓解了IPv4地址不够的情况。
IPv6采用128位地址长度,几乎可以不受限制地提供地址。按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。
4.3、查看IP地址
在Windows系统中,打开CMD命令行或Power shell输入ipconfig查看本电脑的ip地址。
在Linux系统中,打开终端输入ifconfig查看本设备的ip地址。
五、MAC地址
5.1、概念
MAC 地址是网络设备在网络中的唯一标识符,它被固化在网络设备的网络接口卡(Network Interface Card,NIC)的硬件中,通常由网络设备制造商在生产过程中分配。
5.2、地址格式
MAC 地址是一个 48 位的二进制数,通常表示为 12 个十六进制数字,每两个十六进制数字之间用冒号 或连字符分隔,例如:00:1A:2B:3C:4D:5E 或者 00-1A-2B-3C-4D-5E。
5.3、作用
网络通信:在局域网(LAN)中,当设备需要相互通信时,数据链路层使用 MAC 地址来确定数据 包的源和目的设备。例如,当计算机 A 向计算机 B 发送数据时,计算机A会将计算机B的IP通过链 路层的ARP协议解析为MAC地址,然后基于MAC地址传输。
设备识别:MAC 地址可以唯一标识网络上的设备,这对于网络管理和安全监控非常重要。网络管 理员可以通过 MAC 地址来跟踪设备的网络活动、限制特定设备的网络访问权限或者识别未经授权 的设备接入网络。
5.4、与IP地址的不同
层次不同:IP 地址工作在网络层,用于在不同网络之间路由数据包;MAC 地址工作在数据链路 层,用于在同一网络内直接传递数据帧。
可变性不同:IP 地址可以根据网络配置的需要进行手动或自动更改;而 MAC 地址是硬件固化的, 一般不能更改(部分设备支持修改,但这不是常规操作)。
5.5、 MAC地址的查询
在Windows中,打开CMD命令行或Power shell输入ipconfig /all查看本电脑的所有网络信息,包括IP 地址和MAC地址。
在Linux中,需要先打开终端输入 ifconfig查看本设备的网络设备名称,再通过cat /sys/class/net/[设 备名称]/address查看即可。
六、域名
6.1、概念
域名是互联网上用于识别和定位资源的名称,它为用户提供了一种方便记忆的方式来访问网站或其他网 络服务,而无需记住复杂的IP地址。比如我们通常访问百度的网页时,输入的网址是 www.baidu.com, 而不是一串复杂的ip地址。
6.2、域名的结构
域名通常由几个部分组成,每个部分之间用点(.)分隔,从右到左依次是:
1. 顶级域(TLD):位于域名的最右侧,如 .com 、 .org 、 码,如.uk(英国)、 .net 等。TLD还可以是国家或地区的代 .cn (中国)等。
2. 二级域:位于TLD的左侧,通常表示组织的名称或类型,如 example 在 example.com 中。
3. 子域:位于二级域的左侧,用于进一步细分域名,如 www 在 www.example.com 中,表示这是一个 提供网页服务的子域。
6.3、域名的种类
1. 通用顶级域(gTLD):如 .com (商业)、 .org (组织)、
2. 国家代码顶级域(ccTLD):如 .us (美国)、 .net (网络提供商)等。 .de (德国)、 .cn (中国)等。
3. 新顶级域(New gTLD):近年来ICANN(一个非营利性的国际组织,负责互联网的命名和地址分 配系统)开放了许多新的TLD,如 .club 、 .shop 、 .blog 等。
七、端口
7.1、概念
端口号(Port Number)是计算机网络中用于标识特定网络服务或应用程序实例的数字,是一个16位的 二进制数,其取值范围是0-65535。
端口号与操作系统分配的进程标识符(PID)不同,PID是操作系统内部用于唯一标识一个进程的数字, 而端口号则是网络通信中用于标识不同服务或应用程序的。
在网络通信中,为了稳定地标识和区分不同 的服务或应用程序,端口号被用来配合IP地址一起使用。这样,传输层(如TCP/IP协议栈中的TCP和 UDP协议)就能够根据目标IP地址和端口号,将数据包正确地交付给目标主机上的相应应用程序。
7.2、类型
1. 公认端口:端口号0-1023,这些端口被永久性地分配给特定的服务或应用程序。例如,HTTP服务 通常使用80端口,HTTPS使用443端口。
2. 注册端口:端口号1024-49151,这些端口可以被注册给特定的应用程序或服务,但不像公认端口 那样固定不变。
3. 动态或私有端口:端口号49152-65535,这些端口一般用于临时的客户端应用程序,也可以被服务 器用于某些特定的服务。
7.3、常见的服务对应的端口号
1. HTTP (超文本传输协议)
端口: 80
描述: 用于未加密的网页浏览服务。
2. HTTPS (HTTP Secure, 安全超文本传输协议)
端口: 443
描述: 用于加密的网页浏览服务,增加了SSL/TLS的安全层。
3. FTP (文件传输协议)
端口: 20 (数据传输), 21 (控制命令)
描述: 用于在互联网上传输文件。
4. SSH (Secure Shell, 安全外壳协议)
端口: 22
描述: 提供安全的远程登录服务,常用于远程管理Linux服务器。
八、DNS
DNS(Domain Name System,域名系统)是一种用于将域名和IP地址相互转换的分布式数据库,它是 互联网上的一项核心服务。DNS使得用户可以通过容易记忆的域名来访问网站,而无需记住复杂的IP地 址。
具体的说,当用户在浏览器中输入一个域名并尝试访问时,浏览器会向DNS服务器发送一个查询请求, DNS服务器会查找该域名对应的IP地址,并将其返回给浏览器。
九、子网掩码
9.1、概念
子网掩码通常以与 IP 地址相同的点分十进制形式表示,并且通常是一串连续的1和连续的0,它不能单独 存在,必须与IP地址结合使用。例如,常见的子网掩码有 255.255.255.0、255.255.0.0 等。在二进制形 式下,子网掩码中连续的 1 表示网络部分,连续的 0 表示主机部分。
9.2、作用
1. 区分网络部分和主机部分 通过将 IP 地址与子网掩码进行逻辑与运算,可以得到该 IP 地址所在的网络地址。例如,对于 IP 地 址 192.168.1.100 和子网掩码 255.255.255.0,进行与运算后得到的结果:192.168.1.0,这是网络 号,当两个设备的网络号相同时,这两台设备才能在局域网内直接通信。
2. 划分网络 子网掩码可以将一个大的网络划分为多个较小的子网。例如,一个 C 类网络地址(默认子网掩码为 255.255.255.0)可以通过修改子网掩码来划分成多个子网,如将子网掩码设置为 255.255.252.0, 就可以在原网络基础上划分出多个子网。
3. 控制网络规模 根据网络中实际的主机数量,可以选择合适的子网掩码来控制每个子网的大小。如果一个子网需要 容纳 254 台主机,可以使用子网掩码 255.255.255.0;如果主机数量较少,可以使用更大的子网掩 码(如 255.255.255.224)来减少 IP 地址的浪费。
9.3、不同类型网络的默认子网掩码
1. A 类网络 默认子网掩码是 255.0.0.0,这意味着前 8 位是网络位,后 24 位是主机位。
2. B 类网络 默认子网掩码为 255.255.0.0,其中前 16 位是网络位,后 16 位是主机位。
3. C 类网络 默认子网掩码是 255.255.255.0,前 24 位是网络位,后 8 位是主机位。
十、网关
10.1、概念
网关是连接两个不同网络的设备或者节点,它在网络层上实现网络之间的互联。
10.2、作用
1. 协议转换
不同网络可能使用不同的网络协议,网关可以进行协议转换,使得不同协议的网络能够相互通信。 例如,将一个基于 IPv4 协议的网络和一个基于 IPv6 协议的网络连接起来,网关可以在这两种协议 之间进行转换。
2. 数据转发
当一个网络中的设备要向另一个不同网络中的设备发送数据时,数据包首先被发送到网关,网关根 据目的地址将数据包转发到相应的网络中。它就像是一个网络交通的枢纽,指挥着数据在不同网络 之间的流动。
3. 隔离网络
网关可以起到隔离不同网络的作用,避免一个网络中的问题(如广播风暴、网络故障等)蔓延到其 他网络。这有助于提高整个网络系统的稳定性和安全性
10.3、应用
1. 家庭网络
在家庭网络中,路由器通常充当网关的角色。家庭中的各种设备(如电脑、手机、智能家电等)通 过 WiFi 或以太网连接到路由器。当这些设备要访问互联网时,数据包先发送到路由器(网关), 路由器再将数据包转发到互联网服务提供商(ISP)的网络中。
2. 企业网络
在企业网络环境中,可能会有多个子网,每个子网都有一个或多个网关。这些网关负责在不同子网 之间以及企业内部网络与外部网络(如互联网)之间进行数据交换。企业级网关通常具备更强大的 性能和更多的安全功能,如防火墙、入侵检测等,以保护企业网络的安全。
十一、URL
它是用于完整地描述互联网上网页和其他资源的地址的一种标识方法。就像是现实世界中每个地方都有 一个特定的地址一样,网络上的每个资源(如网页、图片、文件、视频等)都有其对应的 URL。通俗的 讲,URL就是网络资源的“门牌号”,包含了这个资源(比如图片、视频等)的具体详细的地址。
组成 | 举例 | |
---|---|---|
协议 | 常见的有 “http”“https”“ftp” 等。它规定了客户端与服务器之间通信的规则。 | 使用 HTTP 协议时,客户端与服务器之间的数据传输是基于文本的、无加密的;而使用 HTTPS 协议时,数据 传输是加密的,更加安全。 |
主机号 | 可以是服务器的域名(如 www.baidu.com)或者 IP 地址(如 192.168.1.100)。域名是为了方便人们 记忆而设置的,通过 DNS 系统可以将域名解析为对应的 IP 地址。 | 当在浏览器中输入一个基于域 名的 URL 时,浏览器会先向 DNS 服务器查询该域名对应的 IP 地址,然后再与该 IP 地址对应的服务器 进行通信。 |
端口号 | 用于指定服务器上的特定服务。如果不明确写出端口号,对于常见协议会使用默认端口。 | 当访问 一个 Web 网站时,如果不指定端口,浏览器会默认使用 80 端口(对于 HTTPS 则默认使用 443 端口) 与服务器进行通信。 |
路径 | 它表示资源在服务器文件系统中的位置。 | 在 URL“ https://www.example.com/images/logo.png” 中,“/images/logo.png” 就是路径,它告诉服务器要获取的资源位于 images 目录下的 logo.png 文件。 |
查询字符串 | 以 “?” 开始,后面跟着一系列的参数。这些参数用于向服务器传递额外的信息 | 在搜索功能中,传 递搜索的关键词、过滤条件等信息。 |
片段标识符 | 以 “#” 开始,它通常用于指向网页中的某个特定位置或者片段 | 在一个长网页中快速定位到某一章 节或者特定元素。 |
十二、DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种网络管理协议,主要用于 自动分配IP地址以及其他网络配置参数(如子网掩码、网关地址、DNS服务器等)给局域网中的设备, 通过DHCP,网络管理员可以有效地管理和分配IP地址,简化了网络配置的过程,减少了手动配置的错 误,使设备可以方便地接入网络。
十三、交换机
交换机(Switch)是一种网络设备,它用于在计算机网络中连接设备,如计算机、打印机和服务器等, 以便它们可以相互通信。交换机的工作原理类似于电话交换机,它可以根据数据帧中的MAC地址,在多 个网络段之间进行数据的接收、过滤、转发和发送操作。以下是交换机的一些主要特点:
1. 局域网连接:交换机主要用于局域网(LAN)中,提供高速的连接方式,通常通过以太网线缆连 接。
2. 数据包转发:交换机根据数据帧中的目标MAC地址,将数据包转发到正确的端口。
3. 学习MAC地址:交换机能够学习连接到其各个端口的设备的MAC地址,并建立一个MAC地址表, 用于指导数据包的转发。
4. 全双工通信:交换机支持全双工通信模式,这意味着设备可以同时发送和接收数据,提高了网络的 效率和带宽利用率。
5. 网络管理:许多交换机支持网络管理功能,如VLAN(虚拟局域网)划分、QoS(服务质量)设 置、端口镜像、带宽控制等。
6. 不同类型:根据网络的需要,交换机有多种类型,如桌面交换机、机架式交换机、管理型交换机、 非管理型交换机、PoE(以太网供电)交换机等。
十四、思维导图
相关文章:
Python----Python高级(网络编程:网络基础:发展历程,IP地址,MAC地址,域名,端口,子网掩码,网关,URL,DHCP,交换机)
一、网络 早期的计算机程序都是在本机上运行的,数据存储和处理都在同一台机器上完成。随着技术的发展,人 们开始有了让计算机之间相互通信的需求。例如安装在个人计算机上的计算器或记事本应用,其运行环 境仅限于个人计算机内部。这种设置虽然…...
Spring Boot 的问题:“由于无须配置,报错时很难定位”,该怎么解决?
Spring Boot 的 "由于无须配置,报错时很难定位" 主要指的是: 传统 Spring 框架 需要大量 XML 或 Java 配置,开发者对应用的组件、Bean 加载情况有清晰的控制,出错时可以从配置入手排查。Spring Boot 采用自动配置&…...
基于javaweb的SpringBoot小区智慧园区管理系统(源码+文档+部署讲解)
🎬 秋野酱:《个人主页》 🔥 个人专栏:《Java专栏》《Python专栏》 ⛺️心若有所向往,何惧道阻且长 文章目录 运行环境开发工具适用功能说明 运行环境 Java≥8、MySQL≥5.7、Node.js≥14 开发工具 后端:eclipse/idea/myeclipse…...
一文解释nn、nn.Module与nn.functional的用法与区别
🌈 个人主页:十二月的猫-CSDN博客 🔥 系列专栏: 🏀零基础入门PyTorch框架_十二月的猫的博客-CSDN博客 💪🏻 十二月的寒冬阻挡不了春天的脚步,十二点的黑夜遮蔽不住黎明的曙光 目录 …...
vscode安装ESP-IDF
引言 ESP-IDF(Espressif IoT Development Framework)是乐鑫官方为其 ESP32、ESP32-S 系列等芯片提供的物联网开发框架。结合 Visual Studio Code(VSCode)这一强大的开源代码编辑器,能极大提升开发效率。本教程将详细介…...
springboot配置https
注意: 此配置只能本地环境或测试环境使用,生产环境使用https,应该配置nginx!请参考:使用certbot给nginx配置https-CSDN博客 1. 生成证书 使用JDK的keytool命令生成证书 注意:JDK版本需要和项目的JDK版本一…...
数据库的关系代数
关系就是表 属性(Attribute)是关系中的列.例如,关系 “学生” 中可能有属性 “学号”、“姓名”、“班级”。 元组(Tuple)是关系中的一行数据 1. 基本运算符 选择(Selection) 符号:σ 作用:从关…...
【服务器知识】如何在linux系统上搭建一个nfs
文章目录 NFS网络系统搭建**1. 准备工作****2. 服务器端配置****(1) 安装 NFS 服务****(2) 创建共享目录****(3) 配置共享规则****(4) 生效配置并启动服务****(5) 防火墙配置** **3. 客户端配置****(1) 安装 NFS 客户端工具****(2) 创建本地挂载点****(3) 挂载 NFS 共享目录***…...
【学习总结|DAY037】Linux 项目部署
引言 在当今的软件开发领域,Linux 以其安全、稳定、免费且开源的特性,成为项目部署的首选操作系统。无论是 Java 项目,还是各类开发、测试、生产环境中的软件安装,Linux 都占据着重要地位。本文将结合我今天所学内容,…...
【算法】动态规划专题⑧ —— 分组背包问题 python
目录 前置知识进入正题实战演练总结 前置知识 【算法】动态规划专题⑤ —— 0-1背包问题 滚动数组优化 python 进入正题 分组背包问题的详细解析 1. 问题定义 在 分组背包问题 中,物品被划分为若干组,每组内的物品 互斥(只能选择其中一个或…...
数据结构:算法复杂度
前言 数据结构(Data Structure)是计算机存储、组织数据的方式,指相互之间存在一种或多种特定关系的数据元素的集合。没有一种单一的数据结构对所有用途都有用,所以我们要学各式各样的数据结构,如:线性表、树…...
Mac本地体验LM studio
博主很懒,不爱打字! 1、LM studio官网:LM Studio - Discover, download, and run local LLMs 2、下载DMG文件,安装 3、使用vscode工具,commandshiftH【全局替换功能】,选择目录/Applications/LM\ Studio…...
【EPSG 坐标系系统完全解析(一)(8000 字终极指南)】
EPSG 坐标系系统完全解析(8000 字终极指南) 一、EPSG 的起源与定义(1200 字) 1.1 石油工业催生的标准 行业需求:20 世纪 80 年代石油勘探需要统一坐标参考成立过程: 1985 年欧洲石油公司成立 EPSG 工作组…...
【C++高并发服务器WebServer】-13:多线程服务器开发
本文目录 一、多线程服务器开发二、TCP状态转换三、端口复用 一、多线程服务器开发 服务端代码如下。 #include <stdio.h> #include <arpa/inet.h> #include <unistd.h> #include <stdlib.h> #include <string.h> #include <pthread.h>s…...
【CubeMX-HAL库】STM32F407—无刷电机学习笔记
目录 简介: 学习资料: 跳转目录: 一、工程创建 二、板载LED 三、用户按键 四、蜂鸣器 1.完整IO控制代码 五、TFT彩屏驱动 六、ADC多通道 1.通道确认 2.CubeMX配置 ①开启对应的ADC通道 ②选择规则组通道 ③开启DMA ④开启ADC…...
mysql8 sql语法错误,错误信息是怎么通过网络发送给客户端的,C++源码展示
在 MySQL 8 中,错误信息通过网络发送给客户端的过程涉及多个步骤,主要包括错误信息的生成、格式化、以及通过网络协议(如 TCP/IP)将错误信息发送给客户端。以下是详细的流程和相关代码分析: 1. 错误信息的生成 当 My…...
人工智能D* Lite 算法-动态障碍物处理、多步预测和启发式函数优化
在智能驾驶领域,D* Lite 算法是一种高效的动态路径规划算法,适用于处理环境变化时的路径重规划问题。以下将为你展示 D* Lite 算法的高级用法,包含动态障碍物处理、多步预测和启发式函数优化等方面的代码实现。 代码实现 import heapq impo…...
【学术投稿】第五届计算机网络安全与软件工程(CNSSE 2025)
重要信息 官网:www.cnsse.org 时间:2025年2月21-23日 地点:中国-青岛 简介 第五届计算机网络安全与软件工程(CNSSE 2025)将于2025年2月21-23日在中国-青岛举行。CNSSE 2025专注于计算机网络安全、软件工程、信号处…...
spring学习(spring 配置文件详解)
一 了解如何创建基本的spring 配置文件 步骤 1 导入 spring-context 依赖 <!-- https://mvnrepository.com/artifact/org.springframework/spring-context --><dependency><groupId>org.springframework</groupId><artifactId>spring-context&l…...
创建一个javaWeb Project
文章目录 前言一、eclipse创建web工程二、web.xmlservlet.xml< mvc:annotation-driven/ > Spring MVC 驱动< context:component - scan >:扫描< bean > ... < /bean >< import > config/beans.xml beans.xmlmybatis.xml 前言 javaWe…...
大模型推理——MLA实现方案
1.整体流程 先上一张图来整体理解下MLA的计算过程 2.实现代码 import math import torch import torch.nn as nn# rms归一化 class RMSNorm(nn.Module):""""""def __init__(self, hidden_size, eps1e-6):super().__init__()self.weight nn.Pa…...
洛谷网站: P3029 [USACO11NOV] Cow Lineup S 题解
题目传送门: P3029 [USACO11NOV] Cow Lineup S - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 前言: 这道题的核心问题是在一条直线上分布着不同品种的牛,要找出一个连续区间,使得这个区间内包含所有不同品种的牛,…...
DeepSeek-R1 云环境搭建部署流程
DeepSeek横空出世,在国际AI圈备受关注,作为个人开发者,AI的应用可以有效地提高个人开发效率。除此之外,DeepSeek的思考过程、思考能力是开放的,这对我们对结果调优有很好的帮助效果。 DeepSeek是一个基于人工智能技术…...
【Go语言快速上手】第二部分:Go语言进阶
文章目录 并发编程goroutine:创建和调度 goroutinechannel:无缓冲 channel、有缓冲 channel、select 语句无缓冲 channel有缓冲 channelselect 语句 sync 包:Mutex、RWMutex、WaitGroup 等同步原语Mutex:互斥锁RWMutex:…...
自定义多功能输入对话框:基于 Qt 打造灵活交互界面
一、引言 在使用 Qt 进行应用程序开发时,我们经常需要与用户进行交互,获取他们输入的各种信息。QInputDialog 是 Qt 提供的一个便捷工具,可用于简单的输入场景,但当需求变得复杂,需要支持更多类型的输入控件࿰…...
计算机毕业设计SparkStreaming+Kafka广告推荐系统 广告预测 广告数据分析可视化 广告爬虫 大数据毕业设计 深度学习 机器学习
温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 作者简介:Java领…...
企业FTP替代升级,实现传输大文件提升100倍!
随着信息技术的飞速发展,网络安全环境也变得越来越复杂。在这种背景下,传统的FTP(文件传输协议)已经很难满足现代企业对文件传输的需求了。FTP虽然用起来简单,但它的局限性和安全漏洞让它在面对高效、安全的数据交换时…...
盘姬工具箱:完全免费的电脑工具箱
今天给大家介绍一个非常好用的系统工具箱,里面内含100多个工具,完全免费使用,而且没有广告,非常的棒。 盘姬工具箱:完全免费的电脑工具箱 盘姬工具箱是一款完全免费的电脑工具箱,功能丰富且实用。软件下载并…...
【个人开发】macbook m1 Lora微调qwen大模型
本项目参考网上各类教程整理而成,为个人学习记录。 项目github源码地址:Lora微调大模型 项目中微调模型为:qwen/Qwen1.5-4B-Chat。 去年新发布的Qwen/Qwen2.5-3B-Instruct同样也适用。 微调步骤 step0: 环境准备 conda create --name fin…...
开源项目OpenIM单机部署生产环境异常处理及数据恢复
在生产环境中,通常会采用集群部署来保证组件和服务的高可用性。然而,在资源有限的情况下,一些开发者可能会选择在生产环境中进行单机部署(使用源码部署或docker容器)。本文将介绍在单机部署环境下如何进行数据备份、异…...
天津三石峰科技——汽车生产厂的设备振动检测项目案例
汽车产线有很多传动设备需要长期在线运行,会出现老化、疲劳、磨损等 问题,为了避免意外停机造成损失,需要加装一些健康监测设备,监测设备运 行状态。天津三石峰科技采用 12 通道振动信号采集卡(下图 1)对…...
MySQL-5.7.44安装(CentOS7)
目录 1、下载安装包并解压 2、创建数据目录与日志目录 3、设置环境变量 4、刷新环境变量 5、执行初始化 6、创建配置文件目录 7、新建配置文件 8、为安装目录赋予可执行权限 9、创建服务启动脚本 10、启动服务并将启动脚本加入开机自启动 11、查看服务状态 12、创建…...
什么是网络安全
1) 什么是网络安全 作为程序员,主要是面向产品的安全的问题。比如sql注入,xss,csrf,cookie窃取等等,都值得我们去思考。保证网站运行正常,客户数据安全。 2) sql注入 简单的说,就是利用表单提…...
即时通讯开源项目OpenIM配置离线推送全攻略
如何进行二次开发 如果您需要基于 OpenIM 开发新特性,首先要确定是针对业务侧还是即时通讯核心逻辑。 由于 OpenIM 系统本身已经做好了比较多的抽象,大部分聊天的功能已经具备了,不建议修改 IM 本身。 如果需要增加 IM 的能力,可以…...
快速上手——.net封装使用DeekSeek-V3 模型
📢欢迎点赞 :👍 收藏 ⭐留言 📝 如有错误敬请指正,赐人玫瑰,手留余香!📢本文作者:由webmote 原创📢作者格言:新的征程,用爱发电,去丈量人心,是否能达到人机合一?开工大吉 新的一年就这么水灵灵的开始了,在这里,祝各位读者新春快乐,万事如意! 新年伊…...
【原创】Android Studio Ladybug 中Gradle配置
使用Android Studio创建项目后,由于需要下载的一下文件在国外,加上网速的问题,以及防火墙的问题,不少文件难以下载。常常导致项目创建后,要等很长时间,各种折腾,结果一个demo都跑不起来。 经过…...
Java版本与JDK版本
两者关联 Java版本指的Java语言和平台的版本,例如Java8、Java11、Java17等,每个版本会引入新特性、改进和修复。 JDK(Java Development Kit)版本则是开发工具包,包含编译器、调试器等工具,通常与Java版本对应,例如JDK…...
【GeeRPC】Day3:服务注册(Service Register)
Day3:服务注册(Service Register) 今天的任务是: 通过反射实现服务注册功能;在服务端实现服务调用,代码约 150 行; 结构体映射为服务 RPC 框架的一个基本能力是:像调用本地程序一…...
c/c++蓝桥杯经典编程题100道(17)二叉树遍历
二叉树遍历 ->返回c/c蓝桥杯经典编程题100道-目录 目录 二叉树遍历 一、题型解释 二、例题问题描述 三、C语言实现 解法1:递归前序遍历(难度★) 解法2:迭代中序遍历(难度★★) 解法3:…...
mysql系统库介绍,数据字典(介绍,存储方式,常见表,访问权限),系统表(介绍,不同功能的表)
目录 mysql系统库 介绍 数据字典 介绍 不同版本下的存储方式 常见的数据字典表 访问权限 系统表 介绍 权限授予系统表 对象信息系统表 服务器端帮助系统表 时区系统表 mysql系统库 介绍 MySQL 默认创建 的特殊数据库,主要用于存储服务器运行时所需的信…...
如何在macOS上安装Ollama
安装Ollama 安装Ollama的步骤相对简单,以下是基本的安装指南: 访问官方网站:打开浏览器,访问Ollama的官方网站。 下载安装包:根据你的操作系统,选择相应的安装包进行下载。 运行安装程序:下载完…...
【JavaScript】《JavaScript高级程序设计 (第4版) 》笔记-Chapter6-集合引用类型
六、集合引用类型 Object 是 ECMAScript 中最常用的类型之一。虽然 Object 的实例没有多少功能,但很适合存储和在应用程序间交换数据。 显式地创建 Object 的实例有两种方式。第一种是使用 new 操作符和 Object 构造函数。另一种方式是使用对象字面量(ob…...
Spring Boot Actuator使用
说明:本文介绍Spring Boot Actuator的使用,关于Spring Boot Actuator介绍,下面这篇博客写得很好,珠玉在前,我就不多介绍了。 Spring Boot Actuator 简单使用 项目里引入下面这个依赖 <!--Spring Boot Actuator依…...
SwanLab x verl:可视化LLM强化学习后训练教程
文章目录 介绍Verl和SwanLab1. 环境安装2. 使用方法3. 查看训练日志 介绍Verl和SwanLab verl 是一个灵活、高效且可用于生产环境的强化学习(RL)训练框架,专为大型语言模型(LLMs)的后训练设计。它由字节跳动火山引擎团…...
linux安装oracle19c
安装 安装前检查配置: 挂载50g盘: vgcreate oravg /dev/sdb lvcreate -L 49.8G -n oralv oravg lvscan mkfs.xfs /dev/oravg/oralv 查看uuid blkid 复制分区表 cp /etc/fstab /etc/fstab.bakvi /etc/fstab内容为: /dev/oravg/oralv /u01 xfs defau…...
半导体制造工艺讲解
目录 一、半导体制造工艺的概述 二、单晶硅片的制造 1.单晶硅的制造 2.晶棒的切割、研磨 3.晶棒的切片、倒角和打磨 4.晶圆的检测和清洗 三、晶圆制造 1.氧化与涂胶 2.光刻与显影 3.刻蚀与脱胶 4.掺杂与退火 5.薄膜沉积、金属化和晶圆减薄 6.MOSFET在晶圆表面的形…...
VMware下Linux和macOS安装VSCode一些总结
本文介绍VMware下Linux和macOS安装VSCode的一些内容,包括VSCode编译器显示中文以及安装.NET环境和Python环境。 VSCode下载地址:Download Visual Studio Code - Mac, Linux, Windows 一.Linux系统下 1.安装中文包 按 Ctrl Shift P 打开命令面板。输…...
STC51 单片机中,定时器 / 计数器相关的寄存器
在 STC51 单片机中,定时器 / 计数器相关的寄存器主要有定时器控制寄存器(TCON)、定时器工作方式寄存器(TMOD)以及定时器初值寄存器(TH0、TL0、TH1、TL1),下面详细解释这些寄存器各位…...
DeepSeek与人工智能的结合:探索搜索技术的未来
云边有个稻草人-CSDN博客 目录 引言 一、DeepSeek的技术背景 1.1 传统搜索引擎的局限性 1.2 深度学习在搜索中的优势 二、DeepSeek与人工智能的结合 2.1 自然语言处理(NLP) 示例代码:基于BERT的语义搜索 2.2 多模态搜索 示例代码&…...
OpenCV:图像修复
目录 简述 1. 原理说明 1.1 Navier-Stokes方法(INPAINT_NS) 1.2 快速行进方法(INPAINT_TELEA) 2. 实现步骤 2.1 输入图像和掩膜(Mask) 2.2 调用cv2.inpaint()函数 2.3 完整代码示例 2.4 运行结果 …...