小熊奶糖(BearCandy)
小熊奶糖(BearCandy)
发布于 2024-04-06 / 17 阅读
0
0

网络基础(一)

网络地址介绍:
在网络通信中,网络地址是指用于唯一标识网络中设备(如计算机、服务器、路由器等)的逻辑地址。网络地址主要有两种类型:

  1. IP地址(Internet Protocol Address):是互联网上设备的唯一标识符,用于在TCP/IP协议簇中进行网络通信。IP地址通常采用点分十进制表示,如 192.168.1.1。IPv4地址由32位组成,分为四段,每段8位,范围从0到255。IPv6地址则由128位组成,采用冒号十六进制表示法。
  2. MAC地址(Media Access Control Address):是网卡等网络设备的物理地址,由厂商分配,全球唯一。MAC地址采用十六进制表示,共48位,通常格式为 XX:XX:XX:XX:XX:XX,其中 XX代表两位十六进制数。

什么是DNS?
DNS(Domain Name System)是一种分布式数据库系统,用于将人类可读的域名(如 example.com)转换为用于网络通信的IP地址。当用户在浏览器中输入网址时,DNS系统会负责解析该域名对应的IP地址,使得网络设备能够通过IP地址找到目标服务器并建立连接。DNS的工作过程包括递归查询、迭代查询、缓存等步骤,确保高效、准确地将域名映射到IP地址。

什么是DHCP?
DHCP(Dynamic Host Configuration Protocol)是一种网络协议,用于自动为网络中的设备分配IP地址、子网掩码、默认网关、DNS服务器等网络参数。DHCP简化了网络管理,减少了手动配置的工作量。其工作流程如下:

  1. DHCP Discover:新加入网络的设备(客户端)发送广播请求,寻找DHCP服务器。
  2. DHCP Offer:DHCP服务器收到请求后,从其地址池中选择一个未分配的IP地址,连同其他网络参数一起发送给客户端。
  3. DHCP Request:客户端选择接受某个DHCP服务器的offer,发送请求消息以确认选择。
  4. DHCP Acknowledge:DHCP服务器发送确认消息,正式将IP地址等参数分配给客户端。

通信流程是什么?
典型的网络通信流程如下:

  1. 应用层:用户通过应用程序(如浏览器、邮件客户端等)发起请求。
  2. 传输层:请求被封装成TCP或UDP数据包,附带上源端口号和目标端口号,用于区分不同应用和服务。
  3. 网络层:数据包被进一步封装成IP数据报,包含源IP地址和目标IP地址,用于在网络中寻址。
  4. 链路层:IP数据报再被封装成帧,添加源MAC地址和目标MAC地址,用于在局域网内传输。
  5. 物理层:帧被转化为电信号或光信号,在物理介质上传输。
  6. 接收方:经过上述逆序过程,数据最终被目标设备接收并解封,交由对应的应用程序处理。

什么是子网掩码?
子网掩码与IP地址配合使用,用于划分子网。它是一个32位的二进制数,与IP地址格式相同,其作用是标识IP地址中哪部分属于网络地址,哪部分属于主机地址。子网掩码中网络位用连续的1表示,主机位用连续的0表示。例如,对于IPv4地址 192.168.1.1 和子网掩码 255.255.255.0,网络地址部分为 192.168.1,主机地址部分为 0.0.0.1

什么是路由表?
路由表是路由器或网络设备中存储的电子表格或数据库,其中包含到达不同网络或子网的路径信息。路由表中的每一条路由条目都包括目标网络(或子网)、下一跳IP地址(转发数据包的直接邻居)、接口(数据包离开的出口)、路由度量(如跳数、带宽、延迟等)等信息。当路由器接收到数据包时,会根据其目标IP地址查找路由表,确定最合适的路径将数据包转发出去。

TCP/UDP/ICMP分别是什么?

  1. TCP(Transmission Control Protocol):面向连接的、可靠的传输层协议,提供数据包顺序传输、错误检测、重传机制、流量控制和拥塞控制等功能。TCP确保数据包无丢失、无重复且按序到达,适用于需要高可靠性传输的应用,如网页浏览、电子邮件、文件传输等。
  2. UDP(User Datagram Protocol):无连接的、不可靠的传输层协议,提供简单的数据报服务,不保证数据包的顺序、可靠性和完整性。UDP适合对实时性要求较高但对少量丢包容忍度较高的应用,如在线视频、音频流、实时游戏等。
  3. ICMP(Internet Control Message Protocol):Internet控制消息协议,是IP协议的一部分,主要用于网络设备之间传递错误报告和其他重要网络状态信息。例如,当数据包无法送达目的地时,路由器会发送ICMP差错报文(如“目的不可达”、“超时”等)通知源主机。Ping命令就利用了ICMP Echo Request和Echo Reply消息来测试网络连通性。

内网穿透简介:
内网穿透(NAT Traversal)是指将处于私有网络(如家庭、企业内网)中的设备和服务暴露给公网,使得外部用户可以直接访问这些原本隐藏在内网中的资源。内网穿透通常通过以下方式实现:

  • 使用第三方服务:借助于提供内网穿透功能的云服务,如Ngrok、花生壳、FRP等,通过在公网服务器上架设代理,将公网请求透明转发到内网指定的设备或端口。
  • 自建穿透服务器:在拥有公网IP的服务器上部署内网穿透软件(如NPS、NATAPP等),通过服务器作为中继,实现内外网间的通信。
  • P2P技术:利用点对点(Peer-to-Peer)通信技术,绕过传统NAT设备限制,直接在客户端之间建立连接。

GitHub开源内网穿透工具:
GitHub上有很多开源的内网穿透工具,以下是一些受欢迎的选择:

  1. ngrok:提供简单易用的隧道服务,支持多种协议,可通过命令行或API创建临时或持久的隧道,将内网服务暴露给公网。
  2. frp(Fast Reverse Proxy):高性能的反向代理软件,支持多种协议和丰富的配置选项,适合复杂场景下的内网穿透需求。
  3. zerotier:基于虚拟网络技术,提供全局内网穿透服务,创建跨越物理网络边界的虚拟局域网,实现设备间的直接通信。
  4. localtunnel:轻量级工具,通过在公网服务器上创建临时隧道,将本地端口暴露给互联网。
  5. Serveo:基于SSH的内网穿透工具,无需额外安装客户端,只需在本地开启SSH服务并连接到Serveo服务器即可实现穿透。
  6. gost:功能强大的Go语言编写的代理工具,支持多种代理协议和插件,可用于内网穿透、端口转发等场景。

选择合适的内网穿透工具应考虑需求的复杂度、性能要求、易用性、稳定性以及成本等因素。开源项目通常提供更高的定制灵活性和更低的成本,但可能需要一定的技术背景来配置和维护。

ABC类网络地址:
在早期的IPv4地址分配体系中,IP地址被划分为不同的类别,分别是A类、B类、C类地址。这种分类主要依据IP地址的首字节(或称高位部分)的数值范围来区分,每类地址的特点如下:

  1. A类网络地址

    • 首字节范围:0127(二进制:0000000001111111),除去保留地址 127.x.x.x 用于回环测试。
    • 地址结构:0NNN.NNNN.NNNN.NNNN,其中 NNNN 代表0到255之间的十进制数。
    • 网络部分长度:8位,可表示128(2^7)个不同的网络。
    • 主机部分长度:24位,每个网络可容纳约16,777,216(2^24)个主机地址。
    • 默认子网掩码:255.0.0.0(即 /8 CIDR表示法)。
  2. B类网络地址

    • 首字节范围:128191(二进制:1000000010111111)。
    • 地址结构:10NN.NNNN.NNNN.NNNN
    • 网络部分长度:16位,可表示16,384(2^14)个不同的网络。
    • 主机部分长度:16位,每个网络可容纳约65,536(2^16)个主机地址。
    • 默认子网掩码:255.255.0.0(即 /16 CIDR表示法)。
  3. C类网络地址

    • 首字节范围:192223(二进制:1100000011011111)。
    • 地址结构:110N.NNNN.NNNN.NNNN
    • 网络部分长度:24位,可表示约2,097,152(2^21)个不同的网络。
    • 主机部分长度:8位,每个网络可容纳256(2^8)个主机地址。
    • 默认子网掩码:255.255.255.0(即 /24 CIDR表示法)。

注意:随着互联网的发展,传统的ABC类地址分类逐渐被CIDR(Classless Inter-Domain Routing,无类别域间路由)所取代,CIDR通过在IP地址后面附加斜线(/)及其后的数字(范围1到32)来表示网络前缀长度,从而更灵活地分配和聚合IP地址。

路由表:
路由表是网络设备(如路由器、交换机、计算机等)中存储的一种数据结构,用于指导数据包从源到目的地的转发决策。路由表包含一系列条目,每个条目包含以下关键信息:

  1. 目的网络地址(Destination):可以是单个IP地址、一个IP地址段(如子网)或默认路由(0.0.0.0/0 表示所有未明确指定的目的地)。
  2. 子网掩码(Mask):与目的网络地址一起确定该条目适用的具体网络范围。
  3. 下一跳地址(Next Hop):转发数据包时应发送到的下一个直接可达的设备的IP地址,可以是直连的网络接口、另一个路由器的接口或默认网关。
  4. 接口(Interface):本地设备上用于发送数据包的网络接口。
  5. 路由度量(Metric):衡量到达目标网络的路径成本,如跳数、带宽、延迟等。在多条路径可达同一目标的情况下,路由器会选择度量值最低的路径。

当数据包到达路由器时,路由器根据数据包的目的IP地址查找路由表。如果找到匹配的条目,则按照该条目的指示将数据包转发到指定的下一跳地址;如果没有找到精确匹配,可能会使用默认路由(如果存在)或其他策略(如路由重分发、路由协议选择等)来决定数据包的转发路径。路由表可以通过静态配置、动态路由协议(如RIP、OSPF、BGP等)或DHCP获取等方式得到更新。

子网换算是指将子网掩码、IP地址与子网数量、主机数量等概念进行相互转换和计算的过程。以下是子网换算涉及的主要内容和步骤:

  1. 理解子网掩码
    子网掩码是一个与IP地址格式相同的32位二进制数,用于标识IP地址中网络部分和主机部分的界限。子网掩码中值为1的部分对应IP地址的网络部分,值为0的部分对应主机部分。例如,对于子网掩码 255.255.255.0(二进制:11111111.11111111.11111111.00000000),前24位为1,表示网络部分,后8位为0,表示主机部分。

  2. 确定网络前缀(CIDR表示法)
    CIDR(Classless Inter-Domain Routing)表示法以IP地址后跟随斜线(/)和一个数字(网络前缀长度)表示子网掩码。例如,192.168.1.0/24 表示网络前缀长度为24位,即子网掩码为 255.255.255.0。网络前缀长度决定了IP地址中网络部分的位数,剩余位数为主机部分。

  3. 计算可分配子网数量
    子网数量取决于网络前缀之后可供分配的位数,即主机部分被用作子网划分的部分。计算公式为:

    子网数量 = 2^(主机部分位数)
    

    例如,对于 /24 的网络前缀,主机部分有8位(32 - 24 = 8),可分配子网数量为 2^8 = 256

  4. 计算每个子网的主机数量
    每个子网的主机数量取决于主机部分中除去用于子网划分的位数后剩余的位数。由于网络和广播地址不能分配给主机,实际可分配主机数量为:

    可分配主机数量 = 2^(剩余主机位数) - 2
    

    其中,-2 是因为每个子网的第1个和最后一个地址分别被用作网络地址和广播地址。

    例如,对于 /26 的网络前缀(主机部分有6位),每个子网的主机数量为:

    可分配主机数量 = 2^(32 - 26) - 2 = 2^6 - 2 = 64 - 2 = 62
    
  5. 子网划分
    通过将主机部分的位数分配给子网位数,可以生成不同子网。具体方法是根据子网位数从IP地址的主机部分开始,按照二进制位进行划分。例如,将 /24 的网络划分为 /26 的子网,需要在原主机部分的前两位上分配子网号。

  6. 子网地址计算
    子网地址是网络地址加上子网号。子网号由网络前缀后的子网位决定。将子网号转换为二进制,插入到IP地址的主机部分相应位置即可得到子网地址。

  7. 广播地址计算
    广播地址是子网内所有主机都可以接收到的一个特殊地址。对于给定的子网,其广播地址由网络地址改变主机部分为全1得到。例如,子网 192.168.1.64/26 的广播地址为 192.168.1.127

综上所述,子网换算涉及到子网掩码的理解、网络前缀的确定、子网数量和主机数量的计算、子网划分、子网和广播地址的计算等步骤。在实际网络规划和配置中,根据所需子网数量和每个子网的主机数量需求,合理选择网络前缀长度,进行子网划分和地址分配。使用CIDR表示法有助于简化子网管理,并提高IP地址的利用率。

当我们谈论网络时,常常会涉及到以下几个概念:

  1. LAN(局域网):局域网是指在相对较小的地理范围内连接在一起的计算机和网络设备的集合。这些设备通常位于同一建筑物、校园或办公室内部。局域网通常使用以太网或Wi-Fi等技术连接设备,用于共享资源和信息,如文件、打印机、应用程序等。
  2. WAN(广域网):广域网是覆盖较大地理范围的网络,可以连接多个局域网、个人设备和服务器。WAN可以通过公共网络(例如互联网)或专用网络连接(例如专线)实现。广域网使得跨越不同地理位置的设备和用户能够进行通信和数据交换,例如,通过互联网进行电子邮件、网页浏览和文件传输等。
  3. VLAN(虚拟局域网):虚拟局域网是在物理网络基础上创建的逻辑上的分组,允许将网络设备划分到不同的虚拟网络中,即使它们物理上连接到同一局域网交换机上。VLAN的创建可以基于不同的因素,如部门、功能、安全性等,使得网络管理员能够更灵活地管理和控制网络流量。

总的来说,LAN是局限在相对较小地理范围内的网络,WAN是连接不同地理位置的网络,而VLAN是在物理网络基础上划分出的逻辑网络,用于更有效地管理和控制网络流量。


评论