【计算机网络】网络层(三)ip地址划分

153 阅读3分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情 这也是第12篇文章

前言

注:本文为我对《计算机网络 第五版》(小蓝书)原书阅读后的整理和思考。并不是直接翻译或者照搬原文。表述和理解上可能会和原文意思有出入。有理解不对的地方还望各位大神指出!

ip地址的转化表示

每个byte以.隔开,转为10进制表示。 例如:80 D0 02 97 (16进制)表示为:128.208.2.151

对"如果前缀包含2^8个地址"的理解

书中有小标题所述的一句话,以下是我的理解:

相当于给每个主机都能分配2^8个地址 image.png

子网掩码255.255.255.0也可以表示为:128.208.0.0/24,即最小ip地址段+/子网掩码。

两种表达方式的转换在下面会给出。

子网掩码两种表达方式的转换

/21->255.255.248.0

image.png

需要留2048个地址,故host给11位

255.255.240.0->/20

image.png

需要留4096个地址,故host给12位


以上都可以归入CIDR(classless interdomain routing,无分类跨域路由)的范畴,接下来讨论的是有分类且特殊的寻址。

classful and special address(分类且特定的寻址)

(书上说这是1993年之前的划分方法,现在已经过气了,可是我总感觉我们现在也还是在用,而且老师又说这是考试重点 emm...只能说仁者见仁智者见智吧)

image.png

地址范围末地址可理解为
1.0.0.0~127.255.255.2552^7-1
128.0.0.0~191.255.255.2552^8-2^6-1
192.0.0.0~223.255.255.2552^8-2^5-1
224.0.0.0~239.255.255.2552^8-2^4-1
240.0.0.0~255.255.255.255全部位都是1

有几类特殊的地址

  • 0.0.0.0 表示本网络或本主机
  • 255.255.255.255该网络中的所有主机(局域网中的广播)
  • 127.xx.yy.zz:迂回测试,包只在本地来回传送

127.0.0.1=localhost

NAT(network address transform)

简单理解如下图:

image.png

  • 内网中的不同主机有各自的ip地址和进程用到的端口号,但是这些ip地址只在这个内部区域有效,外网是不认这些地址的。
  • 如果想要对外发送信息,就要经过NAT,进行地址的转换,对外统一暴露出一个ip地址。
  • 外界对内网的情况一无所知,它们只以为一个ip地址为xxxxx的主机向它们发送信息,所以回复信息时也会发送给这个地址。
  • 那这些回复的信息如何能正确分发给内网中的相应主机呢?这要借助端口号。 NAT的转换机制中,内网中不同ip地址的主机对应的同一虚拟地址的不同端口号。

内网地址范围

  • 10.0.0.0~10.255.255.255/8
  • 172.16.0.0~172.31.255.255/12
  • 192.168.0.0~192.168.255.255/16

使用NAT的坏处

  • 破坏了ip地址的唯一性
  • 破坏了端到端模型 即:

image.png

  • 无连接网络->面向连接的网络 依赖NAT会使网络变得脆弱
  • 破坏了层次之间的独立性 (由于使用端口,依赖于上一层传输层的服务)
  • 虽然大多数是TCO/UDP的服务,但如果不是就用不了了
  • 有些协议(如FTP)事先规定了端口号的使用,这样NAT就无法正确处理工作

参考书籍

《计算机网络 第五版》Andrew等著(小蓝书)