ip由前缀与主机构成,前缀由网络由子网号构成,子网的长度不是固定的,时从主机中分出的(从高位拿),长度由子网数目确定。
确定网络与主机地址:前缀:ip与子网取与,主机:取反后取与
(子网掩码的作用:帮助划分网络号与主机号)
CIDR
无类别域间路由 classless interdomain routing
分类方式不是按照类别来分
用可变长分块的方式分配升序的C类网络地址

给cambridge分配,2048,需要11位,能根据开始位置写出结束地址
假如我们已经知道cambridge的初始地址,转化为二进制,来确定代码块的范围
194.24.00000000.00000000
194.24.00000111.11111111
它们相同的部分8+8+5=21位
194.24.00001000.000000000
194.24.00001011.11111111
相同的部分8+8+6=22
194.24.00010000.00000000 (Oxford 需要12位)
194.24.00011111.11111111
相同部分 8+8+4
(如果需要13位呢?)
看194.24.17.4属于哪个ip块?

图中最长匹配原则,前缀与哪个匹配的最长,就发在哪个子路由器上
ip地址的聚合:刚刚三个ip聚合后 194.24.0.0/19



选D,它们的前6位不匹配
52:00110100
56:00111000
分配ip地址的方法

按照类别分;按照块分;NAT(网络地址转换,Network Address Translation)
问题:从外面来的信息,分组如何找到对应的主机?用端口号和ip地址(每个pc有2^16个端口号,找到相应对应关系)
NAT:整个公司内部都用私网 IP(比如 10.0.0.x),对外却只有一个公网 IP(比如 198.60.42.12)。NAT 盒子/路由器负责在"进出公司边界"时,把数据包里的源/目的 IP 改成合适的地址,从而实现很多内网主机共享一个公网地址。

传输层用端口号作为标识(网络ip,数据链路层mac),最初设计为标识socket端口
很多主机同时上网,解决分组与主机对应关系。端口号存的index,指向的是ip和端口号的对应关系。
图中左侧是公网ip的端口号,右侧是电脑主机ip和相应的端口


问题
NAT 违背了 IP 的架构模型
NAT 将互联网从无连接网络转变为一种面向连接的网络(需要为每一条连接建立状态表,变成依赖连接的)
NAT 违反了协议分层最根本的规则
NAT 设备会导致应用程序失败,因为 NAT 设备无法正确定位 TCP 源端口
某些应用程序会在文本主体中插入 IP 地址,远程端可能无法理解该地址
由于 TCP 源端口字段为 16 位,最多只能将 65,536 台机器映射到一个 IP 地址上
(ip协议是无连接的协议)