IP 基础知识全家桶,45 张图一套带走


前言

前段时刻,有读者希望我写一篇关于 IP 分类地址、子网区别等的文章,他反馈常常混杂,摸不着头脑。

那么,说来就来!而且要盘就盘全一点,顺便挑战下小林的图解功力,所以就来} o ^ M Y E dIP 基础知识全家桶

吃完这个 IP 基础知识全家桶全家桶,M W * o v N = f h包你撑着肚子喊出:“真香!

不多说,直接上菜,共分为三道菜

  • 首要是前菜 「 IP 根本认识 」
  • 其次是8 h : ^ T % [ = n主菜 「IP 地址的基础知识」
  • 最终是点心 「IP 协议相关技能」
IP 基础知识全家桶,45 张图一套带走
IP 基础知识全家桶

为啥要比方成菜?因为小林是菜狗(押韵不?)


1 d ^ W _ ! r M

前菜 —— IP 根本认识

IP 在 TCP/IP 参考y t k模型中处于第三层,也便是网络层

网络层的首要效果是:完成主机与主机之间的通讯,也叫点对点(end to end)通讯。

IP 基础知识全家桶,45 张图一套带走
IP 的效果

网络层与数据链路层有什么联系呢?

有的小伙伴分不清 IP(网络层) 和 MAC (数据链路层)t M D = C * 之间的差异和[ r Q u I联系。

其实很简略区别,在上面咱们知道 IP 的效果是主机之间通讯@ 9 e _ V b M I中的,而 MAC 的效果则是完成「直连」的两个设备之间通讯,而 IP 则担任在「没有直连」的两个网络之间进行通讯传输。

举个日子的栗子,小林要去一个很远的地方游览,拟定了一] 9 N个行程表,其间需先后乘坐飞机、地铁、公交车才干抵达意图地,为此J h ( . i X q小林需求买飞机票,地铁票等。

飞机票和地铁票都是去往特定的地址的,每张票只能够在某一限定区间内移动,此处的「区A u $ | y } V n间内」就如同通讯网络中数据链路。

在区间内s K F移动相当于数据链路层,充任区间内两个节点传输的功用,区间内的起点比方源 MAC 地址,方针地址比方意图 MAC 地址。

p I % b !个旅游行程表就相当于网络层,g W ! ^ s | c Q 充任远程定位的功用,行程的开始比方源 IP,行程的终点比方意图 IP 地址。

IP 基础知识全家桶,45 张图一套带走
IP 的效果与 MAC 的效果

假如小林只有行程表而没有车票,就? i w t 1 @ P无法搭乘交通工具抵达意图地。相反,假如除了车票而没有行程表,恐怕也很难抵达意图地。因为小林不知道该坐什么车,也不知道该在哪里换乘。

因而,只有两者兼备,既有某个区间的车票又有整个游览的行程表,才干保证抵达意图地。与此相似,核算机网络中也需求「数据链路层」和「网络层」这个分层才干完成向F d D z X !最终方针地址的通讯。

还有重要一点,游览途b 3 L t m中咱们尽管不断改变了交通工具,可是游览行程的开始地址和意图地址始终都没变。其实,在网络中数据包传输中也是如此,源IP地址和方针IP地址在传输进程中是不会改变k _ # G 1 ~ T 8 x的,只有源 MAC 地址和方针 MAC 一直在X = Z a : m D改变。


主菜 —— IP 地址的基础知识

在 TCP/IP 网络通讯时,为了保证能正常通讯,每个设备都需求装备正确的 IP 地址,不然无法完成正常的通讯。

IP 地址) l U j(IPv4 地址)由 32l ) r j 位正整数来表明,IP 地址在核算机是以二进制的办法处理的。

而人类为了方便回忆选用了点分十进制的标记办法,也便是x W g ` n | ( M S将 32 位 IP 地址以每 8 位为组,– } d共分为 4 组,每组以「.」离隔,再将每组转化成十t g | x进制。

IP 基础知识全家桶,45 张图一套带走
点分十进制

那么,IP 地址最大值也便是

IP 基础知识全家桶,45 张图一套带走

也就说,最大允许 43 亿台核算机衔接到网络。

实践上,IP 地址并不是依据主机台数来装备的,而是以网卡。像服务器@ % % l 、路由器等设备都是有 2 个以上的网卡,也便是它们会有 2 个以上的 IP 地址。

IP 基础知识全家桶,45 张图一套带走
每块网卡能够分配一个以上的IP地址

因而,让 43 亿台核算机悉数连网其实是不或许的,? @ # K Q 4 0 3更何况 IP 地址是由「网络标识」和「主机标识」这两个部分组成= [ P W u的,所以实践能够衔接到网络的核算机个数更是少了很多e K p / & y 8

或许有的小伙伴提出了疑问,现在不仅电脑配了 IP, 手机、IPad 等电子设备都配了 IP 呀,照理来说必定会超越 43 亿啦,那是怎~ Q l样能够支撑这么多 IP 的呢?

因为会依据一种能够替换 IPQ % 5 ! + { 地址的技能 NAT,使得 M & g Z l可衔接核算机数超越 43 亿台。 NAT 技能后续会进一步评论和阐明。

IP 地址的分类

i . O 2 G =联网诞生之初,IP 地址显得很富余,所以核算机科学家们设计了分类地址

IP 地址分类成了 5 品种型,分别是 A 类、B 类、C 类、D 类、E 类。

IP 基础知识全家桶,45 张图一套带走
IP 地址分类

上图中黄色部分为分类号,用以区别 IP 地址类别。

什么是 A、+ l X [B、C 类地址?

其间关于 A、B、C 类首要分为两个部分,分别是网络号和主机号。这很好理解,比方小林是 A 小区 1 栋 101 号,你是 B 小区 1 栋 101 号。

咱们能够用下面这个表格, 就能很清楚的知道 A、B、C 分类对应的地址规划、最大主机个数。

IP 基础知识全家桶,45 张图一套带走

A、B、C 分类地址最大主机个数是怎样核算的呢?

最大主机个数,便是要看主机号的位数,如 C 类地址的主机号占 8 位,那么E a O k t F C 类地址的最大主机个数:

IP 基础知识全家桶,45 张图一套带走

为什么要减 2 呢?

因为在 IP 地址中,有两个 IP 是特别的,分别是主机号全为 1 和 全 V E ; B为 0 地址。

IP 基础知识全家桶,45 张图一套带走
  • 主机号全为 1 指定某个网络下的一切主机,用于播送
  • 主机号A 4 P ?全为 0 指定某个网络

因而,在分配进程中,应该去掉这Y k X = k 两种状况。

播送地址用于什么?

播送地址用于在z W P 6 8 n Q同一个链路中相互衔接的主机之间发送数据包l ` & C C N @ . :

校园班级中就有播送的比方,在预备上课的时分,一般班长会喊:“上课, 全体起立!”@ X O – O – A 6,班里的同学听到这句话是不是悉数都站起来了?这个句话就有播送的含义。

当主机号全为 1 时,就表明该网络的播送地址。例如把 172.20.0.0/16 用二进制表明& K s . | # 7 k =如下:

10101100.00010100.00000000.00000000

将这个地址的主机[ 4 n |部分悉数改为 1,则形成播送地址:

1n B i ?0101100.00010100.11111111.11111111

再将这个地址用十进制表明,则为 172.20.255.255

播送地址能够分为本地播送和直接播送两种。

  • 在本网络内播送的叫做本地播送。例如网络地址, 9 l % g , # . D为 192.168.0.0/24 的状况下,播送地址是 192.168.0.255 。因为4 g * G这个播送地y t Q ! 6址的 IP 包会被路由器屏蔽,所以不会抵达 192.168.0.0/24 以外的其他链路上。
  • 在不同网络1 Q l ? A S e 6 R之间的播J ) ! 2 ? R 5送叫做直接播送I 6 } Q /。例如网络地址为 192.168.0.0/24 的主机向 192.168.1.255/24 的方针地址发送 IP 包。收到这个包的路由器,将数据转发给 192.168.1.0/24,从而使得一切 192.168.1.1~192.168.1.254 的主机都能收到这个包(因为直接播送有必定的安全问题,大都状况下会在路由器上设置为不转发。) 。
IP 基础知识全家桶,45 张图一套带走
本地播送与直接播送

什么是 D、E 类地址?

而 D 类和 E 类地址是没有主机号的,z 4 o n S {所以不可用于主机 IP,D 类常被用于多播,E 类是预留的分类,暂时未运用。

IP 基础知识全家桶,45 张图一套带走

多播地址用于什么?

多播用于将包发送给特定组内的一切主机。W F ; C p U

仍是举班( w C 9 s h级的栗子,教师说:“最终一排的同学,上来做这道数学题。”,教师是指定的是最终一排的同学,也便是多播的含义了。

因为播送无法穿透路由,若想给其他网段发送相同的包,就能够运用能够穿透路由z 9 q的多播。

IP 基础知识全家桶,45 张图一套带走
单播、播送、多播通讯

多播运用的 D 类地址,其前四位是 1110 就表明是多播地址,而剩下3 6 R的 28 位是多播的组编号。

从 224.0.0.0 ~ 239.255.255.W 9 O )255 都是多播的可用规划,其区Z Z % y别为以下三类:

  • 224.0.0.0 ~ 224.0.0.255 为预留的组播地址,只能局域网中,路由器是不会进行转发的。
  • 224.0.1.0 ~ 238.255.255.255 为Y 2 g用户可用的组播地R ` j 6 ; l G I址,能够用[ L v F d于 Internetf v H L 6 – C ) 上。
  • 239.0.0.0 ~ 239.255.255.255 为本地办理组播地址,可供内部网在内部运用,仅在特定的本e * I v S地规划内有用。

IP 分类的长处

不管是路由器仍是主机解– 2 } ` r f 0析到一个 IP 地址时分,3 z o咱们判别其 IP 地址的首位是否为 0,为 0 则为 A 类地址,那么就能很快的找出网络地址和主机地址。

其他分类判别办法参考如下图:

IP 基础知识全家桶,45 张图一套带走
IP 分类判别

所以,这种2 # l 1分类地址的长处便是简略明了、选路(基于网络地址)简略

IP 分类的缺点

缺点一

同一网络下没6 C G [有地址层次,比方一个公司里用了 B 类地址,可是或许需求依据生产环境、测验环境、开发环境来区别地址层次7 z [ T ] ? =,而这种 IP 分类是没有地址层V l u V g ` I W次区别的功用,所以这就缺少地址的灵活2 S 9 ; X

缺点二

A、B、C类有个尴尬境况,便是不能很好的与现实网络匹配

  • C 类地址能包含的最大主机数量实在太少了,只有 254 个,估计一个网吧都不够用。
  • 而 B 类地址能包含的X r Y M最大主机数量又太多了,6 万多台机器放在一个网络下面,一般的企业根本达不到这个规划,闲着的地址便是糟蹋。

这两个缺点,都能够在 CIDR 无分类地址处理。

无分类地址 CIDR

正因为 IP 分类存在许多缺点,一切后面提出了无分类地址的计划,即 CIDR

这种办法不再有分; W c v ,类地址的概念,32 比特的 IPi Z U o F + , p ^ 地址被区别为两部分,前面是网络号,后面是主机号

怎样区别网络号和主机号的呢?

表明形式 a.b.c.d/x,其间 /x 表明前 x 位归于网络号, x 的规划是 0 ~ 32,这G g 8 e + T m T ;就使得 IP 地址愈加具有灵活性。

比方 10.100.122.2/24,这种地址表明形式便是 CIDR,/24 表明d d W M A $前 24 位是网络号,剩下的 8 位是主机号。

IP 基础知识全家桶,45 张图一套带走

还有另一种区别网络号与主机号形式R F M , .,那便是子网掩码,掩码的意思便是掩盖掉主机号,剩下的便是网络号。

将子网掩码和 IP 地址按位核算 AND,就可得到网络号。

IP 基础知识全家桶,45 张图一套带走

为什么要别离网络号和主机号?

因为两d S f Y t }台核算机要通讯,首要要判别是否处于同一个播送域内,即网络地址是否相同。假如网络地址相同,表明接受方在本网络上,那么能够把数据包直接发送到方针S B ]主机,

路由器寻址作业中,也便是经过这样的办法来找到对应的网络号的,进而把数据包转发给对应的网络内。

IP 基础知识全家桶,45 张图一套带走
IP地址的网络号

怎样进行子网区别?

在上面咱们知道能够经过子网掩码区别出网络号和主机号,那实践上子网掩码还有一个效果,那便是区别子网

子网区别实践上是将主机地址分为两个部分:子网网络地址和子网主机地址。形式如下:

IP 基础知识全家桶,45 张图一套带走
  • 未做子网区别的 ip 地址:网络地址+主机地址
  • 做子网区别后的 ip 地址:网络地址+(子网网络地址+子网主机地址)

假定p u ~ G n : Z对 C 类地址进行子网区别,m Q d d ` ]网络地址 1+ g S92.168.1.0,运用子网掩码 255.255.255.192 对其进行子网j T a u c区别。

C 类地址中前 24 位 是网络号,最终 8 位是主机号,依据子网掩码可知从 8 位主机号中借用 2 位作为子网号

IP 基础知识全家桶,45 张图一套带走

因为子网网络地址被区别红 2 位,那么子网地址就有 4 个,分别是 00、01、10、11,详细区别如下图:

IP 基础知识全家桶,45 张图一套带走

区别后的 4 个子网如下表格:

IP 基础知识全家桶,45 张图一套带走

公有 IP 地址与私有 IP 地址

在 A、B、C 分类地址,实践上有分公有 IP 地址和 私有 IP 地址。

IP 基础知识全家桶,45 张图一套带走

平时咱们办公室、家里、校园用的 IP 地址,一般都是私有 IP 地址。因为这些地址允许安排内部的 IT 人员自己办理、自己分` p s # ]配,而且能够重复。因而,你校园的某个私有 IP 地址和我校园的能够是相同的。

就像每个小区都有自己的楼编号和门牌号,你小区家能够叫 1 栋 101 号,我小区家也能够叫 1 栋 101,没有任何问题。但一旦出了小区,就需求带上中山路 666 号(公网 IP 地址),是国家一致分配的,不能两个小区都叫中山路 666Q s 8 % v C

所以,公有 IP 地址是有个安排一 ( t q ] k致分配的,假定你要开一个博客网站,那么你就需求去申请购买n s I + % ; I .一个公有 IP,这样全世界的人才干拜访。而且公有 IP 地址根本上要在整个互联网规划内保持仅有。

IP 基础知识全家桶,45 张图一套带走
公有 IP 地址与私有 IP 地址

公有 IP 地址由) / % B l 2 $ U Q谁办理| h L P ` [ L Z c呢?

私有 IP 地址一般是内部的 IT 人员W ; i P g v ] $ _值办理,公有 IP 地址是由 ICANN 安排办理,中文叫「互联网称号与数字地址分配机构」。

IANA 是 ICANN 的其间一个机构,L m P , F ? +它担任分配互联网 IP 地址,是按州的办法层层分z % H ` |配。

IP 基础知识全家桶,45 张图一套带走
  • ARIN 北美区域
  • LACNIC 拉丁美洲和一些加勒比群岛
  • RIPE NCC 欧洲、中东和中亚
  • AfriNIC 非洲区域
  • APNIC 亚太区域

其间,在我国是由 CNNIC 的机构进行办理,它是我国国内仅有指定的全局 IP 地址办理的安排。

IP 地址与路由操控

IP地址的网络地址这一部分是用于进行路m B 5 2 l U ( {由操控。

路由操控表中记载着网络地址与下一步应该发送至路由器的地址。在主机和路由器上都会有各自的路由器操控表。

在发送 IP 包时,首要要确认 IP 包首部中的方针地址,再从路由操控表中找K i W % , u到与该地址具有相同网络地址的记载,依据该记/ ] c R 2载将 IP 包转发B P A ) d a & _ E给相应的下一个路由器。假如路由操控表中存在m . = ! U I l多条相同网络地址的记载,就选择相同位数最多的网络地址,也便是最长匹配。

下面以下图 8 ?的网络链路作为比方阐明D : & m I

IP 基础知识全家桶,45 张图一套带走
IP 地址与路^ . B 8 ; 0 0由操控
  1. 主机 A 要发送一个 IP 包,其源地址是 10.1.1.30 和方针地址是 10.1.2.10,因为没有在主机 A 的路由表找到与方针地址 10.1.26 & k ^ C.10 的网络地址,所以把包被转发到默许路由(路由器 1
  2. 路由器 1 收到 IPu : b r S m G + 包后,也在E n . Z路由器 1 的路由表匹配与方针地址相] a ` n L G 3 ) 同的e d F Y ! Y IB a r W络地* J 6 X O ) )址记载,发现匹配到了,所以就把 IP 数y q a w O据包转发到了 10.1B X r Y ` i.0.2 这台路由器 2
  3. 路由器 2 收到后,相同对比本身的路由表,发现匹配到了,所以把 IP 包从路由器 210.1.2.1 这个接口出去,最终经过交换机把 IP 数据包转发到了方针主机

环回地址是不会流向网络

环回地址是在同一台核R 7 H算机上的程序之间进行网络通讯时所运用的一个默许地址。

核算机运用一个特别的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相G D P同含义的是一个叫做 localhost 的主机名。运用这个 IP 或主机名时,数据包不会流向网络。

IP 分片与重组

每种* d l o f } 8数据链路的最大传输单元 MTU 都是不相同的t ^ V q O _,如 FDDI 数据链路 MTU 4352、以太网的 MTU 是 1500 字r l m Z J z节等。

每种数J P L * G k h l –据链路的 MTU 之所以不同,是因为每个不同类型的数据链路的运用意图不同。运用意图不同,可承载的 MTU 也就不同。

其间,咱们最常见数据链路是以太网,它的 MTU 是 1500 字节。

: B `么当 IP 数据包巨细大于 MTU 时, IP 数据包就会被分片l 1 #

经过分片之后的 IP 数据报在被重组的时分,只能由方针主机进行,路由器是不会进行重组的。

假定发送方I 2 Q f g m E发送一个 4000 字节的大数据报,若要传输0 / ? ! { 在以太网链路,则需求把数据报分片成 3 个小数据报进行传输,再交由接收方重组成大数据报。

IP 基础知识全家桶,45 张图一套带走
分片与重组

在分片传输中,一旦某个分片丢失,则会形成整个 IP 数据报作废,所以 TCP 引入了 MSS 也便是在 TCP 层进行分片不由 IP : 6 I 0 : f $P 层分片,那么关于 UDP 咱们尽量不要发送n z i ! Z , x , 9一个大于 MTU 的数据报文。

IPv6 根本认识

IPv4 的地址是 32 位b { d / K B N J的,大约能够提供 42 亿个I / 0 u : B 3 p @ n A @ 9 ! I址,可是早在 2011 年 IPv4 地址就现已被分配完了。

可是 IPv6 的地址是 128 位的,这可分配的地址数量是大的惊人,说个段子 IPv6 能够保证地球上的每粒沙子都能被分配到一个 I_ 9 ^ – UP 地址。

但 IPv| K i ! 8 @ f 76 除了有更多的地址之外,r o 1 k A 6 [ v还有更好的安全性和扩展性,说简略点便是 IPv6 比较于 IPv4 能带来更好的网络体验。

可是因为 IPv4 和 IPv6 不能相互兼容,所以不但要咱F Q ( t们电脑、手机之类的设备支撑,还需求网络运营商对现有的设备进行晋级,所以这或许是 IPv6 普及率比较慢的一个原因。f = 0

IPv6 的亮点^ [ f h N L H 7 %

IPv6 不仅仅仅仅可分配的地址变多了,他还有十分多的亮点。

  • IPv6 可自动装备,即使没有 DHCP 服务器也能够完成自动分配` j K y k m bIP地址,真是快捷到即插即用2 A : j啊。
  • IPv6 包头包首部长度选用固定的值 40 字节,去掉了包0 u V ` 1 1 L 1头校U 3 4 4 M 7 c {验和,简Z L I & t ^ c化了首部结构,减轻了路由器负荷,大大提高了传输的功用
  • IPv6 有应对假造 IP 地址的网络安全功用以及防止线路偷听的功用,大大提升了安全性
  • (由你发现更多的* S I W亮点)

IPv6 地址的标识办法

IPv4 地址长度共 32 位,是以每 8 位作为一l | D Y U = t组,并用点分十进制的表r + ] g明办法。

IPvP A & 6 y l ~ e n6 地址长度是 128 位,是以每 16 位作为~ * a ( s j A W一组,每组用冒号 「:」 离7 i f隔。

IP 基础知识全家桶,45 张图一套带走
IPv6 地址表明办法

假如呈5 l ] ^ a : E现接连的 0 时还_ p f N能够将这些 0 省掉,并用两个冒号 「::」离隔。可是,一个 IP 地址中只允许呈现一次两个接连的冒i 1 I号。

IP 基础知识全家桶,45 张图一套带走
Pv6 地址缺省表明方

IPv6 地址的结构

IPv6 相似 IPv4,也是经过 IP 地址的前几位标识 I8 # | c tP 地址的品种。

IPv6 的地址首要E 6 N S – 4 [ C =有一下类q . % E 9型地址:

  • 单播地址,用于一对一的通讯
  • 组播地址,3 m 4 P用于一对多的通讯
  • 任播地址,用于通讯最近的节点,最近的节点是由路由协议决定
  • 没有播送地t y 7 =
IP 基础知识全家桶,45 张图一套带走
IPv6地址结构

IPv6 单播地址类型

关于一对一通讯的 IPv6 地址,首要区别了三类单播地址,每类地址# W b的有用规划都不同Q o 4 V [ 5 x n

  • 在同一链路单播通讯,不经过路由器,能够运用链路本地单播地址,IPv4 没有此类型
  • 在内网里单播通讯,能够运用仅有本地地址,相当于 IPv4 的私有 IP
  • 在互联网通讯,能够运用全局单播地址$ T { T – 2 x Q相当于 IPv4 的公有 IP
IP 基础知识全家桶,45 张图一套带走
IPb d } Nv6 中的单G * 5 K 8播通讯

IPv4 首部与 IPv6 首部

IPv4 首部与 IPv6 首部的差异如下图:

IP 基础知识全家桶,45 张图一套带走
IPv4 首部与 IPv6 首部的差异

IPv6 比较 IPv4 的首部改进:

  • 取消了首部校验和字段。 因为在数据链路层和传输层都会校验,因而 IPv6 直接取消了 IP 的校验。
  • 取消了分片/e g z J重新拼装相关字段。 分片与重组是耗时的进程, w U BIPv6 不允许在中心路由器进行分片与重组,这种操作只能在源与方针主机,这将大大提高了路由器转发的速度。` 0 u c | . 4
  • 取消选项字段。 选项字段不再是规范 IP 首部的一部分了,但它并没有消c d y S P P | s 3失,而是或许呈现在 IPv6 首部中的「下一个首部」指出的方位上。删去该选项字段是的 IPv6 的首部成为固定长度的 4Q * f $0 字节。

点心 —— IP 协议相关技能

跟 IP 协议相关的技能也不少,接下来说说与 IP 协议相关的重要且} P P & h Q ~常见的技能。

  • DNS 域名解析
  • ARP 与 RARP 协议
  • DHCP 动态获取 IP 地址X ) : 4
  • NAT 网络地址转化
  • ICMP 互联网操控报文协议
  • IGMP 因特网组办理协

DNS

咱们在上网的时分,一般运用的办法域名,而不是 IP 地址,因为域名方便人类回忆。

那么完成这一技能的便是 DK { $ A + RNS 域名解析,DNS 能够将域名网址自动转化为详细的 IP 地址。

域名的层级联系

DNS 中的域名都是用句点来分隔的,比方 www.server.com,这儿的句 d y点代表了不同层次之间的界限

在域名中,越靠右的方位表明其层级越高

究竟域名是外国人发明,所以思维和我国人相反,比方说一个城市地址的时分,外国喜爱从小到大的办法次序说起(如 XX 大街 Xi * ? k _ 6 ] X zX 区 XX 市 XX 省),而我国则喜! ! N / : $爱从大到小的次序(如 Xw d ^ mX 省 XXc D * v O w 9 & 市 XX 区 XX 大街)。

根域是在最顶层,它的下一层便是 com 尖端域,再下面是 server.com。

所以域名的m ] n + :层级联系相似一个树状结构:

  • 根 DNS 服务器
  • 尖端域 DNS 服务器(P ! % 8 x 6 Fcom)
  • 威望 DNS 服务器x x a % 3 ; P(server.com)
IP 基础知识全家桶,45 张图一套带走
DNS 树状结构

根域的 DNS 服务器信息[ W d保存在互联网中| 5 V 1 q n 7 p一切的 DNS 服务器中。这样一来,Z – s &任何 DNSi Y R F 3 h % 服务器就都能够找到并拜访根域 DNw ? ( 0S 服务器了。

因而,客户端只需能够找到恣意一台 DNS{ M + 7 C W C P . 服务器,就能够经过它找到根域 DNS 服务器,然后再一路顺藤摸瓜找到坐落基层的某台方针 DNS 服务器。

域名解析的作业流程

浏览器首要看一下自己m y Q { + Z的缓存里有没有,假如没有K * S就向操作系统的缓存要,还没有就检查本机域名解析文件 hostsW [ M [假如仍是没有,就会 DNS 服务器进行查询,查询的进程如下:

  1. 客户端首要会宣布一个 DNS 恳求,问 www.server.com 的 IP 是啥,并发给本地 DNS 服务器(也便是客户端的 TC/ f . A c } !P/IP 设置中填写的 DNS 服务器地址)。
  2. 本地域名服务器收到客户端的恳求后,假如缓存里的表格5 d ) ^能找到 www.server.com,则它直接回来 IP 地址。假如没有,本地 DNS 会去问它的根域名服务器:“老大, 能告知我 www.server.com 的 IP 地址吗?” 根域名服务器是最高层次的,它不直接用于域名解析,但能指明一条路途。
  3. 根 DNS 收到来自本地 DNS 的恳求后,发现后置& O # K G T是 .com,说:“www.server.com 这个域名归 .com 区域办理”,我给你 .com 尖端域名服务器地址给你,你去问问它吧。”
  4. 本地 DNS 收到尖端域名服务器的地址后,发起恳求问“老二R # : Q J, 你能告知我 wd . N l @ww.server.com 的 IP 地址吗?”
  5. 尖端域名服务器说:“我给你担任 www.server.com 区域s | 的威望 DNS 服务器的地址,你去问它应该能问到”。
  6. 本地 DNS 所以转向问威望 DNS 服务器:“老三,www.server.com对应的IP是啥呀?” server.` 3 –com 的威望 DNS 服务器,它是域名解析结果的原出处。为啥叫威望呢?便是我的域名我做主。
  7. 威望 DNS 服务器查询后将对应的 IP 地址 X.X.X.X 告知本地 DNS。
  8. 本地 DNS 再将 IP` 6 a K 地址回来客户端,客户端和方针树立衔接。W L i = + Z t

至此,咱们完成了 DNS 的解析进程。现在总结一下,整个进程我画成了一个图。

IP 基础知识全家桶,45 张图一套带走
域名W I I + (解析f l 1 | M G ^ c的作业流程

DNS 域名解析的进程蛮有意思的,整个进程就和咱们日常日子中找人问路的进程相似,只指路不领路

ARP

在传输一个 IP 数据报的时分,确认了源 IP 地址和方针 IP 地址后,就会经过主机「路由表」确认 IP 数据包下一跳。可是,网络层的下一层是数据链路层,所以咱们还要知道「下一跳」的 MAC 地址。

因为主机的路由表中能够找到下一条的 IP 地址,所以能够经过 ARP 协议,求得下一跳的 MAC 地址。

那么 ARP 又是怎样知道对方 MAC 地址的呢?

简略地说,ARP 是凭借 ARP 恳求与 ARP 呼应两品种型的包确认 MAC 地址的。

IP 基础知识全家桶,45 张图一套带走
ARP 播送
  • 主机会经过播送发送r s % { S ^ a ? p ARP 恳求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址。
  • 当同个链路中的一切设备收到 ARP 恳求时,会去拆开 ARP 恳求包里的内容,假如 ARP 恳求包中的方针n e # 8 _ IP 地址与自己的 IP 地址一~ H ) A ]致,那么这个设备就将自己的 MAC 地址塞入 ARP 呼应包回来给主机。

操作系一致般会把第一次经过 ARQ N p c h O g 3P 获取的 MAC 地址缓存起来W p u,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。

不过,MAC 地址的缓存是有必定期限的,超越这个期限,缓存的A ( 2 j 8 e w内容将被铲除。

RARP 协议你知道 T p ` M G % F a是什么吗?

ARP 协议是已知 IP 地址 求 M3 N z E u , } uAC 地址,那 RARP 协议正好相反,它是已知 MAC 地址求 Is 5 6 6 e N U x DP 地址M , G + a 1 m [ {例如将打印机服务器等小型嵌E y Y 1 m P *入式设备接入到网络u 6 q时就常常会用得到。

一般这需求架设一台 RARP 服务器,在这个服务器上注册设备的 M4 & m S ` 7 d X tAC 地址及其 IP 地址。然后再将这个设备接入到网络,接着:

  • 该设备会发送一条「我的 MAC 地址是XXXX,请告知我,我的IP地址应该是什么」的恳求信息。
  • RARP 服务器接到这个音讯后回来「MAC地址为 XXXX 的设备,IP地址为 XXXX」的信息给这个设备。

最终,设备就依据从 RARP 服务器所收到的应对信息设置自己的 IP 地址。

IP 基础知识全家桶,45 张图一套带走
RARP

DHCP

DHCPz 6 j 在日子中咱们是很常见的了,咱们的电脑一般都是经过 DW z + / 2 I fHCP 动态获取 IP 地址,大大省去了配 IP 信= y x N ] [ 8 i y息繁琐的进程。

接下来,咱们来 | H看看咱们的电脑是怎样经过 4} ; W 4 | 个进程的进程,获取到 IP 的。

IP 基础知识全家桶,45 张图一套带走
DHCP 作业流程

先阐明一点,DHCP 客户端进程监听的是 68 端口号,DHCP 服务端进程监听的是 67 端口号。

这 4 个进程:

  • 客户端首要发起 DHCP 发现报文(DHCP DISCOVER) 的 IP 数据报,因为客户端没有 IP 地址,r * B C % % X ) Y也不知道 DHCP 服务器的地址,所以运用的是 UDP 播送通讯% L E n,其运用的播送意图地址是 255.255.255.255(端口 67) 而且运用 0.0.0.0(端口 68) 作为源 IP 地址。DHCP 客户端将该 IP 数据报传递给链路层,链路层然后将帧播送到一切的网络中设备。
  • DHCP 服务器收到 DHCP 发现报文时,用 DHCP 提供报文(D x % 2 . qDHCP OFFER) 向客户端做出呼应。该报文仍然运用 IP 播送地址 255.255.255.255,该报文信息携带服务器提供可租约的 IP 地址、子网掩码、默许网关、DNS 服务器以及 Ic 6 r k w |P 地址租用期
  • 客户端收到一0 c $ i +个或多个服务器的 DHCP 提供报文后,从中选择一个服务h o ( G J S器,并向选中的服务器发送 DHCP 恳求报文(DHCP REQUEST进行呼应,回显装备的参数。
  • 最终,服务端用 DHi _ #CP ACK 报文对 DHCP 恳求报文进行呼应,应对所要求的参数。

一旦客户端收到 DHE p _CP ACK 后,交互便完成了,而且客户端能够在租用期内运用 DHCP 服务器分配的 IP 地址。

假如租约的 DHCP IPQ 4 p 地址快期后,客户端会向^ c w O K服务器发送 DHCP 恳求报文:

  • 服务器假如赞同持续租用,则用 DHCP ACK 报文进行应对,客户端就会延伸租期。
  • 服务器假如不赞同持续租用,则用 DHCP NACK 报文,客户端就要停止运用租约的 IP 地址。

能够发现,DHCP 交互中,全程% r – i ( p $都是运用 UDP 播送通讯

咦,用的是播送,那假如 DHCP 服务器N 3 [ & 3 h U J a和客户端不是在同一个局域网内,路由器又不会转发播送包,那不是每个网络都要配一个 DHCP 服务器?

所以,为了处理这一问题,就呈现了 DHCP 中继署+ r D ; E B l。有了 DHCP 中继署理今后,对不同网段的 IP 地8 ) W u a – – o F址分配也能够由一个 DHCP 服务器一致进行办理。

IP 基础知识全家桶,45 张图一套带走
DHCP 中继署理
  • DHCP 客g n z , R 5户端会向 DHCP 中继署理发送 DHCP 恳求包,而 DHR ^ + L ` wCP 中继署理在收到这个播送包今后,再以单播的形式发给 DHCP 服务器。

  • 服务器端收到该包今后再向 DHCP 中& v q O | Z |继署理回来应对,并由 DHCP 中继署理将此包转发给 DHCP 客户端 。

因而,DHCP 服务器即使不在同? 9 y ( . _一个链路上也能够完成一致分配和办理IP地址。

NAT

IPv4 的地址是十分紧缺的,在前面咱们也说到能够经过无分类地址来减缓 IPv4 地址耗尽的速度,可是互联网的用户增速是十分惊人的,所以 IPv4 地址依然有被耗尽的危险。

所以,提出了一个种网络地址转化 NAT 的办法,再次g ^ r . k 1 ,缓解了 IPv4 地址耗尽的问题。

简略的来说r X [ O & NAT 便是同个公司、家庭、教室内的主机对外部通讯时,把私有 IP 地址转化成公有 IP 地址。

IP 基础知识全家桶,45 张图一套带走
NAT

那不是 N 个 私有 IP 地址,你就要 N 个公有 IP 地址?这怎样就缓解了 IPv4 地址耗尽的问题?这不瞎扯吗?

确实是,一般的 NAT 转化没什么含义。

因为绝大大都的网络运用都是运用传输层协议 TCP 或 UDP 来传输T + r _ M数据的。

因而,能够把 IP 地址 + 端口号一起进行转化。

这样,就用一个全球 IP 地址就能够了,这种转化技能就叫网络地址与端口转化 NAPT。

很笼统?来,看下面的图解就能瞬间理解了。

IP 基础知识全家桶,45 张图一套带走
NAPT

图中有两个客户端 192.168.1.10 和 192.168.f m ( G J b 8 L o1.11 一起与服务器 183.232.231.172 进行通讯,而且这两个客户端的本地端口都是k z ~ Q 1025。

此刻,两个私有 IP 地址都转化 IP 地址为公有地址 12/ B B n 6 h E Z U0.229.175.121,可是以不同的2 – R y端口号作为区别。

所以,生成一个 NAPT 路由器的转化表,就能够正确地转化地址跟端口的组合,令客户端 A、B 能一起与服务器之间进行通讯。

这种转化表在 NAT 路由器上S C $ % T 4 r自动生成。例如,在 TCP 的状况下,树立 TCP 衔接初次握R o 4 Z e手时的 SYN 包一经宣布,就会生成这个表。而后又跟着收到封闭衔接时宣布w { ; s w ] 0 FIN 包的确认应对从表中被删去。

NAT 那么牛逼,难道就没缺点了% & 4 U吗?* (

当然有缺陷,必定没有十全十美的计划。

因为 NAT/NAPT 都依赖于自己的* m ) L 1 ) / ]转化表,因而会有以下的问题:

  • 外部无法自动与 NAT 内部服务器树立衔接,因为 NAPT 转化表没有转化记载。
  • 转化表的生产与转化操作都会产生功用开销。
  • 通讯进程中,假如 NAT 路由器重启了,一切的 TCP 衔接都将被重置。

怎样处理 NAT 潜在的问题呢?

处理的办法首要两种办法。

第一种便是改用 IPv6

IPv6 可用规划十分大,以至于每台设备都能够装备一个公有 IP 地址,就不搞那么多花里胡哨的地址转化了,可是 IPv6 普及速度还需求一些时刻。

第二种 NAT 穿透技能

NAT 穿越技能具有这样的功用,它能够让网络运用程序自动发现自己坐落 NAT 设备之后,而且会自动取得 NAT 设备的公有G e H j t IP,并为自己树立端口映射条目,& | 7 ) X e f 7 注意这些都是 NAT设备后的运用程序自动完成的。

也便是说,在 NAT 穿越技能中,NAT设备后的运用程序处于自动地位,它现已明确地知道 NAT 设备要修改它外发的数据包,所以它自动合作 NAT 设W 1 &备的操作,自动地树立好映射,这样就不像以前由 NAT 设j f ? { O U _ U备来树立映射了。

说人话,便是客户端自动从 NAT 设备获取公有 IP 地址,然后自己树立端口映射条目,然后用这个
条目对外通讯,就不需求 NAT 设备来进行转化了。

ICMP

ICMP 全称是 Internet Control Message Protocol,也便是互联网操控报文协议

里面有个关键词 —— 操控,怎样操控的呢?

网络包在杂乱的网络传输环境里,常常会遇到各种问题。

当遇| ( v _ f O到问题的时分,总不能死个不明不白,呆头呆脑的作风不是核算机网络的风格。所以m b z需求传出音讯,陈述遇到了什么问题,这样才_ 1 _ . $ v z能够调整传输策略,以此来操控整个局面。

ICMP 功用都有啥?

ICMP 首要的功用包含:确认 IP 包是否成功送达方针地址、陈述发送进程中 IP 包被废弃的原因和改进网络设置等。

IP 通讯中假如某个 IP 包因为某种原因未能5 2 5 z 5 (达到方针地址,那么这个详– 8 r细的原因将由 ICMP 担任告诉

IP 基础知识全家桶,45 张图一套带走
ICMP 方针不可达音讯

如上图比方,主机 A 向主机 B 发送了数据包,因为某种原因,途中的路由器 2 未能发现主机 B 的存在,这时,路由器 2 就会向主机 A 发送一个 ICMP 方针不可达数据包,阐明发往主机 B 的包未能成功。

ICMP 的这种告诉音讯会运用 IP 进行发送 。

因而,从路由器 2 回来的 ICMP# { s 8 R 包会依照往常的路由操控先经9 Z = – j W R过路由器 1 再转发给主机 A 。收到该 ICMP 包的主机 A_ { G G O + k C 则分化 ICMP 的首部和数据域今后得知详细发生问题的原因。

ICMP 类型

ICMP 大致能够分为两大类:

  • 一类是用于确诊的查询音讯,也便是「查询报文类型
  • 另一类是告诉犯错原因的过错音讯,也便是「差错报文类型
IP 基础知识全家桶,45 张图一套带走
常见的 ICMP 类型

IGMP

ICMP 跟 IGMPy = V T 4 q H 是一点联系都没有的,就好像9 O p t周杰与周杰伦的差异,我们不要混杂了。

在前面咱们知道了组播地址,也便是 D 类o N X S 1 m g I地址,既然是组播,那就阐明是只有一组的主机能收到W q j C数据包,不在一组的主机不能收到数组包,怎样办理是否是在一组呢?那么,就需u s p 8IGMP 协议了。

IP 基础知识全家桶,45 张图一套带走
组播模型

IGMP 是因特网组办理协议,作业在主机(组播成员)和最终一跳路由% B w 0 # f (之间,如上图中的蓝色部分。

  • IGM@ r B % _ & ` X bP 报文– A r _ _ ) u R 4向路由器申请加入和退出组播组,默许状况下路由器是不会转发组播包到衔接中的主机,除非主机经过 IGMP 加入到组播5 ; ; 9 t } ~ # 0组,主机申请加入到组播组时,路由器就会记载 IGMP 路由器表,路由器后续就会转发组播包到对应的主机了。
  • IGMP 报文选用 IP 封装,IP 头部的协议号为 2,而且 T% ] Q O ,TL 字段值一U e 8 } } G般 为 1,因为 IGMP 是作业在主机与衔接的路由器之间。

IGMP 作业机制

IGMP 分为了三个版本分别是,IGMPv1、 s – Q B l / b {IGMPv2、IGMy h q `Pv3。

接下来,以 IGMPv2 作为比方,说说惯例查询与呼应和离开组播组这两个作业机制。

惯例查询与呼应作业机制

IP 基础知识全家桶,45 张图一套带走
IGMP 惯例查询与呼应作业机制
  1. 路由器会周期性发送意图地址为 224.0.0.1(表明同一网段内一切主机和路F R J M A C e S .由器) IGMP 惯& e – M ~ L I例查询报文
  2. 主机1 和 主机 3 收到这个查询,随后– o N / 1会启动「陈述推迟计时器」,计时器的时刻是随机的,一般是 0~10 秒,计时器超时后主机就会发送 IGMP 成员联系陈述报文(源 IP 地址为自己主机的 IP 地址,意图 IP 地址为组播地址)。假如在定时器超时之前,收到同一个组内的其他主机发送的成员联系陈述报文,则自己不再发送,这样能够减少网络中多余的 IGMP 报文数量。
  3. 路由n L 7器收到主机的成员联系陈述; 2 F ? z t 2报文后,就会在 IGMP 路由表中加入该组播组,后续网络中一旦该组播地址的数据抵达路由器,它会 { z ) 3 X H 5 r把数据包转宣布去。

离开组播N A I h Q组作业机制

p q I开组播组的状况一,网段中仍有该组播组:

IP 基础知识全家桶,45 张图一套带走
IGMPv2 离开组u M I播组作业机制 状况1
  1. 主机 1 要离开组 22[ H 4.1.1.1,发送 IGMPv2 离组报文,报文的意图地址是 224.0.0.2(表明发向网段内的一切路由器)
  2. 路由器 收到该报文后,以 1 秒为& O ^ @ / ( b x距离& _ n , S ~接连发送 IGMP 特定组查询报文(共计发送 2 个)2 o w 7 I ( =,以便确认该网络是否还有 224.1.1.1 组的其他成员。
  3. 主机 3 仍然是组 224.1.1.t ; : u – I 7 *1 的成员,因而它立即呼应这个特定组查询。路由器知道该网8 0 V 9 d m络中仍然存在该组播组的成员,所以持续向该网@ 6 t h 1 J m ? 6络转发 224.1.1.1 的组播数据包。

离开组播组的状况二,网段中没有该组播组:

IP 基础知识全家桶,45 张图一套带走
IGMPv2 离开组播组作业机制 状况2
  1. 主机 1 要离开组播组 224.d 4 +1.1.1,发送 IGMP 离组报文。
  2. 路由y H ) q L y A器收到该报文后,以 1 秒为距离接连发送 IGMP 特定组查询报文(共计发送 2 个)。此刻在该网段内,7 m # W X Q组 224.1.1.1 现已没有其他成员了,因而没有主机呼应这个查询。
  3. 必定时刻后,路由器认为/ , 8该网段中现已没有 224.1.1.1 组播组成员了,将. % z不会再向这个网段转发该组播地址的数据包。

参考文献

[1]G P [ + 核算机网络-自顶向下办法.陈鸣 译.机械工业出版社

[2] TCP/IP详解 卷1:协议.范建华 译.机械工业8 } r出版社

[3] 图解TCP/IP.竹下隆史.人民邮电出版社


啰嗦啰嗦

这一顿把: d } p ) & A戏图解菜,做起来也不简略。

IP 基础知识全家桶,45 张图一套带走
  • 假如这* – – J G合你口味,X Q 7 D给小林点个「在看」,那小林我就称心p v m D T 3如意啦。
  • 假如口味过重,欢迎「留言」进行点评!

小林是专为我们图解R K y的工具人,Good2 5 U D T : N rbye,咱们下次见!

发表评论

提供最优质的资源集合

立即查看 了解详情