communication at the network layer: host to host
IP address:TCP/IP中的逻辑地址。
IPv4——32位,个地址
IPv6——128位,个地址
IPv4 address is a 32-bit address that uniquely and universally defines the connection of a device
IPv4地址是唯一的。唯一指的是每一个地址定义了在因特网上仅有一个设备。因特网上的设备永远不会有同样的地址
19.1.1 Address Space
address space是指该协议能用的地址的总个数。
IPv4能用的地址的总个数为。
19.1.2 Notations
(1)Dotted-Decimal Notation
每个点分数的取值范围是0到255.
19.1.3 Classful Addressing 分类寻址
In classful assdressing, the address space is divided into five classes:A,B,C,D, and E
当一个地址用二进制或者点分十进制表示时,我们可以从开头的几位求出这个地址所属的类:
注意,D类和E类是没有网络号和主机号的。
(1)Classes and Blocks
A类地址:为哪些具有大量的主机或者路由器的大型组织机构设计
- IP:={<netid>,<hostid>}
- 网络号:
- 网络号字段全为0的IP地址为保留地址,意为本网络
- 网络号为127(01111111)保留为本地软件环回测试(loopback test)本主机进程之间的通信用
- 主机号:
- 全0的主机号表示是“本主机”连接到的单个网络地址
- 全1主机号字段表示的是该网络上的所有主机
- A类地址占所有的地址的50%
B类地址:为中型机构设计
- IP:={<netid>,<hostid>}
- 网络号:
- 网络号全0的128.0.0.0不指派,B类的最小网络地址是128.1.0.0
- 主机号:
- 去除全0和全1的主机号
- B类地址空间占整个IP空间的25%
C类地址:为小型机构设计
- IP:={<netid>,<hostid>}
- 网络号:
- 全0的不予指派
- 主机号:
- 扣除全0和全1的主机号
- C类地址占整个IP空间的12.5%
D类地址:为多播Multicast设计
多播可发送一个消息给同一多播组中的一组成员设备。
两种多播
E类地址:为将来使用而保留
(2)MASK–CIDR
A类,B类,C类的掩码如下:
以/n的形式表示掩码,在classful Addressing中n是8,16和24.这种标记法称为Classless Interdomain Routing(无类域间路由选择 CIDR)
D类和E类没有掩码.
(3)private internet 私有网络
在IP地址空间中,保留了几个用于私有网络的地址。私有网络常用于公司,组织和个人网络,他们没有置于因特网中
- 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
(4)subnetting 子网化
划分子网纯属一个单位内部的事情。单位对外仍然表现为没有划分子网的网络。
从主机号借用若干个位作为子网号subnet-id,而主机号Host-id也就相应减少了若干个位
- 凡是从其他网络发送给本单位某个主机的IP数据报,仍然是根据 IP 数据报的目的网络号net-id,先找到连接在本单位网络上的路由器。
- 然后此路由器在收到 IP 数据报后,再按目的网络号 net-id 和子网号 subnet-id 找到目的子网。
- 最后就将 IP 数据报直接交付目的主机。
当没有划分子网时,IP地址是两级结构;
划分子网后IP地址变成了三级结构
划分子网只是把IP地址的主机号host-id这部分再进行划分,而不改变IP地址原来的网络号net-id
从一个 IP 数据报的首部并无法判断源主机或目的主机所连接的网络是否进行了子网划分。
- 使用子网掩码可以找出 IP 地址中的子网部分。
(5)子网掩码和网关的作用
两台计算机通信的过程:
1.判断自己与对方是否在同一网段
- 自己的IP地址与掩码进行AND运算得到自己所在的网段
- 对方的IP与自己的网段掩码进行AND
- 比较二者是否相同,不相同转2,相同转3
2.不相同,二者不在同一网段。封装帧时以网关的MAC地址作为目的MAC地址,交换机会把帧交给路由器接口
3.相同,二者在同一网段。封装帧时直接使用目标主机IP的MAC地址作为目的IP地址,直接将帧发给目标地址
EXAMPLE:
(a)A和B可以互通
(b)A可以发给B,但是B无法发给A
19.1.4 Classless Addressing
无类编址仍提供了地址块
网络前缀来替代网络号和子网号
三级编址 -----> 两级编址
(1)Address Blocks
在无类寻址中,当一个小的或者大的实体需要连接因特网时,给他分配一个合适的地址块。
块的大小(地址的个数)按实体大小规模与性质来决定。
Restrictions:
- 块中的地址必须是一个接着一个连续的
- 一个块中的地址的个数是2的整数次幂(1,2,4,8…)
- 块的起始地址必须能被地址的个数整除
(2)Classless Interdomain Routing(CIDR )
CIDR的特点:
-
CIDR 消除了传统的 A 类、B 类和 C 类地址以及划分子网的概念,因而可以更加有效地分配 IPv4 的地址空间。
-
CIDR使用各种长度的**“网络前缀” (network-prefix)**来代替分类地址中的网络号和子网号。
-
IP地址从三级地址又回到了二级地址
CIDR把网络前缀都相同的连续IP地址组成“CIDR地址块”
(3)IP地址分配计算举例
- EXAMPLE1
分配给某一小型组织机构一个地址块,我们已知块中一个地址是205.16.37.39/28,求该块的起始地址
- EXAMPLE2
(4)supernetting
背景:
比较好的办法就是将192.168.0.0/24和192.168.1.0/24这两个C类网络合并。合并后的网段为192.168.0.0/23,子网掩码为255.255.254.0,可用地址为192.168.0.1~ 192.168.1.254。
合并后更改网络中计算机的IP地址配置与路由器接口配置。这种方法的本质是通过把1位网络地址位用作主机地址位而实现了网络的扩容。
19.1.5 Network Address Translation NAT 网络地址转换
背景:家庭用户和小型商业公司的需求增加,IP地址短缺
NAT:使用户在内部拥有大量的地址,在外部拥有少量的地址。
- Address for private networks专用地址:组织内部唯一,全球范围内不唯一。使用时不必向因特网管理机构申请
- global address全球地址:全球唯一IP地址,使用必须向因特网管理机构申请
路由器将一个专用网络与全局因特网相连的路由器有两个地址:
- private address:172.18.3.30
- global address:200.24.5.8
(1)Address Translation地址转换
所有外发的分组都通过NAT路由器发送出来,该路由器用全球NAT地址来替代分组中的源地址。
所有的输入也要通过NAT路由器,该路由器用相应的专用地址来代替分组中的目的地址。
(2)Translation Table转换表
如何知道来自因特网的分组的目的地址?每个专用的IP地址属于某个特定的主机,NAT路由器有一个转换表。
- 使用一个IP地址
NAT只有一个external address
实现私有地址和全球公有地址的一对一映射,公有地址分配给唯一且固定的内网主机。
转换表有两列:
Private address & External address
- Using a pool of IP Address
NAT有多个地址。
当NAT路由器具有n个全球IP地址时,专用网内最多可以同时有n个主机接入到因特网。NAT路由器IP地址数量有限时,专用网内较多数量的主机可轮流使用NAT路由器的全球IP地址。
- Using both IP address and Port Numbers
只有一个IP地址+端口号
为了更有效地利用NAT路由器上的全球IP地址,常用的NAT转换表把传输层端口号也利用上。
使多个拥有本地地址的主机,共用一个NAT路由器上的全球IP地址,因而可以同时和因特网上的不同主机进行通信。
(3)NAT的类型
-
静态NAT:实现了私有地址和全球公有地址的一对一映射,一个公有IP只会分配给唯一且固定的内网主机
-
动态NAT:
将内部网络的私有IP地址转换为公有IP地址时,IP地址对是不确定的、随机的,所有被授权访问Internet的私有IP地址可随机转换为任何指定的公有IP地址。
当ISP提供的共有IP少于网络内部计算机数量
-
网络地址端口转换PAT(Port address Translation):把内部地址映射到外部网络的一个IP地址的不同端口上。PAT与动态地址NAT不同,它将内部连接全部映射到外部网络中的一个单独的IP地址上,同时在该地址上加上一个由NAT设备选定的端口号。
PAT NOTE:
-
PAT把专用网内不同的源IP地址,都转换为同样的全球IP地址。
-
对源主机所采用的TCP端口号(无论是否相同),转换为不同的新的端口号。
-
从层次的角度看,PAT的机制有些特殊。
- 普通路由器在转发IP数据报时,源IP地址或目的IP地址都是不改变的,但NAT路由器在转发IP数据报时,一定要更换其IP地址(转换源地址或目的地址)。
- 普通路由器在转发分组时工作在网络层,但PAT路由器要查看和转换运输层的端口号,属于运输层的范畴。
PAT路由器工作在传输层!
(4)NAT和ISP
19.2.1 Structure
IPv6地址由16个字节(8位组)组成:128位
十六进制冒号表示法 Hexadecimal Colon Natation
缩短:
19.2.2 Address Space
个地址,划分为多个类,可变长类型前缀
基于提供者的单播地址前缀:
定义一个单独的计算机,发送到单播地址的分组必须传递到这个指定的计算机。
多播地址:
定义的是一组主机,而非一个主机。报文会发给每一个成员
任播地址:
adecimal Colon Natation**
[外链图片转存中…(img-4Q0T5A0Q-1641305399455)]
缩短:
[外链图片转存中…(img-PgIijSOU-1641305399456)]
19.2.2 Address Space
个地址,划分为多个类,可变长类型前缀
基于提供者的单播地址前缀:
定义一个单独的计算机,发送到单播地址的分组必须传递到这个指定的计算机。
[外链图片转存中…(img-kVDPbiEi-1641305399456)]
多播地址:
定义的是一组主机,而非一个主机。报文会发给每一个成员
任播地址: