计算机网络问题(一)
1.当有新主机加入计算机网络如何获得IP地址
(1)组织如何得到一个地址块
首先,在全球有一个管理IP地址空间的权威机构ICANN,它能向各ISP分配地址块。而组织的IP地址块一般是从ISP中获取。
组织为了获取一块IP地址用于一个子网,其网络管理员先与他的ISP联系,该ISP将会从它拥有的更大的地址块中向组织提供一些地址。例如某ISP自己被分配了地址块200.23.16.0/20.该ISP可以将该该地址块分成8个长度相等的连续地址块,为组织分配其中的一个。
ISP地址块 200.23.16.0/20 11001000 00010111 00010000 000000
组织0 200.23.16.0/23 11001000 00010111 00010000 000000
组织1 200.23.16.0/23 11001000 00010111 00010010 000000
组织2 200.23.16.0/23 11001000 00010111 00010100 000000
… …
组织7 200.23.16.0/23 11001000 00010111 00011110 000000
(2)设备如何从某组织的地址块得到一个地址
组织获得一块地址之后,通常由系统管理员手工配置路由器的IP地址,由动态主机配置协议(DHCP)配置主机地址。
DHCP允许主机自动获取一个IP地址。网络管理员能够配置DHCP,使某主机每次与网络相连时能获得同一个IP地址,或者每次都获得一个临时IP地址。
除了分配IP地址,DHCP还允许一台主机获得它的子网掩码,第一跳路由器地址(默认网关),它的本地DNS服务器地址。如下图
通常,DHCP在住宅ISP接入网是有用的。
一个住宅区有2000个客户,但不会有超过400个客户同时在线,此时动态分配地址的DHCP服务器不需要一个含2048个地址的块,而仅需一个含512个地址的块。当主机加入时,DHCP服务器从可用的地址池中分配一个任意的地址给它,当主机离开时,其地址被回收入这个池中。
下面是一个简单场合的例子。
该图显示了连接到子网223.1.2/24的一台DHCP服务器,具有一台提供中继代理服务的路由器,为连接到子网223.1.1/24和223.1.3/24的到达客户提供DHCP服务。
对于一台刚到达的主机而言,需要经过下面4个步骤
1.DHCP服务器发现
一台新到达的主机在udp分组中向端口67发送该发现数据报文。目的地址为广播255.255.255.255,源地址为本机地址0.0.0.0。
2.DHCP服务器提供
DHCP收到一个DHCP发现报文时,用一个DHCP提供报文向客户做出响应。由于在子网中可能存在几个DHCP服务器,每个服务器都会在该报文中包含自己能够提供的服务信息。如发现报文的事物ID,向客户推荐的IP地址,网络掩码以及IP租用期。
3.DHCP请求
客户机从多个服务器提供中选择一个,并向选中的服务器提供用一个DHCP请求报文进行响应,回显配置参数。
4.DHCP ACK
服务器用DHCP ACK报文对DHCP请求报文进行响应,证实所要求的参数。
具体过程如图所示
客户收到DHCP ACK后,交互就完成了,该客户能在租用期内使用DHCP分配的IP地址。
公网和私网
在IP地址中,有公网私网之分,公网IP能被外界正常访问,私网IP只能在私网内部使用,外部主机无法通过私网IP访问私网主机。
例如一台主机在私网内部的IP为10.0.0.1,公网IP为128.119.40.186,一台外界主机ping 私网IP时无法ping通,ping公网IP能够ping通
(1)私网与公网之间的转换
私网与公网的转换利用了名为NAT使能路由器的设备。它可以看作一台具有特殊转换功能的路由器。
假设一个用户坐在家庭网络主机10.0.0.1旁,请求IP地址为128.119.40.186的某台Web服务器(端口80)上的一个web页面。主机10.0.0.1为其指派了源端口号3345并讲该数据包发送在局域网中。NAT使能路由器接收到该数据报,为该数据报生成一个新的端口号5001,并将源IP替代为其广域网一侧接口的IP地址138.76.29.7。web服务器并不知道刚到达的请求数据报已经经过NAT路由器进行了转换,它将发送一个响应报文(目的IP为路由器IP138.76.29.7,目的端口号为5001),路由器接收到该报文后,使用目的IP地址和端口号从NAT转换表中查找出家庭网络主机的IP地址(10.0.0.1)和其绑定的端口号(3345),将该数据报文的目的IP地址和目的端口号改写,并将数据包传送给该家庭主机。
reference 《计算机网络自顶向下方法》