IP 在 TCP/IP 参考模型中处于第三层,也就是网络层。
网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
IP(网络层) 和 MAC (数据链路层)之间的区别和关系。
MAC 地址的作用是实现「直连」的两个设备之间通信。
IP 地址的作用是在「没有直连」的两个网络之间进行通信传输。
可以用我们旅行来做类比
旅行的起点和终点 是源IP地址和目的IP地址,旅行行程的起始地址和目的地址始终都不会改变的,所以源IP地址和目标IP地址在传输过程中是不会变化的。
旅行之间的各个景点是 MAC 地址,一个景点即是上一个 MAC的目的 地址,也是下一个景点的源MAC地址,所以源 MAC 地址和目标 MAC 一直在变化。
IP地址(IPv4 地址)由32
位的二进制来表示,采用点分十进制的标记方法,即 32位IP地址,每8个一组,共分为4
组,每组以.
隔开并转换成十进制来表示。
IPV4理论上允许2^32 = 43亿台计算机连接网络。
但实际上 IP地址并不是根据主机台数来配置的,而是根据网卡。
而如服务器、路由器等设备都是有 2 个以上的网卡,也就是它们会有 2 个以上的 IP 地址。
上图中黄色部分为分类号,用以区分 IP 地址类别。
IP 地址分类成了 5 种类型,分别是 A 类、B 类、C 类、D 类、E 类。
每一类都分为网络号和主机号两部分,由于主机号位数不同,所以范围也不同。
为什么要分离网络号和主机号?
因为两台计算机要通讯,首先要判断是否处于同一个广播域内,即网络地址是否相同。
如果网络地址相同,表明接受方在本网络上,那么可以把数据包直接发送到目标主机。
A、B、C 分类地址最大主机个数是如何计算的呢?
最大主机个数,就是要看主机号的位数.
如 C 类地址的主机号占 8 位,那么 C 类地址的最大主机个数:2^8 - 2= 254
A类最大,容纳主机数 16777214台
B类居中,容纳主机数 65534
C类最少,容纳主机数 254
D类、E类没有网络号和主机号,D类用来多播,E类待用
减 2 的原因是在 IP 地址中,有两个 IP 是特殊的,分别是主机号全为 1 和 全为 0 地址。
多播用于将包发送给特定组内的所有主机。
比如老师说:“最后一排的同学,上来做这道数学题。”
老师指定的是最后一排的同学,也就是多播的含义了。
优缺点
优点:能快速的找出网络地址和主机地址,简单明了、选路(基于网络地址)简单。
缺点:不能很好的与现实网络匹配,最大主机数量分配的比较极端,少的太少多的太多。
这种方式不再有分类地址的概念,32 比特的 IP 地址被划分为两部分,前面是网络号,后面是主机号。
表示形式 a.b.c.d/x
,其中 /x
表示前 x 位属于网络号, x 的范围是 0 ~ 32
,这就使得 IP 地址更加具有灵活性。
比如 10.100.122.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号。
还有另一种划分网络号与主机号形式,那就是子网掩码,掩码的意思就是掩盖掉主机号,剩余的就是网络号。
将子网掩码和 IP 地址按位计算 & 运算,就可得到网络号。
子网掩码不仅能划分出网络号和主机号,还有划分子网的作用。
子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。
假设对 C 类地址进行子网划分。
网络地址 192.168.1.0,使用子网掩码 255.255.255.192 对其进行子网划分。
子网掩码尾部 的 192 的二进制表示为 11000000
所以根据子网掩码可知从 8 位主机号中借用 2 位作为子网号。
由于子网网络地址被划分成 2 位,那么子网地址就有 4 个,分别是 00、01、10、11,
每种数据链路的最大传输单元 MTU
都是不相同的,如 FDDI 数据链路 MTU 4352、以太网的 MTU 是 1500 字节等。
每种数据链路的 MTU 之所以不同,是因为每个不同类型的数据链路的使用目的不同。使用目的不同,可承载的 MTU 也就不同。
当 IP 数据包大小大于 MTU 时, IP 数据包就会被分片。
假设发送方发送一个 4000 字节的大数据报,若要传输在以太网链路,则需要把数据报分片成 3 个小数据报进行传输,再交由接收方重组成大数据报。
在分片传输中,一旦某个分片丢失,则会造成整个 IP 数据报作废,所以 TCP 引入了 MSS
也就是在 TCP 层进行分片不由 IP 层分片,那么对于 UDP 我们尽量不要发送一个大于 MTU
的数据报文
IPv4 的地址是 32 位的,大约可以提供 42 亿个地址,但是早在 2011 年 IPv4 地址就已经被分配完了。
IPv6 的地址是 128
位的,分配的地址数量甚至可以保证地球上的每粒沙子都能被分配到一个 IP 地址。
IPv6 除了有更多的地址之外,还有
更好的扩展性:IPv6 可自动配置,即使没有 DHCP 服务器也可以实现自动分配IP地址,真是便捷到即插即用
更好的安全性:IPv6 有应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能
有更好的传输性能:IPv6 包头包首部长度采用固定的值 40
字节,去掉了包头校验和,简化了首部结构,减轻了路由器负荷。
IPv4 地址长度共 32 位,是以每 8 位作为一组,并用点分十进制的表示方式。
IPv6 地址长度是 128 位,是以每 16 位作为一组,每组用冒号 「:」 隔开。
IPv6 类似 IPv4,也是通过 IP 地址的前几位标识 IP 地址的种类。
IPv6 的地址主要有以下类型地址:
40
字节。DNS 域名解析:可以将域名网址自动转换为具体的 IP 地址。
域名的层级关系
DNS 中的域名用句号隔开。如www.server.com
,用句号来划分不同层次。
在域名中,从左到右域名层级依次递增。
根域在最顶层,下一层的com 是顶级域,再下面是权威 server.com
域名的层级关系类似一个树状结构:
根域的DNS服务器信息保存在互联网中所有的DNS服务器中。
这样客户端只有能够找到任意一台DNS服务器都可以找到并访问根域 DNS 服务器,然后一路顺藤摸瓜找到位于下层的某台目标 DNS 服务器
浏览器首先查看自己缓存里面有没有 ,如果没有就询问操作系统的缓存,还没有就检查本机域名解析文件host
,如果还是没有,就会向 DNS 服务器 请求查询。
www.server.com
对应的IP,并发给本地的DNS 服务器,即客户端TCP、IP设置中填写的 DNS 服务器地址。www.server.com
对应的IP,根域名服务器是最高层次的,它不直接用于域名解析,但能知名一条道路www.server.com
区域的权威 DNS 服务器的地址发给 本地DNSMAC 地址是以太网的 MAC 子层使用的地址
IP 地址是TCP/IP 体系结构网际层所使用的地址
ARP 协议属于 TCP/IP 体系结构的网际层,其作用是将已知设备所分配到的 IP 地址通过ARP协议获得设备的 MAC 地址。
ARP 是借助 ARP 请求与 ARP 响应两种类型的包确定 MAC 地址的。
操作系统通常会把第一次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。
不过,MAC 地址的缓存是有一定期限的,超过这个期限,缓存的内容将被清除。
RARP是逆向地址解析协议即已知 MAC地址求 IP 地址。
例如将打印机服务器等小型嵌入式设备接入到网络时就经常会用得到。
通常这需要架设一台 RARP
服务器,在这个服务器上注册设备的 MAC 地址及其 IP 地址。然后再将这个设备接入到网络,接着:
最后,设备就根据从 RARP 服务器所收到的应答信息设置自己的 IP 地址。
在DHCP出现之前之前,如果要正常访问Web服务器,需要该主机手动配置网络的相关配置信息。而手工配置的工作量大,且容易出错。
动态主机配置协议 DHCP 机制允许一台计算机加入新的网络和获取 IP 地址,而不用手工配置。
DHCP 工作方式
DHCP交互过程
DHCP客户端将广播发送DHCP发现报文(DHCP DISCOVER)
封装该报文的IP数据报的源IP地址为0.0.0.0,这是因为主机目前还未分配到IP地址,因此使用该地址代替。
目的IP地址为广播地址255.255.255.255,之所以广播发送,是因为主机现在并不知道网络中有哪几个DHCP服务器。它们的IP地址各是什么
DHCP服务端将广播发送DHCP提供报文(DHCP OFFER)
服务器提供可租约的 IP 地址
子网掩码
IP地址租期
默认网关
DNS服务器
源IP地址:发送DHCP提供报文的DHCP服务器的IP
目的地址:因为目的主机还没分配到IP,所以使用广播地址
DHCP客户端将广播发送DHCP请求报文(DHCP REQUEST)
事务ID
回显配置的参数。
DHCP客户端的MAC地址
接收的租约中的IP地址
提供此租约的DHCP服务器端的IP地址
DHCP服务端将发送DHCP ACK 报文进行响应
一旦客户端收到 DHCP ACK 后,交互便完成了,并且客户端能够在租用期内使用 DHCP 服务器分配的 IP 地址。
如果租约的 DHCP IP 地址快期后,客户端会向服务器发送 DHCP 请求报文:
可以发现,DHCP 交互中,全程都是使用 UDP 广播通信。
可能你会有一些疑问。
DHCP中继代理
如果在交互过程中用的是广播。那 DHCP 服务器和客户端不是在同一个局域网内,路由器又不会转发广播包,那不是每个网络都要配一个 DHCP 服务器?
所以,为了解决这一问题,就出现了 DHCP 中继代理。有了 DHCP 中继代理以后,对不同网段的 IP 地址分配也可以由一个 DHCP 服务器统一进行管理。
因此,DHCP 服务器即使不在同一个链路上也可以实现统一分配和管理IP地址。
ICMP 全称是 Internet Control Message Protocol,也就是互联网控制报文协议。
架构IP网络时需要特别注意两点:
ICMP的主要功能包括:
有了这些功能以后,就可以获得网络是否正常,设置是否有误以及设备有何异常等信息,从而便于进行网络上的问题诊断
在 IP
通信中如果某个 IP
包因为某种原因未能达到目标地址,那么这个具体的原因将由 ICMP 负责通知。
ICMP 类型
ok以上就是对 IP地址 的全部讲解啦,很感谢你能看到这儿。如果有遗漏、错误或者有更加通俗易懂的讲解,欢迎小伙伴私信我,我后期再补充完善。
《图解HTTP》
https://www.xiaolincoding.com