网络基础知识
1、OSI参考模型
在这一模型中,每一个分层都接受由它下一层所提供的特定服务,并且负责为自己的上一层提供特定的服务。上下层之间进行交互时所遵循的约定叫做“接口”。同一层之间的交互所遵循的约定叫做“协议”。
OSI参考模型各层的分工
OSI七层各层的功能
(1)应用层:应用层是OSI标准模型的最顶层,是直接为应用进程提供服务的。其作用是在实现多个系统应用进程相互通信的同时,完成一系列业务处理所需的服务。包括文件传输、电子邮件远程登录和远端接口调用等协议。
(2)表示层:表示层向上对应用进程服务,乡下接受会话层提供的服务,表示层位于OSI标准模型的第六层,表示层的主要作用就是将设备的固有数据格式转换为网络标准传输格式。
(3)会话层:会话层位于OSI标准模性的第五层,它是建立在传输层之上,利用传输层提供的服务建立和维持会话。
(4)传输层:位于OSI标准模型的第四层,在整个OSI标准模型中起到了至关重要的作用。传输层涉及到两个节点之间的数据传输,向上层提供可靠的数据传输服务。传输层的服务一般要经历传输连接建立阶段,数据传输阶段,传输连接释放阶段3个阶段才算完成一个完整的服务过程。
(5)网络层:位于第三层,处于传输层和数据链路层的中间,将数据设法从源端经过若干个中间节点传送到另一端,从而向传输层提供最基本的端到端的数据传送服务。
(6)数据链路层:数据链路层定义了在单个链路上如何传输数据。
(7)物理层:物理层为设备之间的数据通信提供传输媒介及互联设备,为数据传输提供可靠的环境。
2、IP基础知识
(1)IP地址的基础知识
在TCP/IP网络通信时,为了保证能正常通信,每个设备都需要配置正确的IP地址,否则无法实现正常的通信。
- IP地址(IPV4地址)由32位正整数来表示,IP地址在计算机中是以二进制的方式来处理的。而人们为了方便记忆采用了点分十进制的标记方式,也就是将32位IP地址以每8位为一组,共分为4组,每组以"."隔开,再将每组转换成十进制。
- IP地址的分类:IP地址分成了5种类型,分别是A类、B类、C类、D类、E类。
- A类、B类、C类对应的地址范围、最大主机个数
-
广播地址:主机号全为 1 指定某个⽹络下的所有主机,⽤于⼴播。作用是在同⼀个链路中相互连接的主机之间发送数据包。
- ⼴播地址可以分为本地⼴播和直接⼴播两种:
- 本地广播:在本⽹络内⼴播的叫做本地⼴播;
- 直接广播:在不同⽹络之间的⼴播叫做直接⼴播。
-
多播⽤于将包发送给特定组内的所有主机。
-
环路地址:环回地址是在同⼀台计算机上的程序之间进⾏⽹络通信时所使⽤的⼀个默认地址。计算机使⽤⼀个特殊的 IP 地址 127.0.0.1 作为环回地址。与该地址具有相同意义的是⼀个叫做localhost 的主机名。使⽤这个 IP 或主机名时,数据包不会流向⽹络。
(2)IP的分片与重组
- MTU:最大传输单元,每种数据链路的最⼤传输单元 MTU 都是不相同的。每种数据链路的 MTU 之所以不同,是因为每个不同类型的数据链路的使用目的不同。使⽤⽬的不同,可承载的 MTU 也就不同。最常见数据链路是以太网,它的 MTU 是 1500 字节。
- 当 IP 数据包大小小于 MTU 时, IP 数据包就会被分片。经过分片之后的 IP 数据报在被重组的时候,只能由目标主机进行重组,路由器是不会进行重组的。
(3)IP协议相关技术
-
DNS:DNS 可以将域名网址自动转换为具体的 IP 地址。我们在上网的时候,通常使用的方式是域名,而不是 IP 地址,因为域名方便⼈类记忆。
-
DNS 中的域名都是用句点来分隔的,例如www.baidu.com ,这里的“.”代表了不同层次之间的界限。在域名中,越靠右的位置表示其层级越高。
-
根域是在最顶层,它的下⼀层就是 com 顶级域,再下面是 baidu.com。
-
所以域名的层级关系类似⼀个树状结构:
- 根 DNS 服务器;
- 顶级域 DNS 服务器(com);
- 权威 DNS 服务器(baidu.com)。
-
注意:根域的 DNS 服务器信息保存在互联网中所有的 DNS 服务器中。这样⼀来,任何 DNS 服务器就都可以找到并访问根域 DNS 服务器了。
-
域名解析的流程:
- 第一步:当我们在客户端浏览器中输入了一个网址(例如:www.baidu.com),客户端首先会发出⼀个 DNS 请求,问 www.baidu.com 的 IP 是啥,并发给本地 DNS 服务器(也就是客户端的 TCP/IP 设置中填写的 DNS 服务器地址)。如果缓存里的表格能找到 www.baidu.com,则它直接返回IP 地址,如果没有,本地 DNS 会去问它的根域名服务器,根域名服务器是最⾼层次的,它不直接⽤于域名解析,但能指明⼀条道路。
- 第二步:根 DNS 收到来⾃本地 DNS 的请求后,发现后置是 .com,发现www.baidu.com 这个域名归 .com区域管理,然后将.com 顶级域名服务器地址反馈给本地DNS,本地 DNS 收到顶级域名服务器的地址后,然后会问.com 顶级域名服务器,你能告诉我www.baidu.com的IP地址吗,如果顶级域名服务器缓存里的表格里能够找到www.baidu.com,则直接返回IP地址,如果没有,那么顶级域名服务器则会告诉本地DNS负责 www.baidu.com 区域的权威 DNS 服务器的地址。
- 第三步:本地 DNS 于是转向问权威 DNS 服务器,然后权威 DNS 服务器查询后将对应的 IP 地址 告诉本地 DNS,本地 DNS 再将 IP 地址返回客户端,客户端和目标建立连接。
-
ARP:ARP 协议是 地址解析协议,即 Address Resolution Protocol,它能够根据 IP 地址获取物理地址。主机发送信息时会将包含目标 IP 的 ARP 请求广播到局域网络上的所有主机,并接受返回消息,以此来确定物理地址。收到消息后的物理地址和 IP 地址会在 ARP 中缓存一段时间,下次查询的时候直接从 ARP 中查询即可。
-
ARP 又是如何知道对方MAC 地址:
- 第一步:主机会通过广播发送 ARP 请求,这个包中包含了想要知道的 MAC 地址的主机 IP 地址;
- 第二步:当同个链路中的所有设备收到 ARP 请求时,会去拆开 ARP 请求包里的内容,如果 ARP 请求包中的目标 IP 地址与自己的 IP 地址⼀致,那么这个设备就将自己的 MAC 地址塞入 ARP 响应包返回给主机。
- 注意: 操作系统通常会把第⼀次通过 ARP 获取的 MAC 地址缓存起来,以便下次直接从缓存中找到对应 IP 地址的 MAC 地址。不过,MAC 地址的缓存是有⼀定期限的,超过这个期限,缓存的内容将被清除。
-
-
DHCP:假设一个场景,如果我们现在需要为300台主机配置IP地址,如果手动的一台一台来进行配置,那么将会耗费很长的时间和人力。DHCP即动态主机配置协议,DHCP 在生活中我们是很常见的了,我们的电脑通常都是通过 DHCP 动态获取 IP 地址,大大省去了配IP 信息繁琐的过程。
-
DHCP协议的工作过程:
- 第一步:发现阶段,即DHCP客户机寻找DHCP服务器的阶段。DHCP客户机以广播的方式发送DHCP discover 发现信息来寻找DHCP服务器(因为DHCP服务器的IP地址对客户机来说是未知的),即向255.255.255.255发送特定的广播信息,网络上每一台安装了TCP/IP协议的主机都会接收到这种广播信息,但只有DHCP服务器才会作出响应。
- 第二步:提供阶段,即DHCP服务器提供IP地址的阶段。在网络中收到DHCP discover发现信息的DHCP服务器都会作出响应,它从尚未出租的IP地址中挑选一个分配给DHCP客户机,向DHCP客户机发送一个包含出租的IP地址和其他设置额DHCP offer提供信息。
- 第三步:选择阶段,DHCP客户机选择某台DHCP服务器提供的IP地址的阶段。 如果有多台DHCP服务器向DHCP客户机发来的DHCP offer,客户机只接收第一个收到的DHCP offer,然后它以广播的方式回答一个DHCP request请求信息。该信息中包含它所选定的DHCP服务器请求IP地址的内容。之所以要以广播的方式回答,是为了通知所有的DHCP服务器,它将选择某台DHCP服务器所提供的IP地址。
- 第四步:确认阶段,即DHCP服务器确认所提供的IP地址的阶段。当DHCP服务器收到DHCP客户机回答的DHCP resquest请求后,它便向DHCP客户机发送一个包含它提供的IP地址和其他设置的DHCP ACK确认信息,告诉DHCP客户机可以使用它所提供的IP地址。然后DHCP客户机便将其TCP/IP协议与网卡绑定,除了DHCP客户机所选择的服务器IP外,其他的DHCP服务器都将收回曾提供的IP地址。
- 第五步:重新登陆,以后DHCP客户机每次登陆网络时,就不需要再发送DHCP discover发现信息了。而是直接发送包含前一次所分配IP地址的DHCP resquest请求。当DHCP服务器收到这一信息后,它会尝试让客户机继续使用原来的IP并回答一个DHCP ACK确认信息,如果此IP地址无法分配给原来的DHCP客户机时(比如IP分配给其他DHCP客户机使用) ,则DHCP服务器给DHCP客户机回答一个DHCP NACK 否认消息,当原来的DHCP客户机收到此消息后,它就必须重新发送DHCP discover发现信息重新请求新的IP地址。
- 第六步:更新租约, DHCP服务器向DHCP客户机出租的IP地址一般都由一个租借期限,期满后DHCP服务器会收回出租的IP地址。如果DHCP客户机要延长其IP租约,则必须更新其租约。DHCP客户机启动时和IP租约期限过一半时,DHCP客户机都会自动向DHCP服务器发送其更新租约的信息。
-
-
注意:想使用DHCP来动态分配IP,首先需要有一台DHCP服务器。
-
DHCP中继代理: 当存在有多个以太网网段时,那么就需要对每个网段都配置一台DHCP服务器,这将是一个庞大的工程,并且在后面的维护过程中也比较麻烦并且耗时。在这种有多个网段的网络环境中,往往需要将DHCP统一管理。具体方法可以使用DHCP中继代理来实现。有了DHCP中继代理以后,对不同网段的IP地址分配也可以由一个DHCP服务器统一管理和运维。在每个网段设置一个DHCP中继代理。它可以设置DHCP服务器的IP地址,从而可以在DHCP服务器上为每个网段注册IP地址的分配范围。
- 具体过程:DHCP客户端会向DHCP中继代理发送DHCP请求包,而DHCP中继代理在收到这个广播报后再以单播的形式发送给DHCP服务器。服务器收到该包以后再向DHCP中继代理返回应答,并由DHCP中继代理将此包转发给DHCP客户端。由此,DHCP服务器即使不在同一个链路上也可以实现统一分配和管理IP地址。
-
ICMP:互联网控制报文协议。主要功能包确认IP包是否成功送达目标地址,报告发送过程中IP包被废弃的原因和改善网络设置等。在IP通信中如果某个IP包因为某种原因未能达到目标地址,那么这个具体的原因将由ICMP负责通知。
-
ICMP的通知消息使用IP进行发送,ICMP报文封装在IP包里面,工作在网络层。
-
ICMP包头的类型字段可以大致分为两类:
- 一类是用于诊断的查询消息,也就是查询报文类型;
- 另一类是通知出错原因的错误消息,也就是差错报文类型。
-
NAT: 用于在本地网络中使用私有地址,在连接互联网时转而使用全局IP地址的一种技术。除了转换IP地址外,还有一种技术可以转换TCP、UDP端口号的NAPT技术,由此可以实现一个全局IP地址与多个主机的通信。
声明:本文中所涉及到的所有图片均转自“暗黑风格-图解网络-小林coding-v2.0”,文章部分内容参考了《图解TCP/IP》一书中的内容