技术标签: NAT # 计算机网络 IP CIDR 计算机网络
IP 数据报的格式如下:
首部(发送在前) | 数据部分 |
---|---|
固定部分(20B)+ 可变部分 | 数据信息 |
IP 数据报首部的格式如下:
IP 首部的字段含义如下:
首部长度字段 | 首部长度 |
---|---|
5 | 20B |
6 | 24B |
7 | 28B |
… | … |
14 | 56B |
15 | 60B |
0/1 | 无意义(MSB) | DF(Don’t Fragment) | MF(More Fragment)(LSB) |
---|---|---|---|
0 | - | 不能分片 | 若干数据片中的最后一个 |
1 | - | 可以分片 | 后面还有数据片 |
协议名 | ICMP | TCP | UDP |
---|---|---|---|
协议字段值 | 1 | 6 | 17 |
【例 1】原始数据报的总长度为 4000B(首部 20B,数据部分 3980B),标识号为 12345,需要转发到一条 MTU = 1500B 的以太网链路上,则 IP 分片为:
数据片报 | 位于原始数据报数据部分的位置 | 数据部分长度 | 总长度 | 标识 | MF | DF | 片偏移 |
---|---|---|---|---|---|---|---|
数据报片 1 | 0B ~ 1479B | 1500B - 20B = 1480B | 1500B | 12345 | 1 | 0 | 0 |
数据报片 2 | 1480B ~ 2959B | 2960B - 1480B = 1480B | 1500B | 12345 | 1 | 0 | 1480 / 8 = 185 |
数据报片 3 | 2960B ~ 3980B | 3980B - 2960B = 1020B | 1040B | 12345 | 0 | 0 | 2960 / 8 = 370 |
【例 2】原始数据报的总长度为 3820B(首部 20B,数据部分 3800B),标识号为 777,需要转发到一条 MTU = 1420B 的链路上,则 IP 分片为:
数据片报 | 位于原始数据报数据部分的位置 | 数据部分长度 | 总长度 | 标识 | MF | DF | 片偏移 |
---|---|---|---|---|---|---|---|
数据报片 1 | 0B ~ 1399B | 1420B - 20B = 1400B | 1420B | 777 | 1 | 0 | 0 |
数据报片 2 | 1400B ~ 2799B | 2800B - 1400B = 1400B | 1420B | 777 | 1 | 0 | 1400 / 8 = 175 |
数据报片 3 | 2800B ~ 3800B | 3800B - 2800B = 1000B | 1020B | 777 | 0 | 0 | 2800 / 8 = 350 |
【例 3】若路由器向 MTU = 800B 的链路转发一个总长度为 1580B 的 IP 数据报(首部长度为 20B)时,进行了分片,且每个分片尽可能大,则第 2 个分片的总长度字段和 MF 标志位的值分别是( )
A. 796, 0
B. 796, 1
C. 800, 0
D. 800, 1
【解】数据部分大小 = 1580B-20B = 1560B,则每个分片的情况:
分片 | 首部 | 数据部分 | MF |
---|---|---|---|
1 | 20B | 780B | 1 |
2 | 20B | 780B | 0 |
但是!数据部分的长度必须能被 8 整除,780 不能被 8 整除,所以要将 780 改成最大能被 8 整除的数即 776!
分片 | 首部 | 数据部分 | MF |
---|---|---|---|
1 | 20B | 776B | 1 |
2 | 20B | 776B | 1 |
3 | 20B | 8B | 0 |
答案选 B。
IP 地址指明了连接到某个网络上的一个主机或路由器。
IP 地址 ::= {<网络号>, <主机号>}
【例】
128.14.35.72
在计算机中表示为10000000.00001110.00100011.00000111
。
0b~7b | 8b~32b |
---|---|
0 网络号 | 主机号 |
0b~15b | 16b~32b |
---|---|
10 网络号 | 主机号 |
0b~23b | 24b~32b |
---|---|
110 网络号 | 主机号 |
0b~32b |
---|
1110 多播地址 |
0b~32b |
---|
1111 保留为今后使用 |
(需记忆)有些 IP 地址用作特殊用途,不用做 IP 地址(-1 表示所有位上都是 1):
网络号 | 主机号 | 作为源地址 | 作为目的地址 | 例子 | 用途 |
---|---|---|---|---|---|
0 | 0 | √ | x | 0.0.0.0 | 本网络上的本主机 |
-1 | -1 | x | √ | 255.255.255.255 | 只在本网络上进行广播 |
net-id | -1 | x | √ | 202.98.174.255 | 对网络号为 net-id 的所有主机进行广播 |
0 | host-id | √ | x | 0.0.0.250 | 在本网络上主机号为 host-id 的主机 |
127 | 非 0 且非 -1 | √ | √ | 127.0.0.1 | 用于本地软件环回测试 |
(需记忆)A 类、B 类、C 类地址的使用范围:
网络类别 | 最大可用网络数 | 每个网络中最大可用主机数 | 可用的网络号 |
---|---|---|---|
A | 27-2(减去 0 和 -1 的情况) | 224-2(减去 0 和 -1 的情况) | 1 ~ 126 |
B | 214 | 216-2(减去 0 和 -1 的情况) | 128.0 ~ 191.255 |
C | 221 | 28-2(减去 0 和 -1 的情况) | 192.0.0 ~ 223.255.255 |
IP 地址 ::= {<网络前缀>, <主机号>}
IP 地址/网络前缀所占位数
【例】
128.14.35.72/20
,前 20 位是网络前缀:1000 0000. 0000 1110. 0010 0011. 0000 0111
该地址块可表示为:
1000 0000. 0000 1110. 0010*
或128.14.32/20
若不需要指明网络地址时,可表示为:
/20地址块
该地址块的最小地址:
1000 0000. 0000 1110. 0010 0000. 0000 0000
,即128.14.32.0
该地址块的最大地址:
1000 0000. 0000 1110. 0010 1111. 1111 1111
,即128.14.47.255
该地址块能分配的最大可用主机数 = 212-2
网络前缀 | 记法 | 用途 | 说明 |
---|---|---|---|
32b | a.b.c.d/32 | 没有主机号,用于主机路由 | 对特定目的主机的 IP 地址专门指明一个路由,方便管理人员控制和测试网络 |
31b | a.b.c.d/31 | 只有两个主机号 0 和 1,用于点对点链路 | |
0b | a.b.c.d/0 | 用于默认路由 | 不管分组的目的地址在哪里,都由指定的路由器 R 来处理 |
网络类别 | 地址掩码 |
---|---|
A 类 | 255.0.0.0 |
B 类 | 255.255.0.0 |
C 类 | 255.255.255.0 |
二进制 | 十进制 |
---|---|
1000 0000 | 128 |
1100 0000 | 192 |
1110 0000 | 224 |
1111 0000 | 240 |
1111 1000 | 248 |
1111 1100 | 252 |
1111 1110 | 254 |
1111 1111 | 255 |
【例】
128.14.35.72/20
,则/20地址块
的子网掩码:1111 1111. 1111 1111. 1111 0000. 0000 0000
与
128.14.35.72
进行按位与运算,得到网络前缀(网络地址):
十进制 IP 地址 | 128 | 14 | 35 | 72 |
---|---|---|---|---|
二进制 IP 地址 | 1000 0000 | 0000 1110 | 0010 0011 | 0000 0111 |
二进制子网掩码 | 1111 1111 | 1111 1111 | 1111 0000 | 0000 0000 |
按位与运算结果 | 1000 0000 | 0000 1110 | 0010 0000 | 0000 0000 |
十进制网络地址 | 128 | 14 | 32 | 0 |
/27
比地址块/30
大。【例】某路由表中有转发接口相同的 4 条路由表项,其目的网络地址分别为 35.230.32.0/21, 35.230.40.0/21, 35.230.48.0/21 和 35.230.56.0/21,将该 4 条路由聚合后的目的网络地址为( )
A. 35.230.0.0/19
B. 35.230.0.0/20
C. 35.230.32.0/19
D. 35.230.32.0/20
【解】先将四个地址化为二进制,再找出公共前缀,即可得知选 C,如下表所示。
地址 | 8b | 8b | 8b | 8b |
---|---|---|---|---|
地址 1 | 35 | 230 | 0010 0000 | 0 |
地址 2 | 35 | 230 | 0010 1000 | 0 |
地址 3 | 35 | 230 | 0011 0000 | 0 |
地址 4 | 35 | 230 | 0011 1000 | 0 |
IP 地址 ::= {<网络号>, <子网号>, <主机号>}
【注】子网掩码和地址掩码其实是同一个概念,只不过指示的内容不同。
【例 1】假设申请到的 C 类网络为218.75.230.0
,使用定长的子网掩码划分子网来满足需求:网络 1 需要 IP 地址数量为 9,网络 2 需要 IP 地址数量为 28,网络 3 需要 IP 地址数量为 15,网络 4 需要 IP 地址数量为 13,网络 5 需要 IP 地址数量为 4。
【解】因为有 5 个子网,因此可以从主机号借来 3 个比特作为子网号使用,则子网掩码为:11111111.11111111.11111111.1110000 --> 255.255.255.224
该 C 类网的格式如下表所示,子网号一共 3 个比特,可划分 8 个子网;主机号一共 5 个比特,说明每个子网可供 32 个主机使用:
网络号 | 子网号 | 主机号 |
---|---|---|
218.75.230. | 000 | 00000 |
218.75.230. | 000 | 00001 |
… | … | … |
218.75.230. | 000 | 11110 |
218.75.230. | 000 | 11111 |
218.75.230. | 001 | 00000 |
… | … | … |
218.75.230. | 111 | 11110 |
218.75.230. | 111 | 11111 |
所以一共划分为 8 个子网,可供上述 5 个子网选择使用:
子网 | 网络地址 | 该子网的可分配地址 | 广播地址 |
---|---|---|---|
1 | 218.75.230.0 | 218.75.230.1 ~ 218.75.230.30 | 218.75.230.31 |
2 | 218.75.230.32 | 218.75.230.33 ~ 218.75.230.62 | 218.75.230.63 |
3 | 218.75.230.64 | 218.75.230.65 ~ 218.75.230.94 | 218.75.230.95 |
4 | 218.75.230.96 | 218.75.230.97 ~ 218.75.230.126 | 218.75.230.127 |
5 | 218.75.230.128 | 218.75.230.129 ~ 218.75.230.158 | 218.75.230.159 |
6 | 218.75.230.160 | 218.75.230.161 ~ 218.75.230.190 | 218.75.230.191 |
7 | 218.75.230.192 | 218.75.230.193 ~ 218.75.230.222 | 218.75.230.223 |
8 | 218.75.230.224 | 218.75.230.225 ~ 218.75.230.254 | 218.75.230.255 |
【例 2】假设地址块为 192.168.252.0/24,使用定长的子网掩码划分子网来满足需求:网络 1 需要 IP 地址数量为 63,网络 2 需要 IP 地址数量为 23,网络 3 需要 IP 地址数量为 13,网络 4 需要 IP 地址数量为 4。
【解】因为有 4 个子网,因此可以从主机号借来 2 个比特作为子网号使用,则子网掩码为:11111111.11111111.11111111.11000000 --> 255.255.255.192
该地址块的格式如下表所示,子网号一共 2 个比特,可划分 4 个子网;主机号一共 6 个比特,说明每个子网可供 64 个主机使用:
网络号 | 子网号 | 主机号 |
---|---|---|
218.75.230. | 00 | 000000 |
218.75.230. | 00 | 000001 |
… | … | … |
218.75.230. | 00 | 111110 |
218.75.230. | 00 | 111111 |
218.75.230. | 01 | 000000 |
… | … | … |
218.75.230. | 11 | 111110 |
218.75.230. | 11 | 111111 |
所以一共划分为 4 个子网,可供上述 4 个子网选择使用:
子网 | 网络地址 | 该子网的可分配地址 | 广播地址 |
---|---|---|---|
1 | 218.75.230.0 | 218.75.230.1 ~ 218.75.230.62 | 218.75.230.63 |
2 | 218.75.230.64 | 218.75.230.65 ~ 218.75.230.126 | 218.75.230.127 |
3 | 218.75.230.128 | 218.75.230.129 ~ 218.75.230.190 | 218.75.230.191 |
4 | 218.75.230.192 | 218.75.230.193 ~ 218.75.230.254 | 218.75.230.255 |
【例 1】假设申请到的地址块为218.75.230.0/24
,使用变长的子网掩码划分子网来满足需求:网络 1 需要 IP 地址数量为 9,网络 2 需要 IP 地址数量为 28,网络 3 需要 IP 地址数量为 15,网络 4 需要 IP 地址数量为 13,网络 5 需要 IP 地址数量为 4。
【解】各网络的情况如下表所示:
网络序号 | 需要 IP 地址数量 | 主机号位数 | 网络前缀位数 | 地址块 | 可使用的地址数量 |
---|---|---|---|---|---|
1 | 9 | 4 (24=16) | 32-4=28 | /28 | 16 |
2 | 28 | 5 (25=32) | 32-5=27 | /27 | 32 |
3 | 15 | 4 (24=16) | 32-4=28 | /28 | 16 |
4 | 13 | 4 (24=16) | 32-4=28 | /28 | 16 |
5 | 4 | 2 (22=4) | 32-2=30 | /30 | 4 |
从地址块 218.75.230.0/24 中取出 5 个地址块(/30,/28,/28,/28,/27):
IP 地址 | 用途 |
---|---|
218.75.230.0 ~ 218.75.230.31 | 供网络 2 使用,拥有 32 个地址,主机号为 0 |
218.75.230.32 ~ 218.75.230.47 | 供网络 1 使用,拥有 16 个地址,主机号为 32 |
218.75.230.48 ~ 218.75.230.63 | 供网络 3 使用,拥有 16 个地址,主机号为 48 |
218.75.230.64 ~ 218.75.230.79 | 供网络 4 使用,拥有 16 个地址,主机号为 64 |
218.75.230.80 ~ 218.75.230.83 | 供网络 5 使用,拥有 4 个地址,主机号为 80 |
218.75.230.84 ~ 218.75.230.255 | 剩余待分配 |
【例 2】假设地址块为 192.168.252.0/24,使用变长的子网掩码划分子网来满足需求:网络 1 需要 IP 地址数量为 63,网络 2 需要 IP 地址数量为 23,网络 3 需要 IP 地址数量为 13,网络 4 需要 IP 地址数量为 4。
【解】各网络的情况如下表所示:
网络序号 | 需要 IP 地址数量 | 主机号位数 | 网络前缀位数 | 地址块 | 可使用的地址数量 |
---|---|---|---|---|---|
1 | 63 | 6 (26=64) | 32-6=26 | /26 | 64 |
2 | 23 | 5 (25=32) | 32-5=27 | /27 | 32 |
3 | 13 | 4 (24=16) | 32-4=28 | /28 | 16 |
4 | 4 | 2 (22=4) | 32-2=30 | /30 | 4 |
从地址块 192.168.252.0/24 中取出 5 个地址块(/30,/28,/27,/26):
IP 地址 | 用途 |
---|---|
192.168.252.0 ~ 192.168.252.63 | 供网络 1 使用,拥有 64 个地址,主机号为 0 |
192.168.252.64 ~ 192.168.252.95 | 供网络 2 使用,拥有 32 个地址,主机号为 64 |
192.168.252.96 ~ 192.168.252.111 | 供网络 3 使用,拥有 16 个地址,主机号为 96 |
192.168.252.112 ~ 192.168.252.115 | 供网络 4 使用,拥有 4 个地址,主机号为 112 |
192.168.252.116 ~ 192.168.252.255 | 剩余待分配 |
【注】若还要继续分配网络,则不能在 192.168.252.116 处开始分配,因为 116 不能被 4、8、16、32、64、… 整除,所以该地址不能分配大小为 4、8、16、32、64、… 的地址块。那么应该从哪里开始分配地址呢?见下表:
分配的地址块大小 | 起始地址 |
---|---|
4 | 192.168.252.120 |
8 | 192.168.252.120 |
16 | 192.168.252.128 |
32 | 192.168.252.128 |
64 | 192.168.252.128 |
128 | 192.168.252.128 |
… | … |
【例 3】若将 101.200.16.0/20 划分为 5 个子网,则可能的最小子网的可分配 IP 地址数是( )
A. 126
B. 254
C. 510
D. 1022
【解】地址块 101.200.16.0/20 主机号位数为 32-20=12,即 101. 200. 0001 0000. 0000 0000,包含地址数量为 212=4096 个。
若要求最小子网,则不能采用均匀分配,要采用不均匀的子网划分,因此采用哈夫曼编码的方式确定子网号。
去掉网络地址和广播地址,可分配 IP 地址数为 254 个,选 B。
(请参考《(考研复习)子网划分小题解析》)
数据报传送过程中 IP 地址(逻辑地址)与 MAC 地址(硬件地址)的变化情况:
【例 1】下图中各主机和路由器各接口的 MAC 地址和所配置的 IP 地址都已标注在它们的旁边,假设主机 H1 要给 H2 发送一个 IP 数据报,该 IP 数据报会被封装成以太网帧进行发送,则当 H2 收到该帧时,其首部中的源 MAC 地址以及所封装的 IP 数据报首部中的源 IP 地址分别是( )
A. 00-a1-b2-c3-d4-61,192.168.1.254
B. 00-a1-b2-c3-d4-61,192.168.0.1
C. 00-a1-b2-c3-d4-51,192.168.0.1
D. 00-a1-b2-c3-d4-51,192.168.1.254
【解】答案为选项 B,见下表:
传输区间 | 网络层 IP 数据报首部的源 IP 地址 | 网络层 IP 数据报首部的目的 IP 地址 | 数据链路层帧首部的源 MAC 地址 | 数据链路层帧首部的目的 MAC 地址 |
---|---|---|---|---|
H1 --> R | 192.168.0.1 | 192.168.1.1 | 00-a1-b2-c3-d4-51 | 00-a1-b2-c3-d4-52 |
R --> H2 | 192.168.0.1 | 192.168.1.1 | 00-a1-b2-c3-d4-61 | 00-a1-b2-c3-d4-62 |
【例 2】路由器 R 通过以太网交换机 S1 和 S2 连接两个网络,R 的接口、主机 H1 和 H2 的 IP 地址与 MAC 地址如下图所示。若 H1 向 H2 发送一个 IP 分组 P,则 H1 发出的封装 P 的以太网帧的目的 MAC 地址、H2 收到的封装 P 的以太网帧的源 MAC 地址分别是( )
A. 00-a1-b2-c3-d4-62,00-1a-2b-3c-4d-52
B. 00-a1-b2-c3-d4-62,00-1a-2b-3c-4d-61
C. 00-1a-2b-3c-4d-51,00-1a-2b-3c-4d-52
D. 00-1a-2b-3c-4d-51,00-a1-b2-c3-d4-61
【解】答案为选项 D,见下表:
传输区间 | 网络层 IP 数据报首部的源 IP 地址 | 网络层 IP 数据报首部的目的 IP 地址 | 数据链路层帧首部的源 MAC 地址 | 数据链路层帧首部的目的 MAC 地址 |
---|---|---|---|---|
H1 --> R | 192.168.3.2 | 192.168.4.2 | 00-a1-b2-c3-d4-52 | 00-a1-b2-c3-d4-51 |
R --> H2 | 192.168.3.2 | 192.168.4.2 | 00-a1-b2-c3-d4-61 | 00-a1-b2-c3-d4-62 |
【注】查表转发的结果可以指明IP数据报的下一跳路由器的 IP 地址,但无法指明该 IP 地址所对应的 MAC 地址。因此,在数据链路层封装该 IP 数据报成为帧时,帧首部中的目的 MAC 地址字段就无法填写,该问题需要使用网际层中的地址解析协议 ARP 来解决。
192.168.0.127
或255.255.255.255
(本网络的广播地址),则路由器不转发广播 IP 数据报(路由器 R 会隔离广播域)。如果因特网中数量巨大的路由器收到广播 IP 数据报后都进行转发,则会造成巨大的广播风暴,严重浪费因特网资源。【注】默认网关和默认路由的区别:
- 默认网关:是一个 IP 地址;是与主机直接相连的路由器端口。
- 默认路由:是路由表中的一项,一般通往互联网的方向。
【例】某网络拓扑如下图所示,其中 R 为路由器,主机 H1~H4 的 IP 地址配置以及 R 的各接口 IP 地址配置如图中所示。现有若干台以太网交换机(无 VLAN 功能)和路由器两类网络互连设备可供选择。
请回答以下问题:
(1)设备 1、设备 2 和设备 3 分别应选择什么类型网络设备?
(2)设备 1、设备 2 和设备 3 中,哪几个设备的接口需要配置 IP 地址?并为对应的接口配置正确的 IP 地址。
(4)若主机 H3 发送一个目的地址为 192.168.1.127 的 IP 数据报,网络中哪几个主机会收到该数据报?
【解】(1)H1 和 H2 的网络前缀相同,因此设备 1 是交换机;同理,H3 和 H4 的网络前缀相同,因此设备 2 也是交换机。由于 H1 和 H3 的网络前缀不相同,因此设备 3 是路由器。
(2)路由器 IF1 = 192.168.1.254/30,IF2 = 192.168.1.1,IF3 = 192.168.1.65。
(4)192.168.1.127 为 H3 所在网络的广播地址,因此主机 H3 和 H4 都能收到该数据报。
【例】如图所示有三个子网,两个路由器,以及路由器 1 的部分路由表。现在源主机 H1 向目的主机 H2 发送分组。试着讨论 R1 收到 H1 向 H2 发送的分组后查找路由表的过程。(来源《使用子网时的分组转发算法》)
【解】源主机 H1 首先判断目的主机 H2 是否在本网络上:
十进制目的主机 IP 地址 | 128 | 30 | 33 | 138 |
---|---|---|---|---|
二进制目的主机 IP 地址 | 128 | 30 | 33 | 1000 1010 |
二进制本网络的子网掩码 | 255 | 255 | 255 | 1000 0000 |
按位与运算结果 | 128 | 30 | 33 | 1000 0000 |
十进制网络地址 | 128 | 30 | 33 | 128 |
因此得出的网络地址与本网络的网络地址不匹配,说明 H2 不在 H1 所在的网络中,必须把分组交给路由器 R1,让 R1 根据转发表来处理这个分组。
用 H2 的 IP 地址(128.30.33.138)与转发表每一行的子网掩码进行按位与运算,看是否匹配目的地址:
目的网络 | 子网掩码 | 下一跳 | 子网掩码与 H2 的 IP 地址的按位与运算 | 是否匹配 |
---|---|---|---|---|
128.30.33.0/25 | 255.255.255.128 | 接口 0 | 128.30.33.128 | x |
128.30.33.128/25 | 255.255.255.128 | 接口 1 | 128.30.33.128 | √(此时不再往下匹配) |
128.30.36.0/24 | 255.255.255.0 | R2 |
于是 R1 把分组从接口 1 交付给 H2。
【例】路由器 R0 的路由表见下表,若进入路由器 R0 的分组的目的地址为 132.19.237.5,该分组应该被转发到( )下一跳路由器。
目的网络 | 下一跳 |
---|---|
132.0.0.0/8 | R1 |
132.0.0.0/11 | R2 |
132.19.232.0/22 | R3 |
0.0.0.0/0 | R4 |
A. R1
B. R2
C. R3
D. R4
【解】见下表:
目的网络 | 子网掩码 | 下一跳 | 子网掩码与目的地址的按位与运算 | 是否匹配 |
---|---|---|---|---|
132.0.0.0/8 | 255.0.0.0 | R1 | 132.0.0.0 | √ |
132.0.0.0/11 | 255.224.0.0 | R2 | 132.0.0.0 | √ |
132.19.232.0/22 | 255.255.252.0 | R3 | 132.19.236.0 | x |
0.0.0.0/0 | 0.0.0.0 | R4 | 0.0.0.0 | √ |
0.0.0.0/0 为默认路由,只有路由表中的所有网络都不能和分组的目的网络匹配时才使用。有三个目的网络均匹配,则选择前缀最长的路由,所以答案为选项 B。
网络类别 | 地址范围 | 网段个数 |
---|---|---|
A | 10.0.0.0 ~ 10.255.255.255 | 1 个 A 类网段 |
B | 172.16.0.0 ~ 172.31.255.255 | 16 个 B 类网段 |
C | 192.168.0.0 ~ 192.168.255.255 | 256 个 C 类网段 |
{本地 IP 地址: 端口}
到{全球IP 地址: 端口}
的映射,将多个私有 IP 地址映射到一个全球 IP 地址【注】将 NAT 和运输层端口号结合使用,称为网络地址与端口号转换(Network Address and Port Translation,NAPT),但一般又称为 NAT。
【例 1】假设主机 A 端口号为 30000,主机 B 端口号为 80,(1)用户主机 A 向目的主机 B 发送分组,(2)用户主机 B 向目的主机 A 发送响应分组,请分析 NAT 路由器的工作流程。
【解】(1)用户主机 A 向目的主机 B 发送分组的过程如下。
IP 首部 | 运输层首部 | 应用层报文 |
---|---|---|
源 IP:192.168.0.3;目的 IP:213.18.2.4 | 源端口:30000;目的端口:80 | xxx |
WAN 端(外网) | LAN 端(内网) |
---|---|
172.38.1.5: 40001 | 192.168.0.3: 30000 |
IP 首部 | 运输层首部 | 应用层报文 |
---|---|---|
源 IP:172.38.1.5;目的 IP:213.18.2.4 | 源端口:40001;目的端口:80 | xxx |
(2)用户主机 B 向目的主机 A 发送响应分组的过程如下。
IP 首部 | 运输层首部 | 应用层报文 |
---|---|---|
源 IP:213.18.2.4;目的 IP:172.38.1.5 | 源端口:80;目的端口:40001 | xxx |
IP 首部 | 运输层首部 | 应用层报文 |
---|---|---|
源 IP:213.18.2.4;目的 IP:192.168.0.3 | 源端口:80;目的端口:30000 | xxx |
【例 2】假定一个 NAT 路由器的公网地址为 205.56.79.35,并且有如下表项:
转换端口 | 源 IP 地址 | 源端口 |
---|---|---|
2056 | 192.168.32.56 | 21 |
2057 | 192.168.32.56 | 20 |
1892 | 192.168.48.26 | 80 |
2256 | 192.168.55.106 | 80 |
它收到一个源 IP 地址为 192.168.32.56,源端口为 80 的分组,其动作是( )。
A. 转换地址,将源 IP 变为 205.56.79.35,端口变为 2056,然后发送到公网
B. 添加一个新的条目,转换 IP 地址以及端口然后发送到公网
C. 不转发,丢弃该分组
D. 直接将分组转发到公网上
【解】NAT 的表项需要管理员添加,这样可以控制一个内网到外网的网络连接。题目中主机发送的分组在 NAT 表项中找不到(端口 80 是从源端口找,而不是转换端口),所以服务器就不转发该分组。选 C。
与 IPv4 相比,IPv6 数据报首部的某些字段作了以下更改:
68E6:8C64:FFFF:FFFF:0:1180:960A:FFFF
68E6:0:0:0:0:0:0:FFFF
–>68E6::FFFF
0:0:0:0:0:0:128.10.2.1
–>::128.10.2.1
0:0:0:0:0:0:0:FFFF
–>::FFFF
0:0:0:0:0:0:0:0
–>::
文章浏览阅读685次。1.1.什么是有状态?有状态服务,即服务端需要记录每次会话的客户端信息,从而识别客户端身份,根据用户身份进行请求的处理,典型的设计如tomcat中的session。例如登录:用户登录后,我们把登录者的信息保存在服务端session中,并且给用户一个cookie值,记录对应的session。然后下次请求,用户携带cookie值来,我们就能识别到对应session,从而找到用户的信息。缺点是什么?服务端保存大量数据,增加服务端压力 服务端保存用户状态,无法进行水平扩展 客户端请求依赖服务.._无状态token登录
文章浏览阅读293次。SDUT OnlineJudge#include<iostream>using namespace std;int main(){int a,b,c,d;cin>>a;b=a%10;c=a/10%10;d=a/100%10;int key[3];key[0]=b;key[1]=c;key[2]=d;for(int i = 0;i<3;i++){ if(key[i]!=0) { cout<<key[i.
文章浏览阅读2.2k次。年终奖采用的平均每月的收入来评定缴税级数的,速算扣除数也按照月份计算出来,但是最终减去的也是一个月的速算扣除数。为什么这么做呢,这样的收的税更多啊,年终也是一个月的收入,凭什么减去12*速算扣除数了?这个霸道(不要脸)的说法,我们只能合理避免的这些跨级的区域了,那具体是那些区域呢?可以参考下面的表格:年终奖一列标红的一对便是盲区的上下线,发放年终奖的数额一定一定要避免这个区域,不然公司多花了钱..._年终奖盲区表
文章浏览阅读7.5k次,点赞5次,收藏19次。matlab结构体struct字段变量值提取_matlab读取struct类型数据中的值
文章浏览阅读4.8k次。1,什么情况下使用fragment通常用来作为一个activity的用户界面的一部分例如, 一个新闻应用可以在屏幕左侧使用一个fragment来展示一个文章的列表,然后在屏幕右侧使用另一个fragment来展示一篇文章 – 2个fragment并排显示在相同的一个activity中,并且每一个fragment拥有它自己的一套生命周期回调方法,并且处理它们自己的用户输_android reader fragment
文章浏览阅读2.8k次。FFT of waveIn audio signalsBy Aqiruse An article on using the Fast Fourier Transform on audio signals. IntroductionThe Fast Fourier Transform (FFT) allows users to view the spectrum content of _fft of wavein audio signals
文章浏览阅读5.9k次。https://jaywcjlove.github.io/awesome-mac/ 这个仓库主要是收集非常好用的Mac应用程序、软件以及工具,主要面向开发者和设计师。有这个想法是因为我最近发了一篇较为火爆的涨粉儿微信公众号文章《工具武装的前端开发工程师》,于是建了这么一个仓库,持续更新作为补充,搜集更多好用的软件工具。请Star、Pull Request或者使劲搓它 issu_awesomemac
文章浏览阅读616次。一.jquery简介 jQuery是一个快速的,简洁的javaScript库,使用户能更方便地处理HTML documents、events、实现动画效果,并且方便地为网站提供AJAX交互 jQuery 的功能概括1、html 的元素选取2、html的元素操作3、html dom遍历和修改4、js特效和动画效果5、css操作6、html事件操作7、ajax_简介java中jquery技术
文章浏览阅读1.6w次,点赞5次,收藏19次。我修改的是表格的固定列滚动而产生的滚动条引用Table的组件的css文件中加入下面的样式:.ant-table-body{ &amp;::-webkit-scrollbar { height: 5px; } &amp;::-webkit-scrollbar-thumb { border-radius: 5px; -webkit-box..._ant design ::-webkit-scrollbar-corner
文章浏览阅读269次。基于JSP的健身俱乐部会员管理系统项目分享:见文末!
文章浏览阅读1.8k次,点赞2次,收藏15次。同学们,是不是又到了一年一度写开题报告的时候呀?是不是还在为不知道论文的开题报告怎么写而苦恼?Take it easy!我带着倾尽我所有开题报告写作经验总结出来的最强保姆级开题报告解说来啦,一定让你脱胎换骨,顺利拿下开题报告这个高塔,你确定还不赶快点赞收藏学起来吗?_开题报告研究难点
文章浏览阅读6k次,点赞4次,收藏17次。原生先获取对象var a = document.getElementById("dom");vue先添加ref <div class="" ref="divBox">获取对象let a = this.$refs.divBox获取父、子、兄弟节点方法var b = a.childNodes; 获取a的全部子节点 var c = a.parentNode; 获取a的父节点var d = a.nextSbiling; 获取a的下一个兄弟节点 var e = a.previ_获取子节点的路径 vue