这里写目录标题
- IP的基本认识
- 网络层与数据链路层有什么关系
- IP地址基础知识
- IP 地址的分类
- 什么是A、B、C类地址
- 广播地址用来做什么
- 什么是D、E类广播
- 多播地址用于什么
- IP分类的优点
- IP分类的缺点
- 无分类地址CIDR
- 如何划分网络号和主机号
- 怎么进性子网划分
- 公有 IP 地址与私有 IP 地址
- 公有 IP 地址由谁管理呢
- IP 地址与路由控制
- 环回地址是不会流向网络
- IPv6基本认识
- IPv6的亮点
- IPv6 地址的标识方法
- IPv6 地址的结构
- IP协议相关技术
- DNS相关
- 域名解析的工作流程
- ping的工作原理
- 什么是ping
- Ping 的工作原理
- 断网了,能ping通127.0.0.1吗
- 127.0.0.1、localhost和0.0.0.0的区别
- 常见面试题
- 什么是IP地址?
- IPv4和IPv6有什么区别?
- 什么是子网掩码?
- 解释一下CIDR是什么?
- 什么是公共IP地址和私有IP地址?
- 什么是NAT(网络地址转换)?
- **什么是IP路由?
- 什么是默认网关?
- 什么是ARP(地址解析协议)?
- 什么是IPv4地址的分类?
IP (Internet Protocol) 是计算机网络中用于标识和定位设备的一种协议。它是互联网通信的基础协议之一,用于在网络中传送数据包。
IP 协议的主要功能是提供逻辑上的地址和路由选择。每个连接到互联网的设备(如计算机、路由器等)都被分配一个唯一的 IP 地址,用于在网络中唯一标识这个设备。IP 地址由一串数字表示,通常以IPv4或IPv6的格式呈现。
IPv4(Internet Protocol version 4)是目前广泛使用的 IP 版本,由四个由点分隔的十进制数字组成,每个数字的取值范围是0到255,例如 192.168.0.1。IPv4 地址空间有限,随着互联网的迅速发展,IPv6(Internet Protocol version 6)被提出并逐渐推广使用。IPv6 地址采用128位的格式,由冒号分隔的十六进制数字和字母组成,例如 2001:0db8:85a3:0000:0000:8a2e:0370:7334。
IP 协议还负责将数据包从源设备传输到目标设备。在发送数据时,数据被分割成多个 IP 数据包,每个包包含目标地址、源地址和数据等信息。通过路由选择算法,IP 协议根据目标地址选择合适的路径将数据包传递到目标设备。每个中间设备(如路由器)根据目标地址进行转发,直到数据包到达目标设备。
总结来说,IP 是计算机网络中的一种协议,用于标识和定位设备,以及提供数据包的传输和路由功能。通过 IP 地址,设备可以在网络中唯一标识和寻址。通过 IP 协议,数据可以通过路由选择算法传输到目标设备。
IP的基本认识
IP在TCP/IP参考模型处于第三层,也就是网络层。网络层的主要作用是:实现主机与主机之间的通信,也叫点对点(end to end)通信。
网络层与数据链路层有什么关系
IP 的作用是主机之间通信用的,而 MAC 的作用则是实现「直连」的两个设备之间通信,而 IP 则负责在「没有直连」的两个网络之间进行通信传输。
网络层和数据链路层是计算机网络中的两个关键层次,它们在网络通信中有不同的职责和功能。
-
数据链路层:
- 数据链路层位于OSI模型或TCP/IP模型中的第二层,负责将数据包转换为比特流传输,并在物理介质上进行传输。它处理的是相邻节点之间的通信,主要关注点是如何在物理链路上可靠地传输数据帧。
- 数据链路层提供了帧的传输、帧同步、流量控制、错误检测和纠正等功能。它通过物理地址(如MAC地址)来识别和寻址网络接口。
- 数据链路层的协议包括以太网(Ethernet)、Wi-Fi、PPP(Point-to-Point Protocol)等。
-
网络层:
- 网络层位于OSI模型或TCP/IP模型中的第三层,负责实现节点之间的逻辑通信和数据路由。它处理的是不同网络之间的数据传输,主要关注点是如何将数据从源节点传输到目标节点。
- 网络层提供了数据包的分组、转发、路由选择、地址分配和拥塞控制等功能。它通过网络地址(如IP地址)来识别和寻址主机。
- 网络层的协议包括IP(Internet Protocol)、ICMP(Internet Control Message Protocol)等。
关系:
数据链路层和网络层在计算机网络中是紧密相关的,它们协同工作以实现端到端的数据传输。数据链路层负责将数据帧从一个节点传输到下一个节点,而网络层负责将数据包从源节点传输到目标节点。网络层依赖于数据链路层提供的可靠传输服务,而数据链路层依赖于网络层提供的路径选择和地址寻址服务。
具体而言,网络层在传输数据时将数据分为多个数据包,并在每个数据包中添加源和目标的网络地址。然后,数据链路层将每个数据包封装为帧,并在物理链路上进行传输。在目标节点接收到帧后,数据链路层会将帧拆封,并将数据包传递给网络层。网络层根据目标地址对数据包进行路由选择,并将数据包传递给上层的传输层或应用层。
因此,数据链路层和网络层是协同工作的,它们共同实现了数据在计算机网络中的传输和路由。网络层依赖于数据链路层来提供物理链路上的可靠传输,而数据链路层依赖于网络层来确定数据的目标地址和路由路径。
IP地址基础知识
IP 地址(IPv4 地址)由 32
位正整数来表示,IP 地址在计算机是以二进制的方式处理的。而人类为了方便记忆采用了点分十进制的标记方式,也就是将 32 位 IP 地址以每 8 位为组,共分为 4
组,每组以「.
」隔开,再将每组转换成十进制。
IP 地址的分类
IP 地址分类成了 5 种类型,分别是 A 类、B 类、C 类、D 类、E 类。
什么是A、B、C类地址
其中对于 A、B、C 类主要分为两个部分,分别是网络号和主机号。
- 主机号全为1指定某个网路下的所有主机,用于广播
- 主机号全为0指定某个网络
广播地址用来做什么
广播地址用于在同一个链路中相互连接的主机之间发送数据包
广播地址可以分为本地广播和直接广播两种。
- 在本网络内广播的叫做本地广播。例如网络地址为 192.168.0.0/24 的情况下,广播地址是 192.168.0.255 。因为这个广播地址的 IP 包会被路由器屏蔽,所以不会到达 192.168.0.0/24 以外的其他链路上。
- 在不同网络之间的广播叫做直接广播。例如网络地址为 192.168.0.0/24 的主机向 192.168.1.255/24 的目标地址发送 IP 包。收到这个包的路由器,将数据转发给 192.168.1.0/24,从而使得所有 192.168.1.1~192.168.1.254 的主机都能收到这个包(由于直接广播有一定的安全问题,多数情况下会在路由器上设置为不转发。) 。
什么是D、E类广播
而 D 类和 E 类地址是没有主机号的,所以不可用于主机 IP,D 类常被用于多播,E 类是预留的分类,暂时未使用。
多播地址用于什么
多播用于将包发送给特定组内的所有主机。
IP分类的优点
简单明了、选路(基于网络地址)简单
计算机网络中,IP分类(也称为IP地址分类)是一种将IP地址划分为不同的类别,以便更有效地管理和分配IP地址。IP分类的主要优点包括:
-
简单易于理解: IP分类将IP地址划分为几个不同的类别,每个类别有其固定的网络和主机部分,使得网络管理员和用户能够更容易地理解和识别网络结构。
-
地址分配: IP分类允许将IP地址划分为多个类别,每个类别可以用于不同规模和用途的网络。这使得网络管理员能够更好地分配IP地址,并根据需求进行灵活的地址规划。
-
路由表管理: IP分类使路由器能够更有效地管理路由表。每个IP地址类别都有固定的网络前缀,这样路由器可以更快速地匹配目标地址并选择正确的路由。
-
多子网支持: IP分类为多子网的创建提供了基础。不同的子网可以在同一网络内部运行,这有助于实现更好的资源分配和更精细的网络管理。
-
网络性能: 由于每个IP地址类别都有特定的网络前缀,路由器可以更快地查找目标子网,并进行更高效的数据包转发,从而提高网络性能。
IP分类的缺点
然而,IP分类也存在一些缺点,导致它逐渐被CIDR(无类别域间路由,Classless Inter-Domain Routing)取代:
-
地址浪费: IP分类中的每个类别都有固定的网络前缀长度,导致在某些情况下可能会浪费大量IP地址。这使得IP地址耗尽成为一个问题。
-
地址空间不均衡: 每个IP地址类别的地址空间分配是固定的,这可能导致某些类别的地址空间过剩,而其他类别则可能不足。
-
难以适应变化: IP分类不够灵活,难以适应网络拓扑变化和不同规模的网络需求。CIDR更加灵活,能够更好地应对不断变化的网络环境。
-
路由表大小: IP分类导致路由表大小不可控,特别是在互联网规模的网络中,可能会引发路由表爆炸问题,增加路由器的负担。
综上所述,虽然IP分类在早期的互联网中发挥了重要作用,但随着网络的增长和发展,CIDR取代了传统的IP分类,提供了更灵活和高效的IP地址分配和路由管理方法。
无分类地址CIDR
这种方式不再有分类地址的概念,32 比特的 IP 地址被划分为两部分,前面是网络号,后面是主机号
如何划分网络号和主机号
表示形式 a.b.c.d/x
,其中 /x
表示前 x 位属于网络号, x 的范围是 0 ~ 32
,这就使得 IP 地址更加具有灵活性。比如 10.100.122.2/24,这种地址表示形式就是 CIDR,/24 表示前 24 位是网络号,剩余的 8 位是主机号。
还有另一种划分网络号与主机号形式,那就是子网掩码,掩码的意思就是掩盖掉主机号,剩余的就是网络号。
怎么进性子网划分
在上面我们知道可以通过子网掩码划分出网络号和主机号,那实际上子网掩码还有一个作用,那就是划分子网。子网划分实际上是将主机地址分为两个部分:子网网络地址和子网主机地址。形式如下:
- 未做子网划分的 ip 地址:网络地址+主机地址
- 做子网划分后的 ip 地址:网络地址+(子网网络地址+子网主机地址)
公有 IP 地址与私有 IP 地址
在 A、B、C 分类地址,实际上有分公有 IP 地址和私有 IP 地址。
公有 IP 地址是有个组织统一分配的,假设你要开一个博客网站,那么你就需要去申请购买一个公有 IP,这样全世界的人才能访问。并且公有 IP 地址基本上要在整个互联网范围内保持唯一。
公有 IP 地址由谁管理呢
私有 IP 地址通常是内部的 IT 人员管理,公有 IP 地址是由 ICANN
组织管理,中文叫「互联网名称与数字地址分配机构」。IANA 是 ICANN 的其中一个机构,它负责分配互联网 IP 地址,是按州的方式层层分配。
- ARIN 北美地区
- LACNIC 拉丁美洲和一些加勒比群岛
- RIPE NCC 欧洲、中东和中亚
- AfriNIC 非洲地区
- APNIC 亚太地区
其中,在中国是由 CNNIC 的机构进行管理,它是中国国内唯一指定的全局 IP 地址管理的组织。
IP 地址与路由控制
IP地址的网络地址这一部分是用于进行路由控制。路由控制表中记录着网络地址与下一步应该发送至路由器的地址。在主机和路由器上都会有各自的路由器控制表。在发送 IP 包时,首先要确定 IP 包首部中的目标地址,再从路由控制表中找到与该地址具有相同网络地址的记录,根据该记录将 IP 包转发给相应的下一个路由器。如果路由控制表中存在多条相同网络地址的记录,就选择相同位数最多的网络地址,也就是最长匹配。
环回地址是不会流向网络
环回地址是在同一台计算机上的程序之间进行网络通信时所使用的一个默认地址。计算机使用一个特殊的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相同意义的是一个叫做 localhost
的主机名。使用这个 IP 或主机名时,数据包不会流向网络。
IPv6基本认识
IPv4 的地址是 32 位的,大约可以提供 42 亿个地址,但是早在 2011 年 IPv4 地址就已经被分配完了。但是 IPv6 的地址是 128
位的,这可分配的地址数量是大的惊人,说个段子 **IPv6 可以保证地球上的每粒沙子都能被分配到一个 IP 地址。**但 IPv6 除了有更多的地址之外,还有更好的安全性和扩展性,说简单点就是 IPv6 相比于 IPv4 能带来更好的网络体验。但是因为 IPv4 和 IPv6 不能相互兼容,所以不但要我们电脑、手机之类的设备支持,还需要网络运营商对现有的设备进行升级,所以这可能是 IPv6 普及率比较慢的一个原因。
IPv6的亮点
- IPv6 可自动配置,即使没有 DHCP 服务器也可以实现自动分配IP地址,真是便捷到即插即用啊。
- IPv6 包头包首部长度采用固定的值
40
字节,去掉了包头校验和,简化了首部结构,减轻了路由器负荷,大大提高了传输的性能。 - IPv6 有应对伪造 IP 地址的网络安全功能以及防止线路窃听的功能,大大提升了安全性。
IPv6 地址的标识方法
IPv4 地址长度共 32 位,是以每 8 位作为一组,并用点分十进制的表示方式。
IPv6 地址长度是 128 位,是以每 16 位作为一组,每组用冒号 「:」 隔开。
IPv6 地址的结构
IPv6 的地址主要有以下类型地址:
- 单播地址,用于一对一的通信
- 组播地址,用于一对多的通信
- 任播地址,用于通信最近的节点,最近的节点是由路由协议决定
- 没有广播地址
IP协议相关技术
- DNS 域名解析
- ARP 与 RARP 协议
- DHCP 动态获取 IP 地址
- NAT 网络地址转换
- ICMP 互联网控制报文协议
- IGMP 因特网组管理协议
DNS相关
DNS 可以将域名网址自动转换为具体的 IP 地址,DNS 中的域名都是用句点来分隔的,比如 www.server.com
,这里的句点代表了不同层次之间的界限。在域名中,越靠右的位置表示其层级越高。
域名的层级关系类似一个树状结构:
- 根 DNS 服务器
- 顶级域 DNS 服务器(com)
- 权威 DNS 服务器(server.com)
域名解析的工作流程
浏览器首先看一下自己的缓存里有没有,如果没有就向操作系统的缓存要,还没有就检查本机域名解析文件 hosts
,如果还是没有,就会 DNS 服务器进行查询,查询的过程如下:
- 客户端首先会发出一个 DNS 请求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。
- 本地域名服务器收到客户端的请求后,如果缓存里的表格能找到 www.server.com,则它直接返回 IP 地址。如果没有,本地 DNS 会去问它的根域名服务器:“老大, 能告诉我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条道路。
- 根 DNS 收到来自本地 DNS 的请求后,发现后置是 .com,说:“www.server.com 这个域名归 .com 区域管理”,我给你 .com 顶级域名服务器地址给你,你去问问它吧。”
- 本地 DNS 收到顶级域名服务器的地址后,发起请求问“老二, 你能告诉我 www.server.com 的 IP 地址吗?”
- 顶级域名服务器说:“我给你负责 www.server.com 区域的权威 DNS 服务器的地址,你去问它应该能问到”。
- 本地 DNS 于是转向问权威 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.com 的权威 DNS 服务器,它是域名解析结果的原出处。为啥叫权威呢?就是我的域名我做主。
- 权威 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告诉本地 DNS。
- 本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
ping的工作原理
什么是ping
ping 是应用层命令,ping应用的底层,用的是网络层的ICMP协议,ICMP是利用了IP协议进行消息的传输。。
Ping 是计算机网络中常用的诊断工具,用于测试网络连接和测量网络延迟。它通过发送 ICMP(Internet Control Message Protocol)回显请求报文,并接收对应的回显应答报文来实现。
Ping 的工作原理
-
发送请求:
- 客户端(发送方)向目标主机发送一个 ICMP 回显请求报文(Echo Request)。
- ICMP 回显请求报文中包含一个随机的标识符和序列号,以及一些其他的控制字段。
-
接收回应:
- 目标主机(接收方)收到 ICMP 回显请求报文后,会返回一个 ICMP 回显应答报文(Echo Reply)。
- 回应报文中包含与请求报文相同的标识符和序列号,以及其他的控制字段。
-
计算往返时间(Round-Trip Time):
- 客户端收到 ICMP 回显应答报文后,会计算往返时间(RTT),即从发送请求到接收回应的时间差。
- RTT 可以用来测量网络连接的延迟,即从客户端到目标主机的往返时间。
-
重复发送和统计信息:
- Ping 工具通常会重复发送一定数量的 ICMP 回显请求,并对每个请求的往返时间进行统计,如最小值、最大值和平均值等。
- 这样可以更准确地评估网络的状况和性能。
需要注意的是,Ping 工具使用 ICMP 协议来进行测试,而 ICMP 报文并不属于传输层的 TCP 或 UDP 协议。因此,Ping 只能测试基于 IP 协议的网络连接,而不能测试特定端口或应用层协议的可用性。
另外,由于 ICMP 报文的优先级较低,有些网络设备或防火墙可能会限制或过滤 ICMP 报文,导致 Ping 不可用或不准确。因此,在使用 Ping 进行网络测试时,需要考虑网络环境和设备的限制。
断网了,能ping通127.0.0.1吗
当网络断开时,通常情况下是无法进行网络通信的,包括无法进行 Ping 测试。然而,在某些情况下,尽管网络连接断开,仍然可以通过本地回环地址(loopback address)127.0.0.1 进行 Ping 测试。
本地回环地址是网络协议栈中的一部分,专门用于在本地主机上进行测试和通信。它指向本地主机自身,通过回环接口(loopback interface)进行通信,而不经过物理网络接口。
因此,即使网络断开,本地主机仍然可以通过发送 ICMP 回显请求到 127.0.0.1,然后接收回显应答来进行 Ping 测试。这是因为 Ping 测试在本地主机上进行,不需要经过网络接口。
需要注意的是,尽管可以 Ping 通 127.0.0.1,但这并不意味着网络连接正常。Ping 通 127.0.0.1 只是表示本地主机的网络协议栈正常工作,而不涉及物理网络连接。如果无法 Ping 通其他 IP 地址,可能是由于物理网络连接故障、路由器配置问题或其他网络故障引起的。在这种情况下,需要进一步检查和排除网络故障。
127.0.0.1、localhost和0.0.0.0的区别
127.0.0.1、localhost 和 0.0.0.0 都是与本地主机相关的 IP 地址,它们有一些区别和不同的使用场景。
-
127.0.0.1:
- 127.0.0.1 是本地回环地址(loopback address),指向本地主机自身。它是 IPv4 的回环地址之一。
- 当你在本地主机上访问 127.0.0.1 时,实际上是通过回环接口在本地主机内部进行通信,而不经过物理网络接口。
- 它常被用于测试和调试本地网络服务或应用程序,例如通过访问本地的 Web 服务器进行测试。
- 127.0.0.1 是一个固定的地址,对应于本地主机的回环接口。
-
localhost:
- localhost 是一个主机名,在大多数系统中都映射到 127.0.0.1,用于表示本地主机。
- 当你在本地主机上使用 localhost 访问时,实际上是在访问 127.0.0.1。
- localhost 可以用于在本地主机上进行网络测试和通信。
-
0.0.0.0:
- 0.0.0.0 是一个特殊的 IP 地址,通常用作通配符地址(wildcard address)或未指定地址(unspecified address)。
- 当一个服务监听在 0.0.0.0 上时,表示该服务会监听在所有可用的网络接口上,即同时监听本地主机的所有 IP 地址。
- 0.0.0.0 通常用于服务器配置中,表示该服务会接受来自任何网络接口的连接。
总结来说:
- 127.0.0.1 是本地主机的回环地址,用于本地主机内部的测试和通信。
- localhost 是一个主机名,通常映射到 127.0.0.1,用于表示本地主机。
- 0.0.0.0 是一个特殊的 IP 地址,用作通配符地址,表示服务会监听所有可用的网络接口。
常见面试题
当涉及计算机网络中的IP(Internet Protocol)时,面试中可能会涉及以下一些常见问题:
什么是IP地址?
- IP地址是一种用于在计算机网络中标识和定位设备的数字标识。它分为IPv4和IPv6两个版本,用于唯一地标识网络上的设备。
IPv4和IPv6有什么区别?
- IPv4使用32位地址,而IPv6使用128位地址,提供了更大的地址空间。IPv6设计旨在解决IPv4中地址耗尽的问题。
什么是子网掩码?
- 子网掩码是一个32位的二进制数字,用于指示IP地址中哪些部分是网络部分,哪些部分是主机部分。它与IP地址结合使用来创建子网。
解释一下CIDR是什么?
- CIDR(无类别域间路由)是一种更灵活的IP地址分配方法,允许将IP地址分成更小的子网,而不是受限于传统的IP分类。它使用带有前缀长度的IP地址表示,例如:192.168.1.0/24。
什么是公共IP地址和私有IP地址?
- 公共IP地址是在全球范围内唯一标识设备的IP地址,用于在互联网上通信。私有IP地址是在局域网内使用的地址,不能直接从公共互联网访问。
什么是NAT(网络地址转换)?
- NAT是一种技术,允许在私有网络和公共网络之间转换IP地址。它允许多个设备共享单个公共IP地址,通过维护一个地址映射表来实现。
**什么是IP路由?
- IP路由是将数据包从源主机传输到目标主机的过程。路由器使用路由表来确定数据包的下一个跳,以便将其沿正确的路径转发。
什么是默认网关?
- 默认网关是在局域网中连接到其他网络(通常是互联网)的设备。它是数据包离开局域网进入其他网络的出口点。
什么是ARP(地址解析协议)?
- ARP是用于将IP地址解析为物理MAC地址的协议,以便在局域网上发送数据包。
什么是IPv4地址的分类?
- IPv4地址根据第一个字节(8位)的范围分为A、B、C、D和E类。每个类别有不同的网络和主机部分分配。