您的位置:首页 > 理论基础 > 计算机网络

鸟哥的 Linux 私房菜笔记 TCP/IP 的网络层相关封包与数据

2014-09-29 00:49 633 查看
以二进制说明 Network 第一个数字的定义:

Class A : 0xxxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 0

|--net--|---------host------------|

Class B : 10xxxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 10

|------net-------|------host------|

Class C : 110xxxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 110

|-----------net-----------|-host--|

Class D : 1110xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1110

Class E : 1111xxxx.xxxxxxxx.xxxxxxxx.xxxxxxxx ==> NetI_D 的开头是 1111

五种分级在十进制的表示:

Class A : 0.xx.xx.xx ~ 127.xx.xx.xx

Class B : 128.xx.xx.xx ~ 191.xx.xx.xx

Class C : 192.xx.xx.xx ~ 223.xx.xx.xx

Class D : 224.xx.xx.xx ~ 239.xx.xx.xx

Class E : 240.xx.xx.xx ~ 255.xx.xx.xx

上表中你只要记忆三种等级,亦即是 Class A, B, C 即可,

因为 Class D 是用来作为群播 (multicast) 的特殊功能之用 (最常用在大批计算机的网络还原),

至于 Class E 则是保留没有使用的网段。

因此,能够用来设定在一般系统上面的,就只有 Class A, B, C 三种等级的 IP 啰!

在 IPv4 里面就只有两种 IP 的类别,分别是:

Public IP : 公共 IP ,经由 INTERNIC 所统一规划的 IP,有这种 IP 才可以连上 Internet ;

Private IP : 私有 IP 或保留 IP,不能直接连上 Internet 的 IP , 主要用于局域网络内的主机联机规划。

私有 IP 也分别在 A, B, C 三个 Class 当中各保留一段作为私有 IP 网段,那就是:

Class A:10.0.0.0 - 10.255.255.255

Class B:172.16.0.0 - 172.31.255.255

Class C:192.168.0.0 - 192.168.255.255

由于这三段 Class 的 IP 是预留使用的,所以并不能直接作为 Internet 上面的连接之用,他有底下的几个限制:

私有 IP 的路由信息不能对外散播 (只能存在内部网络);

使用私有 IP 作为来源或目的地址的封包,不能透过 Internet 来转送 (不然网络会混乱);

关于私有 IP 的参考纪录(如 DNS),只能限于内部网络使用 (一样的原理啦)

要将这些私有 IP 送上 Internet ,设定一个简单的防火墙加上 NAT (Network Address Transfer) 服务,

就可以透过 IP 伪装来使你的私有 IP 的计算机也可以连上 Internet!

使用Netmask (子网掩码)进行子网的切分

子网掩码决定使用多少位Host_ID当作 Net_ID;

例如:

192.168.0.0 ~ 192.168.0.255 这个 Class C 的网域中

Netmask: 255.255.255.0 <==子网掩码

Network: 192.168.0.0 <==第一个 IP

Broadcast: 192.168.0.255 <==最后一个 IP

可用以设定成为主机的 IP 数:

192.168.0.1 ~ 192.168.0.254

他的 Netmask是

11111111.11111111.11111111.00000000 ==> 255.255.255.0;

1代表网络号,0代表主机号;

如果想要将这个网段切割成更小的网段就要将主机号当作网络号,网络号越大主机号越少,则网段越小;

将子网掩码的网络号添加1位即25位,就分出两个子网

11111111.11111111.11111111.1 0000000 ==> 255.255.255.128

第一个子网

Network: 11000000.10101000.00000000.0 0000000 192.168.0.0

Broadcast: 11000000.10101000.00000000.0 1111111 192.168.0.127

|----------Net_ID-----------|-host-|

Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128

第二个子网

Network: 11000000.10101000.00000000.1 0000000 192.168.0.128

Broadcast: 11000000.10101000.00000000.1 1111111 192.168.0.255

|----------Net_ID-----------|-host-|

Netmask: 11111111.11111111.11111111.1 0000000 255.255.255.128

添加1位,2的1次方是2就变成2个子网, 原来一个网络号变成2个不同的网络号

添加2位,2的2次方是4就变成4个子网,原来一个网络号变成4个不同的网络号

....

常常会以 Network 以及 Netmask 来表示一个网域,例如这样的写法:

Network/Netmask

192.168.0.0/255.255.255.0

192.168.0.0/24 <==因为 Net_ID 共有 24 个 bits

Net_ID 共有 26 个 bits

192.168.0.0/26

192.168.0.64/26

192.168.0.128/26

192.168.0.192/26

要知道如何透过 Netmask 去计算出 Network, Broadcast 及可用的 IP
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: