目录
IP地址分为网络号和主机号两个部分,用于标识网络中不同设备的地址。
通常以点分十进制表示,如192.168.0.1。
网络号用于保证相互连接的两个网段具有不同标识;主机号用于在同一网段内,标识不同主机。
网络号相同的主机组成同一子网,子网内的主机号不能相同,通常由路由器使用DHCP技术自动分配。
IP地址的数量是有限的。在IPv4协议下,IP地址有2^32个。
每一个网卡都需要有一个IP地址,在IPv4协议下,IP地址数量不能满足现代网络设备暴增的需求,这个问题被称为“IP地址枯竭的问题”。
动态分配IP,接入网络时才分配IP。
使用NAT机制,划分网段。
使用IPv6协议,IPv6使用16个字节来表示IP地址,地址数量多达2^128个,数量巨大。
NAT/NAPT机制应该通过 “公网IP和私网IP”的作用 和 “IP号和端口号”的作用 两部分去理解。
公网IP和私网IP的作用:
NAT技术基于网段划分,也称网络地址转换,使用一个IP地址,指代一批设备,是目前解决IP地址枯竭的主要手段,也是路由器的重要功能。
NAT将IP地址分为私有IP和公网IP,通过将私有IP和公网IP相互转换,完成通信。
在同一个局域网内部,内网IP之间不能重复;在不同局域网中,内网IP可以重复。外网IP必须唯一。
私有IP和公网IP的相互转换,通过路由器完成,当数据通过路由器WAN口到达LAN口时,会将公网IP替换为子网IP;数据由LAN口到达WAN口时,则将子网IP替换为公网IP。
IP号和端口号的作用:
IP号和端口号依靠NAPT技术,使用IP+port端口号来建立关联,用于在局域网内识别不同主机。端口号可以用于区分同一主机的不同进程,也可以区分不同主机的不同进程。
如果不同主机之间端口号冲突,路由器会自动替换冲突的端口号,并记录端口号的映射关系,这个记录被称为转换表。
优点:NAT是纯软件方案,不需要更换硬件设备。
缺点:NAT依赖转换表,无法从NAT外部向内部服务器建立连接;转换表的生成和销毁有额外开销;通信中,如果NAT设备异常,转换表无法访问,TCP连接也将断开。
主机号为0的IP地址,称为局域网的网络号,代表整个局域网。如:192.168.100.0。
主机地址全部为1的IP地址,称为广播地址,用于给同一链路中互相连接的所有主机发送数据包。如:192.168.100.255。
127开头的IP地址,称为环回地址,用于本机环回,表示设备自身。如:127.0.0.1。
子网掩码需要配合IP地址使用,用于区分IP地址中的网络号和主机号,在同一网络号下可以用于划分子网。
子网掩码是一个以二进制表示的32位正整数,如:1111 1111 1111 1111 1111 1111 0000 0000(以点分十进制表示,就是 255.255.255.0)。
将IP地址和子网掩码进行“按位与”操作,就可以得到网络号。
路由选择是指在网络中,找到源地址通向目标地址的路径。
路由的过程是逐点跳跃(Hop by Hop)的,即在数据链路层(以太网)中,一节点一节点的“探索式”传输。
IP数据报到达路由器,路由器会查看数据报的目的IP。
路由器查询自身维护的路由表,根据路由表判断数据报传输的下一地址(可能是目标主机,也可能是下一更靠近主机的路由器)。
循环以上行为,直到到达目标IP地址。