网络编程基础知识拾遗:用大白话解释什么是交换机、路由器、光猫、IP地址和子网掩码、公网和内网IP、端口和域名

发布于:2024-06-30 ⋅ 阅读:(13) ⋅ 点赞:(0)

二层交换机

在没有二层交换机的环境中,两台电脑或多个电脑之间的通信主要依赖于直连方式或共享介质。假如你和你的舍友都有一台电脑,当你们之间想要进行通信的时候,在没有二层交换机的情况下,可以使用网线(为了方便理解)直接将两台电脑的网卡连接起来。在这种情况下,每台电脑上的网络接口卡(NIC)可以直接发送和接收数据包,因为网络中不存在其他设备来干扰或管理流量。

那么当宿舍的其他同学也有电脑,也想进行通信的时候,我们是不是要用网线进行相互连接?这样就导致电脑会有多个网口,这显然是不合理的! 

这时候不得不引出一个硬件设备,叫交换机(分二层交换机和三层交换机)。下图是我们平时常见的二层交换机:

二层交换机是网络架构中的一种关键设备,主要用于局域网(LAN)环境中,它工作在OSI模型的第二层,即数据链路层。二层交换机的主要功能是通过识别数据帧中的MAC地址(Media Access Control address)来决定如何转发数据帧,从而提高网络的效率和性能。下面是二层交换机的详细介绍:

主要功能和工作原理

  1. MAC地址学习:当数据帧进入交换机的某个端口时,交换机会检查数据帧的源MAC地址,并将这个MAC地址与相应的端口关联起来,存储在内部的MAC地址表中。这样,当后续的数据帧需要发送到这个MAC地址时,交换机可以直接查找MAC地址表,将数据帧转发到正确的端口,而无需广播到所有端口。

  2. 数据帧转发:二层交换机基于MAC地址表进行数据帧的转发。当一个数据帧到达时,交换机检查其目的MAC地址,然后查询MAC地址表,确定该目的MAC地址对应的端口,从而将数据帧转发到该端口。如果目的MAC地址不在MAC地址表中,或者数据帧是一个广播帧,交换机会将数据帧广播到除接收端口之外的所有其他端口。

  3. 冲突域的减少:与集线器相比,二层交换机减少了冲突域的大小。每个端口都是一个独立的冲突域,这意味着当一个端口上的设备发送数据时,它不会干扰其他端口上的通信。

  4. VLAN支持:二层交换机支持虚拟局域网(VLAN)的划分,允许网络管理员将一个物理网络分割成多个逻辑网络,从而进一步提高网络的安全性和性能。

特点

  1. 快速转发:二层交换机采用硬件转发方式,能够实现高速的数据帧转发,提供较低的延迟和高带宽利用率。

  2. 硬件过滤和广播控制:二层交换机能够根据MAC地址表来控制数据帧的转发,只将数据帧发送到目标设备,减少了网络中的广播和冲突。

  3. 安全性和隔离性:二层交换机可以通过MAC地址过滤、端口安全等机制增强网络安全性,防止未授权访问。

  4. 无主机数量限制:理论上,二层交换机可以连接大量终端设备,没有明确的主机数量限制。

应用场景

二层交换机广泛应用于各种规模的局域网环境中,从家庭网络、小型办公室到大型企业园区网络,以及数据中心的内部网络连接。它们在构建高效的局域网通信中扮演着至关重要的角色。

有了二层交换机,我们就可以解决宿舍内多台电脑之间的通信了:

通信方式

在二层交换机中,设备之间的通信并非总是通过广播形式进行的,除非是在特定的情况下。二层交换机通过学习MAC地址来优化网络通信,避免不必要的广播。

初始状态与广播

当二层交换机启动或网络中新增加设备时,交换机的MAC地址表是空的。此时,如果一台设备想要发送数据给另一台设备,但由于未知目的MAC地址对应的端口位置,交换机会进行一次广播。广播意味着交换机会将数据帧发送到除了接收帧的端口之外的所有其他端口,等待目的设备响应。

MAC地址学习

一旦目的设备收到广播的数据帧并回应,二层交换机就会学习到目的设备的MAC地址及其所连接的端口。之后,如果再有发往该设备的数据帧,交换机就会直接将数据帧转发到记录在MAC地址表中的对应端口,而不是广播。

非广播通信

在MAC地址学习完成之后,二层交换机可以智能地转发数据帧,仅将数据帧发送到预期的目的地,而不必广播到网络中的其他设备。这样可以极大地提高网络效率,减少网络拥堵和冲突,同时也增强了网络的安全性。

广播风暴

然而,如果网络中出现大量广播帧,例如在网络配置错误、病毒攻击或某些协议的正常操作下,可能会发生广播风暴。广播风暴是指广播帧在局域网内反复循环,消耗大量的网络带宽,导致网络性能严重下降。为了避免这种情况,二层交换机可以设置广播抑制策略,限制广播帧的数量和频率。

VLAN隔离

二层交换机还可以通过配置虚拟局域网(VLAN)来进一步限制广播域。每个VLAN相当于一个独立的广播域,可以阻止广播帧跨越VLAN边界,从而限制广播的影响范围。

路由器

 当你们宿舍有了一台交换机后,相当于形成了小的局域网。那当其他宿舍也买了交换机,这时候你想和其他宿舍进行通信时,在没有路由器的情况下,最简单最直接的方法就是用根网线直接连接两台交换机,这样就能进行宿舍与宿舍直接的通信了。但是这里会出现一些问题,就是一开始交换机连接的设备之间是通过广播的形式进行通信的,当一台交换机链接到另一台交换机的时候,另一台交换机其实也会进行广播,当交换机连接的设备(为了方便理解,这里指电脑)多了的时候,就会出现上述所说的广播风暴,会导致网络性能严重下降。

这时候我们就引出另一台硬件设备,叫路由器,下图是我们常见的家用路由器:

 

 

路由器(Router)是网络中的核心设备之一,它在OSI七层模型中的网络层(第三层)工作,用于在不同的网络之间进行数据包的转发。路由器的主要职责是决定数据包的最佳路径,并将其从一个网络传输到另一个网络。下面是对路由器的详细解释:

功能与作用

  1. 路由决策:路由器根据数据包的目的IP地址和自己的路由表来决定数据包的下一跳目的地。路由表包含了到达不同网络的路径信息,包括下一跳路由器的地址和接口。

  2. 协议转换:在不同类型的网络之间,路由器可以执行协议转换,比如将一种网络协议的数据包转换成另一种协议的数据包格式,以适应目标网络的要求。

  3. 网络隔离:路由器可以将一个大型网络分割成多个子网,有助于流量管理和网络安全性,减少广播域的大小。

  4. NAT(Network Address Translation):路由器通常执行网络地址转换,将私有IP地址转换为公有IP地址,允许内部网络的设备通过单一的公共IP地址访问互联网。

  5. 防火墙与安全:许多现代路由器内置了防火墙功能,可以过滤进出的数据包,提供一定程度的网络安全防护。

  6. QoS(Quality of Service):路由器可以实施服务质量,优先处理某些类型的数据流,如语音或视频,以保证关键应用的网络体验。

  7. WAN与LAN接口:路由器通常具有WAN(Wide Area Network)接口用于连接外部网络(如互联网),以及多个LAN(Local Area Network)接口用于连接内部网络设备。

  8. 无线功能:许多现代路由器提供了Wi-Fi无线接入点功能,允许无线设备连接到网络。

 有了路由器后我们就可以更方便地进行不同局域网之间的通信了:

工作原理

路由器的工作原理主要集中在数据包的接收、处理和转发过程中,涉及到网络层的路由决策和链路层的数据传输。下面是路由器工作原理的详细说明:

数据包接收

当路由器的一个物理接口接收到数据包时,首先会检查数据包的物理层和数据链路层头部信息,确保数据包是完整的并且是发给该路由器的。在以太网环境中,这意味着检查以太网帧头中的目的MAC地址是否匹配路由器接口的MAC地址。

解析IP头部

一旦确认数据包是发给自己的,路由器将剥离链路层头部,读取网络层(通常是IP层)的头部信息。这包括源IP地址和目的IP地址,以及TTL(Time To Live)和协议字段。

路由决策

接下来,路由器使用其路由表来决定如何处理接收到的数据包。路由表是一个存储在路由器中的数据库,其中包含了一系列的规则,指明了到达特定网络或主机的路径。路由表的条目可以是静态配置的,也可以是通过动态路由协议(如RIP、OSPF、BGP等)学习得到的。

路由表的组成

  • 前缀:目标网络的IP地址和子网掩码。
  • 下一跳地址:数据包应该发送到的下一跳路由器的IP地址。
  • 出接口:路由器上用于发送数据包的物理接口。

路由器会查找路由表中与目的IP地址匹配的最长前缀,然后根据找到的路由表项决定数据包的下一跳地址和出接口。

数据包转发

一旦确定了下一跳和出接口,路由器将在数据包的链路层头部添加新的源和目的MAC地址,以便数据包可以通过正确的物理接口转发出去。如果下一跳是直接相连的网络,则下一跳地址将是目标网络的网络地址;如果下一跳是另一个路由器,则是那个路由器的接口地址。

特殊情况处理

  • TTL减一:每次数据包通过一个路由器,其TTL值都会减一。如果TTL值变为零,路由器将丢弃该数据包,并向源主机发送ICMP(Internet Control Message Protocol)超时消息。
  • 广播和多播:路由器通常不会转发广播或多播数据包,除非它们是专门配置来这么做的。

动态路由协议

除了静态路由,路由器还可以通过动态路由协议与其他路由器交换网络可达性信息,自动更新路由表。动态路由协议使路由器能够动态地适应网络变化,例如当网络链接断开或新网络连接时,路由器可以重新计算路径。

通信原理

用大白话来解释路由器的通信原理,我们可以把它想象成一个邮局的分拣中心,而网络数据包就像是要寄出去的信件。

  1. 接收“信件”: 当你在家(交换机1的某台设备)写完一封信(数据包),你把它投进邮筒(网络接口),这个邮筒就相当于你家里的电脑或手机。然后,邮差(比如你的家庭网络)会把这封信送到最近的邮局(路由器)。

  2. 检查地址: 在邮局里,工作人员(路由器)会检查每封信上的地址标签(IP地址),看看这封信是要寄给谁,目的地在哪里。

  3. 查找路线: 工作人员手头有一本厚厚的通讯录(路由表),上面记录了所有已知目的地的最有效送达方式。他们会根据信件上的地址,在通讯录里查找最合适的送信路径。

  4. 决定下一步: 根据查找的结果,工作人员会决定这封信是直接送到收件人手里(如果目的地就在同一个城市或小区,即同一网络),还是需要通过另一个邮局(下一跳路由器)继续传递。

  5. 重新封装: 如果需要通过其他邮局继续传递,工作人员会更新信封上的地址信息(修改链路层头部),确保信件能正确地被下一个邮局识别并接收。

  6. 发送“信件”: 最后,工作人员会把信件放入正确的出站邮箱(输出端口),让信件沿着刚刚决定的路径继续旅程,直到到达最终目的地(交换机2的某台设备)。

  7. 特殊情况处理: 如果信件上的地址不清晰,或者邮局找不到合适的路径,工作人员可能会把信件退回去,或者尝试其他方法来找到正确的路径。

 三层交换机

三层交换机就可以简单地理解为是包含了二层交换机和路由器的一个硬件设备,在三层交换机里可以进行一个局域网内的通信(二层交换机),也可以跨局域网通信(路由器):

工作原理

三层交换机在OSI模型的第二层(数据链路层)和第三层(网络层)同时运作。它不仅能够像二层交换机那样基于MAC地址进行数据帧的快速转发,还能像路由器那样基于IP地址进行数据包的路由选择。

  • MAC地址表和IP地址表:三层交换机维护MAC地址表用于快速的二层转发,同时它还维护IP地址表和路由表,用于决定数据包的三层转发路径。
  • 快速转发:三层交换机在首次处理某个源-目的IP对的数据包时,会使用三层引擎进行软件处理,确定最佳的路由路径。之后,它会在硬件中建立MLS(Multi-Layer Switching)条目,使得后续相同源-目的IP对的数据包可以直接通过硬件进行快速转发,避免了每次都需要进行复杂的三层处理。
  • 路由选择:当数据包到达三层交换机时,它会检查数据包的目标IP地址,并使用路由表来确定数据包的下一跳地址。然后,数据包会被封装成新的帧,使用正确的MAC地址进行发送。

特点

  1. 高性能:由于三层交换机可以将数据包的转发从软件处理转移到硬件处理,因此它比传统的路由器在数据包转发方面更加高效。
  2. 一次路由,多次转发:初次处理后的数据包可以快速转发,减少了延迟,提高了网络响应速度。
  3. 灵活的路由功能:三层交换机支持静态路由、动态路由协议(如RIP、OSPF、BGP等),可以根据网络需求进行配置。
  4. VLAN间路由:可以在不同的VLAN之间进行路由,无需额外的路由器设备,简化了网络架构。
  5. QoS(Quality of Service):支持服务质量功能,可以优先处理关键业务的数据包,保证网络的流畅运行。
  6. 安全性:可以实施访问控制列表(ACLs)和其他安全策略,增强网络安全性。

应用场景

  • 大型局域网(LAN):在大型企业、校园或数据中心的局域网中,三层交换机用于提供高速的网络连接和高效的VLAN间通信。
  • 网络分段:使用三层交换机可以有效地将网络分割成多个子网,以减少广播域的大小,提高网络性能和安全性。
  • 网络整合:在需要整合多个独立网络或VLAN时,三层交换机可以作为一个中心点,实现不同网络之间的互联互通。

光猫

光猫,全称为光调制解调器(Optical Network Terminal,ONT)或光网络单元(Optical Network Unit,ONU),是现代光纤到户(FTTH)和光纤到楼(FTTB)宽带接入网络中的关键设备。下面详细介绍光猫的工作原理、功能、类型以及其在网络中的角色。

工作原理

光猫的主要作用是实现光信号与电信号之间的转换,它是光纤网络与用户设备之间的桥梁。当数据从用户设备(如电脑、智能手机)发出时,光猫将这些电信号转换为光信号,然后通过光纤网络传输到互联网服务提供商(ISP)的中心设备。反之,当数据从互联网返回时,光猫将接收到的光信号转换回电信号,供用户设备使用。

主要功能

  1. 信号转换:光猫负责将光信号转换为电信号,或将电信号转换为光信号,以实现光纤与用户设备之间的数据传输。
  2. 网络接口:光猫提供以太网接口(RJ45端口)用于连接用户设备,有时还配备Wi-Fi功能,允许无线设备连接。
  3. 调制解调:光猫包含了调制器和解调器的功能,用于编码和解码数据。
  4. 网管功能:光猫通常具备网络管理功能,包括故障检测、性能监控和配置管理。
  5. 安全功能:有些光猫集成了防火墙和加密机制,保护用户的网络安全。
  6. 多媒体服务:光猫可以支持多种服务,如高速上网、IPTV(互联网协议电视)、电话服务等。

下图是常见的光猫设备:

在光纤网络中,光猫通常位于用户端,连接到ISP提供的光纤线路。它作为家庭或小型办公室的网络入口点,将光纤网络的高速带宽转换为用户设备可用的网络连接。光猫还可能具备路由器功能,提供DHCP服务、NAT(网络地址转换)和QoS(服务质量)控制,以优化家庭或办公网络的性能和安全性。 

 小型企业网络架构拓扑图(简化)

家庭网络架构拓扑图(简化) 

IP地址和子网掩码

IP地址和子网掩码是计算机网络中非常基础但极其重要的概念,它们共同协作,使得数据在网络上能够被正确地寻址和转发。下面我将详细介绍IP地址的组成,为什么需要划分IP,以及子网掩码的作用。

IP地址的组成

IP地址是用于唯一标识网络中设备的地址,它在互联网协议(IP)中起着核心作用。IP地址是一个32位的二进制数,为了便于人类阅读和理解,通常被表示为四组十进制数字,每组数字介于0至255之间,各组数字之间用点分隔,例如192.168.1.1。其中一个IP地址中又分为网络地址主机地址,如果网络地址相同,我们又可称为它们属于同一网段,在局域网中只有属于同一网段的设备才能进行相互通信。不同网段的IP进行通信需要借助路由转发。

子网掩码的作用

子网掩码是一个同样为32位的二进制数,它与IP地址一起使用,用于区分IP地址中的网络部分和主机部分。子网掩码中的1代表网络部分,0代表主机部分。例如,子网掩码是255.255.255.0,转为二进制表示为:11111111.11111111.11111111.00000000,这意味着前24位用于网络ID,最后8位用于主机ID。

 公网IP和内网IP

公网IP和内网IP是网络中两种不同类型的IP地址,它们在用途和功能上有显著的区别。下面是对这两种IP地址的详细说明:

公网IP(公共IP地址)

公网IP地址是全球唯一的标识符,用于在互联网上识别特定的设备或服务器。这类IP地址由互联网号码分配机构(IANA)分配给互联网服务提供商(ISP),再由ISP分配给他们的客户或网络设备。公网IP地址具有以下特征:

  • 全局唯一性:每个公网IP地址在全球范围内都是唯一的,确保了网络通信的唯一性和准确性。
  • 直接可达性:公网IP地址可以直接从互联网上的任何地方访问,不需要经过额外的转换或翻译。
  • 路由可达:公网IP地址包含在互联网的路由表中,数据包可以直接通过路由选择算法到达目标。
  • 安全性考量:由于公网IP地址可以从外部直接访问,因此需要更严格的安全措施,如防火墙和入侵检测系统。

内网IP(私有IP地址)

内网IP地址是在局域网(LAN)内部使用的IP地址,主要用于标识和通信局域网内的设备。内网IP地址通常采用私有IP地址范围,这些地址不会在互联网上重复,因此不会与公网IP地址冲突。内网IP地址的特征包括:

  • 私有地址范围:内网IP地址使用的是私有地址范围,如10.x.x.x、172.16.x.x至172.31.x.x、192.168.x.x,这些地址不会在互联网上路由。
  • 局域网内通信:内网IP地址主要用于局域网内的设备通信,这些设备可以相互之间发送数据,但不能直接从互联网上被访问。
  • NAT转换:当内网设备需要访问互联网时,通常会通过网络地址转换(NAT)技术将内网IP地址转换为公网IP地址,以便于与外部网络通信。
  • 相对安全性:由于内网IP地址不会暴露在互联网上,因此相对较为安全,但仍然需要内部网络的安全策略来保护网络免受内部威胁。

简单理解

想象一下,你的家就像是一个小网络,里面有很多设备,比如你的手机、电脑、智能电视,甚至是你家的智能灯泡。这些设备就像你家里的成员,它们需要互相交流,发送信息,比如你用手机控制智能灯泡的开关。

内网IP

内网IP就像是你家设备的房间号。每个设备都有一个自己的“房间号”,这样家里其他设备就知道怎么找到它。比如说,你的电脑可能是“房间号”192.168.1.2,而智能电视是“房间号”192.168.1.3。这些“房间号”只在家里有效,外面的人并不知道这些“房间号”。

公网IP

公网IP就像是你家的门牌号,这个门牌号是唯一的,全世界的人都能通过这个门牌号找到你家。当你在网上购物或者浏览网页时,互联网上的服务器会用这个唯一的“门牌号”来给你发送信息,比如你购买的商品详情或者网页的内容。

区别

  • 内网IP只在你家(局域网)里有用,外面的人不知道你家设备的“房间号”,所以不能直接访问它们。
  • 公网IP则是让外面的世界能找到你家的唯一标识,所有从互联网来的信息都得通过这个“门牌号”才能进来。

如何访问

当你在家里的设备想要上网,比如电脑想访问一个网站,它会先通过你家的路由器,路由器就相当于一个守门人,它会把你的请求带上你家的“门牌号”(公网IP),这样互联网上的服务器就知道怎么回复你。

反过来,当外面的服务器要给你发信息,它也会用你家的“门牌号”(公网IP)来找你。然后,你家的路由器(守门人)会根据请求,把信息送到正确的“房间号”(内网IP)去。

端口和域名

端口和域名都是互联网通信中非常重要的概念,它们各自扮演着不同的角色,但在网络通信中又紧密相关。下面我将用简单的语言解释它们是什么以及它们如何协同工作。

端口

端口就像是计算机上的一个虚拟“门”,用来接收和发送特定类型的数据。你可以想象你的计算机是一座大楼,而端口就是这栋大楼里的房间。每个房间(端口)都有一个编号,这个编号在0到65535之间,用来标识不同的服务或应用程序。例如,Web服务通常使用端口80,而安全的Web服务(HTTPS)使用端口443。

当你访问一个网站时,你的计算机实际上是通过特定的端口向服务器发送请求。如果没有指定端口,那么默认情况下,HTTP请求会使用端口80,HTTPS请求会使用端口443。

域名

域名则像是这个大楼的地址。当你在浏览器中输入www.example.com时,实际上是在告诉你的计算机去找一个叫“example.com”的地方。这个“地方”实际上是一个IP地址,但人们通常记不住一串数字(如192.168.1.1),所以使用更容易记忆的域名。

域名系统(DNS)就像是一个巨大的电话簿,它将域名翻译成IP地址,这样你的计算机就能找到正确的服务器。当你输入域名时,DNS服务器会查找这个域名对应的IP地址,然后你的计算机就能通过这个IP地址找到服务器。

协同工作

当你要访问一个网站时,比如www.example.com,这里发生了什么呢?

  1. 域名解析:首先,你的计算机查询DNS服务器,找出“www.example.com”对应的IP地址。
  2. IP地址与端口:一旦找到了IP地址,你的计算机就会尝试连接到该IP地址上的特定端口。如果你访问的是普通的网页,那么默认使用端口80;如果是HTTPS页面,那么默认使用端口443。
  3. 数据传输:一旦建立了连接,数据就可以在这两个端口之间来回传输,直到你关闭网页或断开连接。

所以,端口和域名一起工作,确保你的计算机可以找到正确的服务器,并且能够与正确的服务进行通信。简而言之,域名帮助你找到服务器,而端口帮助你找到服务器上的具体服务。