admin 管理员组文章数量: 887609
注:本文为 “图解 | 计算机网络名词 / 网络基础知识 / 应用层协议 / DHCP / DNS” 相关文章合辑。
123 张图详解 177 个计算机网络名词
原创 弗克斯 网络技术平台 2022年04月03日 18:37
177 个网络名词加上 123 张图,文章的篇幅就很长了,分类整理下,按照网络分层结构,加上分层的扩展内容,把所有名词分成了 15 个小类,方便查阅。
网络基础
1、电路交换:在通信开始前,通信双方要在网络上建立专属信道来发送数据,信道至少会持续到通信结束才会断开。
2、包交换:又叫做分组交换,是将数据分为多个消息块(即数据包),再通过网络对每个数据块进行单独传输选路。
3、网络协议:为在网络中传输数据而对数据定义的一系列标准或规则。
4、协议栈:网络协议的具体定义或具体实现。
5、万维网( WWW ):可以通过 URL 地址进行定义、通过 HTTP/HTTPS 协议建立连接、通过互联网进行访问的网页资源空间。
6、局域网( LAN ):在一个有限区域内实现终端设备互联的网络。
7、城域网( MAN ):规模大于局域网,覆盖区域小到一个方圆数千米的大型园区,大到一个城市圈的网络。
8、广域网( WAN ):跨越大范围地理区域建立连接的网络。
9、互联网( Internet ):通过各种互联网协议为全世界成千上万的设备建立互联的全球计算机网络系统。
10、物联网( IoT ):通过内置电子芯片的方式,将各种物理设备连接到网络中,实现多元设备间信息交互的网络。
11、云计算( Cloud Computing ):通过互联网为计算机和其它设备提供处理资源共享的网络。
12、大数据( Big Data ):通过汇总的计算资源对庞大的数据量进行分析,得出更加准确的预测结论,并用来指导实践。
13、SDN :指控制平面和数据平面分离,并通过提升网络编程能能力,使网络管理方式更优。
14、数据平面/转发平面:指网络设备中与判断如何转发数据和执行数据转发相关的部分。
15、控制平面:指网络设备中与控制设备完成转发工作的相关部分。
操作系统
1、操作系统:一种安装在智能设备上,为操作智能设备消除硬件差异,并为程序提供可移植性的软件平台。
2、图形用户界面( GUI ):指用户在大部分情况下可以通过点击图标等可视化图形来完成设备操作的软件界面。
3、命令行界面( CLI ):指用户需要通过输入文本命令来完成设备操作的软件界面。
4、RAM :随机存取存储器的简称,也叫做内存。安装在数通设备上与安装在计算机中的作用相同,即用于存储临时文件,断电内容消失。
5、Flash :安装在数通设备上,与计算机硬盘的功能类似,用来存放包括操作系统在内的大量文件。
6、NVRAM :非易失随机存取存储器的简称。用来保存数通设备的启动配置文件,断电不会消失。
7、Console 接口:即控制台接口,通过 Console 线缆连接自己的终端和数通设备的 Console 接口,使用终端模拟软件对数通设备进行本地管理访问。
网络协议
1、OSI 模型:为规范和定义通信网络,将通信功能按照逻辑分为不同功能层级的概念模型,分为 7 层。
2、TCP/IP 模型:也叫做互联网协议栈,是目前互联网所使用的通信模型,由 TCP 协议和 IP 协议的规范发展而来,分为 4 层。
3、应用层:指 OSI 模型的第 7 层,也是 TCP/IP 模型的第 4 层,是离用户最近的一层,用户通过应用软件和这一层进行交互。理论上,在 TCP/IP 模型中,应用层也包含了 OSI 模型中的表示层和会话层的功能。但表示层和会话层的实用性不强,应用层在两种模型中区别不大。
4、传输层:指 OSI 模型的第 4 层,也是 TCP/IP 模型的第 3 层,在两个模型中区别不大,负责规范数据传输的功能和流程。
5、网络层:指 OSI 模型的第 3 层,这一层是规范如何将数据从源设备转发到目的设备。
6、数据包:经过网络层协议封装后的数据。
7、数据链路层:OSI 模型的第 2 层,规范在直连节点或同一个局域网中的节点之间,如何实现数据传输。另外,这一层也负责检测和纠正物理层在传输数据过程中造成的错误。
8、数据帧:经过数据链路层协议封装后的数据。
9、物理层:OSI 模型的第 1 层,这一层的服务是规范物理传输的相关标准,实现信号在两个设备之间进行传输。
10、互联网层:TCP/IP 协议中的第 2 层,功能与 OSI 模型中的网络层类似。
11、网络接入层:TCP/IP 协议中的第 1 层,作用是定义数据如何在两个直连节点或同一个局域网的节点之间传输,TCP/IP 模型中的这一层结合了 OSI 模型中数据链路层和物理层的功能。
12、封装:发送方设备按照协议标准定义的格式及相关参数添加到转发数据上,来保障通信各方执行协议标准的操作。
13、解封装:接收方设备拆除发送方设备封装的数据,还原转发数据的操作。
14、头部:按照协议定义的格式封装在数据上的协议功能数据和参数。
网络接入层
1、双绞线:将两根互相绝缘的导线按一定规格缠绕在一起,以便它们互相冲抵干扰,从而形成的通信介质。
2、光纤:为实现数据通信,利用全反射原理传输光线的玻璃纤维载体。
3、IEEE 802.3 :IEEE 组织定义的以太网技术标准,即有线网络标准。
4、IEEE 802.11 :IEEE 组织定义的无线局域网标准。
5、奇偶校验:接收方对比接收的数据与原始数据时,检测数据的二进制数位中 “ 1 ” 的奇偶个数是否相同,从而判断数据与发送时是否一致的校验方式。
6、校验和:接收方对比接收的数据与原始数据的校验和是否相同,判断数据与发送时是否一致的校验方式。
7、循环冗余校验:接收方通过多项式除法判断数据与发送时是否一致的校验方式。
8、共享型以太网:所有连网设备处在一个冲突域中,需要竞争发送资源的以太网环境。
9、二进制:逢 2 进位、只有 0 和 1 表示数字的计数系统。
10、十六进制:逢 16 进位、用 0 ~ F 表示数字的计数系统。
11、冲突域:通过共享媒介连接在一起的设备,共同构成的网络区域。在这个区域内,同时只能一台设备发送数据包。
12、交换型以太网:连网设备互相之间不需要竞争发送资源,而是分别与中心设备两两组成点到点连接的以太网环境。
13、MAC 地址:长度 48 位,固话在设备硬件上,用十六进制表示的数据链路层地址。
14、广播域:在这个区域中,各个节点都可以收到其它节点发送的广播数据包。
交换网络
1、冲突:多台设备在一个媒介中,同时发送数据,导致的干扰。冲突的结果是所有发送的数据都无法被接收方正常识别。
2、集线器:有多个端口,可以把大量设备连接到一个共享型以太网,只能从一个接口接收的数据通过(除这个接口外的)所有接口发送出去的物理层设备。
3、网桥:两个端口的数据链路层设备,可以记录数据帧的源 MAC 地址和端口的映射关系,并根据映射关系进行数据帧转发,从而把两个端口隔离为不同的冲突域。
4、交换机:多个端口的网桥,每个端口都是一个独立的冲突域,通过交换机连接大量设备形成的以太网是交换型以太网。
5、交换容量:交换机的最大数据交换能力,单位是 bit/s 。
6、包转发率:交换机每秒可以转发的数据包数量,单位是 pps 。
7、交换机接口速率:接口每秒能够转发的比特数,单位是 bit/s 。
8、双工模式:描述接口是否可以双向传输数据的工作模式。
9、半双工模式:在这种模式下,接口可以双向传输数据,但是数据的接收和发送不能同时进行。
10、全双工模式:在这种模式下,接口可以同时双向传输数据。
11、MAC 地址表:交换机上用来记录 MAC 地址和端口映射关系的数据库。交换机依照数据库的条目来执行数据帧交换。
VLAN
1、VLAN :即虚拟局域网,在逻辑上把一个局域网划分成多个虚拟局域网,限制局域网的规模,解决网络用户增长带来的数据帧冲突和广播流量激增问题,提高网络的安全性。
2、VLAN 标签( VLAN Tag ):区分数据帧所属 VLAN 的 4 字节长度的字段,插在以太网数据帧头。
3、标记帧( Tagged frame ):携带 VLAN 标签的数据帧,通常在交换机之间传送标记帧。
4、无标记帧( Untagged ):不携带 VLAN 标签的数据帧,通常终端发出的就是无标记帧。
5、PVID(接口 VLAN ID ):交换机接口的参数,表示交换机默认使用的 VLAN ID ,也叫做默认 VLAN 。
6、Access(接入):Access 接口通常用于连接交换机和终端,它们的链路叫做 Access 链路。
7、Trunk(干道):Trunk 接口通常用于连接交换机和交换机,它们的链路叫做 Trunk 链路。
8、Hybrid(混合):Hybrid 接口既可以连接交换机和终端,也可以连接交换机和交换机。
9、静态 VLAN:手动配置的 VLAN 。
10、动态 VLAN:交换机动态学习到的 VLAN 。
STP
1、根桥:也叫做根交换机或根网桥。它是交换网络中的一台交换机,也是网络中所有路径的起点。
2、根端口:交换网络中的一种端口,负责转发数据。
3、指定端口:交换网络中的一种端口,负责转发数据。
4、备用端口:交换网络中的一种端口,处于阻塞状态,不能转发数据。在根端口或链路出现故障时,可以接任根端口的角色。
5、BPDU :即桥协议数据单元,STP 协议使用 BPDU 进行交互,BPDU 携带桥 ID 、根桥 ID 、根路径开销等信息,用于交换机决定根桥和端口角色(根端口、指定端口、阻塞端口)。
6、配置 BPDU :由根网桥产生,每隔 Hello 时间发送。其它非根交换机只能从根端口接收配置 BPDU ,并从指定端口进行转发。
7、拓扑变化通知 BPUD :由检查到拓扑变化的非根交换机产生,通过自己的根端口向根网桥方向发送。收到 TCN BPDU 的非根交换机,会通过自己的根端口向根网桥方向转发,同时向收到 TCN BPDU 的指定端口返回确认消息。根网桥收到 TCN BPDU 后,会在下一个 BPDU 中更新拓扑的变化。
8、桥 ID :由 STP 优先级和 MAC 地址构成,用于 STP 选举。
9、根路径开销:即 PRC ,去往根网桥每条路径上每个出端口开销的总和。
10、端口 ID :由端口优先级和 ID 构成,用于 STP 选举。
11、边缘端口功能:部署 RSTP 定义的端口角色,而是能够让端口立即切换到转发状态的快速收敛特性。
12、P/A 机制:能够实现点到点指定端口的快速状态切换,即跳过转发延迟,直接进入转发状态。
13、点到点端口:全双工状态的端口。
14、共享型端口:半双工状态的端口。
15、MSTP :即多生成树协议,按照指定的实例运行 STP 计算。
网络层
1、IPv4 :互联网协议第 4 版,协议定义的地址空间已用完,但还是目前使用最广泛的互联网协议规范。
2、IPv6 :互联网协议第 6 版,也就是新版互联网协议,能提供比 IPv4 协议更广泛的地址空间。
2001:1111:0100:000a:0000:00bc:2500:0a0b
3、数据包分片:由于数据包大小超过了链路最大传输单元的限制,将一个完整的数据包分成多个数据包进行分散发送。
4、路由:是指路由器的路由表中用来标识路径信息的条目,也指路由器利用路由条目转发数据的操作。
5、路由表:路由设备中用来存放路由条目的数据表,路由设备依据路由表中的信息进行转发判断。
6、路由协议:定义路由设备之间如何交换路径信息、交换何种信息,以及路由设备如何根据这些信息计算出去往各个网络最佳路径等选路操作相关事项的协议。
7、距离矢量路由协议:让路由器之间交换与距离和方向相关的信息,让各个路由器在邻居提供的信息基础上,计算出自己去往各个网络最优路径的路由协议。
8、链路状态路由协议:让路由器之间交换与网络拓扑有关的信息,让每台设备依照收到的信息独立计算出去往各个网络最佳路径的路由协议。
9、最长匹配原则:为了提升地址匹配的准确性,在有多条路由匹配数据包的目的 IP 地址时,路由器会选择掩码位数最多的那条路由来转发数据包。
子网划分
1、掩码:一种与 IPv4 地址长度相同,也是使用点分十进制表示法的编码,作用是描述 IPv4 地址中网络位的长度。
2、网络位:IP 地址中用来表示设备所在网络的地址位,位于 IP 地址的前面。
3、主机位:IP 地址中用来表示网络中的编号的地址位,位于 IP 地址的后面。
4、有类编址:将 IP 地址通过前 4 位二进制数分为 A 、B 、C 、D 等类别,并按照类别固定网络位长度的编址方式。
5、无类编址:打破 IP 地址类别的限制,不以 IP 地址前几位二进制数的取值来固定网络位长度的编址地址。
6、单播:一对一的数据发送方式。
7、组播:通过多个节点共同加入一个感兴趣组,实现一对多的数据发送方式。
8、ARP :全称是地址解析协议,通过目的 IP 地址解析目的设备 MAC 地址。
静态路由
1、路由条目:路由器根据目的 IP地址匹配路由条目,并根据路由条目中的出接口和下一跳信息来转发数据包。
2、路由优先级:当路由器上有多条不同途径获得的路由时,路由器根据路由优先级来选择最佳路由。
3、路由度量值:当路由器上有多条相同途径获得的路由时,路由器根据路由度量值来选择最佳路由。
4、直连路由:路由器接口所连子网,只有当接口处于工作状态时,路由表才会出现相应的直连路由。
5、静态路由:手动在路由器上配置的路由。
6、默认路由:掩码为 0 的路由,也是最不精确的路由,但却可以匹配任意目的 IP 地址。
7、动态路由:路由器通过动态路由协议学到的路由。
8、浮动静态路由:当一条主用路由发生故障时,自动切换到备用路由。
9、汇总路由:将多个子网的路由汇总成一条路由。
10、三层拓扑:描述各个网络的地址和路由器根据网络地址转发数据包的逻辑通道。
11、物理拓扑:展示网络设备之间物理连接方式的拓扑。
12、VLAN 间路由:根据 IP 地址为不同 VLAN 间的流量执行路由转发。
13、三层交换机:有三层路由功能的交换机。
14、VLANIF 接口:三层交换机上具有三层路由功能的虚拟接口,经常作为相应 VLAN 中主机的默认网关。
动态路由
1、有类路由协议:路由通告信息中,不包含 IP 地址掩码的路由协议。
2、无类路由协议:路由通告信息中,包含 IP 地址掩码的路由协议。
3、链路状态通告( LSA ):链路状态型路由协议用来通告路由信息的方式。
4、路由信息协议( Routing Information Protocol ):即 RIP ,是一种距离矢量型路由协议。
5、更新计时器( Undate Timer ):RIP 路由器以更新计时器的时间为周期,定期向外通告一次路由更新信息,默认是 30 秒。
6、老化计时器( Age Timer ):如果路由器连续一段时间没有从 RIP 接口收到某条路由的更新消息,路由器就会把这条路由标注为不可达,但不会从 RIP 数据库中删除。这段时间是由老化计时器定义的,默认的时间为 180 秒。
7、垃圾收集计时器( Garbage Collect Timer ):当一条路由被标记为不可达,到路由器彻底删除的时间,就是垃圾收集计时器,默认是 120 秒。
8、水平分割( Split Horizon ):禁止路由器从一个接口学习到的路由,再从这个接口通告出去。
9、毒性逆转:当路由器从一个接口学习到一条去往某个网络的路由时,会通过这个接口通告一条这个网络不可达的路由。
10、路由毒化( Route Poisoning ):路由器把自己路由表中已经失效的路由作为一条不可达路由,主动通告出去。
11、触发更新( Triggered Undate ):路由器在网络发生变化时,不等待更新计时器到时,就主动发送更新。
OSPF
1、OSPF 邻居表:用来记录自己各个接口所连接的 OSPF 邻居设备,以及自己和邻居设备之间的邻居状态等信息。
2、OSPF 拓扑表:即链路状态数据库,包含了同一区域内所有其它路由器通告的链路状态信息。
3、网络类型:OSPF 接口的网络类型,包括广播类型、P2P 类型、NBMA 类型和 P2MP 类型。
4、路由器 ID :OSPF 域中路由器标记自己的值。
5、DR 和 BDR :指定路由器和备份指定路由器。在多路访问网络中,为减少网络中传输 OSPF 管理流量,而设置的 OSPF 接口角色。
6、链路状态消息:即 LSA 。OSPF 路由器之间会通过交互链路状态消息,统一链路状态数据库。
7、OSPF 骨干区域:即 OSPF 区域 0 ,所有区域都要和区域 0 相连,不管是物理方式还是逻辑方式。
8、内部路由器:所有接口属于同一个 OSPF 区域的路由器。
9、骨干路由器:有接口属于骨干区域,即区域 0 的路由器。
10、区域边界路由器:即 ABR ,所有接口不属于同一个 OSPF 区域的路由器。
11、自治系统边界路由器:即 ASBR ,通过其它方式获得的外部路由条目引入到 OSPF 网络中,让 OSPF 路由器获得 OSPF 之外路由信息的路由器。
12、OSPF 虚链路:如果非骨干区域没有和骨干区域直接相连,可以通过 OSPF 虚链路连接到骨干区域。
13、路由器 LSA :Type-1 LSA ,类型 1 LSA 。每台路由器都会通告的 LSA ,仅在所在的区域内泛洪。
14、网络 LSA :Type-2 LSA ,类型 2 LSA 。仅 DR 路由器通告的 LSA ,仅在所在的区域内泛洪。
15、网络汇总 LSA :Type-3 LSA ,类型 3 LSA 。仅 ABR 路由器会通告的 LSA ,仅在所在的区域内泛洪。
16、ASBR 汇总 LSA :Type-4 LSA ,类型 4 LSA 。仅 ABR 路由器会通告的 LSA ,通告其它区域中 ASBR 的链路状态信息,仅在创建的区域内泛洪。
17、自治系统外部 LSA :Type-5 LSA ,类型 5 LSA 。仅 ASBR 路由器会通告的 LSA ,通告 OSPF 外部的链路状态信息,会在整个 OSPF 域中泛洪。
18、NSSA 外部 LSA :Type-7 LSA ,类型 7 LSA 。仅 ASBR 路由器会通告的 LSA ,通告 OSPF 外部的链路状态信息,仅在 NSSA 区域内泛洪。
传输层
1、TCP :全称是传输控制协议,IP 网络中传输层的主要协议之一,负责为不同终端系统的应用进程之间提供面向连接的通信服务。
2、UDP :全称是用户数据报协议,IP 网络中传输层的主要协议之一,负责为不同终端系统的应用进程之间提供能力范围内的通信服务。
3、端口号:取值范围是 0 ~ 65535
,传输层协议通过端口号来区分不同的应用层程序。端口号由 IANA 统一管理,分为知名端口、注册端口和动态端口。
4、知名端口:端口号范围是 0 ~ 1023
,这些端口用于特定的服务和应用层程序,使客户端应用层程序能够顺利请求服务器的特定服务。
5、注册端口:端口号范围是 1024 ~ 49151
,这些是分配给终端用户应用层程序的端口号,主要针对用户自行安装的程序,而不是已经拥有了知名端口的应用层程序。当系统中没有任何资源占用这类端口时,客户端就可以在这个范围内动态选择源端口。
6、动态端口:端口号范围是 49152 ~ 65535
,客户端在开始连接服务器时,会动态选用某个端口做为自己的源端口。
7、套接字:由 IP 地址和端口号组成的格式,能够唯一标识一台终端设备上的一个应用层协议。
8、TCP 连接:TCP 协议在开始传输用户数据前,需要先建立连接。
9、三次握手:TCP 建立连接的过程中,客户端和服务器之间的三次信息交互。
10、滑动窗口:TCP 协议使用的一项机制,让接收方根据自己的接收能力,通知发送方调整发送速率。
应用层
1、服务器-客户端模型:一种应用层协议模型,这种模型的应用程序是由专门的主机为其它主机提供服务。
2、P2P 模型:一种应用层协议模型,这种模型的应用协议会在主机之间建立对等体连接,每台主机身份对等,它们可以提供服务,也可以接受服务。
3、客户端:在通信中请求并接受服务的主机。也常作为客户端程序或客户端软件的简称。
4、服务器:在通信中负责接受请求并听提供服务的主机。
5、Telnet :由管理设备充当客户端,向充当服务器的被管理设备建立连接,以对其实施远程管理的应用层协议。
6、Shell :操作系统提供给用户操作设备的接口。
7、SSH :由管理设备充当客户端,向充当服务器的被管理设备建立安全连接,以对其实施安全远程管理的应用层协议。
8、DHCP :全称是动态主机配置协议,服务器通过这个协议向连接到网络中的客户端提供包含 IP 地址在内的配置数据。
9、DNS :全称是域名服务的应用层协议,向请求解析域名 IP 地址的客户端提供域名和地址解析服务。
10、Web :万维网的简称,将设备相互连接起来,以将设备中的数据以超文本形式提供给请求方的网络。
11、HTTP :全称是超文本传输协议,客户端可以通过与服务器之间建立的连接,来传输 Web 超文本信息的应用层协议。
12、SSL :全称是安全套接字层,是网景公司开发的技术,在 TCP 与应用层协议之间插入一层,为应用层提供额外的信息安全防护措施。
13、TLS :全称是传输层安全,是 IETF 对 SSL 协议进行标准化的结果,与 SSL 差别不大,但不相互兼容。
14、HTTPS :全称是安全的超文本传输协议,客户端通过 SSL/TLS 与服务器之间建立安全的 HTTP 连接,以传输超文本信息。
15、用户代理:在电子邮件的架构中,用户代理指终端用户用来收发邮件的电子邮件客户端。
16、SMTP :全称是简单邮件传输协议,定义了邮件服务器之间相互传输邮件的标准与流程。
17、邮件访问协议:定义了接收方用户代理如何从邮件服务器获取邮件的协议。
18、POP3 :全称是邮局协议版本 3 ,定义了接收方用户代理对接收方邮件服务器执行下载、删除邮件等命令的流程及标准。
网络管理
1、目录:用来在文件系统中分类、分级存放文件,功能和 Windows 系统中的文件夹一样。
2、启动配置文件:设备管理员保存的配置状态,设备在启动时会将这种设备状态加载到设备中。
3、VTY 接口/线路:全称是虚拟类型终端接口/线路,提供远程管理访问的虚拟接口,当管理员通过 Telnet 或 SSH 协议对路由器执行远程管理时,即需要通过 VTY 接口/线路连接到路由器上。
阿威一百七十七式,打完收工。
图解网络:36 张图详解网络基础知识
原创 Fox 网络技术平台 2024 年 08 月 07 日 12:01 广东
前言
网络协议
我们用手机连接上网的时候,会用到许多网络协议。从手机连接 WiFi 开始,使用的是802.11(即 WLAN )协议,通过 WLAN 接入网络;手机自动获取网络配置,使用的是DHCP协议,获取配置后手机才能正常通信。这时手机已经连入局域网,可以访问局域网内的设备和资源,但还不能使用互联网应用,例如:微信、抖音等。想要访问互联网,还需要在手机的上联网络设备上实现相关协议,即在无线路由器上配置NAT、PPPOE等功能,再通过运营商提供的互联网线路把局域网接入到互联网中,手机就可以上网玩微信、刷抖音了。
网络协议示意图
局域网:小范围内的私有网络,一个家庭内的网络、一个公司内的网络、一个校园内的网络都属于局域网。
广域网:把不同地域的局域网互相连接起来的网络。运营商搭建广域网实现跨区域的网络互连。
互联网:互联全世界的网络。互联网是一个开放、互联的网络,不属于任何个人和任何机构,接入互联网后可以和互联网的任何一台主机进行通信。
简单来说,就是手机、无线路由器等设备通过多种网络协议实现通信。网络协议就是为了通信各方能够互相交流而定义的标准或规则,设备只要遵循相同的网络协议就能够实现通信。那网络协议又是谁规定的呢?ISO 制定了一个国际标准OSI, 其中的OSI 参考模型常被用于网络协议的制定。
OSI 参考模型图
OSI 参考模型
OSI 参考模型将网络协议提供的服务分成7层,并定义每一层的服务内容,实现每一层服务的是协议,协议的具体内容是规则。上下层之间通过接口进行交互,同一层之间通过协议进行交互。OSI 参考模型只对各层的服务做了粗略的界定,并没有对协议进行详细的定义,但是许多协议都对应了 7 个分层的某一层。所以要了解网络,首先要了解 OSI 参考模型。
OSI 参考模型分层功能
应用层
OSI 参考模型的第7层(最高层)。应用程序和网络之间的接口,直接向用户提供服务。应用层协议有电子邮件、远程登录等协议。
应用层示例图
表示层
OSI 参考模型的第6层。负责数据格式的互相转换,如编码、数据格式转换和加密解密等。保证一个系统应用层发出的信息可被另一系统的应用层读出。
表示层示例图
会话层
OSI 参考模型的第5层。主要是管理和协调不同主机上各种进程之间的通信(对话),即负责建立、管理和终止应用程序之间的会话。
会话层示例图
传输层
OSI 参考模型的第4层。为上层协议提供通信主机间的可靠和透明的数据传输服务,包括处理差错控制和流量控制等问题。只在通信主机上处理,不需要在路由器上处理。
传输层示例图
网络层
OSI 参考模型的第3层。在网络上将数据传输到目的地址,主要负责寻址和路由选择。
网络层示例图
数据链路层
OSI 参考模型的第 2 层。负责物理层面上两个互连主机间的通信传输,将由 0 、 1 组成的比特流划分成数据帧传输给对端,即数据帧的生成与接收。通信传输实际上是通过物理的传输介质实现的。数据链路层的作用就是在这些通过传输介质互连的设备之间进行数据处理。
网络层与数据链路层都是基于目标地址将数据发送给接收端的,但是网络层负责将整个数据发送给最终目标地址, 而数据链路层则只负责发送一个分段内的数据。
数据链路层示例图
物理层
OSI 参考模型的第1层(最底层)。负责逻辑信号(比特流)与物理信号(电信号、光信号)之间的互相转换,通过传输介质为数据链路层提供物理连接。
物理层示例图
TCP/IP 参考模型
由于 OSI 参考模型把服务划得过于琐碎,先定义参考模型再定义协议,有点理想化。TCP/IP 模型则正好相反,通过已有的协议归纳总结出来的模型,成为业界的实际网络协议标准。
TCP/IP 是有由 IETF 建议、推进其标准化的一种协议,是 IP 、 TCP 、 HTTP 等协议的集合。TCP/IP 是为使用互联网而开发制定的协议族,所以互联网的协议就是 TCP/IP 。
先介绍下 TCP/IP 与 OSI 分层之间的对应关系,以及 TCP/IP 每层的主要协议。
网络接入层
TCP/IP 是以 OSI 参考模型的物理层和数据链路层的功能是透明的为前提制定的,并未对这两层进行定义,所以可以把物理层和数据链路层合并称为网络接入层。网络接入层是对网络介质的管理,定义如何使用网络来传送数据。但是在通信过程中这两层起到的作用不一样,所以也有把物理层和数据链路层分别称为硬件、网络接口层。TCP/IP 分为四层或者五层都可以,只要能理解其中的原理即可。
设备之间通过物理的传输介质互连, 而互连的设备之间使用MAC 地址实现数据传输。采用 MAC 地址,目的是为了识别连接到同一个传输介质上的设备。
网络层
相当于 OSI 模型中的第 3 层网络层,使用IP 协议。IP 协议基于IP 地址转发分包数据,作用是将数据包从源地址发送到目的地址。
TCP/IP 分层中的网络层与传输层的功能通常由操作系统提供。 路由器就是通过网络层实现转发数据包的功能。
网络层
网络传输中,每个节点会根据数据的地址信息,来判断该报文应该由哪个网卡发送出去。各个地址会参考一个发出接口列表, MAC 寻址中所参考的这张表叫做MAC 地址转发表,而 IP 寻址中所参考的叫做路由控制表。MAC 地址转发表根据自学自动生成。路由控制表则根据路由协议自动生成。MAC 地址转发表中所记录的是实际的 MAC 地址本身,而路由表中记录的 IP 地址则是集中了之后的网络号(即网络号与子网掩码)。
- IP
IP 是跨越网络传送数据包,使用 IP 地址作为主机的标识,使整个互联网都能收到数据的协议。IP 协议独立于底层介质,实现从源到目的的数据转发。IP 协议不具有重发机制,属于非可靠性传输协议。
- ICMP
用于在 IP 主机、路由器之间传递控制消息,用来诊断网络的健康状况。
- ARP
从数据包的 IP 地址中解析出 MAC 地址的一种协议。
传输层
相当于 OSI 模型中的第 4 层传输层,主要功能就是让应用程序之间互相通信,通过端口号识别应用程序,使用的协议有面向连接的TCP协议和面向无连接的UDP协议。
面向连接是在发送数据之前, 在收发主机之间连接一条逻辑通信链路。好比平常打电话,输入完对方电话号码拨出之后,只有对方接通电话才能真正通话,通话结束后将电话机扣上就如同切断电源。
面向无连接不要求建立和断开连接。发送端可于任何时候自由发送数据。如同去寄信,不需要确认收件人信息是否真实存在,也不需要确认收件人是否能收到信件,只要有个寄件地址就可以寄信了。
传输层
- TCP
TCP 是一种面向有连接的传输层协议,能够对自己提供的连接实施控制。适用于要求可靠传输的应用,例如文件传输。
- UDP
UDP 是一种面向无连接的传输层协议,不会对自己提供的连接实施控制。适用于实时应用,例如:IP 电话、视频会议、直播等。
应用层
相当于 OSI 模型中的第 5 - 7 层的集合,不仅要实现 OSI 模型应用层的功能,还要实现会话层和表示层的功能。HTTP 、 POP3 、 TELNET 、 SSH 、 FTP 、 SNMP 都是应用层协议。
TCP/IP 应用的架构绝大多数属于客户端 / 服务端模型。提供服务的程序叫服务端, 接受服务的程序叫客户端。客户端可以随时发送请求给服务端。
应用层
- HTTP
是 WWW 浏览器和服务器之间的应用层通信协议,所传输数据的主要格式是 HTML 。HTTP 定义高级命令或者方法供浏览器用来与 Web 服务器通信。
- POP3
简单邮件传输协议,邮件客户端和邮件服务器使用。
- TELNET 和 SSH
远程终端协议,用于远程管理网络设备。TELNET 是明文传输, SSH 是加密传输。
- SNMP
简单网络管理协议,用于网管软件进行网络设备的监控和管理。
封装与解封装
通常,为协议提供的信息为包头部,所要发送的内容为数据。每个分层中,都会对所发送的数据附加一个头部,在这个头部中包含了该层必要的信息, 如发送的目标地址以及协议相关信息。在下一层的角度看,从上一分层收到的包全部都被认为是本层的数据。
数据发送前,按照参考模型从上到下,在数据经过每一层时,添加协议报文头部信息,这个过程叫封装。
封装
数据接收后,按照参考模型从下到上,在数据经过每一层时,去掉协议头部信息,这个过程叫解封装。
解封装
经过传输层协议封装后的数据称为段,经过网络层协议封装后的数据称为包,经过数据链路层协议封装后的数据称为帧,物理层传输的数据为比特。
TCP/IP 通信中使用 MAC 地址、 IP 地址、端口号等信息作为地址标识。甚至在应用层中,可以将电子邮件地址作为网络通信的地址。
实际数据传输举例
实际生活中,互联网是使用的 TCP/IP 协议进行网络连接的。我们以访问网站为例,看看网络是如何进行通信的。
数据传输举例
发送数据包
访问 HTTP 网站页面时,打开浏览器,输入网址,敲下回车键就开始进行 TCP/IP 通信了。
应用程序处理
应用层
首先,应用程序中会进行 HTML 格式编码处理,相当于 OSI 的表示层功能。编码转化后,不一定会马上发送出去,相当于会话层的功能。在请求发送的那一刻,建立 TCP 连接,然后在 TCP 连接上发送数据。接下来就是将数据发送给下一层的 TCP 进行处理。
TCP 模块处理
传输层
TCP 会将应用层发来的数据顺利的发送至目的地。实现可靠传输的功能,需要给数据封装 TCP 头部信息。TCP 头部信息包括源端口号和目的端口号(识别主机上应用)、序号(确认哪部分是数据)以及校验和(判断数据是否被损坏)。随后封装了 TCP 头部信息的段再发送给 IP 。
IP 模块处理
网络层
IP 将 TCP 传过来的数据段当做自己的数据,并封装 IP 头部信息。IP 头部信息中包含目的 IP 地址和源 IP 地址,以及上层协议类型信息。
IP 包生成后,根据主机路由表进行数据发送。
网络接口处理
物理层
网络接口对传过来的 IP 包封装上以太网头部信息并进行发送处理。以太网头部信息包含目的 MAC 地址、源 MAC 地址,以及上层协议类型信息。然后将以太网数据帧通过物理层传输给接收端。发送处理中的 FCS 由硬件计算, 添加到包的最后。设置 FCS 的目的是为了判断数据包是否由于噪声而被破坏。
接收数据包
包的接收流程是发送流程的反向过程。
网络接口处理
收到以太网包后,首先查看头部信息的目的 MAC 地址是否是发给自己的包。如果不是发送给自己的包就丢弃。如果是发送给自己的包,查看上层协议类型是 IP 包,以太网帧解封装成 IP 包,传给 IP 模块进行处理。如果是无法识别的协议类型,则丢弃数据。
网口处理流程
IP 模块处理
收到 IP 包后,进行类似处理。根据头部信息的目的 IP 地址判断是否是发送给自己包,如果是发送给自己的包,则查看上一层的协议类型。上一层协议是 TCP ,就把 IP 包解封装发送给 TCP 协议处理。
IP 模块处理流程
假如有路由器,且接收端不是自己的地址,那么根据路由控制表转发数据。
路由器处理流程
TCP 模块处理
收到 TCP 段后,首先查看校验和,判断数据是否被破坏。然后检查是否按照序号接收数据。最后检查端口号,确定具体的应用程序。
TCP 模块处理流程
数据接收完毕后,发送一个 “确认回执” 给发送端。如果这个回执信息未能达到发送端,那么发送端会认为接收端没有接收到数据而一直反复发送。
数据被完整接收后,会把 TCP 段解封装发送给由端口号识别的应用程序。
应用程序处理
应用程序收到数据后,通过解析数据内容获知发送端请求的网页内容,然后按照 HTTP 协议进行后续数据交互。
网络构成
网络构成要素
搭建一套网络涉及各种线缆和网络设备。下面介绍一些常见的硬件设备。硬件设备所说的层数是参照的 OSI 参考模型,而不是 TCP/IP 模型。
主要设备及作用表
通信介质与数据链路
设备之间通过线缆进行连接。有线线缆有双绞线、光纤、串口线等。根据数据链路不同选择对应的线缆。传输介质还可以被分为电波、微波等不同类型的电磁波。
传输速率:单位为 bps
,是指单位时间内传输的数据量有多少。又称作带宽,带宽越大网络传输能力就越强。
吞吐量:单位为 bps
,主机之间实际的传输速率。吞吐量这个词不仅衡量带宽, 同时也衡量主机的 CPU 处理能力、 网络的拥堵程度、 报文中数据字段的占有份额等信息。
网卡
任一主机连接网络时,必须要使用网卡。可以是有线网卡,用来连接有线网络,也可以是无线网卡连接 WiFi 网络。每块网卡都有一个唯一的MAC 地址,也叫做硬件地址或物理地址。
网卡
二层交换机
二层交换机
二层交换机位于 OSI 模型的第 2 层(数据链路层)。它能够识别数据链路层中的数据帧,并将帧转发给相连的另一个数据链路。
数据帧中有一个数据位叫做FCS,用以校验数据是否正确送达目的地。二层交换机通过检查这个值,将损坏的数据丢弃。
二层交换机根据 MAC 地址自学机制判断是否需要转发数据帧。
路由器 / 三层交换机
路由器
路由器是在 OSI 模型的第 3 层(网络层)上连接两个网络、并对报文进行转发的设备。二层交换机是根据 MAC 地址进行处理,而路由器 / 三层交换机则是根据IP 地址进行处理的。因此 TCP/IP 中网络层的地址就成为了 IP 地址。
路由器可以连接不同的数据链路。比如连接两个以太网,或者连接一个以太网与一个无线网。家庭里面常见的无线路由器也是路由器的一种。
四至七层交换机
负载均衡设备
四至七层交换机负责处理 OSI 模型中从传输层至应用层的数据。以 TCP 等协议的传输层及其上面的应用层为基础,分析收发数据,并对其进行特定的处理。例如,视频网站的一台服务器不能满足访问需求,通过负载均衡设备将访问分发到后台多个服务器上,就是四至七层交换机的一种。还有带宽控制、广域网加速器、防火墙等应用场景。
总结
总结
应用层设备有电脑、手机、服务器等。应用层设备不转发数据,它们是数据的源或目的,拥有应用层以下的各层功能。发送数据时,从上而下的顺序,逐层对数据进行封装,再通过以太网将数据发送出去。接收数据时,从下而上的顺序,逐层对数据进行解封装,最终恢复成原始数据。
应用层处理流程
数据链路层设备有二层交换机、网桥等。二层网络设备只转发数据,通过识别数据的MAC 地址进行转发。二层交换机接收数据后,对数据最外层封装的以太网头部信息进行查看,看到数据的目的 MAC 地址后,把数据帧从对应端口发送出去。交换机并不会对数据帧进行解封装,只要知道 MAC 地址信息就可以正确地将数据转发出去。
数据链路层处理流程
网络层设备有路由器、三层交换机等。三层网络设备只转发数据,通过识别数据的IP 地址进行转发。路由器接收数据后,首先查看最外层封装的以太网头部信息,当目的 MAC 地址是自己时,就会将以太网头部解封装,查看数据的 IP 地址。根据 IP 路由表做出转发决定时,路由器会把下一跳设备的 MAC 地址作为以太网头部的目的 MAC 地址,重新封装以太网头部并将数据转发出去。
网络层处理流程
转发数据的网络设备和应用层的数据,就像快递员和包裹一样。快递员根据目的地址运送包裹,不必了解包裹里的具体内容。
通过分层功能来区分网络设备已经不再适用,交换机集成三层路由功能就是三层交换机,无线 AP 集成路由器功能就是无线路由器。但是为了方便说明,通常是介绍单个设备的功能和原理。
无线路由器
36 张图详解应用层协议:网络世界的最强王者
原创 Fox 网络技术平台 2023 年 07 月 20 日 12:00 广东
应用层
我们前面介绍过 TCP/IP 模型的下三层,分别是网络接入层、网络层和传输层。它们都是为应用层服务的,传输应用层的各种数据,现在我们就来看看最高层的应用层。
在 TCP/IP 模型中,应用层提供的服务相当于 OSI 模型的应用层、表示层和会话层的服务总和。不仅包含了管理通信连接的会话层功能、数据格式转换的表示层功能,还包括主机间交互的应用层功能。
***应用层的目的是向应用程序提供网络接口,直接向用户提供服务。***相比于下层的网络协议,应用协议要常见得多,可能大家都听过 HTTP 、HTTPS 、SSH 等应用层协议。
TCP/IP 模型中应用层位于传输层之上,传输层的端口号用于标识数据所对应的应用层协议。也就是说,有端口号的协议都是应用层协议。应用协议是终端设备之间的应用通信规则。应用之间交互的信息叫消息,应用协议定义这些消息的格式以及消息的控制或操作的规则。
应用协议的通信方式可分为两类:
-
服务器和客户端模型
-
P2P 模型
在服务器和客户端模型中,始终公开固定 IP 地址的主机为其它主机的应用程序提供服务,请求服务的主机之间不会互相通信。这些为其它主机提供服务的终端设备称为服务器,那些请求服务的主机则称为客户端。大多数应用层协议,都是这种模型。
在P2P 模型中,没有特定的服务器或客户端,这些设备上安装的应用程序,可以在主机间建立对等连接,既可以提供服务,也可以接受服务。通常是大流量的应用程序采用 P2P 模型,比如:下载器等。
开发应用程序时,为了实现相应的功能和目的,可以使用现有的应用协议,也可以自己定义一个新的应用协议。同时,应用程序可以直接使用传输层以下的网络传输服务,开发者只需要关心选择哪种应用协议、如何开发即可,而不用考虑数据是如何传输到目的地。这也是 TCP/IP 分层模型的特点。
应用程序有很多,包括 Web 浏览器、电子邮件、远程登录、文件传输、网络管理等。这些应用程序都会使用应用协议进行通信,应用协议正是为了实现应用程序的功能而设计和创造的。
远程登录
网络设备的管理方式,分为本地管理和远程管理。远程管理是从本地主机登录到网络对端设备,向网络对端的设备发送管理数据,以实现设备管理的操作方式。通过远程管理,不仅可以直接使用主机上的应用,还可以对主机进行参数设置。远程登录主要使用 Telnet 和 SSH 两种协议管理网络设备。
女神叫大刘去她公司修理网络,大刘都不用去女神的公司,直接远程登录解决问题。
Telnet
在实际工作中,除了个别无法远程管理设备外,大多会采用远程管理的方式,来管理设备的配置文件和系统文件。对比本地管理,远程管理不受物理位置限制,连上网络就可以对世界另一端的设备进行操控,更省去了插拔设备线缆、终端设置的过程,可以通过一个远程应用同时管理大量的网络设备。
Telnet 协议定义了一台设备通过 IP 网络向远端设备发起明文管理连接的通信标准,可以在一台设备上通过 Telnet 协议与一台远端设备建立管理连接,并对远端设备实施配置和监控,这种方式的体验与本地登录设备并无区别。发起管理的设备为Telnet 客户端,被管理的设备是Telnet 服务器。因此,Telnet 协议是一个典型的服务器和客户端模型的应用层协议。
**Telnet 协议通过 TCP 协议建立服务器和客户端的一条连接,并通过这条连接向服务器发送用户名、密码和命令。Telnet 协议使用的是TCP 23 端口,表示客户端在发起 Telnet 连接时,默认连接服务器的 TCP 23 号端口。
***当 Telnet 客户端输入命令后,这些命令通过 TCP 连接发送到 23 号端口,监听请求的守护进程 Telnetd 收到后,将命令发送给 Shell ,Shell 为操作系统进行命令解释,然后操作系统执行 Telnet 客户端发出的命令。***同理,操作系统按照相反的顺序,将命令执行的结果发回给 Telnet 客户端。
Telnet 协议实现了远程命令传输,但是客户端和服务器跨越不可靠的公共网络时,在命令传输过程中可以截获 Telnet 通信的所有数据,然后使用截获的用户名和密码来通过 Telnet 服务器的身份认证,并登录到设备上对配置文件进行修改。
Telnet 协议存在重大安全隐患,不推荐在实验室之外的环境使用。
SSH
SSH 协议全程是安全外壳协议,目的就是为了取代 Telnet ,SSH 是加密的远程登录协议,提供更加安全的远程登录服务。使用 SSH 后会加密通信内容。即使信息被截获,由于无法解密,也无法了解数据的真正内容。
SSH 协议常用版本是SSHv2,SSH 客户端通过 SSHv2 协议与 SSH 服务器建立一条 TCP 的加密信道,建立这条安全信道的方式是让客户端使用服务器的 RSA 公钥来验证 SSH 服务器的身份。SSH 协议默认使用TCP 22 端口。
如果客户端成功验证了服务器的身份,它们之间就会创建出一个会话密钥,并用双方协商出来的加密算法和会话密钥,对这个信道传输的数据进行加密。这样,两台设备之间就建立了一条安全的信道,使用这条安全信道发送密码,密码以密文的形式传输,通过服务器的身份认证。SSH 就是通过这种方式建立加密信道,确保 SSH 服务器,也就是被管理设备的 Shell 免遭非法用户操作。
文件传输
除了远程登录,我们还需要从远端设备传输文件,文件传输协议提供的应用服务可以满足我们的需求。FTP是网络上文件传输的标准协议,FTP 使用TCP作为传输协议,支持用户的登录认证和访问权限的控制。另一种常见的文件传输协议是TFTP协议,TFTP 是一种简单的文件传输协议,不支持用户的登录认证,也没有复杂的命令。TFTP 使用UDP作为传输协议,并有重传机制。
FTP
FTP用于服务器和客户端之间传输文件,是 IP 网络上传输文件的通用协议。FTP 采用客户端和服务器的模式,使用TCP协议提供可靠传输。FTP 可以对登录服务器的用户名和密码进行验证,允许客户端指定文件的传输类型,并且可以设置文件的传输权限。
FTP 使用两条 TCP 连接实现文件传输。一条是FTP 控制连接,用来控制管理;另一条是FTP 数据连接,用于数据传输。FTP 控制连接用于传输 FTP 控制命令和命令执行的应答信息,比如登录用户名和密码的验证、发送文件的名称、发送方式的设置。这条连接在整个 FTP 会话过程中一直保持打开,通过 ASCII 码字符串发送请求和接收应答。在控制连接上无法发送数据,而FTP 数据连接用于文件和文件列表的传输,仅在需要传输数据时建立数据连接,数据传输完毕后终止。
FTP 控制连接使用的是TCP 21 号端口,也是 FTP 服务器的侦听端口,等待客户端的连接。在 TCP 21 号端口进行文件 GET( RETR )、PUT( STOR ),以及文件表( LIST )等操作时,每次都会建立一个用于数据传输的数据连接。数据和文件表的传输正式在这个数据连接上进行的。
数据连接的 TCP 连接通常使用端口 20。也可以使用 PORT 命令修改为其它值。
相同的一个文件,不同的操作系统可能有不同的存储方式。为了确保文件能够准确的传送给对方,常用 2 中传输模式:
- ASCII 模式
ASCII 模式是默认的文件传输模式。发送方把本地文件转换成标准的 ASCII 码,然后在网络中传输;接收方收到文件后,根据自己的文件存储方式,把它转换成本地文件。ASCII 文件传输模式通常用于传输文本文件。
- 二进制流模式
二进制流模式也称为图像文件传输模式。发送方不做任何转换,把文件按照比特流的方式进行传输。二进制文件类型通常用于传送程序文件。
在 FTP 数据连接过程中,有两种数据传输方式:主动方式和被动方式。
FTP 主动传输方式,也称为PORT方式。采用主动方式建立数据连接时,FTP 客户端会通过 FTP 控制连接向 FTP 服务器发送 PORT 命令,PORT 命令携带参数:A1 、A2 、A3 、A4 、P1 、P2 ,其中 A1 、A2 、A3 、A4 表示需要建立数据连接的主机 IP 地址,而 P1 和 P2 表示客户端用于传输数据的临时端口号,临时端口号的数值为 256*P1+P2 。当需要传输数据时,服务器通过 TCP 端口号 20 与客户端提供的临时端口建立数据传输通道,完成数据传输。在整个过程中,由于服务器在建立数据连接时主动发起连接,因此被称为主动模式。
如果客户端在防火墙内部,主动方式可能会有问题,因为客户端的端口号是随机的,防火墙并不知道。默认安全策略,防火墙只会允许外部主机访问部分内部已知端口,阻断对内部随机端口的访问,从而无法建立 FTP 数据连接。这时,就需要使用 FTP 被动方式来进行文件传输。
被动方式也被称为PASV方式。FTP 控制通道建立后,希望通过被动方式建立数据传输通道的 FTP 客户端会利用控制通道向 FTP 服务器发送 PASV 命令,告诉服务器进入被动方式传输。服务器选择临时端口号并告知客户端,命令参数和主动传输方式一致。当需要传输数据时,客户端主动与服务器的临时端口建立数据传输通道,并完成数据传输。在整个过程中,服务器是被动接收客户端的数据连接,所以被称为被动模式。
采用被动方式时,两个连接都由客户端发起。一般防火墙不会限制内部的客户端发起的连接,这样就解决了主动方式下的问题。
TFTP
TFTP也是用于服务器和客户端之间传输文件的,对比 FTP ,TFTP 没有复杂的交互接口和认证控制,适用于不需要复杂交互的网络环境。
TFTP 采用客户端和服务器的模式,使用UDP协议传输,服务器使用端口号 69 侦听 TFTP 连接。由于 UDP 不能提供可靠的数据传输,因此 TFTP 使用超时重传机制确保数据正确发送。TFTP 只能提供简单的文件传输能力,包括文件的上传和下载。不支持文件目录功能,也不能对用户的身份进行验证和授权。
TFTP 协议传输是由客户端发起的。当需要下载文件时,客户端向 TFTP 服务器发送一个读请求,然后从服务器接收数据,并向服务器发送确认;当需要上传文件时,由客户端向服务器发送一个写请求,然后向服务器发送数据,并接收服务器的确认。
与 FTP 类似,TFTP 传输文件有两种模式:netascii 模式和octet 模式。octet 传输模式对应 FTP 的二进制流模式,用于传输程序文件;netascii 模式对应 FTP 的 ASCII 模式,用于传输文本文件。
TFTP 进行文件传输时,将传输文件看成是由多个连续的文件块组成。每一个 TFTP 数据报文中包含一个文件块,同时对应一个文件块编号。每次发完一个文件块后,就等待对方的确认,确认时指明块编号。发送方发完数据后,如果在规定时间内没收到对端的确认,那么发送方就会重新发送数据。发送确认的一方如果在规定时间内没收到下一个文件块数据,则重发确认报文。这种方式可以确保文件的传送不会因某一个数据的丢失而失败。
每次 TFTP 发送的数据报文中包含的文件块大小固定为 512
字节,如果文件长度恰好是 512
字节的整数倍,那么在文件传送完毕后,发送方还必须在最后发送一个不包含数据的报文,用来表示文件传输完毕。如果文件长度不是 512
字节的整数倍,那么最后传送的数据报文包含的文件块肯定小于 512
字节,正好作为文件结束的标志。
电子邮件
电子邮件,顾名思义,就是指网络上的邮政。通过电子邮件,可以发送文字内容、图片,还可以发送报表数据等所有计算机可以存储的信息。电子邮件不受距离限制,可以与世界上任一的互联网用户互相联系。由于使用简易、投递迅速、易于保存、不受距离限制等特点,使得电子邮件已经成为人们普遍使用的一种应用。
大刘向女神发的第一封邮件。
通信架构
电子邮件在几十年的发展过程中出现了明显的变化,从原始的发送方电脑直接向接收方电脑发送电子邮件,演变成收发双方都使用邮件服务器代为收发邮件。通过这种方式,电子邮件通信不再依赖接收方当前是否在线,而电子邮件的通信过程由简单的发送方到接收方,演变成 * 发送方电脑到发送方邮件服务器 , 发送方邮件服务器到接收方邮件服务器 *,以及 * 接收方邮件服务器到接收方电脑 * 的三个通信过程。并且参与通信的四方都不是直接相连,而是分别独立连接到互联网中。这个架构中,邮件发送方和接收方使用的电脑称为用户代理。
邮件地址
使用电子邮件时,需要拥有一个地址,这个地址叫做邮件地址,也叫邮箱地址。它相当于通信地址和姓名。我的电子邮件如下:
networkfox@qq
networkfox 表示用户的名称,同一个通信地址内,名称必须是唯一的,不能出现重复;@ 表示分隔符;qq 是用户邮箱的邮件接收服务器的域名。
电子邮件的发送地址由DNS管理。DNS 中注册了邮件地址和对应邮件服务器的域名。这些映射信息被称为MX 记录。比如:qq 的 MX 记录中指定了 mail.qq。那么任何发送给 qq 结尾的邮件都被发送到 mail.qq 服务器。就这样,根据 MX 记录中指定的邮件服务器,可以管理不同邮件地址与特定邮件服务器之间的映射关系。
SMTP 协议
提供电子邮件服务的协议叫做SMTP。SMTP 用于收发双方的邮件服务器之间,而不是用户代理和邮件服务器之间的通信方式。在实际使用中,发送方用户代理与发送方服务器之间也常采用 SMTP 协议。
SMTP 为了实现高效发送邮件内容,在传输层使用了TCP 协议,端口号是 25。在一台邮件服务器向另一台邮件服务器发送邮件时,首先向对方的 TCP 25 端口发起一条连接。然后利用这条 TCP 连接发送控制消息和数据。
尽管 SMTP 协议的逻辑简单,也足以顺利完成邮件的传输工作,但难免存在一些安全缺陷:
-
SMTP 传输的邮件是明文的形式,没有提供数据加密机制,可以看到邮件传输的具体内容,用户信息的机密性无法得到保障。
-
SMTP 没有提供任何认证机制,即使使用了伪造的发件人邮件地址也无法识别,会出现冒名顶替的安全问题。
漫天的广告邮件和包含钓鱼链接的垃圾邮件成为日益严重的问题。为了修正 SMTP 出现的问题,IETF 定义了扩展的 SMTP ,即 ESMTP 。ESMTP提供的扩展功能中包括认证机制和加密机制等。
在整个邮件传输的过程中,SMTP/ESMTP 协议定义了邮件服务器之间的消息传输方式。在接收服务器收到电子邮件后,接收方(用户代理)是如何访问邮件则需要其它的协议来处理。
POP3 协议
电子邮件通过 SMTP 协议到达接收方服务器,个人电脑不可能长期处于开机状态,用户希望一开机就能收到邮件,然而 SMTP 没有这种功能。
为了解决这个问题,就引入了 POP3 协议。POP3协议是用于接收电子邮件的协议。发送端的邮件使用 SMTP 协议将电子邮件转发给一直在线的 POP3 服务器。客户端再根据 POP3 协议从 POP3 服务器接收邮件。这个过程中,为了防止别人盗取邮件内容,还要进行用户认证。
POP3 协议和 SMTP 协议一样,是基于 TCP 的应用层协议,使用TCP 110 端口连接邮件服务器。接收方的邮件客户端程序首先使用 TCP 连接到 POP3 服务器的 TCP 端口 110 ;再进行用户认证、邮件列表查询、邮件下载、邮件删除等操作;操作完成后,客户端与邮件服务器之间再断开 TCP 连接。
POP3 仅负责邮件的下载,邮件从客户端上传到邮件服务器由 SMTP 协议完成。
IMAP 协议
POP3 协议的邮件客户端能够在邮件服务器上执行的操作很少,而且邮件要下载到客户端本地,而不保留在邮件服务器,实际使用时很不方便。目前使用更广泛的接收电子邮件的协议是IMAP。在 IMAP 中邮件则由服务器进行管理。
- 使用 IMAP 时,不必从服务器上下载所有的邮件也可以查看。* 由于 IMAP 是在服务器端处理 MIME 信息,它可以实现邮件附件的选择性下载功能。比如:一封邮件有 5 个附件时,可以只下载其中的 3 个附件。IMAP 还会在服务器上对 “ 已读 / 未读 ” 信息和邮件分类进行管理,所以在不同的电脑上打开邮箱,也能保持同步,使用起来非常方便。
WWW
万维网(WWW)是将互联网的信息以超文本形式展现的系统,也叫做Web。可以显示 WWW 信息的客户端软件叫做Web 浏览器,有时简称为浏览器。目前常用的 Web 浏览器包括微软的 Internet Explorer 、谷歌公司的 Google Chrome 、腾讯公司的 QQ 浏览器以及 Apple 公司的 Safari 等。
使用浏览器,我们不需要关心信息保存在哪个服务器,只需轻轻点击鼠标,就可以访问页面上的链接并打开相关信息。
通过浏览器进行访问后,显示在浏览器上的内容叫做Web 页。访问一个网站时看到的第一个页面称为首页(又称为主页)。很多公司的主页地址形式如下:
http://www. 公司名称
这类主页中通常有公司概况、产品信息、招聘信息等内容。我们可以点击这些标题的图标或链接,就可以跳转到对应的页面上。这些页面上的信息不仅仅是文字内容,还有图片或动画,甚至是声音或其它程序等各种各样的信息。我们不但可以通过 Web 页获取信息,还可以自己制作 Web 页向全世界发布信息。
WWW 有 3 个重要的概念,它们分别是访问信息的方式和位置(URI)、信息的表现形式(HTML)以及信息传输(HTTP)等操作。
URI
URI用于标识资源,是一种高效的识别码,被应用于主页地址、电子邮件、电话号码等。
http://www.rfc-editor/rfc/rfc4395.txt
http://www.ietf:80/index.html
http://localhost:321
通常主页地址被叫做URL。URL 常用来表示网络资源的具体位置。但是 URI 不限于标识互联网资源,可以作为所有资源的标识符。简单说就是 URL 是 URI 的一个子集。
WWW 主要使用http和https表示 Web 页的位置和访问 Web 页的方法。http 的具体格式如下:
http:// 主机名 / 路径 http:// 主机名:端口号 / 路径 http:// 主机名:端口号 / 路径?访问内容 #部分信息
其中主机名可以用域名或 IP 地址表示,端口号表示传输端口号。省略端口号时,表示使用 http 的默认端口 80 。路径是指主机上信息的位置,访问内容表示要传给 CGI 的信息,部分信息表示页面当中的位置等。
这种表示方法可以标识互联网中特定的数据。由于 http 展现的数据随时都有可能发生变化,所以记住页面的 URI( URL ),也不能保证下次能够访问到这个页面。
HTML
HTML是用来描述 Web 页的一种语言。它可以指定浏览器中显示的文字、文字的大小和颜色,还可以对图像、动画或音频进行设置。
在页面中 HTML 不仅可以文字或图片附加链接,点击链接时还可以呈现链接所指的内容。互联网中任何一个 WWW 服务器中的信息都可以以链接的方式展现。
***HTML 也可以说是 WWW 的数据表现协议。***只要是用 HTML 展现的数据,即使是在不同的计算机上,效果基本上是一样的。
HTTP
当用户在浏览器的地址栏里输入 Web 页的 URL 后,HTTP 的处理就开始了。HTTP默认使用 80 端口。它的工作机制,* 首先是客户端向服务器的 80 端口建立一个 TCP 连接,然后在这个 TCP 连接上进行请求和应答以及数据报文的发送。*
HTTP 中常用的有两个版本,一个是HTTP 1.0,另一个是HTTP 1.1。在 HTTP 1.0 中每一个命令和应答都会触发一次 TCP 连接的建立和断开。而从 HTTP 1.1 开始,允许在一个 TCP 连接上发送多个命令和应答,这种方式也叫保持连接( keep-alive )。可以大量减少 TCP 连接的建立和断开操作,提高传输效率。
网络管理应用
很多应用层协议广为人知,是因为我们在日常上网的过程中,会大量使用与这些应用协议有关的应用程序,这类应用协议称为终端用户应用协议;另外还有一些应用协议在网络中广泛使用,但我们对它们却少有听闻,最多在网络无法正常使用时,才会意识到它们的存在,这类应用层协议称为系统应用协议。
在日常工作中,网络工程师经常使用到的系统应用协议有 DHCP 协议和 DNS 协议。
37 张图详解 DHCP :给你 IP 地址的隐形人
原创 网工 Fox 网络技术平台 2021 年 05 月 15 日 18:00
上帝视角
DHCP 出现
电脑或手机需要IP 地址才能上网。大刘有两台电脑和两台手机,小美有一台笔记本电脑、一台平板电脑和两台手机,老王、阿丽、敏敏也有几台终端设备。如果为每台设备手动配置IP 地址,那会非常繁琐,一点儿也不方便。特别是手机、笔记本电脑、平板电脑等设备,每移动到一个新的地方,接入不同的网络,都要重新设置 IP 地址,实在是太麻烦了。
手动配置
于是就有了DHCP协议,会自动配置设备的网络参数,包括 IP 地址、子网掩码、网关地址、DNS 服务器等,替代手动配置。还能统一 IP 地址分配,方便网络管理。
DHCP 动态获取
DHCP 简介
DHCP协议是从BOOTP协议发展而来。但 BOOTP 运行在相对静态的环境中,每台设备配置专门的 BOOTP 参数文件,该文件会在相当长的时间内保持不变。DHCP 从以下两方面对 BOOTP 进行了扩展:
-
DHCP 允许设备动态地获取IP 地址,而不是静态指定每台主机地址。
-
DHCP 能够分配其它的配置参数,客户端仅用一个消息就获取它所需要的所有配置信息。
动态分配
大刘他们的设备使用 DHCP 功能后,只要连接到网络,就可以进行 TCP/IP 通信。对于路由器和交换机,通常是手动配置 IP 地址等参数。
DHCP 是一种Client/Server 模式的网络协议,由 DHCP Client 向 DHCP Server 提出配置申请,DHCP Server 返回为 DHCP Client 分配的配置信息。这里的 Client 和 Server 是应用程序,可以运行在电脑、服务器、路由器等设备上。
DHCP 应用程序
举个栗子:
大刘的电脑开机后,自动运行 DHCP Client ,DHCP Client 主动向其它设备上的 DHCP Server 提出请求,DHCP Server 根据预先配置的策略,返回相应 IP 配置信息,DHCP Client 使用获得的 IP 配置信息与其它设备进行通信。
举个栗子
DHCP 分配机制
DHCP 提供了两种地址分配机制,可以根据网络需求为不同的 Client 选择不同的分配策略。
-
动态分配机制:通过 DHCP 为 Client 分配一个有使用期限的 IP 地址。如果 Client 没有及时续约,到达使用期限后,这个地址可能会被其它 Client 使用。绝大多数 Client 使用的都是这种动态分配的地址。
-
静态分配机制:通过 DHCP 为特定的 Client 分配固定的 IP 地址。固定 IP 地址可以永久使用, Client 通常是打印机、服务器等设备。
动态和静态分配
在实际情况中,我们发现 DHCP Client 重启后,也能获得相同的 IP 地址。DHCP Server 为 DHCP Client分配 IP 地址时,采用如下的顺序:
-
DHCP Server 中与 DHCP Client 的 MAC 地址静态绑定的 IP 地址;
-
DHCP Client曾经使用过的 IP 地址;
-
最先找到的可用 IP 地址。
如果没找到可用的 IP 地址,就依次查询超过租期、发生冲突的 IP 地址,如果找到就进行分配,否则报错处理。
IP 地址分配顺序
DHCP 系统组成
DHCP 系统由DHCP Server( DHCP 服务器)、DHCP Client( DHCP 客户端)、DHCP Relay( DHCP 中继)等组成。
DHCP 系统组成
- DHCP Server
DHCP Server 提供网络参数给 DHCP Client ,通常是一台提供 DHCP 服务功能的服务器或网络设备(路由器或三层交换机)。比如:家里用的无线路由器。
DHCP Server
- DHCP Client
DHCP Client 通过 DHCP Server获取网络参数,通常是一台主机或网络设备。比如:大刘的电脑、小美的手机。
DHCP Client
- DHCP Relay
通常情况下,DHCP 采用广播方式实现报文交互,DHCP 服务仅限在本地网段使用。如果需要跨网段实现 DHCP ,那么使用DHCP Relay技术实现。
在 DHCP Server 和 DHCP Client 之间转发跨网段 DHCP 报文的设备,通常是三层网络设备。
DHCP Relay
DHCP 基本流程
DHCP 协议报文采用UDP方式封装,DHCP Server 侦听的端口号是67,DHCP Client 的端口号是68。DHCP 设备通过发送和接收 UDP 67 和 UPD 68 端口的报文进行协议交互。DHCP 的基本工作流程分为4个阶段,即发现阶段、提供阶段、请求阶段、确认阶段。我们假设大刘的 PC 是一台新电脑,下面将描述 PC第一次是如何通过 DHCP 获取 IP 地址的。
PC 首次获取地址的流程
为方便描述,DHCP Server简称小 S,DHCP Client简称小 C。
1、发现阶段
小 C在本地网段中广播一个DHCP Discover报文,目的寻找能够分配 IP 地址的小 S。
Discover 报文
2、提供阶段
本地网段的小 S收到 DHCP Discover 报文后,回应DHCP Offer报文。DHCP Offer 报文包含了可用IP 地址和其它网络参数。
Offer 报文
小 C 通过对比Discover 报文和 Offer 报文中的xid 字段是否相同,来判断 Offer 报文是不是发给自己的。
3、请求阶段
小 C 会收到 小 S 发送的 DHCP Offer 报文。如果有多个 小 S,那么每个 小 S 都会回应 DHCP Offer 报文。通常 小 C 会选择最先收到的 Offer 报文,并广播DHCP Request报文来表明哪个 小 S 被选择,其余 小 S 就凉凉了。
Request 报文
如果 小 C 在一定时间后一直没收到DHCP Offer 报文,那么它就会重新发送 DHCP Discover 报文。
4、确认阶段
小 S收到 DHCP Request 广播报文后,发送DHCP Ack报文作为回应,其中包含 小 C 的网络参数。DHCP Ack 报文和之前 DHCP Offer 报文的参数不能有冲突,否则 小 S 会回应一个DHCP Nak报文。
Ack 报文
当 小 C 收到 DHCP Ack 报文后,会发送免费 ARP报文进行探测,目的地址为获得的 IP 地址,如果探测此地址没有被使用,那么 小 C 就会使用这个地址,并完成配置。
DHCP 租期
从 DHCP 协议上看,小 S才有 IP 地址的所有权,而小 C只有 IP 地址的使用权。小 S 每次给 小 C 分配一个 IP 地址时,会约定一个 IP 地址的租期,通常是 24 小时。在租期内,小 C 才能使用相应的 IP 地址。当租期到期后,小 C 将不能继续使用这个 IP 地址。当然了,在租期还没到期的时候,小 C 是可以申请续租这个 IP 地址的。
T1时刻是租期到一半的时候,T2时刻是租期到87.5%的时候。在 T1 时刻 小 C 会单播一个DHCP Request报文给 小 S ,请求续租IP 地址。如果 小 C 收到了DHCP Ack回应报文,则说明续租成功。
如果直到T2时刻,小 C 都未收到 DHCP Ack 回应报文,那么会广播发送一个 DHCP Request 报文,继续请求续租 IP 地址。如果 小 C 收到了 DHCP Ack 回应报文,则说明续租成功。
如果直到租期到期, 小 C 都未收到 DHCP Ack 回应报文,那么必须停止使用原来的 IP 地址。小 C 将从发现阶段开始,重新来申请一个 IP 地址。
续租流程
DHCP Relay
动态获取 IP 地址的过程中,使用广播方式发生报文,因此 DHCP 只适用于 小 C 和 小 S 在同一个子网内的情况。如果为每个网段配置一个 小 S ,这显然太浪费了。
实际上还有DHCP Relay这种角色。小 C 通过 DHCP Relay 实现跨网段与 小 S 通信,获取 IP 地址。这样,多个子网上的 小 C 可以使用同一个 小 S ,既节省成本,又方便集中管理。
DHCP Relay
DHCP Relay 的工作原理如下:
-
小 C 发送 DHCP Discover 或 DHCP Request广播报文,具有 DHCP Relay 功能的网络设备收到后,根据配置将报文单播给指定的 小 S ;
-
小 S 进行 IP 地址的分配,单播发送给 DHCP Relay ,DHCP Relay 再将配置信息广播给 小 C ,完成对 小 C 的动态配置。
Relay 工作原理
DHCP 协议报文
前面的内容有提到 DHCP 的一些报文类型,现在讲讲 DHCP 主要的8 种报文类型。常见的 5 种报文类型有:DHCP Discover、DHCP Offer、DHCP Request、DHCP Ack和DHCP Release,用得少的 3 种报文类型有:DHCP Nak、DHCP Decline和DHCP Inform。
- DHCP Discover 报文
它是 DHCP Client 首次接入网络,DHCP 交互过程的第一个报文,用来寻找 DHCP Server 的请求报文。
- DHCP Offer 报文
它是 DHCP Server 用来回应 DHCP Discover 报文的,并携带网络参数,包括:IP 地址、子网掩码、默认网关、DNS 服务器等。
- DHCP Request 报文
它是 DHCP Client 发送的报文,有三种使用场景:
-
根据策略选择相应的 DHCP Server,并回应 DHCP Offer 报文;
-
DHCP Client 非首次接入网络,直接发送 DHCP Request 报文来申请之前使用过的 IP 地址等参数;
-
当 IP 地址的租约到期后,发送 DHCP Request 进行租期更新。
-
DHCP Ack 报文
它是 DHCP Server 对 DHCP Request 报文的回应报文,进行最终确认。DHCP Client 收到这个报文后,才能获得 IP 地址和相应网络参数。
- DHCP Nak 报文
它也是 DHCP Server 对 DHCP Request 报文的回应报文,当 DHCP Request 报文中的各个参数都正确时,回应DHCP Ack 报文,否则回应DHCP Nak 报文,告诉 DHCP Client 禁止使用获得的 IP 地址。
- DHCP Decline 报文
当 DHCP Client 收到 DHCP Ack 报文后,还会发送免费 ARP报文,确认申请的 IP 地址是否已经在网络上使用了。如果 IP 地址已经被其它 Client 使用,那么 DHCP Client 发送 DHCP Decline 报文,拒绝分配的 IP 地址,并重新向 DHCP Server 申请地址。
- DHCP Release 报文
当 DHCP Client 想要释放获得的 IP 地址时,向 DHCP Server 发送 DHCP Release 报文,DHCP Server 收到报文后,可将这个 IP 地址分配给其它的 Client 。
- DHCP Inform 报文
DHCP Client 通过手动方式获得 IP 地址后,还想向 DHCP Server获取更多网络参数时,比如:默认网关地址、DNS 服务器地址,DHCP Client 就向 DHCP Server 发送 DHCP Inform 报文进行申请。
DHCP 状态机
如果把功能各异的 8 种报文串起来,就是整个 DHCP协议交互流程。前面讲的 4 种阶段(发现、提供、请求、确认)不能完全展现出来,这就需要使用 DHCP 协议的状态机。状态指出下一步使用的报文类型,状态转换是通过报文的接收、发送或超时。下面是 Client 的状态机。
Client 状态机
Client 从INIT状态开始,广播 DHCP Discover 报文。在选择状态时,它收到 DHCP Offer 报文,并决定使用哪个地址和 Server 。做出选择后,通过 DHCP Request 报文进入请求状态。如果分配的地址和曾使用过的地址不一致,那么回应 DHCP Nak 报文进行拒绝,并返回INIT状态;如果分配的地址已经被占用,那么回应 DHCP Decline 报文进行拒绝,也返回到INIT状态。通常是收到一个需要的地址,回应 DHCP Ack 报文,获得租期超时值 T1 和 T2 ,并进入绑定状态,这个时候就可以使用这个地址直到租期到期。当 T1 到期时,进入更新状态并进行续租申请。如果续租成功,那么可以收到 DHCP Ack 报文,并返回到绑定状态;如果续租不成功,那么在 T2 到期时,再次进行续租申请。如果租期最终到期,那么 Client 将禁止使用所租用的地址,并返回到INIT状态。
DHCP 网络实战
DHCP 协议是为解决网络问题而生,现在我们就来模拟实际环境,动手操作,验证下 DHCP 的功能。
DHCP Server 示例
网络拓扑
网络拓扑图
实验要求
- RT(路由器)配置DHCP Server,PC动态获取IP 地址等网络参数
操作步骤
配置思路:
-
在 RT 上开启 DHCP 功能,
-
创建一个地址池,
-
配置地址池的相关参数,
-
在 RT 的接口下引用地址池,实现 DHCP Server 功能。
配置命令:
使用 DHCP 功能之前,先要开启 DHCP 功能。系统视图下,使用命令dhcp enable启动 DHCP 功能。
动态分配 IP 地址,就需要有多个可分配的 IP 地址,使用 ip poolip-pool-name 命令来创建全局地址池,ip-pool-name 表示地址池的名称。
在全局地址池视图下,通过命令networkip-address [mask{ mask | mask-length } ] 配置可分配的 IP 地址段。mask{ mask | mask-length } 表示子网掩码,通常根据设备数量来确定掩码长度。
有了 IP 地址和子网掩码,再加上默认网关,终端设备就能网络互通了。在全局地址池视图下,使用命令gateway-listip-address 配置网关 IP 地址。
网络互通,还不能正常访问网站,需要配置 DNS 服务器,用于域名解析。在全局地址池视图下,使用dns-listip-address 配置 DNS 服务器的 IP 地址。
地址池配置中,常用的可选命令如下,可根据需求进行选择性设置。
lease{dayday [hourhour [minuteminute ] ] |unlimited} :配置 IP 地址的租期,默认租期是 1 天。
excluded-ip-addressstart-ip-address [ end-ip-address ] :在可分配的地址池中,设置不分配的 IP 地址。比如:地址池是 192.168.100.0/24 ,可设置 192.168.100.1 - 192.168.100.10 不参与地址分配。
static-bind ip-addressip-addressmac-addressmac-address :为 Client 固定分配一个 IP 地址。
配置完地址池,还需要进行引用,DHCP Server 功能就能正常使用了。在 RT 的接口下配置引用,命令为dhcp select global。
配置
功能验证
配置完成后,理论上是 DHCP 功能正常工作了,实际情况的话,可通过命令display ip pool namepool-nameused,查看地址池的配置情况,和地址分配情况。
在RT上查看 DHCP Server 地址分配状态。
查看 RT 的 DHCP Server 状态
同时也在PC上查看动态获取地址情况,进行双向验证。
查看 PC 的 IP 配置
抓包还可以看到 DHCP报文交互的详细过程,同时也是检验理论知识是否正确。
抓包验证
这里我们发现抓包看到的是 DHCP Offer单播报文,而前面介绍的时候,DHCP Offer 是广播报文。其实 DHCP Offer 报文有可能是单播,也有可能是广播。DHCP 在报文的标志字段有一个广播位,如果 Client 支持接收 Offer 单播报文,那么 Client 就会将发送报文中的广播位设为 0 ,否则为 1 。
DHCP Relay 示例
网络拓扑
网络拓扑图
实验要求
- DHCP Client 和 DHCP Server 在不同网段,DHCP Client 通过DHCP Relay获取到 IP 地址等网络参数。
操作步骤
1.PC( DHCP Client )开启 DHCP 功能;
PC 配置
1.RT1( DHCP Relay )使用dhcp select relay命令开启 DHCP Relay 功能,在 G0/0/1 口下使用dhcp relay server-ipip-address 命令,配置 DHCP Server 的 IP 地址;
RT1 配置
1.RT2(DHCP Server)开启 DHCP 功能,创建地址池并配置相关参数,在接口下引用地址池,实现 DHCP Server 功能。
RT2 配置
功能验证
PC 端能获取到 IP 配置,并且获取的配置正确。
PC 端验证
在 RT1 的 G0/0/1 抓包,查看DHCP Client和 DHCP Relay 的报文交互过程。
RT1 的 G0/0/1 抓包
在 RT1 的 G0/0/0 抓包,查看DHCP Server和 DHCP Relay 的报文交互过程。
RT1 的 G0/0/0 抓包
DHCP 报文格式
如果想要更深入的了解 DHCP 协议,那就要看它的报文格式。DHCP 设备通过识别报文内容,实现协议功能。
DHCP 报文格式
-
op(操作类型):表示报文的格式。当值为 1 时,表示客户端的请求报文;当值为 2 时,表示服务器的响应报文。
-
htype(硬件类型):不同的硬件类型取不同的值,最常见的以太网,值是 1 。
-
hlen(硬件地址长度):表示硬件地址长度,以太网的值是 6 ,也就是 MAC 地址的长度。
-
hops(跳数):DHCP 报文经过的 DHCP 中继的数量。
-
xid(交互 ID ):DHCP 客户端取的随机值,收到 DHCP 服务器的响应报文时,查看 xid 值是否相同,来判断报文是否是发送给自己的。
-
secs(客户端启动秒数):记录 IP 地址的使用时间。
-
flags(标志):广播响应标志位,当值为 0 时,表示服务器以单播形式发送响应报文;当值为 1 时,服务器以广播形式发送响应报文。
-
ciaddr(客户端 IP 地址):客户端的 IP 地址,可以是分配的地址,也可以是正在使用的地址,还可以是的 0.0.0.0 。0.0.0.0 是客户端初始状态没有地址的时候,仅用于临时通信,不是有效的地址。
-
yiaddr(你的 IP 地址):当服务器发送响应报文时,将分配给客户端的 IP 地址填入这个字段。
-
siaddr(服务器 IP 地址):用来标识服务器的 IP 地址。
-
giaddr(中继设备 IP 地址):表示 DHCP 中继的 IP 地址,服务器通过识别这个字段来判断出客户端的网段地址,从而选择合适的地址池,为客户端分配该网段的 IP 地址。
-
chaddr(客户端硬件地址):用来标识客户端的硬件地址,当客户端发送广播发现报文时,这个字段就是自己的硬件地址。
-
sname(服务器名):可选项,DHCP 服务器填写这个字段。
-
file(引导文件名):可选项,DHCP 服务器填写这个字段。
-
options(可选项):可选项,DHCP 客户端获取网络参数,DHCP 服务器提供网络参数,都是使用的这个字段。内容有很多,例如:租期、子网掩码、默认网关地址、DNS 服务器地址等。
拿着 DHCP报文格式,就可以看懂抓包获取的报文内容。
DHCP Discover 报文
Discover 报文明细
DHCP Offer 报文
Offer 报文明细
DHCP Request 报文
Request 报文明细
DHCP Ack 报文
Ack 报文明细
36 张图详解 DNS :网络世界的导航
原创 Fox 网络技术平台 2021 年 06 月 01 日 08:00
上帝视角
我们平时在访问网站时,不使用 IP 地址,而是网站域名。但是抓包发现:交互报文是以IP 地址进行的。那么 IP 地址是从哪来的呢?这是因为DNS*把网站域名自动转换为 IP 地址 *。
报文交互抓包
DNS 出现
TCP/IP 是基于 IP 地址进行通信的,但是 IP 地址不太好记。于是出现了另一种方便记忆的标识符,那就是主机名。为计算机配置主机名,在进行网络通信时,直接使用主机名,而不用输入一大串的 IP 地址。同时,系统通过一个叫hosts的文件,实现主机名转换 IP 地址的功能。***hosts 文件包括主机名和 IP 地址的对应关系。***当需要通过主机名访问主机时,它就会查看本地的 hosts 文件,从文件中找到相对应的 IP 地址,然后进行报文发送。如果在 hosts 文件中没找到相关信息,则主机访问失败。
hosts 文件是主机的本地文件,优点是 * 查找响应速度快 *。它主要用来存储一些本地网络的主机名和 IP 地址的对应信息。这样,主机在以主机名访问本地网络主机时,通过 hosts 文件可以迅速获得相应的 IP 地址。
hosts 文件
每台主机的 hosts 文件都需要 * 单独手工更新 。随着网络规模的不断扩大、接入计算机的数量不断增加, 维护难度 * 越来越大,每台主机同步更新,几乎是一件不可能完成的任务。
hosts 维护难
为了解决 hosts 文件维护困难的问题,出现了DNS 域名系统,一个可以解决主机名和 IP 地址互相转换的系统。*无论网络规模变得多么庞大,都能在一个小范围内通过 DNS 进行管理。*
DNS 域名系统
DNS 介绍
DNS,全称 Domain Name System
。采用 client/server
模式,DNS client
发出查询请求,DNS server
响应请求。DNS client
通过查询 DNS server
获得主机的 IP 地址,进而完成后续的 TCP/IP 通信过程。
DNS client/server
当 Windows 系统用户使用 nslookup hostname/domainname
命令时,DNS 会自动查找注册了主机名和 IP 地址的数据库,并返回对应的 IP 地址。
nslookup 命令演示
DNS 域名
先了解什么是域名,才能理解 DNS 。*域名是为了识别主机名或机构的一种分层的名称。*因为单独的一台域名服务器是不可能知道所有域名信息,所以域名系统是一个分布式数据库系统,域名(主机名)到 IP 地址的解析可以由若干个域名服务器共同完成。每一个站点维护自己的信息数据库,并运行一个服务器程序供互联网上的客户端查询。DNS 提供了客户端与服务器的通信协议,也提供了服务器之间交换信息的协议。由于是分布式系统,即使单个服务器出现故障,也不会导致整个系统失效,消除了单点故障。
DNS 域名组成
DNS 域的本质是一种管理范围的划分,最大的域是 * 根域 *,向下可以划分为 * 顶级域 、 二级域 、 三级域 、 四级域 * 等。相对应的域名是 * 根域名 、 顶级域名 、 二级域名 、 三级域名 * 等。不同等级的域名使用点号分隔,级别最低的域名写在最左边,而级别最高的域名写在最右边。
DNS 域
举个栗子:网站域名www.tsinghua.edu中,从右到左开始,cn
是顶级域名,代表中国,edu
是二级域名,代表教育机构,tsinghua
是三级域名,表示清华大学,www
则表示三级域名中的主机,并提供了 web 服务。
清华大学域名
除了 www
主机外,常见的主机还有 arch
、sem
、mail
,域名如下:
清华大学常见域名
每一级的域名都由 * 英文字母 * 和 * 数字 * 组成,域名不区分大小写,长度不能超过 63 字节,一个完整的域名不能超过 255 个字节。根域名用 “.”(点)表示。目前我们看到的域名例子都是完全合格域名( FQDN ),FQDN的完整格式是以点结尾的域名。接入互联网的主机、服务器或其它网络设备都可以拥有一个唯一的 FQDN 。与 FQDN 对应的,系统中的默认域名是非合格域名,会把当前的区域域名添加到尾部。例如,tsinghua 域内的主机上查找 mail
,本地解析器就会将这个名称转换为 FQDN ,即mail.tsinghua.edu,然后解析出 IP 地址。
完全合格域名
DNS 域名空间
域名空间结构像是一棵倒过来的树,也叫做 * 树形结构 *。根域名就是树根( root ),用 * 点号 * 表示,往下是这棵树的各层枝叶。根域名的下一层叫顶级域名,顶级域名包括三大类:
三大顶级域名
- 国家顶级域名
国家顶级域名采用 ISO3166 的规定。比如: 表示中国,
.us
表示美国,.uk
表示英国等。现在使用的国家顶级域名大约在 200 个左右。
国家顶级域名
- 国际顶级域名
国际顶级域名采用 .int
。国际性的组织可以在 .int
下注册。
- 通用顶级域名
通用顶级域名
最早的顶级域名共有***6***个。分别为:
表示公司企业,
表示网络服务机构,
表示非盈利组织,
.edu
表示教育机构(仅限美国),
.gov
表示政府部门(仅限美国),
.mil
表示军事部门(仅限美国)。
随着互联网用户不断增加,又增加了***7***个通用顶级域名。分别为:
.aero
用于航空运输业,
.biz
用于公司和企业,
.coop
用于合作团体,
.info
用于各种情况,
.museum
用于博物馆,
.name
用于个人,
.pro
用于自由职业者。
顶级域名下面是二级域名。国家顶级域名下注册的二级域名均由国家自行确定。我国二级域名分为类别域名和行政域名两大类,类别域名如: ,
.edu
,.gov
等分别代表不同的机构;行政域名如:.bj
表示北京,.sh
表示上海,代表我国各省、自治区及直辖市等。
二级域名
二级域名下面是三级域名、四级域名等。*命名树上任何一个节点的域名就是从这个节点到最高层的域名串起来,中间以 “ . ” 分隔。*
域名组成
在域名结构中,节点在所属域中的主机名标识可以 * 相同 ,但是域名必须不同 *。比如:清华大学和新浪公司下都有一台主机的标识是 mail
,但是两者的域名却是不同的,前者为mail.tsinghua.edu,而后者为mail.sina。
主机名相同,域名不同
DNS 域名解析
将 * 域名转换为对应的 IP 地址 * 的过程叫做域名解析。在域名解析过程中,DNS client
的主机调用 * 解析器 *( Resolver ),向 DNS server
发出请求,DNS server
完成域名解析。
域名解析
域名解析是按照 DNS 分层结构的特点,自顶向下进行的。但是如果每一个域名解析都从根域名服务器开始,那么根域名服务器有可能无法承载海量的流量。在实际应用中,大多数域名解析都是在本地域名服务器完成。通过合理设置本地域名服务器,由本地域名服务器负责大部分的域名解析请求,提高域名解析效率。
本地域名服务器
DNS 解析器
从应用程序的角度看,访问 DNS 是通过一个叫解析器( Resolver )的应用程序来完成的。发送一个 TCP 或 UDP 数据包之前,解析器必须将域名(主机名)转换为 IP 地址。一个解析器至少要注册一个域名服务器的 IP 地址。通常,它至少包括本地域名服务器的 IP 地址。
解析器
DNS 域名服务器
DNS 域名空间的层次结构,允许不同的域名服务器管理域名空间的不同部分。域名服务器是指管理域名的主机及软件,它可以管理所在分层的域。其所管理的分层叫做区域( zone )。一个 zone 是 DNS 域名空间的一棵子树,它可以单独管理而不受其它 zone 影响。*每层都设有一个域名服务器。*
域名服务器
根所设置的 DNS 叫做根域名服务器,它对 DNS 的检索数据功能起着至关重要的作用。根域名服务器中注册了顶级域名服务器的 IP 地址。如果想要新增一个一级域名,或者修改已有的顶级域名,就要在根域名服务器中进行新增或变更。
类似的,顶级域名服务器中注册了二级域名服务器的 IP 地址。如果域名服务器下面没有其它分层,就可以自由地指定主机名称。如果想重新设置域名服务器的 IP 地址或修改域名,必须在上一层的域名服务器中进行修改。
域名和域名服务器都需要按照分层进行设置。如果域名服务器出现故障,那么针对这个域的 DNS 查询就无法正常工作。因此,为了提高可用性,至少设置两台域名服务器。一旦第一台域名服务器无法提供查询时,就会自动转到第二个甚至第三个域名服务器上进行。
DNS 域名服务器类型
- 本地域名服务器
互联网接入服务运营商或者一个大的网络机构,像公司、大学等都有一台或多台可以自行管理的域名服务器,这类域名服务器称为本地域名服务器,也称为 * 默认域名服务器 *。本地域名服务器离客户端较近。当一个 DNS 客户端发出 DNS 查询时,首先送到本地域名服务器。如果本地域名服务器数据库中有对应的域名信息,会将查询的域名转换为 IP 地址返回客户端。如果没有,它会以 DNS 客户端的身份向根域名服务器进行查询。根域名服务器收到本地域名服务器的查询后,会返回相关域名服务器的 IP 地址,本地域名服务器再向相关域名服务器发送查询请求。
本地域名服务器
- 根域名服务器
通常根域名服务器用来管理顶级域,本身并不对域名进行解析,但它知道相关域名服务器的 IP 地址。IPv4 根域名服务器全球有 13 台,主机名分别为 A ~ M 。1 台为主根服务器在美国,其余 12 个均为辅根服务器,其中 9 个在美国,2 个在欧洲,位于英国和瑞典,1 台在亚洲,位于日本。*所有的域名服务器都必须注册根域名服务器的 IP 地址 *,因为 DNS 根据 IP 地址进行检索时,需要按顺序从根域名服务器开始。
根域名服务器
- 授权域名服务器
互联网上的主机在域名服务器上进行注册,这个域名服务器就是主机的授权域名服务器。通常,主机的授权域名服务器就是 * 本地域名服务器 *。实际上,主机会有两个授权域名服务器,防止单点故障。授权域名服务器上有注册主机域名与 IP 地址的映射信息,当查询注册主机域名时,它会返回相应主机的 IP 地址。如果主机域名和 IP 地址需要进行变更,只需要在授权域名服务器处理即可,不用再向其它域名服务器进行申请或报告。
授权域名服务器
- 主域名服务器
主域名服务器是完成一个或多个区域域名解析工作的主要域名服务器,通常也是一个或多个区域的授权域名服务器。主域名服务器有区域内主机地址信息的源数据文件,并且是区域传送中区域数据的唯一来源。
- 辅助域名服务器
辅助域名服务器可以协助主域名服务器提供域名查询服务,在主机很多的情况下,可以有效分担主域名服务器的压力。辅助域名服务器也有冗余功能,当主域名服务器故障时,辅助域名服务器能够在数据有效期内继续为主机提供域名解析服务。
主 / 辅助域名服务器
一台主域名服务器可以有多台辅助域名服务器,一台辅助域名服务器也可以是其它区域的主域名服务器。辅助域名服务器中包含区域内主机地址数据的授权信息,通过区域配置 * 文件副本 * 的方式存储。辅助域名服务器也是区域的授权域名服务器,可以完成本区域内域名查询的授权回答。
辅助域名服务器并不建立数据文件,它获得区域数据的唯一途径就是通过 * 区域传送 * 的方式,从主域名服务器上获得区域数据的最新副本。获得数据副本的方式有两种,第一种是辅助域名服务器定期主动获得主域名服务器的副本,或更新副本中的数据。第二种是主域名服务器在区域数据发生变化时,及时通知辅助域名服务器更新副本中的数据。
DNS 域名完整解析过程
域名解析过程
DNS 客户端进行域名 www.tsinghua.edu 的解析过程如下:
1.DNS 客户端向本地域名服务器发送请求,查询 www.tsinghua.edu 主机的 IP 地址;
2.本地域名服务器查询数据库,发现没有域名为 www.tsinghua.edu 的主机,于是将请求发送给根域名服务器;
3.根域名服务器查询数据库,发现没有这个主机域名记录,但是根域名服务器知道 cn 域名服务器可以解析这个域名,于是将 cn 域名服务器的 IP 地址返回给本地域名服务器;
4.本地域名服务器向 cn 域名服务器查询 www.tsinghua.edu 主机的 IP 地址;
5.cn 域名服务器查询数据库,也没有相关记录,但是知道 edu 域名服务器可以解析这个域名,于是将 edu 域名服务器的 IP 地址返回给本地域名服务器;
6.本地域名服务器再向 edu 域名服务器查询 www.tsinghua.edu 主机 IP 地址;
7.edu 域名服务器查询数据库,也没有相关记录,但是知道 tsinghua.edu 域名服务器可以解析这个域名,于是将 tsinghua.edu 的域名服务器 IP 地址返回给本地域名服务器;
8.本地域名服务器向 tsinghua.edu 域名服务器查询 www.tsinghua.edu 主机的 IP 地址;
9.tsinghua.edu 域名服务器查询数据库,发现有主机域名记录,于是给本地域名服务器返回 www.tsinghua.edu 对应的 IP 地址;
- 最后本地域名服务器将 www.tsinghua.edu 的 IP 地址返回给客户端,整个解析过程完成。
DNS 传输层协议
DNS 域名服务器使用的 * 端口号是 53* ,并且同时 * 支持 UDP 和 TCP 协议 *。为什么同时使用两种协议呢?
因为 DNS 响应报文中有一个删减标志位,用 TC 表示。当响应报文使用UDP 封装,且报文长度大于512 字节时,那么服务器只返回前 512 字节,同时 TC 标志位置位,表示报文进行了删减。当客户端收到 TC 置位的响应报文后,将采用TCP 封装查询请求。DNS 服务器返回的响应报文长度大于 512 字节。
TC 标志位
UDP 报文的 * 最大长度 * 是 512 字节,最多可以包含 13 台根域名服务器数据,因此 ipv4 根域名服务器只能限制在 13 个,且每个服务器使用单个字母命名,也是 IPv4 根服务器是从 A ~ M 命名的原因。
UDP 最长报文
当辅助域名服务器启动时,将从主域名服务器执行区域传送。正常运行过程中,辅助域名服务器也会定时向主域名服务器进行查询,以便了解主域名服务器数据是否发送变化。如果有变化,将执行一次区域传送。因为区域传送的数据多,所以传送的数据采用TCP 封装。
TCP 封装
因此,*UDP 用于 client 和 server 的查询和响应 *,*TCP 用于主从 server 之间的传送 *。
DNS 查询方式
DNS 域名解析包括两种查询( query )方式,一种是 * 递归查询 *,另一种是 * 迭代查询 *。
递归查询
DNS 服务器如果不能直接响应解析请求,它将继续请求其它的 DNS 服务器,直到查询域名解析的结果。查询的结果可以是域名主机的 IP 地址,或者是域名无法解析。*无论哪种结果,DNS 服务器都会将结果返回给客户端。*
举个栗子:当本地域名服务器接收了客户端的查询请求,本地域名服务器将代表客户端来找答案,而在本地域名服务器执行工作时,客户端只是等待,直到本地域名服务器将最终查询结果返回客户端。
递归查询
迭代查询
如果 DNS 服务器查不到相应记录,会向客户端返回一个可能知道结果的域名服务器 IP 地址,由客户端继续向新的服务器发送查询请求。对域名服务器的迭代查询,* 只得到一个提示,则继续查询。*
举个栗子:本地域名服务器发送请求到根域名服务器,根域名服务器并没有相应记录,它只是给本地域名服务器返回一个提示,引导本地域名服务器到另一台域名服务器进行查询。
迭代查询
客户端在查询 IP 地址时,向本地域名服务器进行递归查询。如果本地域名服务器的数据库有相应数据,则直接返回相应数据。如果没有,则本地域名服务器向根域名服务器进行迭代查询。从根开始对这棵树按照顺序进行遍历,直到找到指定的域名服务器,并由这个域名服务器返回相应的数据。*客户端和本地域名服务器会将收到的信息保存在缓存里 *,这样可以减少每次查询时的性能消耗。
DNS 反向查询
在 DNS 查询中,客户端希望知道域名对应的 IP 地址,这种查询称为正向查询。大部分的 DNS 查询都是正向查询。与正向查询对应的,是反向查询。* 它允许 DNS 客户端通过 IP 地址查找对应的域名。*
DNS 反向查询
为实现反向查询,在 DNS 标准中定义了特色域 in-addr.arpa
域,并保留在域名空间中,以便执行反向查询。为创建反向域名空间,in-addr.arpa 域中的子域是按照 IP 地址 * 相反的顺序 * 构造的。
举个栗子:www.tsinghua.edu的 IP 地址是 166.111.4.100
,那么在 in-addr.arpa 域中对应的节点就是 100.4.111.166
。
反向查询
DNS 应用场景
静态域名解析
域名解析分为动态域名解析和静态域名解析。在解析域名时,首先采用静态域名解析,如果静态解析不成功,再采用动态域名解析。
静态域名解析是通过静态域名解析表进行的,手动建立域名和 IP 地址之间的对应关系表,该表的作用类似于 Windows 操作系统下的 *hosts 文件 *,可以将一些常用的域名放入表中。当 DNS client 需要域名所对应的 IP 地址时,即到静态域名解析表中去查找指定的域名,从而获得所对应的 IP 地址,提高域名解析的效率。
静态域名解析
动态域名解析
动态域名解析需要专用的域名服务器( DNS server )运行域名解析服务器程序,提供从域名到 IP 地址的映射关系,负责接收客户端( DNS client)提出的域名解析请求。
动态域名解析
DNS 代理
在使用了DNS 代理( DNS proxy )功能的组网中,DNS client 将 DNS 请求报文直接发送给 DNS proxy 。DNS proxy 会先查找本地域名解析表,如果未查询到对应的解析表项,会将 DNS 请求报文转发给 DNS Server ,并在收到 DNS server 的应答报文后将其返回给 DNS client ,从而实现域名解析。
DNS 代理
因此,当 DNS server 的地址发生变化时,只需改变 DNS proxy 上的配置,无需逐一改变局域网内每个 DNS client 的配置,从而简化了网络管理。
饮水思源:
DNS 与 BIND - Paul Albitz
HCNA 网络技术学习指南 - 华为技术有限公司
TCP/IP 详解 卷 1:协议 - Kevin R.Fall
图解 TCP/IP - 竹下隆史
路由交换技术 - 杭州华三通信技术有限公司
高级网络技术 - 田果
弱电网络基础该从哪开始补?这 36 张图,一次性帮你搞定
弱电干将 弱电干货 2022 年 11 月 12 日 21:39 安徽
正文开始前先问问:你对 OSI 和 TCP/IP 这种基础陌生吗?
据观察,哪怕是理论基础薄弱的,也会多少知道它。
为啥呢?
因为,OSI 和 TCP/IP 是很基础但又非常重要的知识,很多知识点都是以它们为基础去串联的,作为底层,掌握的越透彻,你理解上层时会越顺畅。
比如,今天这篇网络基础科普,就是根据 OSI 层级去逐一展开的。
有很多想入门的小友问过:
到底怎么才可以在自己空闲时间去稍微入个门?
有没有什么比较完整的理论基础资料,可以发个来看看?
于是今天,就准备了这两个内容。
一个就是本篇文章,36 张图,涵盖了大部分基础的网络技术点。
深度不够,广度来凑,非常建议身为网络工程师的你收藏 + 反复阅读。
0 1
计算机网络基础
01 计算机网络的分类
按照网络的作用范围:广域网(WAN)、城域网(MAN)、局域网(LAN);
按照网络使用者:公用网络、专用网络。
02 计算机网络的层次结构
TCP/IP 四层模型与 OSI 体系结构对比:
03 层次结构设计的基本原则
-
各层之间是相互独立的;
-
每一层需要有足够的灵活性;
-
各层之间完全解耦。
04 计算机网络的性能指标
速率:bps=bit/s
时延:发送时延、传播时延、排队时延、处理时延
往返时间 RTT:数据报文在端到端通信中的来回一次的时间。
0 2
物理层
物理层的作用:
连接不同的物理设备,传输比特流。该层为上层协议提供了一个传输数据的可靠的物理媒体。简单的说,物理层确保原始的数据可在各种物理媒体上传输。
物理层设备:
-
中继器【Repeater,也叫放大器】:同一局域网的再生信号;两端口的网段必须同一协议;5-4-3 规程:10BASE-5 以太网中,最多串联 4 个中继器,5 段中只能有 3 个连接主机;
-
集线器:同一局域网的再生、放大信号(多端口的中继器);半双工,不能隔离冲突域也不能隔离广播域。
信道的基本概念:信道是往一个方向传输信息的媒体,一条通信电路包含一个发送信道和一个接受信道。
-
单工通信信道:只能一个方向通信,没有反方向反馈的信道;
-
半双工通信信道:双方都可以发送和接受信息,但不能同时发送也不能同时接收;
-
全双工通信信道:双方都可以同时发送和接收。
0 3
数据链路层
01 数据链路层概述
数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。数据链路层在不可靠的物理介质上提供可靠的传输。
该层的作用包括:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。
有关数据链路层的重要知识点:
-
数据链路层为网络层提供可靠的数据传输;
-
基本数据单位为帧;
-
主要的协议:以太网协议;
-
两个重要设备名称:网桥和交换机。
封装成帧:“帧” 是数据链路层数据的基本单位:
透明传输:“透明” 是指即使控制字符在帧数据中,但是要当做不存在去处理。即在控制字符前加上转义字符 ESC。
02 数据链路层的差错监测
差错检测:奇偶校验码、循环冗余校验码 CRC
-
奇偶校验码–局限性:当出错两位时,检测不到错误。
-
循环冗余检验码:根据传输或保存的数据而产生固定位数校验码。
03 最大传输单元 MTU
最大传输单元 MTU (Maximum Transmission Unit),数据链路层的数据帧不是无限大的,数据帧长度受 MTU 限制.
路径 MTU:由链路中 MTU 的最小值决定。
04 以太网协议详解
MAC 地址:每一个设备都拥有唯一的 MAC 地址,共 48 位,使用十六进制表示。
以太网协议:是一种使用广泛的局域网技术,是一种应用于数据链路层的协议,使用以太网可以完成相邻设备的数据帧传输:
局域网分类:
Ethernet 以太网 IEEE802.3
-
以太网第一个广泛部署的高速局域网
-
以太网数据速率快
-
以太网硬件价格便宜,网络造价成本低
以太网帧结构
-
类型:标识上层协议(2 字节)
-
目的地址和源地址:MAC 地址(每个 6 字节)
-
数据:封装的上层协议的分组(46~1500 字节)
-
CRC:循环冗余码(4 字节)
-
以太网最短帧:以太网帧最短 64 字节;以太网帧除了数据部分 18 字节;数据最短 46 字节;
MAC 地址(物理地址、局域网地址)
-
MAC 地址长度为 6 字节,48 位;
-
MAC 地址具有唯一性,每个网络适配器对应一个 MAC 地址;
-
通常采用十六进制表示法,每个字节表示一个十六进制数,用 - 或:连接起来;
-
MAC 广播地址:FF-FF-FF-FF-FF-FF。
04
网络层
网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。数据交换技术是报文交换(基本上被分组所替代):采用储存转发方式,数据交换单位是报文。
网络层中涉及众多的协议,其中包括最重要的协议,也是 TCP/IP 的核心协议 ——IP 协议。IP 协议非常简单,仅仅提供不可靠、无连接的传送服务。IP 协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。
与 IP 协议配套使用实现其功能的还有地址解析协议 ARP、逆地址解析协议 RARP、因特网报文协议 ICMP、因特网组管理协议 IGMP。
具体的协议我们会在接下来的部分进行总结,有关网络层的重点为:
1、网络层负责对子网间的数据包进行路由选择。此外,网络层还可以实现拥塞控制、网际互连等功能;
2、基本数据单位为 IP 数据报;
3、包含的主要协议:
-
IP 协议(Internet Protocol,因特网互联协议);
-
ICMP 协议(Internet Control Message Protocol,因特网控制报文协议);
-
ARP 协议(Address Resolution Protocol,地址解析协议);
-
RARP 协议(Reverse Address Resolution Protocol,逆地址解析协议)。
4、重要的设备:路由器。
路由器相关协议:
01 IP 协议详解
IP 网际协议是 Internet 网络层最核心的协议。
虚拟互联网络的产生:实际的计算机网络错综复杂;物理设备通过使用 IP 协议,屏蔽了物理网络之间的差异;当网络中主机使用 IP 协议连接时,无需关注网络细节,于是形成了虚拟网络。
IP 协议使得复杂的实际网络变为一个虚拟互联的网络;并且解决了在虚拟网络中数据报传输路径的问题。
其中,版本指 IP 协议的版本,占 4 位,如 IPv4 和 IPv6;
首部位长度表示 IP 首部长度,占 4 位,最大数值位 15;
总长度表示 IP 数据报总长度,占 16 位,最大数值位 65535;
TTL 表示 IP 数据报文在网络中的寿命,占 8 位;
协议表明 IP 数据所携带的具体数据是什么协议的,如 TCP、UDP。
02 IP 协议的转发流程
03 IP 地址的子网划分
A 类(8 网络号 + 24 主机号)、B 类(16 网络号 + 16 主机号)、C 类(24 网络号 + 8 主机号)可以用于标识网络中的主机或路由器,D 类地址作为组广播地址,E 类是地址保留。
04 网络地址转换 NAT 技术
用于多个主机通过一个公有 IP 访问访问互联网的私有网络中,减缓了 IP 地址的消耗,但是增加了网络通信的复杂度。
NAT 工作原理:
从内网出去的 IP 数据报,将其 IP 地址替换为 NAT 服务器拥有的合法的公共 IP 地址,并将替换关系记录到 NAT 转换表中;
从公共互联网返回的 IP 数据报,依据其目的的 IP 地址检索 NAT 转换表,并利用检索到的内部私有 IP 地址替换目的 IP 地址,然后将 IP 数据报转发到内部网络。
05 ARP 协议与 RARP 协议
地址解析协议 ARP(Address Resolution Protocol):为网卡(网络适配器)的 IP 地址到对应的硬件地址提供动态映射。可以把网络层 32 位地址转化为数据链路层 MAC48 位地址。
ARP 是即插即用的,一个 ARP 表是自动建立的,不需要系统管理员来配置。
RARP (Reverse Address Resolution Protocol) 协议指逆地址解析协议,可以把数据链路层 MAC48 位地址转化为网络层 32 位地址。
06 ICMP 协议详解
网际控制报文协议(Internet Control Message Protocol),可以报告错误信息或者异常情况,ICMP 报文封装在 IP 数据报当中。
ICMP 协议的应用:
-
Ping 应用:网络故障的排查;
-
Traceroute 应用:可以探测 IP 数据报在网络中走过的路径。
07 网络层的路由概述
关于路由算法的要求:
正确的完整的、在计算上应该尽可能是简单的、可以适应网络中的变化、稳定的公平的。
自治系统 AS:
指处于一个管理机构下的网络设备群,AS 内部网络自治管理,对外提供一个或多个出入口,其中自治系统内部的路由协议为内部网关协议,如 RIP、OSPF 等;自治系统外部的路由协议为外部网关协议,如 BGP。
静态路由:
人工配置,难度和复杂度高;
动态路由:
-
链路状态路由选择算法 LS:向所有隔壁路由发送信息收敛快;全局式路由选择算法,每个路由器计算路由时,需构建整个网络拓扑图;利用 Dijkstra 算法求源端到目的端网络的最短路径;Dijkstra (迪杰斯特拉) 算法
-
距离 - 向量路由选择算法 DV:向所有隔壁路由发送信息收敛慢、会存在回路;基础是 Bellman-Ford 方程(简称 B-F 方程);
08 内部网关路由协议之 RIP 协议
路由信息协议 RIP (Routing Information Protocol)【应用层】,基于距离 - 向量的路由选择算法,较小的 AS(自治系统),适合小型网络;RIP 报文,封装进 UDP 数据报。
RIP 协议特性:
-
RIP 在度量路径时采用的是跳数(每个路由器维护自身到其他每个路由器的距离记录);
-
RIP 的费用定义在源路由器和目的子网之间;
-
RIP 被限制的网络直径不超过 15 跳;
-
和隔壁交换所有的信息,30 主动一次(广播)。
09 内部网关路由协议之 OSPF 协议
开放最短路径优先协议 OSPF (Open Shortest Path First)【网络层】,基于链路状态的路由选择算法(即 Dijkstra 算法),较大规模的 AS ,适合大型网络,直接封装在 IP 数据报传输。
OSPF 协议优点:
-
安全;
-
支持多条相同费用路径;
-
支持区别化费用度量;
-
支持单播路由和多播路由;
-
分层路由。
RIP 与 OSPF 的对比(路由算法决定其性质):
10 外部网关路由协议之 BGP 协议
BGP(Border Gateway Protocol)边际网关协议【应用层】:是运行在 AS 之间的一种协议,寻找一条好路由:首次交换全部信息,以后只交换变化的部分,BGP 封装进 TCP 报文段。
0 5
传输层
第一个端到端,即主机到主机的层次。传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。
此外,传输层还要处理端到端的差错控制和流量控制问题。
传输层的任务是根据通信子网的特性,最佳的利用网络资源,为两个端系统的会话层之间,提供建立、维护和取消传输连接的功能,负责端到端的可靠数据传输。
在这一层,信息传送的协议数据单元称为段或报文。
网络层只是根据网络地址将源结点发出的数据包传送到目的结点,而传输层则负责将数据可靠地传送到相应的端口。
有关网络层的重点:
-
传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输以及端到端的差错控制和流量控制问题;
-
包含的主要协议:TCP 协议(Transmission Control Protocol,传输控制协议)、UDP 协议(User Datagram Protocol,用户数据报协议);
-
重要设备:网关。
01 UDP 协议详解
UDP (User Datagram Protocol: 用户数据报协议),是一个非常简单的协议。
UDP 协议的特点:
-
UDP 是无连接协议;
-
UDP 不能保证可靠的交付数据;
-
UDP 是面向报文传输的;
-
UDP 没有拥塞控制;
-
UDP 首部开销很小。
UDP 数据报结构:
首部:8B,四字段 / 2B【源端口 | 目的端口 | UDP 长度 | 校验和】 数据字段:应用数据
02 TCP 协议详解
TCP (Transmission Control Protocol: 传输控制协议),是计算机网络中非常复杂的一个协议。
TCP 协议的功能:
-
对应用层报文进行分段和重组;
-
面向应用层实现复用与分解;
-
实现端到端的流量控制;
-
拥塞控制;
-
传输层寻址;
-
对收到的报文进行差错检测(首部和数据部分都检错);
-
实现进程间的端到端可靠数据传输控制。
TCP 协议的特点:
-
TCP 是面向连接的协议;
-
TCP 是面向字节流的协议;
-
TCP 的一个连接有两端,即点对点通信;
-
TCP 提供可靠的传输服务;
-
TCP 协议提供全双工通信(每条 TCP 连接只能一对一);
TCP 报文段结构:
最大报文段长度:报文段中封装的应用层数据的最大长度。
TCP 首部:
-
序号字段:TCP 的序号是对每个应用层数据的每个字节进行编号
-
确认序号字段:期望从对方接收数据的字节序号,即该序号对应的字节尚未收到。用 ack_seq 标识;
-
TCP 段的首部长度最短是 20B ,最长为 60 字节。但是长度必须为 4B 的整数倍
TCP 标记的作用:
03 可靠传输的基本原理
基本原理:
-
不可靠传输信道在数据传输中可能发生的情况:比特差错、乱序、重传、丢失
-
基于不可靠信道实现可靠数据传输采取的措施
差错检测:利用编码实现数据包传输过程中的比特差错检测
确认:接收方向发送方反馈接收状态
重传:发送方重新发送接收方没有正确接收的数据
序号:确保数据按序提交
计时器:解决数据丢失问题
停止等待协议:是最简单的可靠传输协议,但是该协议对信道的利用率不高。
连续 ARQ (Automatic Repeat reQuest:自动重传请求) 协议:滑动窗口 + 累计确认,大幅提高了信道的利用率。
5.3.1TCP 协议的可靠传输
基于连续 ARQ 协议,在某些情况下,重传的效率并不高,会重复传输部分已经成功接收的字节。
TCP 协议的流量控制
流量控制:让发送方发送速率不要太快,TCP 协议使用滑动窗口实现流量控制。
04 TCP 协议的拥塞控制
拥塞控制与流量控制的区别:
流量控制考虑点对点的通信量的控制,而拥塞控制考虑整个网络,是全局性的考虑。拥塞控制的方法:慢启动算法 + 拥塞避免算法。
慢开始和拥塞避免:
-
【慢开始】拥塞窗口从 1 指数增长;
-
到达阈值时进入【拥塞避免】,变成 + 1 增长;
-
【超时】,阈值变为当前 cwnd 的一半(不能 < 2);
-
再从【慢开始】,拥塞窗口从 1 指数增长。
快重传和快恢复:
-
发送方连续收到 3 个冗余 ACK,执行【快重传】,不必等计时器超时;
-
执行【快恢复】,阈值变为当前 cwnd 的一半(不能 < 2),并从此新的 ssthresh 点进入【拥塞避免】。
05 TCP 连接的三次握手(重要)
TCP 三次握手使用指令:
面试常客:为什么需要三次握手?
-
第一次握手:客户发送请求,此时服务器知道客户能发;
-
第二次握手:服务器发送确认,此时客户知道服务器能发能收;
-
第三次握手:客户发送确认,此时服务器知道客户能收。
建立连接(三次握手):
第一次:客户向服务器发送连接请求段,建立连接请求控制段(SYN=1),表示传输的报文段的第一个数据字节的序列号是 x,此序列号代表整个报文段的序号(seq=x);客户端进入 SYN_SEND (同步发送状态);
第二次:服务器发回确认报文段,同意建立新连接的确认段(SYN=1),确认序号字段有效(ACK=1),服务器告诉客户端报文段序号是 y(seq=y),表示服务器已经收到客户端序号为 x 的报文段,准备接受客户端序列号为 x+1 的报文段(ack_seq=x+1);服务器由 LISTEN 进入 SYN_RCVD (同步收到状态);
第三次:客户对服务器的同一连接进行确认。确认序号字段有效 (ACK=1), 客户此次的报文段的序列号是 x+1 (seq=x+1), 客户期望接受服务器序列号为 y+1 的报文段 (ack_seq=y+1); 当客户发送 ack 时,客户端进入 ESTABLISHED 状态;当服务收到客户发送的 ack 后,也进入 ESTABLISHED 状态;第三次握手可携带数据
06 TCP 连接的四次挥手(重要)
释放连接(四次挥手)
第一次:客户向服务器发送释放连接报文段,发送端数据发送完毕,请求释放连接(FIN=1),传输的第一个数据字节的序号是 x(seq=x);客户端状态由 ESTABLISHED 进入 FIN_WAIT_1(终止等待 1 状态);
第二次:服务器向客户发送确认段,确认字号段有效(ACK=1),服务器传输的数据序号是 y(seq=y),服务器期望接收客户数据序号为 x+1(ack_seq=x+1); 服务器状态由 ESTABLISHED 进入 CLOSE_WAIT(关闭等待);客户端收到 ACK 段后,由 FIN_WAIT_1 进入 FIN_WAIT_2;
第三次:服务器向客户发送释放连接报文段,请求释放连接(FIN=1),确认字号段有效(ACK=1),表示服务器期望接收客户数据序号为 x+1(ack_seq=x+1); 表示自己传输的第一个字节序号是 y+1(seq=y+1);服务器状态由 CLOSE_WAIT 进入 LAST_ACK (最后确认状态);
第四次:客户向服务器发送确认段,确认字号段有效(ACK=1),表示客户传输的数据序号是 x+1(seq=x+1),表示客户期望接收服务器数据序号为 y+1+1(ack_seq=y+1+1);客户端状态由 FIN_WAIT_2 进入 TIME_WAIT,等待 2MSL 时间,进入 CLOSED 状态;服务器在收到最后一次 ACK 后,由 LAST_ACK 进入 CLOSED
为什么需要等待 2MSL?
-
最后一个报文没有确认;
-
确保发送方的 ACK 可以到达接收方;
-
2MSL 时间内没有收到,则接收方会重发;
-
确保当前连接的所有报文都已经过期。
0 6
应用层
为操作系统或网络应用程序提供访问网络服务的接口。应用层重点:
-
数据传输基本单位为报文;
-
包含的主要协议:FTP(文件传送协议)、Telnet(远程登录协议)、DNS(域名解析协议)、SMTP(邮件传送协议),POP3 协议(邮局协议),HTTP 协议(Hyper Text Transfer Protocol)。
01 DNS 详解
DNS(Domain Name System: 域名系统)【C/S,UDP,端口 53】:解决 IP 地址复杂难以记忆的问题,存储并完成自己所管辖范围内主机的 域名 到 IP 地址的映射。
域名解析的顺序:
-
浏览器缓存,
-
本机的 hosts 文件,
-
路由缓存,
-
DNS 服务器(本地域名、顶级域名、根域名)-> 迭代解析、递归查询。
IP—>DNS 服务 —> 便于记忆的域名
域名由点、字母和数字组成,分为顶级域(com,cn,net,gov,org)、二级域(baidu,taobao,qq,alibaba)、三级域(www)(12-2-0852)
02 DHCP 协议详解
DHCP(Dynamic Configuration Protocol: 动态主机设置协议):是一个局域网协议,是应用 UDP 协议的应用层协议。作用:为临时接入局域网的用户自动分配 IP 地址。
03 HTTP 协议详解
文件传输协议(FTP):控制连接(端口 21):传输控制信息(连接、传输请求),以 7 位 ASCII 码的格式。整个会话期间一直打开。
HTTP(HyperText Transfer Protocol: 超文本传输协议)【TCP,端口 80】:是可靠的数据传输协议,浏览器向服务器发收报文前,先建立 TCP 连接,HTTP 使用 TCP 连接方式(HTTP 自身无连接)。
HTTP 请求报文方式:
-
GET:请求指定的页面信息,并返回实体主体;
-
POST:向指定资源提交数据进行处理请求;
-
DELETE:请求服务器删除指定的页面;
-
HEAD:请求读取 URL 标识的信息的首部,只返回报文头;
-
OPETION:请求一些选项的信息;
-
PUT:在指明的 URL 下存储一个文档。
(1)HTTP 工作的结构
(2) HTTPS 协议详解
HTTPS (Secure) 是安全的 HTTP 协议,端口号 443。基于 HTTP 协议,通过 SSL 或 TLS 提供加密处理数据、验证对方身份以及数据完整性保护。
注:略排版,重传少量转存失败的图片。
via:
-
123 张图详解 177 个计算机网络名词 原创 弗克斯 网络技术平台 2022年04月03日 18:37
https://mp.weixin.qq/s/5473IJUPqgnAK3nTrn4Y9A -
图解网络:36 张图详解网络基础知识 原创 Fox 网络技术平台 2024 年 08 月 07 日 12:01 广东
https://mp.weixin.qq/s/4B4-DdO91PnE44IDQQ0lmw -
36 张图详解应用层协议:网络世界的最强王者 原创 Fox 网络技术平台 2023 年 07 月 20 日 12:00 广东
https://mp.weixin.qq/s/X6TXx83tNOlDY7gnSEm-mA -
37 张图详解 DHCP:给你 IP 地址的隐形人 原创 网工 Fox 网络技术平台 2021 年 05 月 15 日 18:00
https://mp.weixin.qq/s/3sfgn1BN3YaJrc_6hbVfkQ -
36 张图详解 DNS:网络世界的导航 原创 Fox 网络技术平台 2021 年 06 月 01 日 08:00
https://mp.weixin.qq/s/flmHhfnfbh_pzIaKu59AXQ -
弱电网络基础该从哪开始补?这 36 张图,一次性帮你搞定 弱电干将 弱电干货 2022 年 11 月 12 日 21:39 安徽
https://mp.weixin.qq/s/AqupRxMUzv_ANVux4FVTHQ
版权声明:本文标题:图解 | 计算机网络名词网络基础知识应用层协议DHCPDNS 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/jishu/1735082581h1699622.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论