开启掘金成长之旅!这是我参与「掘金日新计划 · 12 月更文挑战」的第10天,点击查看活动详情 这也是第12篇文章
前言
注:本文为我对《计算机网络 第五版》(小蓝书)原书阅读后的整理和思考。并不是直接翻译或者照搬原文。表述和理解上可能会和原文意思有出入。有理解不对的地方还望各位大神指出!
ip地址的转化表示
每个byte以.隔开,转为10进制表示。 例如:80 D0 02 97 (16进制)表示为:128.208.2.151
对"如果前缀包含2^8个地址"的理解
书中有小标题所述的一句话,以下是我的理解:
相当于给每个主机都能分配2^8个地址
子网掩码255.255.255.0也可以表示为:128.208.0.0/24,即最小ip地址段+/子网掩码。
两种表达方式的转换在下面会给出。
子网掩码两种表达方式的转换
/21->255.255.248.0
需要留2048个地址,故host给11位
255.255.240.0->/20
需要留4096个地址,故host给12位
以上都可以归入CIDR(classless interdomain routing,无分类跨域路由)的范畴,接下来讨论的是有分类且特殊的寻址。
classful and special address(分类且特定的寻址)
(书上说这是1993年之前的划分方法,现在已经过气了,可是我总感觉我们现在也还是在用,而且老师又说这是考试重点 emm...只能说仁者见仁智者见智吧)
| 地址范围 | 末地址可理解为 |
|---|---|
| 1.0.0.0~127.255.255.255 | 2^7-1 |
| 128.0.0.0~191.255.255.255 | 2^8-2^6-1 |
| 192.0.0.0~223.255.255.255 | 2^8-2^5-1 |
| 224.0.0.0~239.255.255.255 | 2^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)
简单理解如下图:
- 内网中的不同主机有各自的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地址的唯一性
- 破坏了端到端模型 即:
- 无连接网络->面向连接的网络 依赖NAT会使网络变得脆弱
- 破坏了层次之间的独立性 (由于使用端口,依赖于上一层传输层的服务)
- 虽然大多数是TCO/UDP的服务,但如果不是就用不了了
- 有些协议(如FTP)事先规定了端口号的使用,这样NAT就无法正确处理工作
参考书籍
《计算机网络 第五版》Andrew等著(小蓝书)