全文目录
- 基本概念
- IP协议
- IPv4 协议头格式:
- 分片
- 发送方进行分片:
- 识别IP分片:
- 组装IP分片:
- 网段划分
- DHCP技术
- IP分类
- 私有IP和共有IP
- 1. 私有IP地址(Private IP Address):
- 2. 公网IP地址(Public IP Address):
- 应用场景:
- 路由
- 1. **路由的定义**:
- 2. **路由器(Router)**:
- 3. **路由表**:
- 4. **静态路由 vs 动态路由**:
- 5. **路由协议**:
- 6. **默认路由**:
- 7. **分组转发**:
主机通常指在网络上的任何计算设备,能够发送或接收数据。这包括了各种设备,如个人计算机、服务器、手机和其他连接到网络的智能设备。
特点:
路由器是网络硬件设备,负责在不同网络之间转发数据包。它根据数据包的目的地(即IP地址)来决定如何将数据包转发到其最终目标。
特点:
节点是网络中的一个连接点,可以是任何设备,例如计算机、打印机或路由器,只要它可以发送、接收或转发信息。在许多情境下,术语"节点"是一个更通用的术语,可能指的是主机、交换机、路由器或其他网络设备。
特点:
IP协议头是IP包结构中的一个重要部分,用于包含与数据包传输相关的各种信息。以下是IPv4协议头的格式及各字段的详细说明:
版本 (Version, 4位)
头长度 (Header Length/IHL, 4位)
服务类型 (Type of Service/TOS, 8位)
总长度 (Total Length, 16位)
标识 (Identification, 16位)
标志 (Flags, 3位)
片偏移 (Fragment Offset, 13位)
生存时间 (Time to Live/TTL, 8位)
协议 (Protocol, 8位)
头检验和 (Header Checksum, 16位)
源IP地址 (Source IP Address, 32位)
目的IP地址 (Destination IP Address, 32位)
选项 (Options, 变长)
填充 (Padding)
上述字段为IPv4协议头的基本组成部分,提供了数据包传输所需的各种信息,包括源地址、目标地址、生存时间和其他重要参数。IPv6协议头有所不同,其中包含了一些新的字段和特性,但基本的思想与IPv4相似。
IP分片的过程是一种在不同MTU(最大传输单元)的网络间传输大数据包时必须的机制。下面是发送方进行分片和接收方重新组装分片的详细过程:
确定分片大小:发送方首先要知道数据链路的MTU。然后,基于这个MTU,它会确定每个片段的大小。每个分片都会有自己的IP头,所以实际的数据部分会比MTU小IP头的大小。
填写IP头:每个分片都有自己的IP头。大多数字段,如源地址、目标地址、总长度等,都会与原始数据包相同。但某些字段,如标志和片段偏移,会有所不同。
设置标志和偏移:在IP头中,有一个叫做“标志”的字段,其中一个位被称为“更多片段”(MF)位。除了最后一个片段,所有片段的MF位都被设置为1。每个片段都有一个“片段偏移”字段,该字段表示该片段在原始数据包中的字节偏移。
发送分片:一旦分片完成,发送方会像发送正常的IP数据包那样发送每个片段。
以下是如何识别和组装IP分片的详细步骤:
查看标识字段:在IP协议头中,有一个叫“标识”(Identification)的字段。此字段的值在同一个原始数据包的所有分片中都是相同的。当接收端收到分片时,它首先会查看该字段以确定哪些分片属于同一个原始数据包。
标志字段:IP协议头中的“标志”字段有一个特定的位叫做“更多片段”(MF, More Fragments)。如果MF位设置为1,这意味着还有更多的片段在途中。如果MF位是0,那么它是最后一个或唯一的片段。
片段偏移:每个IP分片都有一个“片段偏移”字段,表示该片段在原始数据包中的字节偏移。这允许接收端按正确的顺序组装片段。
总结:
当一个IP数据包经过分片时,它会被拆分为多个片段。每个片段都有自己的IP头,而IP头中的特定字段(如标志和片段偏移)将用于标识该片段的特性和位置。以下是根据不同情况列举的例子:
不是分片(未分片的完整数据包):
分片开头(第一个片段):
分片中间部分:
分片结尾(最后一个片段):
通过检查这些字段,接收端可以确定一个IP数据包的片段位置及其在原始数据包中的相对位置,从而正确地组装完整的数据包。
组装IP分片是一个重要的过程,以确保原始数据包在传输结束后可以完整无误地重建。以下是组装IP分片的详细步骤:
分片接收:
标识字段
。这个字段对于同一个原始数据包的所有片段都是相同的。标识字段
来查找是否已经收到了来自同一个原始数据包的其他片段。如果是第一个到达的片段,接收端会为该原始数据包创建一个新的缓冲区或结构。缓冲区和定时器:
片段排序:
片段偏移字段
,这个字段表示片段在原始数据包中的位置。接收端使用这个字段来确定片段在缓冲区中的正确位置。片段偏移
为0,则这是第一个片段;如果片段偏移
为10,则该片段应放在缓冲区的第10个块位置,以此类推。检查是否所有片段都已接收:
标志字段
的MF
(更多片段)标志为0,表示这是最后一个片段,那么接收端可以确定原始数据包的总长度。数据包重组:
片段偏移
值的顺序拼接在一起。完成组装和传递:
总之,IP分片的组装是一个详细和精确的过程,确保数据的完整性和准确性在网络传输中得到保证。
IP地址分为两个部分, 网络号和主机号
对于相同子网中的设备,网络号可以相同,但是主机号不能相同,DHCP技术就是实现这一问题的关键:
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议)是一种动态分配IP地址的技术。DHCP允许计算机在加入新网络时自动获取IP地址和其他网络配置,无需管理员手动配置。以下是DHCP的主要功能:
动态IP分配:当客户端加入网络时,DHCP服务器可以动态分配IP地址,这意味着客户端可以“租用”IP地址一段时间,租期结束后IP地址可能会被回收或重新分配。
静态IP分配:虽然DHCP的主要优势是动态分配地址,但它也支持基于客户端的MAC地址来静态分配特定的IP地址。
IP地址重用:当DHCP客户端离开网络或IP地址的租期到期时,该地址可以被DHCP服务器回收并分配给其他客户端。
租期管理:每个DHCP分配的IP地址都有一个租期,客户端必须在租期到期之前与DHCP服务器续约,以继续使用当前的IP地址。
网络配置:除了IP地址外,DHCP还可以为客户端提供其他网络配置,如子网掩码、默认网关、DNS服务器地址、域名和其他许多选项。
集中管理:通过使用DHCP,网络管理员可以集中管理和分配IP地址和网络配置,从而减少了配置错误和地址冲突的可能性。
支持多个子网:一个DHCP服务器可以为多个子网或VLAN提供服务,这通过使用DHCP中继代理来实现。
自动配置:新的设备或客户端可以简单地连接到网络,而无需手动配置,因为DHCP服务器将自动提供所需的所有配置。
简而言之,DHCP提供了一种自动和集中的方式来管理和分配网络中的IP地址和其他相关的配置。
IP地址基于其二进制表示和预定用途被分为五类:A、B、C、D和E。以下是这五类IP地址的概述:
A类:0.0.0.0 到 127.255.255.255,用于支持非常大的网络,只有一个字节用于网络地址,其余三个字节用于主机地址。特别注意的是,127.0.0.1 到 127.255.255.255 是为loopback地址预留的,主要用于本地测试。
B类:128.0.0.0 到 191.255.255.255,用于中等大小的网络。前两个字节用于网络地址,后两个字节用于主机地址。
C类:192.0.0.0 到 223.255.255.255,用于小型网络。前三个字节用于网络地址,最后一个字节用于主机地址。
D类:224.0.0.0 到 239.255.255.255,这不是用于常规的主机IP地址,而是用于多播地址。
E类:240.0.0.0 到 255.255.255.255,这是为将来使用或实验性目的而保留的。
但是随着Internet的飞速发展,这种划分方案的局限性很快显现出来,大多数组织都申请B类网络地址, 导致B类地址很快就分配完了, 而A类却浪费了大量地址,针对这种情况提出了新的划分方案, 称为CIDR(Classless Interdomain Routing):
私有IP地址和公网IP地址是互联网上常用的两种IP地址分类。它们的定义和用途如下:
私有IP地址是专为组织内部的网络设计的,不应该在公共互联网上路由。它们允许组织内的设备与内部网络中的其他设备通信,但这些地址不是全球唯一的。为了与互联网上的其他设备通信,使用私有IP地址的设备需要通过某种形式的地址转换(如NAT - 网络地址转换)。
私有IP地址范围是:
公网IP地址是在整个互联网上是唯一的,可以被路由。这意味着每个公网IP地址都可以从互联网上的任何位置直接访问。通常,互联网服务提供商(ISP)会为客户分配这些地址。如果一个设备(例如,服务器)需要直接从互联网上的其他地方可访问,它通常会有一个公网IP地址。
公网IP地址的范围除了上述的私有IP地址范围外,还包括整个IPv4地址空间。
在许多家庭和企业网络中,内部设备(如电脑、手机和其他智能设备)通常被分配私有IP地址。这些设备通过路由器与互联网通信,路由器具有公网IP地址。路由器使用NAT来将内部设备的私有IP地址转换为它自己的公网IP地址,以便这些设备可以访问互联网。
这种设置不仅允许多个设备共享单个公网IP地址,还提供了一定程度的安全性,因为私有IP地址的设备不能直接从互联网上访问(除非设置了特定的端口转发规则)。
路由是计算机网络中的一个核心概念,涉及决定数据包如何从源地址传输到目标地址。这里是关于路由的一些基本概念和细节:
路由是决定如何将数据包从源主机传输到目标主机的过程。这个决策基于路由表,这是一个数据库,指示如何到达特定的网络和主机。
路由器是一个硬件设备,负责转发数据包。它检查数据包的目标IP地址,然后使用其路由表决定最佳路径以及下一个要发送到的设备或接口。
路由表是存储在路由器或某些主机中的信息集合,用于决定如何转发数据包。它包含IP地址、子网、下一个跳转点等信息。
路由表可以使用route命令查看
如果目的IP命中了路由表, 就直接转发即可;
路由表中的最后一行,主要由下一跳地址和发送接口两部分组成,当目的地址与路由表中其它行都不匹配时,就按缺省路由条目规定的接口发送到下一跳地址。
路由表条目的含义:
- 目的网络(Destination):要访问的远程网络的IP地址。
- 网络掩码(Netmask):用于区分IP地址的网络部分和主机部分。
- 网关(Gateway):路由器的IP地址,数据包会通过此地址路由到目的网络。
- 接口(Interface):本地网络接口的IP地址,数据包会从此地址发送。
- 度量值(Metric):度量值越小,路由的优先级越高。系统将选择度量值最小的路由。
路由协议定义了路由器如何与其他路由器通信,以及如何共享路由信息。常见的路由协议包括RIP(路由信息协议)、OSPF(开放最短路径优先)、EIGRP(增强内部网关路由协议)和BGP(边界网关协议)。
默认路由是路由表中的一个特殊条目,当路由表中没有特定的路由匹配数据包的目标地址时,该条目会被使用。它通常指向一个“最后的机会”网关,这通常是一个连接到互联网的设备。
当路由器接收到一个数据包时,它会查看目标IP地址,然后在路由表中查找最佳路径。一旦决定了正确的出口接口和下一个跳转点,数据包就会被转发。
路由确保了互联网的可靠和高效运作,允许数据从一个地方传输到另一个地方,即使这两个地方之间有数千公里的距离。