参考:5.1 IP 基础知识全家桶 | 小林coding
IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。
网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
什么是 IP 地址?IP 寻址如何工作?
IP 地址是分配给连入互联网的设备或域的唯一标识符。每个 IP 地址都是一个字符序列,如 192.168.1.1。DNS 解析器将人类可读的域名转换为 IP 地址,这样用户便能访问网站,而无需记住这种复杂的字符序列。每个 IP 数据包都同时包含发送数据包的设备或域的 IP 地址以及预期接收方的 IP 地址,这与一封邮件中同时包含目的地地址和回邮地址一样。
IP(网络层) 和 MAC (数据链路层)之间的区别和关系。
源IP地址和目标IP地址在传输过程中是不会变化的(前提:没有使用 NAT 网络),只有源 MAC 地址和目标 MAC 一直在变化。
IP 地址分类
分别是 A 类、B 类、C 类、D 类、E 类。
而 D 类和 E 类地址是没有主机号的,所以不可用于主机 IP,D 类常被用于多播,E 类是预留的分类,暂时未使用。
IP分类的优点
不管是路由器还是主机解析到一个 IP 地址时候,我们判断其 IP 地址的首位是否为 0,为 0 则为 A 类地址,那么就能很快的找出网络地址和主机地址。
为什么要分离网络号和主机号?
因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机。
路由器寻址工作中,也就是通过这样的方式来找到对应的网络号的,进而把数据包转发给对应的网络内。
公有 IP 地址与私有 IP 地址
在 A、B、C 分类地址,实际上有分公有 IP 地址和私有 IP 地址。
平时我们办公室、家里、学校用的 IP 地址,一般都是私有 IP 地址。因为这些地址允许组织内部的 IT 人员自己管理、自己分配,而且可以重复。因此,你学校的某个私有 IP 地址和我学校的可以是一样的。
公有 IP 地址由谁管理呢?
私有 IP 地址通常是内部的 IT 人员管理,公有 IP 地址是由 ICANN
组织管理,中文叫「互联网名称与数字地址分配机构」。
IP 地址与路由控制
IP地址的网络地址这一部分是用于进行路由控制。
路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在主机和路由器上都会有各自的路由器控制表。
在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。
下面以下图的网络链路作为例子说明:
ARP和RARP
主机的路由表中可以找到下一跳的 IP 地址,所以可以通过 ARP 协议,求得下一跳的 MAC 地址。
ARP 协议是已知 IP 地址求 MAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 IP 地址。例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到。
DHCP
DHCP 在生活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配 IP 信息繁琐的过程。
NAT
IPv4 的地址是非常紧缺的, IPv4 地址依然有被耗尽的危险。于是,提出了一种网络地址转换 NAT 的方法,再次缓解了 IPv4 地址耗尽的问题。
简单的来说 NAT 就是同个公司、家庭、教室内的主机对外部通信时,把私有 IP 地址转换成公有 IP 地址。
可以把 IP 地址 + 端口号一起进行转换。
这样,就用一个全球 IP 地址就可以了,这种转换技术就叫网络地址与端口转换 NAPT。
ICMP
ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议。
ICMP
主要的功能包括:确认 IP 包是否成功送达目标地址、报告发送过程中 IP 包被废弃的原因和改善网络设置等。
在 IP
通信中如果某个 IP
包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知。
ICMP类型
ICMP 大致可以分为两大类:
- 一类是用于诊断的查询消息,也就是「查询报文类型」
- 另一类是通知出错原因的错误消息,也就是「差错报文类型」
IGMP
在前面我们知道了组播地址,也就是 D 类地址,既然是组播,那就说明是只有一组的主机能收到数据包,不在一组的主机不能收到数组包,怎么管理是否是在一组呢?那么,就需要 IGMP
协议了。