IP基本认识
TP在TCP/IP参考模型中处于第三层,也就是网络层。
网络层的主要作用:实现主机与主机之间的通信,也叫点对点通信。
网络层和数据链路层的关系
MAC(数据链路层)是实现直连的两个设备之间通信,而IP(网络层)则负责没有直连的两个网络之间进行通信传输。
IP地址的基础知识
在TCP/IP网络通信时,为了保证能正常通信,每个设备都需要配置正确的IP地址,否则无法实现正常的通信。
IP地址(IPV4地址)由32位正整数来表示,IP地址在计算机是以二进制的方式处理的。
为什么超过了43亿,还可以支持这么多IP,采用了NAT技术。
NAT技术:网络地址转换协议,一个局域网甚至只需要一个IP地址就可以了。
IP地址的分类
A类地址:0-127,主机位24
B类地址:128-191,主机位16
C类地址:192-223,主机位8
当主机号全为1指定某个网络下的所有主机,用于广播
当主机号全为0指定某个网络。
DE没有主机号,D常用于多播。224-239
E类预留。
IP分类的优点就是简单明了,选路(基于网络地址)简单。
第一位为0:A类地址
第二位为0:B类地址
第三位为0:C类地址
第四位为0:D类地址
第五位为0:E类地址
IP分类的缺点
- 同一网络下没有地址层次。
- 不能很好的与现实网络匹配
所以提出了无分类地址CIDR。
32位的IP地址被划分成两部分,前面是网络号,后面是主机号。
还有一种划分网络号与主机号形式,就是子网掩码。
将子网掩码和IP地址按位运算AND,就可得到网络号。
IP协议相关技术
DNS域名解析
ARP和RARP协议
DHCP动态获取IP地址
NAT网络地址转换
ICMP互联网控制报文协议
IGMP因特网组管理协议
DNS域名解析
DNS可以将域名地址自动转换为具体的IP地址。
DNS中,域名是靠句点来分隔的,越靠右的位置表示其层级越高。
域名解析的流程
DNS域名解析的过程是只指路不带路。
ARP
知道了IP地址之后,还需要知道MAC地址。
可以通过ARP协议,根据IP地址获取下一跳的MAC地址。
ARP是借助ARP请求和ARP响应两种类型的包确定MAC地址。
- 主机会通过广播发送ARP请求,这个包中包含了想要知道的MAC地址的主机IP地址。
- 当同个链路中的所有设备收到ARP请求,会去拆开ARP请求包里的内容,如果ARP请求包中的目标IP地址与自己的地址相同,那么这个设备就将自己的MAC地址塞入ARP相应包返回主机。
操作系统会把第一次通过ARP获取的MAC地址缓存起来,以便下次直接在缓存中找到对应IP地址的MAC地址。
RARP
RARP是已知MAC地址求IP地址。
比如打印机等小型嵌入式设备接入网络中就要用到。
在接入设备的时候,会发出RARP请求,我的MAC地址是***,请问我的IP地址应该是多少。
RARP服务器收到之后,会返回MAC地址为XXX的设备,IP地址为XXX。
DHCP
DHCP动态获取IP地址。
如果快到期了,客户端会想服务器发送DHCP请求报文。
- 服务器如果同意继续租用,则用DHCP ACK报文进行应答,客户端就会延长租期。
- 服务器如果不同意继续租用,则用DHCP NACK报文,客户端就要停止使用租约的IP地址。
可以发现,在交互中,全程都是使用UDP广播。
NAT
网络地址转换NAT。
简单来说就是NAT整个公司、家庭、教室的主机对外部通信时,将私有IP地址转换为公有IP地址。
NAT的缺点:
- 外部无法主动与NAT内部服务器建立连接,因为NAPT转换表没有转换记录
- 转换表的生成与转换操作都会产生性能开销。
- 通信过程中,如果NAT路由器重启了,所有的TCP连接都将被重置。
ICMP
ICMP互联网控制报文协议
ICMP的主要功能包括:确认IP包是否成功送达目标地址,报告发送过程中IP包被废弃的原因和改善网络设置等。
IGMP
IGMP是因特网组管理协议,工作在组播成员和最后一跳路由之间。