基本概念
IP地址是定位主机的,具有一个将数据报从A主机跨网络可靠的送到B主机的能力。
但是有能力就一定能做到吗,只能说有很大的概率。
我们这里举一个例子来说明TCP和IP分别扮演的角色
比如张三是一个数学可以考满分能力的人,他的父亲是教导主任,要求他数学比如每次考到满分,但是张三偶尔还是会失误没有达到满分,所以为了达到每次都考满分的要求,他的父亲选择重考,直到张三考到满分为止。在这个故事中张三的父亲就扮演了TCP的角色,为IP提供策略,而张三扮演了IP的角色,用于执行行动
主机:配有IP地址,但是不进行路由控制的设备;路由器:即配有IP地址,又能进行路由控制;节点:主机和路由器的统称;
网段划分IP地址分为两个部分,网络号和主机号
网络号:保证相互连接的两个网段具有不同的标识;
主机号:同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号;
不同的子网其实就是把网络号相同的主机放到一起.
如果在子网中新增一台主机,则这台主机的网络号和这个子网的网络号一致,但是主机号必须不能和子网中的其他主机重复
通过合理设置主机号和网络号,就可以保证在相互连接的网络中,每台主机的IP地址都不相同.
那么问题来了,手动管理子网内的IP,是一个相当麻烦的事情.
有一种技术叫做DHCP,能够自动的给子网内新增主机节点分配IP地址,避免了手动管理IP的不便.
一般的路由器都带有DHCP功能.因此路由器也可以看做一个DHCP服务器.
过去曾经提出一种划分网络号和主机号的方案,把所有IP地址分为五类,如下图所示(该图出自[TCPIP])。
A类0.0.0.0到...
B类.0.0.0到...
C类.0.0.0到22...
D类.0.0.0到29...
E类.0.0.0到...
特殊的IP地址
将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
.*的IP地址用于本机环回(loopback)测试,通常是.0.0.1
IP地址的数量限制
我们知道,IP地址(IPv4)是一个4字节2位的正整数.那么一共只有2的2次方个IP地址,大概是4亿左右.而TCP/IP协议规定,每个主机都需要有一个IP地址.
这意味着,一共只有4亿台主机能接入网络么?
实际上,由于一些特殊的IP地址的存在,数量远不足4亿;另外IP地址并非是按照主机台数来配置的,而是每一个网卡都需要配置一个或多个IP地址.
CIDR在一定程度上缓解了IP地址不够用的问题(提高了利用率,减少了浪费,但是IP地址的绝对上限并没有增加),仍然不是很够用
这时候有三种方式来解决
动态分配IP