知识点是基于牛客刷题整理的,所以有点乱。。。不是一个结构化的需要结合目录食用
目录
ADSL 方式接入 Internet ,至少需要在计算机中内置或外置的一个关键硬设备是
计算机网络各层的作用
计算机网络的七层结构、五层结构和四层结构-腾讯云开发者社区-腾讯云
TCP/IP与OSI最大的不同在于:OSI是一个理论上的网络通信模型,而TCP/IP则是实际运行的网络协议。
基于OSI七层模型:
物理层(Physical Layer)
数据链路层(Data Link Layer)
网络层(Network Layer)
传输层(Transport Layer)
会话层(Session Layer)
- 功能:管理通信会话的建立、维护与终止,确保会话同步与恢复。
表示层(Presentation Layer)
- 功能:处理数据格式转换、加密解密与压缩解压缩,确保不同系统间的数据兼容性。
应用层(Application Layer)
OSI模型通过分层设计实现了网络通信的模块化,下层为上层提供服务,上层屏蔽底层细节,确保高效可靠的数据传输。实际应用中,传输层(如TCP/UDP)与应用层(如HTTP)是开发者最直接接触的层级。
五层网络的体系结构
- 应用层:应用层是网络协议的最高层,主要任务通过进程间的交互完成特定网络应用。应用层协议定义的是应用程序(进程)间通信和交互的规则。 对于不同的网络应用需要有不同的应用层协议,在互联网中的应用层协议很多,如域名系统DNS,支持万维网应用的HTTP协议,支持电子邮件的SMTP协议,等等。应用层交互的数据单元称为报文。
- 运输层:有时也译为传输层,它负责为两台主机中的进程提供通信服务。该层主要有以下两种协议:
- 传输控制协议 (Transmission Control Protocol,TCP):提供面向连接的、可靠的数据传输服务,数据传输的基本单位是报文段(segment);
- 用户数据报协议 (User Datagram Protocol,UDP):提供无连接的、尽最大努力的数据传输服务,但不保证数据传输的可靠性,数据传输的基本单位是用户数据报。
- 网络层:网络层负责为分组网络中的不同主机提供通信服务,并通过选择合适的路由将数据传递到目标主机。在发送数据时,网络层把运输层产生的报文段或用户数据封装成分组或 包进行传送。 在TCP/IP体系中,由于网络层使用IP协议,因此分组也叫IP数据报。
- 数据链路层:数据链路层通常简称为链路层。数据链路层在两个相邻节点传输数据时,将网络层交下来的IP数据报组装成帧,在两个相邻节点之间的链路上传送帧。
- 物理层:保数据可以在各种物理媒介上进行传输,为数据的传输提供可靠的环境。
四层网络体系结构
对比
TCP/IP协议簇
下层协议为上层提供服务
TCP/IP体系结构中的各层通过协议封装和解封装来实现数据的传输。每一层都有其特定的功能和协议,各层之间紧密协作,确保数据能够从源主机传输到目标主机。具体关系如下:
- 应用层:通过传输层的TCP或UDP协议发送和接收数据。
- 传输层:将应用层数据封装在TCP或UDP数据包中,传递给网络层。
- 网络层:将传输层数据包封装在IP数据包中,传递给链路层。
- 链路层:将网络层IP数据包封装在链路层数据帧中,传递给物理层。
- 物理层:将链路层数据帧转换为物理信号,通过物理介质传输。
层次 |
协议 |
基于 |
功能描述 |
常见用途 |
应用层 |
HTTP/HTTPS |
TCP |
超文本传输协议,用于网页浏览。HTTPS是HTTP的安全版本,通过SSL/TLS加密。 |
网页浏览、Web服务 |
FTP |
TCP |
文件传输协议,用于在客户端和服务器之间传输文件。 |
文件上传和下载 |
|
TFTP |
UDP |
简单文件传输协议 |
||
SMTP/POP3/IMAP |
TCP |
电子邮件协议。SMTP用于发送邮件,POP3和IMAP用于接收邮件。 |
电子邮件传输和接收 |
|
DNS |
UDP/TCP |
域名系统,用于将域名解析为IP地址。 |
域名解析 |
|
SSH |
TCP |
安全外壳协议,用于安全远程登录和管理服务器。 |
远程登录、安全管理 |
|
Telnet |
TCP |
远程登录协议,不安全,已逐渐被SSH取代。 |
远程登录(不推荐使用) |
|
SNMP |
UDP |
简单网络管理协议,用于网络设备的管理和监控。 |
网络设备管理 |
|
RDP |
TCP |
远程桌面协议,用于远程访问Windows桌面。 |
远程桌面访问 |
|
SMB/CIFS |
TCP |
服务器消息块/通用互联网文件系统,用于文件共享和打印服务。 |
文件共享、打印服务 |
|
NTP |
UDP |
网络时间协议,用于同步网络设备的时间。 |
时间同步 |
|
传输层 |
TCP |
IP |
提供可靠的、面向连接的服务,确保数据包按顺序、无错误地传输。 |
Web服务、邮件传输、文件传输等 |
UDP |
IP |
提供无连接的服务,不保证数据包的顺序和可靠性,但传输速度快。 |
实时应用(如视频流、语音通话)、DNS查询等 |
|
网络层 |
IP |
链路层 |
负责将数据包从一个网络传输到另一个网络。 |
网络间的数据传输 |
ICMP |
IP |
用于发送错误消息和操作信息,如ping命令。 |
错误检测、网络诊断 |
|
IGMP |
IP |
用于管理和查询多播组成员。 |
多播通信 |
|
IPSec |
IP |
提供IP数据包的安全性,包括加密和认证。 |
安全通信 |
|
链路层 |
Ethernet |
物理层 |
最常用的局域网技术,使用MAC地址来标识设备。 |
局域网通信 |
PPP |
物理层 |
点对点协议,用于在点对点链路上建立和维护通信。 |
串行链路通信 |
|
ARP |
链路层 |
地址解析协议,用于将IP地址解析为MAC地址。 |
IP地址到MAC地址的解析 |
|
RARP |
链路层 |
逆向地址解析协议,用于将MAC地址解析为IP地址(较少使用)。 |
MAC地址到IP地址的解析(较少使用) |
|
物理层 |
802.3 |
物理层 |
以太网的物理层标准。 |
有线局域网通信 |
802.11 |
物理层 |
无线局域网(WLAN)的物理层标准。 |
无线局域网通信 |
|
RS-232 |
物理层 |
串行通信接口标准,用于短距离通信。 |
分散知识点
计算机网络相关概念
构造计算机网络的目的是
构造计算机网络的根本目的是实现资源共享。
资源共享是指网络中的计算机可以共享硬件资源(如打印机、存储设备等)、软件资源(如应用程序、数据库等)以及数据资源(如文件、信息等)。
这种共享可以大大提高资源利用率,降低成本,提升工作效率。
- 信息交流是网络提供的基本功能之一
- 数据交换是实现资源共享的必要技术手段
- 通信是网络运行的基础,但不是最终目的
计算机网络是通信技术和计算机技术的结合产物
其中通信技术负责数据的传输,提供了网络通信的基础设施和协议支持,而计算机技术则提供了数据处理和运算能力。这两种技术的结合使得计算机之间能够进行信息交换和资源共享。
网络管理的5大功能
1. 故障管理:检测、隔离和修复网络故障
2. 配置管理:对网络设备和资源进行配置、监控和维护
3. 安全管理:保护网络免受未授权访问和攻击
4. 性能管理:监控和优化网络性能
5. 计费管理:统计网络资源使用情况并进行费用核算
ADSL 方式接入 Internet ,至少需要在计算机中内置或外置的一个关键硬设备是
ADSL (非对称数字用户线路)是目前用电话接入因特网的主流技术,采用这种方式接入因特网,需要使用调制解调器。这是 PC 通过电话接入网络的必备设备,具有调制和解调两种功能,并分为外置和内置两种。
在电信服务提供商端,需要将每条开通ADSL业务的电话线路连接在数字用户线路访问多路复用器(DSLAM)上。而在用户端,用户需要使用一个ADSL终端(因为和传统的调制解调器(Modem)类似,所以也被称为“猫”)来连接电话线路。由于ADSL使用高频信号,所以在两端还都要使用ADSL信号分离器将ADSL数据信号和普通音频电话信号分离出来,避免打电话的时候出现噪音干扰。
通常的ADSL终端有一个电话Line-In,一个以太网口,有些终端集成了ADSL信号分离器,还提供一个连接的Phone接口。
某些ADSL调制解调器使用USB接口与电脑相连,需要在电脑上安装指定的软件以添加虚拟网卡来进行通信
ADSL接入方式:专线接入,虚拟拨号
访问网页的基本流程是
1. 首先使用DNS协议将域名解析为IP地址
2. 使用ARP协议获取网关的MAC地址
3. 通过TCP协议与服务器建立连接
4. 使用HTTP/HTTPS协议获取网页内容
- . TCP - 用于建立可靠的网络连接
. UDP - 用于DNS查询等操作
. DNS - 用于将域名www.trendmicro.com解析为IP地址
. ARP - 用于在局域网内将IP地址解析为MAC地址
不同的协议层次会使用不同类型的地址信息:
- 物理层使用MAC物理地址- 网络层使用IP地址
- 应用层使用网络服务访问点
实际通信过程中,数据包在不同协议层之间传递时,会根据该层使用的协议规范添加相应的地址信息。因此不能说某一种地址是唯一使用的,而是要根据具体使用的协议来确定。这体现了计算机网络分层模型的特点,每层都有其特定的寻址方式。
IEEE
- IEEE 802.11是无线局域网(WLAN)的标准,也就是我们常说的Wi-Fi技术标准。
- IEEE 802.5是令牌环网(Token Ring)的标准,这是IBM公司开发的一种早期局域网技术,现已较少使用。
- IEEE 802.8是光纤技术标准委员会的标准,主要针对光纤分布式数据接口(FDDI)。
- IEEE 802.3是以太网(Ethernet)的标准规范,由IEEE(电气电子工程师学会)制定。这个标准定义了有线局域网的物理层和数据链路层的规范,包括介质访问控制、物理介质等技术细节。当前广泛使用的网络确实主要基于以太网技术。
TCP/IP相关
基于TCP/IP的协议
ICMP 基于TCP/IP协议
E-mail: TCP/IP
FTP;文件传输 TCP/IP
TCP连接的建立
TCP连接的建立需要一个三步握手过程,确保双方都准备好进行数据传输。具体步骤如下:
- SYN(同步):
- 客户端发送一个SYN包到服务器,请求建立连接。
- 客户端进入SYN_SENT状态。
- 数据包中的SYN标志位被设置为1,序列号(Sequence Number)被设置为一个随机值x。
- SYN-ACK(同步-确认):
- 服务器收到SYN包后,回复一个SYN-ACK包,确认收到请求并同意建立连接。
- 服务器进入SYN_RCVD状态。
- 数据包中的SYN标志位被设置为1,ACK标志位被设置为1,序列号被设置为一个随机值y,确认号(Acknowledgment Number)被设置为x + 1。
- ACK(确认):
- 客户端收到SYN-ACK包后,发送一个ACK包,确认收到服务器的响应,连接建立完成。
-
- 客户端进入ESTABLISHED状态。
- 数据包中的ACK标志位被设置为1,序列号被设置为x + 1,确认号被设置为y + 1。
- 服务器收到ACK包后,也进入ESTABLISHED状态,连接正式建立。
三步握手的状态转换
- 客户端:
- CLOSED → SYN_SENT → ESTABLISHED
- 服务器:
- LISTEN → SYN_RCVD → ESTABLISHED
listen与accept函数
listen函数将socket置于监听状态,使其可以接收连接请求。它需要两个参数:sockfd是需要监听的socket描述符,backlog指定未完成连接队列的最大长度。accept函数用于接受一个已经建立的连接,它从已完成连接队列中取出一个连接,返回一个新的socket描述符,用于与客户端进行通信。如果队列中没有连接,accept会阻塞,直到有连接可用。
连接队列
TCP连接管理涉及两个队列:未完成连接队列和已完成连接队列。未完成连接队列存储已经接收到SYN包但尚未完成三步握手的连接请求,管理尚未完成握手的连接,防止服务器被过多的未完成连接请求淹没。已完成连接队列存储已经完成三步握手的连接请求,等待accept函数处理,管理已经建立的连接,确保accept函数可以顺利取出连接。
shutdown函数
shutdown函数用于关闭socket的读或写方向。它需要两个参数:sockfd是需要关闭的socket描述符,how指定关闭的方向,可以是SHUT_RD(关闭读方向)、SHUT_WR(关闭写方向)或SHUT_RDWR(关闭读写方向)。该函数允许部分关闭连接,而不是完全关闭socket,为应用程序提供了更灵活的连接管理方式。(半关闭)
当对端调用shutdown(SHUT_WR)后,仅表示对端关闭了写通道,本端的写通道仍然是开放的,因此本端仍可以继续写入数据。
TCP连接的关闭
在TCP连接中,主动关闭的一方会经历一系列的状态转换,而被动关闭的一方也会经历不同的状态转换。
TCP状态转换图
TCP连接的状态转换图如下:
- ESTABLISHED:连接已建立。
- CLOSE_WAIT:被动关闭方收到主动关闭方的FIN,发送ACK,进入CLOSE_WAIT状态,等待应用层关闭连接。
- FIN_WAIT1:主动关闭方发送FIN,进入FIN_WAIT1状态,等待对方的ACK。
- FIN_WAIT2:主动关闭方收到对方的ACK,进入FIN_WAIT2状态,等待对方的FIN。
- TIME_WAIT:主动关闭方收到对方的FIN,发送ACK,进入TIME_WAIT状态,等待2MSL(最大报文段生命周期)后关闭连接。
详细解释
- CLOSE_WAIT:这个状态是被动关闭方特有的状态。当被动关闭方收到主动关闭方的FIN后,发送ACK,进入CLOSE_WAIT状态。此时,被动关闭方等待应用层关闭连接。主动关闭方不会进入这个状态。
- FIN_WAIT1:主动关闭方发送FIN后进入FIN_WAIT1状态,等待对方的ACK。
- FIN_WAIT2:主动关闭方收到对方的ACK后进入FIN_WAIT2状态,等待对方的FIN。
- TIME_WAIT:主动关闭方收到对方的FIN后发送ACK,进入TIME_WAIT状态,等待2MSL后关闭连接。
总结知识点
- 主动关闭方:
- 发送FIN,进入FIN_WAIT1状态。
- 收到对方的ACK,进入FIN_WAIT2状态。
- 收到对方的FIN,发送ACK,进入TIME_WAIT状态。
- 在TIME_WAIT状态等待2MSL后关闭连接。
- 被动关闭方:
- 收到对方的FIN,发送ACK,进入CLOSE_WAIT状态。
- 应用层关闭连接后,发送FIN,进入LAST_ACK状态。
- 收到对方的ACK,进入CLOSED状态。
IP端到端原则
- MTU :不同网络有不同最大传输单元(MTU),当 IP 数据报大小超过某个网络的 MTU 时,需进行分片。
- 分片信息 :每个 IP 数据报分片都包含原始数据报的标识符、片偏移以及总长度等信息,这些信息用于在目的主机处进行重组。
- 端到端原则 :IP 协议的设计遵循端到端原则,复杂功能(如数据报重组)由端系统完成,中间网络设备(如路由器)只负责简单的转发和路由选择,以提高网络效率。
IP地址与子网掩码
IP地址200.23.16.0/23中的"/23"表示网络前缀的长度是23位,也就是说网络掩码的前23位是1,后9位是0。
将23位1和9位0转换成点分十进制表示法:
11111111.11111111.11111110.00000000 = 255.255.254.0
网络掩码必须满足两个条件:
a) 二进制必须是连续的1后跟连续的0
b) 1的个数等于网络前缀长度
1. IP地址
IP地址(Internet Protocol Address)是用于在网络中标识设备的唯一地址。IP地址分为IPv4和IPv6两种版本。
- IPv4地址:由32位二进制数组成,通常以点分十进制格式表示,例如192.168.1.1。IPv4地址分为A、B、C、D、E五类,其中A、B、C类用于普通网络设备,D类用于多播,E类保留用于未来使用。
- A类地址:范围1.0.0.0到126.0.0.0,默认子网掩码255.0.0.0,每个网络可以有2^24个主机。
- B类地址:范围128.0.0.0到191.255.0.0,默认子网掩码255.255.0.0,每个网络可以有2^16个主机。
- C类地址:范围192.0.0.0到223.255.255.0,默认子网掩码255.255.255.0,每个网络可以有2^8个主机。
- IPv6地址:由128位二进制数组成,通常以冒号分隔的八组四位十六进制数表示,例如2001:0db8:85a3:0000:0000:8a2e:0370:7334。IPv6地址解决了IPv4地址不足的问题,提供了更多的地址资源。
2. 子网掩码
子网掩码(Subnet Mask)用于区分IP地址中的网络部分和主机部分。子网掩码也是一个32位的二进制数,通常以点分十进制格式表示。
- 作用:
- 区分网络和主机:子网掩码通过与IP地址进行按位与运算,可以确定IP地址的网络部分和主机部分。
- 子网划分:通过修改子网掩码,可以将一个大的网络划分为多个小的子网,提高网络的灵活性和管理效率。
- 计算方法:
- 默认子网掩码:
- A类地址:255.0.0.0(/8)
- B类地址:255.255.0.0(/16)
- C类地址:255.255.255.0(/24)
- 自定义子网掩码:可以通过增加子网掩码的长度来划分子网。例如,一个C类地址192.168.1.0的默认子网掩码是255.255.255.0(/24),如果需要划分为两个子网,可以将子网掩码改为255.255.255.128(/25)。
- 默认子网掩码:
3. 示例
假设有一个C类网络192.168.1.0,默认子网掩码为255.255.255.0(/24)。
- 网络部分:192.168.1.0(前24位)
- 主机部分:0.0.0.1到0.0.0.254(后8位)
如果将子网掩码改为255.255.255.128(/25),则:
- 子网1:
- 网络地址:192.168.1.0
- 可用主机范围:192.168.1.1到192.168.1.126
- 广播地址:192.168.1.127
- 子网2:
- 网络地址:192.168.1.128
- 可用主机范围:192.168.1.129到192.168.1.254
- 广播地址:192.168.1.255
通过这种方式,可以将一个C类网络划分为两个子网,每个子网有126个可用主机地址。
4. 总结
- IP地址:用于标识网络中的设备。
- 子网掩码:用于区分IP地址中的网络部分和主机部分,通过修改子网掩码可以实现子网划分,优化网络管理。
错题:
关于这样一个地址: 10.2.255.255/8 ,下列哪个是正确的?
A
这是一个公有地址
B
这是一个广播地址
C
这是一个有效的主机地址
D
这是一个 A 类地址
正确答案:CD
你的答案:B
官方解析:对于IP地址10.2.255.255/8,需要从以下几个方面进行分析:
首先,这是一个A类地址(D正确):
- A类地址的第一个字节范围是0-127
- 该IP地址第一个字节是10,属于A类地址范围
- 子网掩码/8也正好对应A类默认掩码
其次,这是一个有效的主机地址(C正确):
- 掩码/8表示前8位是网络号,后24位是主机号
- 该地址的网络号是10,主机号是2.255.255
- 虽然主机位都是1,但在/8掩码下这仍是有效主机地址,而不是广播地址
分析错误选项:
A错误:10.0.0.0/8是私有地址,不是公有地址。根据RFC1918,10.0.0.0/8整个网段都被定义为私有地址。
B错误:在/8掩码下,广播地址应该是10.255.255.255。该地址10.2.255.255只是一个普通的主机地址。
综上所述,这个IP地址既是A类地址,又是一个有效的主机地址,因此CD为正确答案。
IP地址划分
IP地址类别划分依据
- IP地址分为有类别地址和无类别地址,A、B、C、D、E 属于有类别地址,它们的划分依据主要是根据地址的前几位二进制数字来确定。
- A类地址 :首位为 0,在二进制中表示为 0xxxxxxx,对应十进制范围则是网络号为 0 - 127,其中 0 和 127 有特殊用途,0 表示本地网络,127 表示回环测试。
- B类地址 :前两位为 10,在二进制中表示为 10xxxxxx,对应十进制范围是网络号为 128 - 191。
- C类地址 :前三位为 110,在二进制中表示为 110xxxxx,对应十进制范围是网络号为 192 - 223。
- D类地址 :前四位为 1110,在二进制中表示为 1110xxxx,对应十进制范围是 224 - 239,主要用于组播通信。
- E类地址 :前四位为 1111,在二进制中表示为 1111xxxx,对应十进制范围是 240 - 255,目前为保留地址,用于实验和研究。
各地址类别特点与用途
- A类地址 :网络号长度为 8 位,主机号长度为 24 位。适用于大型网络,如大型跨国企业网络、大型服务提供商网络等。每个 A类网络可容纳大量的主机, hosts=2^(32-8)-2=16777214 台主机。
- B类地址 :网络号长度为 16 位,主机号长度为 16 位。适合中型规模的网络,如高校校园网、中型企业网络等。每个 B类网络可容纳的主机数量为 hosts=2^(32-16)-2=65534 台主机。
- C类地址 :网络号长度为 24 位,主机号长度为 8 位。主要用于小型网络,如小型企业、家庭网络等。每个 C类网络可容纳的主机数量为 hosts=2^(32-24)-2=254 台主机。
- D类地址 :网络号长度为 4 位,不区分主机号。主要用于组播通信,如电视广播、网络会议等场景,可实现一对多的通信。
- E类地址 :目前未广泛应用,主要是为未来的需求预留空间,用于实验和研究,如新的网络协议、新技术的测试等。
特殊地址
- 网络地址 :主机号全为 0 的地址,用于标识一个特定的网络。
- 广播地址 :主机号全为 1 的地址,用于向网络中的所有主机发送广播消息。不同类别地址的广播地址有所不同,A 类地址的广播地址为 255.255.255.255,B 类地址的广播地址为 255.255.255.255(对于 192.168.1.0/24 网络,广播地址为 192.168.1.255),C 类地址的广播地址为 255.255.255.255(对于 192.168.1.0/24 网络,广播地址为 192.168.1.255)。
常见协议相关
电子邮件相关
电子邮件传输协议
- SMTP(Simple Mail Transfer Protocol,简单邮件传输协议)
- 功能 :专门用于发送电子邮件的标准协议,负责将邮件从发送方的邮件服务器传输到接收方的邮件服务器,也用于邮件客户端将邮件发送到发送方的邮件服务器。
- 工作原理 :运行在 TCP/IP 协议之上,使用 25 号端口。邮件发送方通过 SMTP 客户端向 SMTP 服务器发送邮件,SMTP 服务器根据邮件的收件人地址信息,将邮件发送到下一个 SMTP 服务器,直到邮件到达接收方的邮件服务器。
- 特点 : SMTP 是一个相对简单、基于文本的协议,易于实现和调试。它提供了基本的邮件传输功能,但本身不支持对邮件内容的复杂处理,如多媒体内容的传输。
- MIME(Multipurpose Internet Mail Extensions,多用途互联网邮件扩展)
- 功能 :对 SMTP 进行扩展,用于支持在电子邮件中发送非 ASCII 码文本以及各种多媒体数据,如声音、图像、视频等。
- 工作原理 : MIME 定义了一套编码机制和格式规范,将非文本数据转换为纯文本形式,使得这些数据可以通过 SMTP 协议进行传输。在发送方,MIME 将多媒体数据进行编码并添加相应的头部信息,标识数据的类型和编码方式;在接收方,MIME 解码器根据头部信息将数据还原为原始格式。
- 特点 : MIME 是电子邮件传输中不可或缺的一部分,它使得电子邮件不再局限于简单的文本内容,能够满足用户对多媒体邮件的需求。
电子邮件接收协议
- IMAP(Internet Message Access Protocol,互联网消息访问协议)
- 功能 :用于邮件接收,允许用户在邮件服务器上直接查看和操作邮件,而无需下载到本地设备。用户可以在多个设备上通过 IMAP 协议访问同一邮箱,查看、回复、转发邮件等操作都会实时同步到邮件服务器上。
- 工作原理 :基于 TCP 连接,客户端与服务器建立连接后,可以浏览邮件文件夹、检索邮件内容、标记邮件等。所有的操作都是在服务器端进行的,客户端只是显示服务器上的邮件状态。
- 特点 :适合需要在多个设备上同步管理邮件的用户,但对服务器的存储资源要求较高。
• POP3(Post Office Protocol version 3,邮局协议版本 3)
o 功能 :主要用于邮件接收。它允许用户从接收方邮件服务器上下载邮件到本地设备,如计算机或手机。例如,用户可以通过邮件客户端软件使用 POP3 协议将保存在邮件服务器上的邮件下载到本地磁盘上进行查看和管理。
o 工作原理 :POP3 也使用 TCP 连接,客户端(如邮件客户端软件)与邮件服务器建立连接后(通常使用端口 110),通过一系列的命令和响应来获取邮件列表、读取邮件内容、删除邮件等操作。下载完成后,邮件通常会从服务器上删除(也可以设置保留副本)。
o 特点 :POP3 协议简单,但下载邮件后默认删除服务器上的邮件副本,这可能导致数据丢失风险,不过现在很多邮件客户端允许用户自定义邮件保留策略。
其他相关协议和标准
- SSL/TLS(Secure Sockets Layer/Transport Layer Security,安全套接字层 / 传输层安全)
- 功能 :用于在电子邮件传输过程中提供加密和安全保护,防止邮件内容在传输过程中被窃取或篡改。
- 工作原理 :在 SMTP、IMAP 或 POP 协议的基础上,通过 SSL/TLS 协议建立加密通道,对传输的数据进行加密和解密。
- 特点 :能够有效提高电子邮件传输的安全性,保护用户隐私和敏感信息。
- DKIM(DomainKeys Identified Mail,域名密钥识别邮件)
- 功能 :用于验证电子邮件的发件人身份,防止邮件伪造和欺骗。
- 工作原理 :发件人的邮件服务器使用私钥对邮件进行数字签名,收件人的邮件服务器使用发件人域名对应的公钥对签名进行验证。
- 特点 :有助于提高电子邮件的安全性和可信度,减少垃圾邮件和网络钓鱼攻击。
万维网相关协议
- HTTP(Hypertext Transfer Protocol,超文本传输协议)
- 功能 :是万维网(WWW)的基础协议,用于在客户端(如浏览器)和服务器之间传输超文本(如 HTML 文件)、图片、视频等各种网页资源。例如,当用户在浏览器中输入一个网址并访问网页时,浏览器会通过 HTTP 协议向服务器请求网页内容,服务器将相应的资源发送回浏览器进行显示。
- 工作原理 :HTTP 是一种无状态的、基于请求 - 响应模式的协议。客户端向服务器发送请求报文,报文中包含请求方法(如 GET、POST 等)、请求的资源路径、协议版本、请求头等信息;服务器接收到后返回响应报文,包括状态码、响应头和实体内容(如网页内容)。
- 特点 :HTTP 是一种简单、灵活的协议,能够支持多种数据类型传输,但它的无状态特性意味着每个请求之间是相互独立的,服务器不会保存客户端的请求状态,这在一定程度上限制了交互式的应用。
- HTTPS(HTTP Secure,安全超文本传输协议)
- 功能 :HTTP 的安全版本,主要用于在客户端和服务器之间安全地传输数据,保护数据的机密性和完整性。例如,在进行网上购物、网上银行等涉及敏感信息的操作时,通常会使用 HTTPS 协议来防止用户信息(如账号、密码、信用卡号等)被窃取或篡改。
- 工作原理 :HTTPS 在 HTTP 的基础上加入了 SSL/TLS(Secure Sockets Layer/Transport Layer Security,安全套接字层 / 传输层安全)协议。客户端和服务器在建立连接时会进行 SSL/TLS 握手,通过加密算法和数字证书等技术协商加密参数,之后的数据传输都会经过加密处理。
- 特点 :HTTPS 具有较高的安全性,能够有效防止中间人攻击等安全威胁,但加密和解密过程会增加一定的计算开销,可能会对服务器性能和数据传输速度产生一定影响。
其他常见网络协议
- FTP(File Transfer Protocol,文件传输协议)
- 功能 :用于在网络上进行文件传输,包括从客户端向服务器上传文件或从服务器下载文件到客户端。例如,网站管理员可以通过 FTP 协议将网站的文件上传到服务器上进行部署,或者从服务器下载备份文件到本地。
- 工作原理 :FTP 使用 TCP 连接,通常使用端口 21。它有两种工作模式:PORT(主动)模式和 PASV(被动)模式。在 PORT 模式下,客户端向服务器发送连接请求,服务器主动连接客户端;在 PASV 模式下,服务器处于被动监听状态,客户端主动连接服务器。文件传输过程中,会建立两个连接:一个用于传输控制命令(如登录、目录浏览等),另一个用于实际的文件数据传输。
- 特点 :FTP 协议简单易用,支持多种文件操作功能,但它的安全性较低,因为用户名和密码等信息在传输过程中是明文的,容易被截获。
- IGMP(Internet Group Management Protocol,因特网组管理协议)
- 功能 :主要用于 IP 组播环境,管理主机与路由器之间的组播成员关系。它允许主机加入或离开特定的组播组,使得路由器能够了解哪些网络段上的主机对哪些组播组感兴趣,从而有效地转发组播数据。
- 工作原理 :IGMP 是一种基于 IP 的协议,主机通过向路由器发送 IGMP 消息(如查询、报告、离开等)来报告自己对组播组的成员关系。路由器根据接收到的 IGMP 消息维护组播转发表,决定是否将组播数据转发到特定的网络接口。
- 特点 :IGMP 是组播通信的关键协议,对网络资源的高效利用和组播数据的正确转发起着重要作用,但它主要用于组播场景,与单播通信中的邮件传输等应用关系不大。
常见协议与默认端口
协议名称 |
协议缩写 |
默认端口 |
协议描述 |
超文本传输协议 |
HTTP |
80 |
用于在万维网上传输超文本内容,如网页、图片、视频等。 |
安全超文本传输协议 |
HTTPS |
443 |
HTTP 的安全版本,通过 SSL/TLS 加密技术确保数据传输的机密性和完整性。 |
简单邮件传输协议 |
SMTP |
25 |
用于发送电子邮件,将邮件从发件人的邮件服务器传输到收件人的邮件服务器。 |
邮局协议版本3 |
POP3 |
110 |
用于接收电子邮件,允许客户端从邮件服务器上下载邮件到本地设备。 |
互联网邮件访问协议 |
IMAP |
143 |
用于接收电子邮件,允许用户在服务器上直接管理邮件。 |
文件传输协议 |
FTP |
21 |
用于在客户端和服务器之间进行文件传输,支持多种文件操作。 |
安全外壳协议 |
SSH |
22 |
用于安全地远程登录和管理服务器或其他网络设备。 |
远程终端协议 |
Telnet |
23 |
用于远程登录,但数据传输不加密,安全性较低。 |
域名系统 |
DNS |
53 |
用于将域名转换为 IP 地址。 |
简单网络管理协议 |
SNMP |
161/162 |
SNMP 代理向 SNMP 管理站发送数据使用 161 端口,管理站接收陷阱消息使用 162 端口,用于网络设备的管理和监控。 |
网络时间协议 |
NTP |
123 |
用于在计算机系统和网络设备之间同步时间。 |
MySQL数据库 |
MySQL |
3306 |
一种广泛使用的开源关系型数据库管理系统。 |
PostgreSQL数据库 |
PostgreSQL |
5432 |
一种功能强大的开源关系型数据库系统。 |
MongoDB数据库 |
MongoDB |
27017 |
一种流行的 NoSQL 数据库,用于存储非结构化数据。 |
高级消息队列协议 |
RabbitMQ |
5672 |
一种开源的消息代理软件,实现了 AMQP 协议。 |
Apache Kafka |
Kafka |
9092 |
一种分布式的消息发布 - 订阅系统。 |
简单文件传输协议 |
TFTP |
69 |
一种简单的文件传输协议,通常用于小型网络环境中的文件传输。 |
服务器消息块协议 |
SMB |
445 |
用于在局域网内共享文件、打印机和其他资源。 |
远程桌面协议 |
RDP |
3389 |
用于远程连接和控制 Windows 系统的桌面环境。 |
常见协议的头字段
TCP 协议头字段
| 协议头字段 | 长度(字节) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 源端口 | 2 | 标识发送端应用进程的端口号。 |
| 目的端口 | 2 | 标识接收端应用进程的端口号。 |
| 序列号 | 4 | 标识从 TCP 发送端到接收端的字节流中的每个字节的编号。 |
| 确认号 | 4 | 标识期望收到的下一个字节的序列号。 |
| 数据偏移 | 1(4位) | 表示 TCP 报文段的数据起始位置距离 TCP 报文段开头的距离。 |
| 保留字段 | 1(6位) | 暂未使用,保留为今后使用。 |
| 标志位 | 1(6位) | 包括 URG、ACK、PSH、RST、SYN、FIN 等标志位,用于控制 TCP 连接。 |
| 窗口大小 | 2 | 表示接收端期望接收的数据量。 |
| 校验和 | 2 | 用于检验 TCP 报文段在传输过程中是否出现错误。 |
| 紧急指针 | 2 | 当 URG 标志位为 1 时,用于指示紧急数据在数据流中的位置。 |
| 选项 | 可变 | 包含一些可选的参数,如最大报文段长度(MSS)、窗口缩放因子等。 |
UDP 协议头字段:
| 协议头字段 | 长度(字节) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 源端口 | 2 | 标识发送端应用进程的端口号。 |
| 目的端口 | 2 | 标识接收端应用进程的端口号。 |
| 长度 | 2 | 表示 UDP 报文段的长度(包括头部和数据)。 |
| 校验和 | 2 | 用于检验 UDP 报文段在传输过程中是否出现错误。 |
IP 协议头字段
| 协议头字段 | 长度(字节) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 版本 | 1(4位) | 表示 IP 协议的版本(如 IPv4 或 IPv6)。 |
| 首部长度 | 1(4位) | 表示 IP 首部的长度。 |
| 服务类型 | 1 | 表示对数据报的处理方式,用于服务质量控制。 |
| 总长度 | 2 | 表示整个 IP 数据报的长度(包括首部和数据)。 |
| 标识 | 2 | 用于标识数据报,以便在分片时重新组装。 |
| 标志 | 1(3位) | 用于控制数据报的分片和重组。 |
| 片偏移 | 2 | 表示数据报分片的位置,以便在接收端正确重组。 |
| 生存时间 | 1 | 表示数据报在网络中的最大跳数,防止数据报无限循环。 |
| 协议 | 1 | 表示传输层协议类型(如 TCP 或 UDP)。 |
| 首部校验和 | 2 | 用于检验 IP 首部在传输过程中是否出现错误。 |
| 源 IP 地址 | 4(IPv4)或 16(IPv6) | 表示发送方的 IP 地址。 |
| 目的 IP 地址 | 4(IPv4) 或 16(IPv6) | 表示接收方的 IP 地址。 |
| 选项 | 可变 | 包含一些可选的参数,用于特定的功能(如安全、记录路由等)。 |
ARP 协议头字段
| 协议头字段 | 长度(字节) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 硬件类型 | 2 | 表示硬件地址的类型(如以太网)。 |
| 协议类型 | 2 | 表示要映射的协议类型(如 IP)。 |
| 硬件地址长度 | 1 | 表示硬件地址的长度(以字节为单位)。 |
| 协议地址长度 | 1 | 表示协议地址的长度(以字节为单位)。 |
| 操作类型 | 2 | 表示 ARP 请求或响应的操作类型。 |
| 发送方硬件地址 | 可变 | 表示发送方的硬件地址。 |
| 发送方协议地址 | 可变 | 表示发送方的协议地址(如 IP 地址)。 |
| 接收方硬件地址 | 可变 | 表示接收方的硬件地址。 |
| 接收方协议地址 | 可变 | 表示接收方的协议地址(如 IP 地址)。 |
HTTP 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 请求方法 | 可变 | 表示客户端请求的操作类型(如 GET、POST 等)。 |
| 请求 URI | 可变 | 表示请求的资源路径。 |
| HTTP 版本 | 可变 | 表示 HTTP 协议的版本。 |
| 请求头 | 可变 | 包含客户端发送的请求头信息,如 Host、User-Agent、Accept 等。 |
| 空行 | 1 | 表示请求头的结束。 |
| 请求体 | 可变 | 包含请求的数据(如 POST 请求中的表单数据)。 |
HTTPS 协议字段
HTTPS 是基于 HTTP 和 SSL/TLS 协议构建的,其字段在 HTTP 字段的基础上增加了 SSL/TLS 协议的字段,用于加密和安全控制。
FTP 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 命令 | 可变 | 表示客户端发送的 FTP 命令(如 USER、PASS、RETR 等)。 |
| 响应码 | 可变 | 表示服务器对客户端命令的响应状态码。 |
| 数据 | 可变 | 表示 FTP 数据传输通道中的数据(如文件内容)。 |
SMTP 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 命令 | 可变 | 表示客户端发送的 SMTP 命令(如 HELO、MAIL FROM、RCPT TO、DATA 等)。 |
| 响应码 | 可变 | 表示服务器对客户端命令的响应状态码。 |
| 邮件内容 | 可变 | 包含邮件的主题、正文、收件人、发件人等信息。 |
POP 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 命令 | 可变 | 表示客户端发送的 POP 命令(如 USER、PASS、LIST、RETR 等)。 |
| 响应码 | 可变 | 表示服务器对客户端命令的响应状态码。 |
| 邮件内容 | 可变 | 包含邮件的主题、正文、收件人、发件人等信息。 |
IMAP 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 命令 | 可变 | 表示客户端发送的 IMAP 命令(如 LOGIN、SELECT、FETCH 等)。 |
| 响应码 | 可变 | 表示服务器对客户端命令的响应状态码。 |
| 邮件内容 | 可变 | 包含邮件的主题、正文、收件人、发件人等信息。 |
MIME 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 内容类型 | 可变 | 表示邮件内容的类型(如 text/plain、image/jpeg 等)。 |
| 内容传输编码 | 可变 | 表示邮件内容的编码方式(如 base64、quoted-printable 等)。 |
| 内容处理 | 可变 | 表示邮件内容的处理方式(如 attachment 表示附件)。 |
| 邮件内容 | 可变 | 包含邮件的实际内容(如文本、图像、视频等)。 |
SSL/TLS 协议字段
| 协议头字段 | 长度(字节) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 记录类型 | 1 | 表示 SSL/TLS 记录的类型(如握手消息、应用数据等)。 |
| 版本 | 2 | 表示 SSL/TLS 协议的版本。 |
| 长度 | 2 | 表示 SSL/TLS 记录的长度(不包括首部)。 |
| 握手类型 | 1 | 表示握手消息的类型(如 ClientHello、ServerHello 等)。 |
| 握手长度 | 3 | 表示握手消息的长度。 |
| 加密数据 | 可变 | 表示经过加密处理的数据。 |
DKIM 协议字段
| 协议头字段 | 长度(可变) | 作用描述 |
|:-----------------|:-------------|:-------------------------------------------------------------------------|
| 签名 | 可变 | 包含对邮件内容的数字签名,用于验证发件人身份和邮件完整性。 |
| 头部字段 | 可变 | 包含用于签名的邮件头部字段(如 From、Subject 等)。 |
| 时间戳 | 可变 | 表示签名的时间戳。 |
| 其他参数 | 可变 | 包含其他相关的参数(如签名算法、密钥等)。 |
命令相关
- netstat命令是一个功能强大的网络连接状态查看工具,可以显示当前系统中所有的网络连接、路由表、接口状态等信息。它能够列出所有已建立的TCP连接、正在监听的端口以及相关的进程信息,是诊断网络问题的重要工具。
- ipconfig是用来查看和配置网络接口参数的命令,主要显示IP地址、子网掩码、默认网关等配置信息,不能查看具体的连接状态。
- nslookup是一个域名解析工具,用于查询DNS记录,可以将域名解析为IP地址或反向解析IP地址为域名,与网络连接状态无关。
- ping是一个网络诊断工具,用于测试网络连通性和延迟,通过发送ICMP报文来检测目标主机是否可达,但不能显示系统当前的网络连接状态。
RS232-C
是一个由美国电子工业协会(EIA)和国际电报电话咨询委员会(CCITT)共同制定的标准,主要用于计算机及其相关设备间的串行数据通信。RS232-C的全称是“数据终端设备(DTE)和数据通信设备(DCE)之间串行二进制数据交换接口技术标准”
RS232-C最初是为连接模拟通信线路中的调制解调器等DCE设备及电传打印机等DTE设备而制定的。它描述了计算机及相关设备间较低速率的串行数据通信的物理接口及协议。RS232-C标准包括硬件的物理接口和软件的通信协议。
RS-232C接口中的DTR(数据终端就绪)信号方向为DTE→DCE
DTR信号是由数据终端设备(DTE)发送给数据通信设备(DCE)的控制信号,用于通知DCE设备DTE已经准备就绪,可以进行数据通信。DTR是一个非常重要的握手信号,用于建立和维护DTE与DCE之间的通信。
接口电平标准
- RS - 232 - C 电平标准
- 逻辑 “0” 和逻辑 “1” 的电平范围
- RS - 232 - C 标准采用负逻辑电平标准,与 TTL 电平(正逻辑电平标准)不同。在 RS - 232 - C 中,逻辑 “0” 对应的是正电平,取值范围是 +3V 到 +15V 之间;逻辑 “1” 对应的是负电平,取值范围是 -3V 到 -15V 之间。
- 这种较大的电压摆幅(±3V 到 ±15V)设计是为了提高抗干扰能力。较大的电压范围使得信号在传输过程中能够更好地抵御外界电磁干扰等因素带来的电压波动,从而保证数据传输的可靠性,尤其是在长距离传输或者复杂的电磁环境下。
- 与其他电平标准的对比
- 以常见的 TTL 电平为例,TTL 电平采用的是正逻辑电平标准。TTL 逻辑 “0” 的电平范围通常是 0V 到 +0.8V,逻辑 “1” 的电平范围是 +2V 到 +5V。与 RS - 232 - C 相比,TTL 电平的电压摆幅较小,更适合短距离、高速的数字电路传输,但在抗干扰能力方面相对较弱。所以 RS - 232 - C 常用于串行通信接口,而 TTL 电平常用于数字电路内部的信号传输。
- 逻辑 “0” 和逻辑 “1” 的电平范围
- RS - 232 - C 接口特性
- 接口针脚定义
- RS - 232 - C 接口通常有多个针脚,每个针脚有不同的功能定义。例如,在常见的 DB9 接口中,针脚 2 和针脚 3 分别用于发送和接收数据,针脚 5 是信号地。信号地在数据传输过程中起到重要的参考作用,确保接收端和发送端的电平具有相同的参考基准。
- 传输速率和距离
- RS - 232 - C 的传输速率一般较低,通常在 115.2Kbps 左右。其传输距离也有限,一般在 15 米左右。这是由于 RS - 232 - C 主要是为了满足早期计算机与外设之间的短距离、低速率通信需求而设计的。不过,通过使用中继器等设备,可以在一定程度上延长传输距离和提高传输速率。
- 协议内容
- RS - 232 - C 不仅仅是电平标准,还包含一整套的通信协议。它规定了串行通信的参数,如波特率、数据位、停止位和校验位等。例如,波特率决定了数据传输的速度,数据位表示一个字符包含的有效数据位数,停止位用于标志一个字符传输的结束,校验位用于检测数据传输过程中是否出现错误。
- 接口针脚定义
- 其他常见的接口电平标准
- TTL 电平
- 除了前面提到的正逻辑电平标准和用于数字电路内部传输外,TTL 电平还具有较快的信号传输速度。它在数字系统内部,如微控制器(MCU)和数字芯片之间的通信中广泛应用。由于其电平范围较低,与 CMOS 电平等其他数字电平标准之间需要进行电平转换。
- RS - 485 电平
- RS - 485 是一种差分电平标准。它采用差分信号传输,即通过两个信号线(通常是 A 线和 B 线)之间的电压差来表示逻辑状态。这种差分方式使得 RS - 485 具有很强的抗干扰能力,并且可以实现多点通信。RS - 485 的传输速率较高,传输距离也较远,可达 1200 米左右,在工业控制、楼宇自动化等领域广泛应用。
- USB 电平
- USB(通用串行总线)电平标准随着 USB 技术的发展而不断演进。早期的 USB 1.1 标准的传输速率为 1.5Mbps 和 12Mbps,而 USB 2.0 的传输速率可达 480Mbps。USB 3.0 及以上版本的传输速率更高。USB 采用的是 5V 或 3.3V 的电源电压,并且具有热插拔、即插即用等优点,在计算机外设(如键盘、鼠标、打印机等)和移动存储设备等领域得到了广泛应用。
- TTL 电平
交换机处理未知目标MAC地址帧
洪泛(Flooding):交换机将帧从除接收端口之外的所有端口转发出去。
目的:确保数据帧能够到达目标主机,并帮助交换机学习和更新MAC地址表。
风险:可能产生广播风暴,但可通过环路检测机制(如STP)缓解。
选项A(向一个特殊端口转发):交换机没有特殊端口用于处理未知目标地址帧。
选项B(丢弃):直接丢弃会导致通信中断,违背交换机的基本功能。
选项D(通过接收端口再发送回去):会造成网络环路,产生广播风暴,违背交换机工作原理。
数据通信中的字节填充算法
需要对特殊字符(如FLAG和ESC)进行填充处理,以避免数据中的内容与控制字符混淆。
原始报文片段为"A ESC FLAG B",其中ESC和FLAG都是特殊字符,需要进行如下处理:
1. 遇到ESC字符时,需要在其前面再添加一个ESC进行转义
2. 遇到FLAG字符时,需要在其前面添加ESC进行转义
路由相关
路由器在局域网/广域网的应用
1. 局域网应用:
- 大型企业内部不同部门之间的网络连接
- 学校校园网中不同楼层或区域的网络互联
- 家庭网络中连接不同网段的设备
2. 广域网应用:
- 连接不同地理位置的网络
- Internet服务提供商(ISP)的网络互联
- 跨国企业分支机构之间的网络连接
路由选择协议相关
一、按学习方式分类
- 静态路由
- 定义 :由网络管理员手动配置的固定路由信息。
- 工作原理 :管理员根据网络拓扑结构,明确指定数据包从源节点到目的节点的路径。路由器按照预设的路由表进行数据转发,不会自动根据网络变化调整。
- 特点 :
- 简单性 :配置过程相对简单,对于小型、稳定的网络环境,容易设置和管理。
- 安全性 :因为路由是手动设定的,不存在路由信息泄露的问题,安全性较高。
- 局限性 :不能适应网络拓扑的变化,当网络链路出现故障或者有新的网络节点加入时,需要人工重新配置路由。
- 应用场景 :适用于网络结构简单、流量稳定且变化较少的环境,如小型企业内部网络、简单的分支机构网络等。
- 动态路由
- 定义 :路由器之间能够自动交换路由信息,并根据一定的算法动态计算出最优路径。
- 工作原理 :动态路由协议通过定期或触发式的路由更新机制,使路由器了解网络拓扑的变化。当网络中的链路状态或路由信息发生变化时,路由器会相互通告这些变化,然后重新计算路由,更新路由表。
- 特点 :
- 灵活性 :能够自动适应网络拓扑的变化,保证数据传输的可靠性。
- 智能性 :可以根据网络状况选择最优路径,提高数据传输效率。
- 复杂性 :配置和管理相对复杂,需要一定的网络知识和经验。同时,由于路由器之间需要不断地交换路由信息,会占用一定的网络带宽和设备资源。
- 应用场景 :适用于大型、复杂的网络环境,如互联网服务提供商(ISP)网络、企业骨干网等,这些网络的拓扑结构经常变化,需要动态路由协议来保证网络的正常运行。
二、按应用范围分类
- 内部网关路由协议(IGP)
- 定义 :在同一个自治系统(AS)内部使用的路由协议。
- 工作原理 :IGP 的目标是在自治系统内部快速高效地传播路由信息,使同一自治系统内的路由器能够相互了解网络拓扑结构,从而正确地转发数据包。
- 常见协议 :
- RIP(Routing Information Protocol) :
- 原理 :基于距离向量算法,使用跳数作为度量标准。每个路由器会向其相邻路由器发送自己的路由表,接收方根据收到的路由信息更新自己的路由表,计算出到各个目的网络的距离。
- 特点 :简单易实现,但收敛速度慢,容易产生路由环路,在大型网络中应用受限。
- OSPF(Open Shortest Path First) :
- 原理 :采用链路状态算法,每个路由器向网络中的所有其他路由器发送自己的链路状态信息,构建网络拓扑数据库,然后通过 Dijkstra 算法计算出到各个目的网络的最短路径。
- 特点 :收敛速度快,能够适应复杂的网络拓扑结构,支持可变长子网掩码(VLSM)和区域划分,有效地减少了路由开销。
- IS - IS(Intermediate System - Intermediate System) :
- 原理 :也是链路状态协议,与 OSPF 类似,主要用于大型网络,如 ISP 骨干网。它将网络划分为不同的区域,通过路由器之间交换链路状态信息,构建网络拓扑,计算路由。
- 特点 :具有良好的扩展性,适用于复杂的网络环境,支持多种网络协议(如 IP、IPX 等)。
- RIP(Routing Information Protocol) :
- 应用场景 :主要用于企业内部网络、校园网等自治系统内部的路由选择,保证内部网络的高效通信。
- 外部网关路由协议(EGP)
- 定义 :用于不同自治系统之间的路由选择协议。
- 工作原理 :在不同自治系统边界上的路由器(称为边界路由器)之间交换路由信息,实现不同自治系统之间的通信。EGP 主要关注如何在不同自治系统之间传播路由信息,同时考虑路由策略和网络安全等因素。
- 常见协议 :BGP(Border Gateway Protocol)是目前最主要的外部网关协议。
- 原理 :BGP 使用路径向量算法,路由器之间交换的是整个网络的路由路径信息,包括自治系统路径、下一跳 IP 地址等。通过这些信息,BGP 路由器可以判断路由的来源和去向,避免路由环路,并根据路由策略选择最佳路径。
- 特点 :能够处理复杂的互联网拓扑结构,支持丰富的路由策略,如路由过滤、路由聚合等,适用于不同 ISP 之间的互联。
- 应用场景 :主要用于互联网服务提供商之间、大型企业网络与互联网之间的互联,实现不同网络之间的数据传输。
三、按路由算法分类
- 距离向量路由协议(Distance Vector Routing Protocol)
- 定义 :基于距离向量算法的路由协议,路由器根据距离(通常以跳数作为衡量标准)来选择最佳路径。
- 工作原理 :每个路由器定期向其相邻路由器发送自己的路由表,相邻路由器接收到后,根据自己的距离信息更新路由表,计算出到各个目的网络的距离向量。这个过程不断重复,直到整个网络的路由表收敛。
- 特点 :
- 简单性 :算法简单易实现,适合小型网络。
- 局限性 :收敛速度慢,容易产生路由环路,在大型网络中可能导致网络性能下降。
- 常见协议 :RIP 是典型的距离向量协议。
- 链路状态路由协议(Link - State Routing Protocol)
- 定义 :基于链路状态算法的路由协议,路由器通过收集网络中各个链路的链路状态信息来构建网络拓扑,并计算出最佳路径。
- 工作原理 :每个路由器向网络中的所有其他路由器发送自己的链路状态信息,包括与哪些邻居路由器相连、链路的度量值(如带宽、延迟等)。然后,每个路由器根据收集到的链路状态信息构建出一个完整的网络拓扑数据库,利用 Dijkstra 算法计算出到各个目的网络的最短路径。
- 特点 :
- 准确性 :能够准确地反映网络的实际拓扑结构,路由选择更加精确。
- 高效性 :收敛速度快,能够快速适应网络拓扑变化。
- 复杂性 :计算和通信开销较大,因为需要维护大量的链路状态信息并且进行复杂的计算。
- 常见协议 :OSPF、IS - IS 等属于链路状态路由协议。
四、其他相关知识点
- 度量值(Metric)
- 定义 :用于衡量路由的好坏,帮助路由器选择最佳路径。
- 类型 :不同的路由协议使用不同的度量值标准,如 RIP 使用跳数(数据包从源到目的需要经过的路由器数量),OSPF 使用代价(通常与链路带宽成反比,带宽越高,代价越低),BGP 使用自治系统路径长度等。
- 路由表
- 定义 :路由器中用于存储路由信息的数据结构。
- 内容 :路由表包含目的网络地址、下一跳路由器地址、出口接口、度量值等信息。路由器根据路由表中的信息决定如何转发数据包。
- 路由更新
- 定义 :动态路由协议通过定期或触发式的路由更新机制,使路由器了解网络拓扑的变化。
- 定期更新 :路由器按照一定的时间间隔(如 RIP 的默认更新周期为 30 秒)向相邻路由器发送自己的路由表,无论路由信息是否发生变化。
- 触发更新 :当网络拓扑发生变化(如链路故障、新的网络节点加入等),路由器立即向相邻路由器发送更新后的路由信息,加快路由收敛速度,减少网络延迟。
- 路由环路
- 定义 :数据包在网络中循环传输,无法到达目的网络的情况。
- 产生原因 :路由环路通常是由于路由信息不一致或错误的路由更新导致的。
- 解决方法 :采用水平分割(路由器不会将从某个接口接收到的路由信息再从该接口发送回去)、毒性逆转(当一条路由变得不可达时,路由器会向邻居路由器发送一条度量值为无穷大的路由信息)、最大跳数限制(如 RIP 中规定跳数超过 15 就认为网络不可达)等方法来防止路由环路。
- 水平分割 :路由器不会将从某个接口接收到的路由信息再从该接口发送回去,这样可以防止路由信息在同一链路上传播,避免路由环路。
- 最大跳数限制 :在RIP等距离向量协议中,规定了一个最大跳数(通常为15),当跳数超过这个限制时,网络被认为不可达。这可以防止数据包在网络中无限循环,但并不能完全防止路由环路的产生。
- 触发更新 :当网络拓扑发生变化时,路由器会立即向邻居路由器发送更新后的路由信息,而不会等到定期更新的时间间隔。这可以加快路由信息的传播速度,减少路由环路的可能性。
路由环路——毒性转换
毒性转换(Poison Reverse)是一种防止路由环路的机制,通常用于距离向量路由协议(如RIP)中。它通过向邻居路由器发送不可达的路由信息来消除路由环路。
原理
当路由器检测到与某个邻居路由器之间的链路失效时,它会向邻居路由器发送一条毒性转换路由更新。这条更新信息中包含了失效链路的目的网络,并将其度量值设置为无穷大(在RIP中,通常跳数超过15跳被认为是不可达),以此表明该网络不可达。邻居路由器接收到这条毒性转换信息后,会更新自己的路由表,将该目的网络标记为不可达,从而防止路由环路的形成。
举例
假设网络中有两个路由器A和B,它们通过一条链路相连。初始时,A的路由表中有一条到网络X的路由,跳数为1,下一跳是B。B的路由表中也有到网络X的路由,跳数为0,因为B直接连接到网络X。
当A和B之间的链路断开时,A会向B发送一条毒性转换路由更新,告知B网络X不可达(跳数设置为无穷大)。B接收到这条信息后,会更新自己的路由表,将网络X标记为不可达。这样,B就不会再向A发送网络X的路由信息,从而防止了路由环路的形成。
作用
毒性转换的主要作用是防止路由器重新学习已经失效的路由信息,从而避免路由环路的产生。它通过及时通知邻居路由器链路失效的情况,使得网络中的路由信息能够快速收敛,提高网络的稳定性和可靠性。
对网络性能的影响
毒性转换可以在一定程度上提高网络的稳定性,但也会增加少量的网络开销,因为路由器需要发送额外的路由更新消息。然而,这种开销相对较小,通常不会对网络性能产生显著影响。
RIP协议
使用跳数作为度量标准,最大跳数限制为15跳;跳数16表示网络不可达;当路由器收到跳数为16的信息时,认为该网络不可达,并且不会通过该路径尝试到达该网络。
网络划分
从网络覆盖范围来看:PAN < LAN < MAN < WAN;
PAN(个人区域网)
- 覆盖范围:一般在几米到几十米以内,通常覆盖个人工作区域,如一个房间或一个小型办公室。
- 应用场景:常用于连接个人的电子设备,如手机、笔记本电脑、智能手表、蓝牙耳机等。例如,通过蓝牙技术连接手机和蓝牙音箱,或者使用USB线连接电脑和打印机。
LAN(局域网)
- 覆盖范围:一般在几百米到几公里以内,通常覆盖一个建筑物或一个校园。
- 应用场景:常用于企业、学校、医院等机构内部的网络连接。例如,一个公司的办公大楼内,各个办公室的电脑通过局域网连接,可以共享文件、打印机等资源。
MAN(城域网)
- 覆盖范围:一般在几公里到几十公里以内,通常覆盖一个城市或一个地区的范围。
- 应用场景:常用于连接一个城市内的多个局域网,如城市的商业区、居民区、学校等。例如,城市的有线电视网络、城市宽带网络等都属于城域网的范畴。
WAN(广域网)
- 覆盖范围:一般在几十公里到几千公里甚至更远,通常覆盖一个国家、一个洲甚至全球范围。
- 应用场景:常用于连接不同城市、不同国家的网络,如互联网、跨国公司的企业网络等。例如,通过互联网,人们可以在全球范围内进行通信、数据传输等。
Telnet远程登录
Telnet是一种远程登录协议和工具,允许用户通过网络远程访问和控制其他计算机系统。它基于TCP/IP协议,提供了终端模拟功能,使用户能够像在本地终端一样操作远程主机。
Telnet的核心功能就是远程登录,它让用户能够通过网络连接到远程计算机并进行操作,是最早的远程登录工具之一。它在网络管理、远程系统维护等方面发挥着重要作用,尽管由于安全性问题,现在更多使用SSH协议来替代。
URL相关
URL(统一资源定位符)是万维网的核心标识机制,
URL能够唯一地标识和定位互联网上的各种资源。
具体来说:
1. URL提供了一种统一的格式来表示互联网上的资源,包括网页、图片、视频等各类文档
2. URL由多个部分组成,包括:
- 协议(如http、https、ftp等)
- 主机名(域名或IP地址)
- 端口号(可选)
- 路径
- 查询参数(可选)
- 片段标识符(可选)
3. URL的设计使得互联网上的每个资源都有一个唯一的标识符,便于:
- 资源的准确定位和访问
- 资源的共享和引用
- 网页之间的链接
4. URL是万维网(WWW)的重要基础设施之一,与HTTP协议、HTML等技术一起构成了万维网的基础架构。
DNS相关
DNS: 基于UDP协议
域名层次结构:从右到左依次为顶级域名、二级域名、子域名和主机名。
假设有一个域名mail.subdomain.example.com,其层次结构和含义如下:
- 顶级域名(TLD):com,表示这是一个商业组织。
- 二级域名(SLD):example,表示具体的组织或网站。
- 子域名:subdomain,表示example.com下的一个子域。
- 主机名:mail,表示subdomain.example.com下的一个具体主机,通常用于邮件服务器。
1. DNS域名的定义
DNS域名系统是一个分布式数据库系统,用于将易于记忆的域名(如www.example.com)映射为对应的IP地址(如93.184.216.34)。DNS的主要功能是提供域名解析服务,使得用户可以通过域名访问互联网上的资源,而不需要记住复杂的IP地址。
2. 域名的结构
域名由多个部分组成,通常从右到左分为不同的层级,每一层代表一个不同的命名空间。常见的层级包括:
- 顶级域名(TLD,Top-Level Domain):位于域名的最右侧,是域名的最高层级。顶级域名分为两大类:
- 通用顶级域名(gTLD):如.com、.org、.net等,适用于各种类型的组织和用途。
- 国家代码顶级域名(ccTLD):如.cn(中国)、.us(美国)、.uk(英国)等,通常用于特定国家或地区。
- 二级域名(SLD,Second-Level Domain):位于顶级域名的左侧,是用户注册的部分。例如,在www.example.com中,example就是二级域名。
- 子域名:位于二级域名的左侧,用于进一步细分域名空间。例如,在www.example.com中,www是一个子域名。
3. DNS的工作原理
DNS的工作过程可以分为以下几个步骤:
- 域名查询:当用户在浏览器中输入一个域名(如www.example.com)时,浏览器会向本地DNS服务器发起查询请求。
- 递归查询:本地DNS服务器会检查自己的缓存,看是否已经缓存了该域名对应的IP地址。如果缓存中有记录,直接返回结果;如果没有,本地DNS服务器会向其他DNS服务器(如根DNS服务器、顶级域名服务器等)递归查询。
- 根DNS服务器:根DNS服务器是DNS层次结构的最顶层,负责提供顶级域名服务器的地址信息。根DNS服务器的地址通常存储在本地DNS服务器的缓存中。
- 顶级域名服务器(TLD服务器):根据根DNS服务器提供的信息,本地DNS服务器会向相应的顶级域名服务器查询。顶级域名服务器负责管理特定顶级域名下的域名信息。
- 权威DNS服务器:顶级域名服务器会提供权威DNS服务器的地址信息,权威DNS服务器是存储特定域名详细信息的服务器。本地DNS服务器向权威DNS服务器查询,获取域名对应的IP地址。
- 返回结果:权威DNS服务器返回域名对应的IP地址,本地DNS服务器将结果缓存并返回给用户。
4. DNS记录类型
DNS服务器存储了多种类型的记录,用于提供不同的服务。常见的DNS记录类型包括:
- A记录(Address Record):将域名映射为IPv4地址。例如,www.example.com的A记录可能是93.184.216.34。
- AAAA记录(IPv6 Address Record):将域名映射为IPv6地址。
- CNAME记录(Canonical Name Record):将一个域名指向另一个域名。例如,blog.example.com可以是一个CNAME记录,指向www.example.com。
- MX记录(Mail Exchange Record):指定域名的邮件服务器地址。例如,mail.example.com可能是example.com的邮件服务器。
- NS记录(Name Server Record):指定域名的权威DNS服务器。例如,ns1.example.com可能是example.com的权威DNS服务器。
- TXT记录(Text Record):用于存储文本信息,常用于域名验证和反垃圾邮件服务。
5. DNS的安全性
DNS系统在互联网中扮演着重要角色,但也存在一些安全问题,如DNS劫持、DNS缓存污染等。为了提高DNS的安全性,可以采取以下措施:
- DNSSEC(DNS Security Extensions):通过数字签名验证DNS记录的真实性,防止DNS缓存污染和DNS劫持。
- TLS/SSL证书:在域名解析过程中使用加密协议,保护用户数据的安全。
- 定期更新DNS服务器:确保DNS服务器的软件和配置是最新的,修复已知的安全漏洞。
6. 示例
假设用户想要访问www.example.com,以下是DNS解析的过程:
- 用户在浏览器中输入www.example.com。
- 浏览器向本地DNS服务器(如ISP提供的DNS服务器)发起查询请求。
- 本地DNS服务器检查缓存,如果没有找到记录,向根DNS服务器查询。
- 根DNS服务器返回.com顶级域名服务器的地址。
- 本地DNS服务器向.com顶级域名服务器查询,获取example.com的权威DNS服务器地址。
- 本地DNS服务器向example.com的权威DNS服务器查询,获取www.example.com的A记录(IP地址)。
- 权威DNS服务器返回93.184.216.34。
- 本地DNS服务器将结果缓存并返回给用户。
- 用户的浏览器使用IP地址93.184.216.34访问www.example.com。
7. 总结
- DNS域名系统:用于将域名映射为IP地址,方便用户访问互联网资源。
- 域名结构:由顶级域名、二级域名和子域名组成。
- 工作原理:通过递归查询,从根DNS服务器到权威DNS服务器获取IP地址。
- 记录类型:包括A记录、AAAA记录、CNAME记录、MX记录、NS记录和TXT记录等。
- 安全性:通过DNSSEC等技术提高DNS的安全性。
IEEE802相关
概览
IEEE 802标准系列是由电气和电子工程师协会(IEEE)制定的一组局域网(LAN)和城域网(MAN)通信协议标准。这些标准涵盖了从物理层到链路层的多种技术,确保了不同网络设备之间的兼容性和互操作性。
1. IEEE 802.3(以太网)
- 标准名称:IEEE 802.3
- 功能描述:定义了以太网的物理层和链路层协议,包括电缆类型、信号电平、帧格式等。
- 应用场景:广泛应用于局域网(LAN),是最常用的有线网络技术。
- 主要特点:
- 支持多种速率,如10Mbps、100Mbps、1Gbps、10Gbps等。
- 使用CSMA/CD(载波监听多路访问/冲突检测)机制来管理共享介质。
- 1000BASE-CX是IEEE 802.3标准中的一个规范,专门用于短距离高速铜缆传输,其中CX特指使用屏蔽双绞线(STP)作为传输介质。屏蔽双绞线能够有效抑制电磁干扰,保证1000Mbps的传输速率和信号质量,传输距离可达25米。
- 1000BASE-CX采用屏蔽双绞线的主要原因是:
在高速传输时能够有效屏蔽外部电磁干扰
减少信号衰减和串扰
保证数据传输的可靠性和稳定性
适合短距离高速连接的应用场景,如数据中心内部布线
2. IEEE 802.11(无线局域网)
- 标准名称:IEEE 802.11
- 功能描述:定义了无线局域网(WLAN)的物理层和链路层协议,包括无线信号的调制方式、频段、帧格式等。
- 应用场景:广泛应用于无线局域网,如家庭、办公室、公共场所等。
- 主要特点:
- 支持多种速率,如802.11b(11Mbps)、802.11g(54Mbps)、802.11n(300Mbps以上)、802.11ac(1Gbps以上)等。
- 使用CSMA/CA(载波监听多路访问/冲突避免)机制来管理无线介质。
3. IEEE 802.15(无线个人区域网)
- 标准名称:IEEE 802.15
- 功能描述:定义了无线个人区域网(WPAN)的物理层和链路层协议,如蓝牙(802.15.1)、ZigBee(802.15.4)等。
- 应用场景:用于个人设备之间的短距离无线通信,如手机、耳机、智能家居设备等。
- 主要特点:
- 蓝牙:支持短距离(10米以内)的低功耗通信。
- ZigBee:支持低功耗、低速率的物联网设备通信。
4. IEEE 802.16(无线城域网)
- 标准名称:IEEE 802.16
- 功能描述:定义了无线城域网(WMAN)的物理层和链路层协议,如WiMAX(802.16e)。
- 应用场景:用于城市范围内的无线宽带接入,如固定无线接入、移动无线接入等。
- 主要特点:
- 支持较远距离(几公里到几十公里)的高速无线通信。
- 使用OFDM(正交频分复用)技术提高频谱效率。
5. IEEE 802.1(网络管理)
- 标准名称:IEEE 802.1
- 功能描述:定义了局域网和城域网的网络管理协议,如VLAN(802.1Q)、生成树协议(802.1D)等。
- 应用场景:用于网络设备的管理和配置,提高网络的可管理性和可靠性。
- 主要特点:
- VLAN:通过划分虚拟局域网,隔离不同用户的流量,提高安全性。
- 生成树协议:防止网络环路,确保网络的稳定运行。
6. IEEE 802.2(逻辑链路控制)
- 标准名称:IEEE 802.2
- 功能描述:定义了逻辑链路控制(LLC)子层的协议,提供链路层的错误检测和纠正功能。
- 应用场景:用于局域网和城域网的链路层控制。
- 主要特点:
- 提供可靠的链路层服务,确保数据传输的可靠性。
- 支持多种链路层协议,如以太网、令牌环等。
7. IEEE 802.5(令牌环网)
- 标准名称:IEEE 802.5
- 功能描述:定义了令牌环网的物理层和链路层协议,通过令牌机制管理网络访问。
- 应用场景:曾广泛应用于企业局域网,但逐渐被以太网取代。
- 主要特点:
- 使用令牌机制,确保网络的公平性和可靠性。
- 支持多种速率,如4Mbps、16Mbps等。
8. IEEE 802.12(需求优先级网)
- 标准名称:IEEE 802.12
- 功能描述:定义了需求优先级网的物理层和链路层协议,通过需求优先级机制管理网络访问。
- 应用场景:曾用于一些特定的局域网环境,但逐渐被以太网取代。
- 主要特点:
- 使用需求优先级机制,确保高优先级数据的优先传输。
- 支持多种速率,如100Mbps等。
总结
IEEE 802又称为LMSC(LAN /MAN Standards Committee, 局域网/城域网标准***会),致力于研究局域网和城域网的物理层和MAC层中定义的服务和协议,对应OSI网络参考模型的最低两层(即物理层和数据链路层)。
IEEE 802.1A:概述和系统结构。
IEEE 802.1B:网络管理和网络互连。
IEEE 802.2 :逻辑链路控制子层(LLC)的定; 提供链路层的错误检测和纠正功能
- IEEE 802.3 :以太网介质访问控制协议 (CSMA/CD)及物理层技术规范。
- IEEE 802.4 :令牌总线网(Token-Bus)的介质访问控制协议及物理层技术规范。
- IEEE 802.5 :令牌环网(Token-Ring)的介质访问控制协议及物理层技术规范。曾广泛应用于企业局域网
IEEE 802.6 :城域网介质访问控制协议DQDB (Distributed Queue Dual Bus 分布式队列双总线)及物理层技术规范。
IEEE 802.7 :宽带技术咨询组,提供有关宽带联网的技术咨询。
IEEE 802.8 :光纤技术咨询组,提供有关光纤联网的技术咨询。
IEEE 802.9 :综合声音数据的局域网(IVD LAN)介质访问控制协议及物理层技术规范。
IEEE 802.10:网络安全技术咨询组,定义了网络互操作的认证和加密方法。
IEEE802.12:需求优先级网,曾用于特定的局域网环境
- IEEE802.15:无线个人区域网,如蓝牙和ZigBee。
- IEEE802.16:无线城域网,如WiMAX。
特性 |
令牌总线(Token Bus)——802.4 |
令牌环(Token Ring)——802.5 |
拓扑结构 |
总线拓扑,所有节点通过一条共享的总线连接 |
环形拓扑,节点通过点对点链路连接成一个闭合的环 |
令牌传递 |
令牌在总线上的各个节点之间传递 |
令牌在环上的各个节点之间按固定方向传递 |
冲突避免 |
通过时间槽分配,避免冲突 |
由于数据在环上按固定方向传输,不会发生冲突 |
优先级支持 |
不支持优先级机制 |
支持优先级机制,高优先级的节点可以优先发送数据 |
优点 |
公平性、可靠性、扩展性 |
公平性、可靠性、优先级支持、环形拓扑结构简单 |
缺点 |
实现复杂、性能受限、故障诊断困难 |
管理复杂、性能受限、成本高 |
应用场景 |
工业控制、企业局域网 |
企业局域网、教育机构 |
现状 |
使用逐渐减少,被以太网取代 |
使用逐渐减少,但在特定领域仍有应用 |
802.11
一、802.11 协议概述
- 定义和目的 :802.11 是 IEEE 制定的一系列无线局域网通信标准,旨在规范无线网络设备之间的数据传输和通信方式,确保不同厂商的设备能够相互兼容和通信。
- 应用场景 :广泛应用于家庭、办公室、公共场所等各类无线网络环境,为用户提供更灵活的网络接入方式。
二、802.11 协议中的 RTS/CTS 机制
- 作用 :主要解决 “隐藏节点” 问题。“隐藏节点” 指的是在无线网络中,某些节点由于位置或其他因素,无法被其他节点直接检测到,这可能导致数据传输冲突和干扰。
- 工作原理 :
- RTS(Request to Send)帧 :当一个节点(如无线站点)要发送数据时,会先发送一个 RTS 帧,告知其他节点它即将发送数据。
- CTS(Clear to Send)帧 :接收节点收到 RTS 帧后,会回应一个 CTS 帧,表示同意接收数据。其他节点收到 RTS 或 CTS 帧后,会推迟自己的发送操作,以避免冲突。
- 可选性 :RTS/CTS 机制并不是在每次传输数据帧时都必须使用的,而是一种可选机制。是否使用取决于数据帧的大小和网络环境等因素。
- 数据帧大小与阈值 :一般只有当数据帧大小超过 RTS 阈值时才会启用 RTS/CTS 机制。对于较小的数据帧,使用 RTS/CTS 反而会增加额外开销,降低网络效率。
- 配置灵活性 :在实际应用中,RTS 阈值可以根据网络环境进行配置,甚至可以完全禁用 RTS/CTS 机制。这使得网络管理员能够根据具体需求优化无线网络性能。
三、802.11 协议中的其他机制和概念
- CSMA/CA(载波监听多路访问 / 冲突避免)
- 原理 :无线网络中的设备在发送数据前会监听信道是否空闲,如果信道忙则推迟发送,以避免数据冲突。
- 与 RTS/CTS 的关系 :RTS/CTS 是 CSMA/CA 的一种补充机制,用于进一步减少冲突的可能性。
- 帧间间隔(Inter - Frame Space,IFS)
- 定义 :是指不同类型的无线帧之间必须保持的时间间隔,用于区分和优先级排序不同的帧。
- 作用 :帮助设备确定何时可以发送帧,以及不同帧的传输优先级。
- 基本服务集(BSS,Basic Service Set)和扩展服务集(ESS,Extended Service Set)
- BSS :由一组无线站点(STA)和一个接入点(AP)组成,形成一个基本的无线网络单元。
- ESS :由多个 BSS 组成,通过分布系统(如以太网)连接,形成一个更大的无线网络,允许用户在不同 BSS 之间漫游和切换。
四、802.11 协议的物理层和介质访问控制层
- 物理层(PHY)
- 功能 :负责无线信号的传输和接收,包括调制解调、编码解码、信号功率控制等。
- 技术 :常见的 802.11 物理层技术包括 802.11a、802.11b、802.11g、802.11n、802.11ac 和 802.11ax 等。每种技术在频段、带宽、传输速率等方面有不同的特点和性能。
- 介质访问控制层(MAC)
- 功能 :负责控制对无线介质的访问,确保数据帧的有序传输和接收。MAC 层实现了 CSMA/CA、RTS/CTS 等机制。
- 帧格式 :定义了无线帧的格式,包括帧头、帧体和帧尾等部分,用于携带各种控制信息和数据。
五、802.11 协议的安全和认证机制
- WEP(有线等效隐私)
- 原理 :通过加密算法对无线数据进行加密,以防止数据被窃取和篡改。
- 局限性 :WEP 加密算法相对简单,容易被破解,安全性较低。
- WPA 和 WPA2(Wi - Fi 保护访问)
- 原理 :采用了更先进的加密算法(如 TKIP、AES - CCMP)和身份验证机制,提供了更高的安全性。
- 特点 :支持多种身份验证方式,如预共享密钥(PSK)、802.1X 等,适用于不同的网络环境。
- WPA3
- 最新进展 :WPA3 是 Wi - Fi 联盟推出的新一代安全协议,提供了更强的加密和身份验证功能,进一步增强了无线网络安全。
六、802.11 协议的性能和优化
- 影响性能的因素 :包括无线信号干扰、信道重叠、设备密度、障碍物等。无线信号干扰来自其他无线设备(如微波炉、蓝牙设备等)或相邻的无线网络。
- 优化方法 :通过合理选择信道(如避免使用拥挤的信道)、调整发射功率、优化网络布局(如增加接入点或调整接入点的位置)、使用高增益天线等方法,可以提高 802.11 网络的性能和覆盖范围。
七、其他相关知识点
- 信道分配和管理 :在 802.11 协议中,信道的合理分配和管理对于网络性能至关重要。不同的频段(如 2.4GHz 和 5GHz)有不同的信道,信道之间可能会相互干扰。
- 漫游和切换 :当无线设备在不同的接入点之间移动时,需要进行漫游和切换。802.11 协议支持快速漫游和切换机制,以减少连接中断时间,提供更好的用户体验。
- 服务质量(QoS) :为了满足不同类型应用(如视频流、语音通话等)对网络性能的要求,802.11 协议提供了 QoS 机制,优先处理高优先级的数据流。
路由器、交换机、网桥
特性 |
路由器 |
交换机 |
网桥 |
工作层次 |
网络层(第三层) |
链路层(第二层) |
链路层 |
主要功能 |
路由选择、子网划分、VLAN间通信等 |
MAC地址学习、数据帧转发、VLAN支持等 |
MAC地址学习、数据帧转发 |
使用场景 |
不同网络间通信,如连接局域网与广域网 |
局域网内设备互联,提高通信效率 |
连接并扩展局域网段 |
设备复杂度 |
高 |
低 |
低 |
延迟 |
较高 |
较低 |
较低 |
带宽 |
通常用于广域网,带宽相对有限 |
通常用于局域网,提供高带宽 |
通常用于局域网,带宽适中 |
VLAN支持 |
支持不同VLAN间通信 |
支持VLAN划分,但不支持VLAN间通信 |
不支持VLAN |
广播域处理 |
可隔离广播域 |
可隔离广播域 |
可隔离广播域 |
典型应用场景 |
连接不同子网、实现NAT、防火墙功能等 |
局域网内部设备互联、VLAN划分等 |
小规模局域网扩展 |
VLAN
VLAN(虚拟局域网)是什么?
VLAN(Virtual Local Area Network,虚拟局域网) 是一种将局域网(LAN)在逻辑上划分成多个独立的广播域的技术。这些广播域在物理上共享相同的网络设备(如交换机),但在逻辑上彼此独立,就像它们是完全独立的物理网络一样。
VLAN 的工作原理
VLAN 的工作原理基于交换机的端口划分和帧标记技术。以下是 VLAN 的基本工作原理:
- 端口划分:
- 基于端口的 VLAN:最常见的一种划分方式,将交换机的端口分配到不同的 VLAN 中。每个端口可以属于一个或多个 VLAN。
- 基于 MAC 地址的 VLAN:根据设备的 MAC 地址将设备分配到不同的 VLAN 中。
- 基于子网的 VLAN:根据设备的 IP 子网地址将设备分配到不同的 VLAN 中。
- 基于策略的 VLAN:根据用户定义的策略(如用户身份、时间等)将设备分配到不同的 VLAN 中。
- 帧标记:
- 802.1Q 标记:在以太网帧中插入一个 4 字节的 VLAN 标记(Tag),用于标识该帧所属的 VLAN。标记中包含 VLAN ID(12 位),可以标识 4096 个不同的 VLAN(实际可用 4094 个,VLAN ID 0 和 4095 保留)。
- 标记交换:交换机根据帧中的 VLAN 标记决定是否转发该帧到其他端口,以及转发到哪些端口。
- 广播域隔离:
- VLAN 的主要功能之一是隔离广播域。每个 VLAN 形成一个独立的广播域,广播帧只在所属的 VLAN 内传播,不会扩散到其他 VLAN,从而减少广播风暴对网络的影响。
VLAN 的优点
- 广播域隔离:
- 减少广播风暴,提高网络性能和稳定性。
- 限制广播帧的传播范围,减少网络拥塞。
- 安全性提升:
- 不同 VLAN 之间的设备不能直接通信,需要通过路由器或三层交换机进行路由转发,增加了网络的安全性。
- 可以根据部门、用户组等进行划分,实现网络访问的隔离和控制。
- 网络管理优化:
- 便于网络的管理和维护,可以灵活调整网络结构,而不需要重新布线。
- 提高网络的可扩展性,便于扩展和升级。
- 灵活性和可扩展性:
- 支持多种划分方式,可以根据实际需求灵活配置。
- 可以轻松扩展网络规模,适应企业的发展需求。
VLAN 间的通信
VLAN 之间是逻辑隔离的,因此不能直接通信。要实现 VLAN 之间的通信,需要以下设备之一:
- 路由器:
- 路由器工作在网络层,可以根据IP地址进行路由转发,实现不同 VLAN 之间的通信。
- 需要为每个 VLAN 配置一个子接口(Sub-interface)或一个物理接口连接到每个 VLAN。
- 三层交换机:
- 三层交换机结合了二层交换机和路由器的功能,既可以进行链路层的快速转发,也可以进行网络层的路由转发。
- 三层交换机通过配置VLAN接口(VLAN Interface)和路由协议,实现不同 VLAN 之间的通信。
VLAN 的实际应用场景
- 企业网络:
- 在企业网络中,可以将不同部门(如销售部、研发部、财务部等)划分到不同的 VLAN 中,实现部门之间的隔离和安全控制。
- 可以根据用户角色(如管理员、员工、访客)划分 VLAN,实现不同的网络访问权限。
- 数据中心:
- 在数据中心中,可以将服务器划分为不同的 VLAN,根据服务类型(如Web服务器、数据库服务器、应用服务器)进行隔离和管理。
- 便于实现负载均衡和高可用性(HA)配置。
- 校园网络:
- 在校园网络中,可以将不同建筑物或不同功能区域划分为不同的 VLAN,实现网络的层次化管理和安全控制。
- 便于为学生、教师和行政人员提供不同的网络访问权限。
VLAN 的配置示例
以下是一个简单的 VLAN 配置示例,使用基于端口的 VLAN 划分:
- 划分 VLAN:
- 将交换机的端口1-10分配到 VLAN 10(销售部)。
- 将交换机的端口11-20分配到 VLAN 20(研发部)。
- 将交换机的端口21-30分配到 VLAN 30(财务部)。
- 配置 VLAN 接口:
- 配置 VLAN 10 的接口IP地址为192.168.10.1/24。
- 配置 VLAN 20 的接口IP地址为192.168.20.1/24。
- 配置 VLAN 30 的接口IP地址为192.168.30.1/24。
- 配置路由:
- 在三层交换机或路由器上配置VLAN接口之间的路由,实现不同 VLAN 之间的通信。
网络故障相关
一、物理层相关知识点
- 网线
- 网线是网络通信的物理连接基础。常见的网线有双绞线、光纤等。双绞线容易受到外界电磁干扰,如果网线靠近电机等强电磁设备,可能会导致信号传输不稳定。而且网线有一定的长度限制,超过其有效传输距离(如标准五类双绞线在 100Mbps 以太网中有效传输距离一般为 100 米左右),信号会严重衰减,影响网络通信。
- 网线的制作工艺也很重要。如果网线的水晶头制作不良,如线序错误(常见的正确线序有 T568A 和 T568B 标准),会导致网络无法正常连通或者时常断开。
- 网络接口
- 包括计算机网卡接口、路由器 / 交换机的接口等。如果接口损坏,可能无法正常建立物理连接。例如,网卡接口的PHY(物理层)芯片故障,就无法进行电信号的发送和接收。另外,接口的兼容性也可能出现问题,如将千兆网卡接入百兆交换机端口,虽然可以工作,但无法发挥千兆网卡的高速传输优势。
二、数据链路层相关知识点
- MAC 地址
- 每个网络设备的网卡都有一个唯一的 MAC 地址,用于在局域网内标识设备。在交换机等设备中,会通过 MAC 地址表来决定数据帧的转发。如果 MAC 地址表出现错误,比如 MAC 地址漂移(设备的 MAC 地址被错误地关联到其他端口),就会导致数据帧无法正确到达目标设备。
- 当存在网络攻击,如 MAC 欺骗时,攻击者伪造 MAC 地址,可能会截获本不属于它的数据帧,影响网络的正常通信和安全性。
- 链路层协议
- 以太网是最常见的数据链路层协议。它规定了帧的格式、帧的同步等内容。例如,以太网帧有一个最小帧长(64 字节)和最大帧长(1518 字节,不含校验序列等情况)。如果发送的帧长度不符合规定,接收方会认为这是一个错误的帧而丢弃它。而且,以太网采用了 CSMA/CD(载波监听多路访问 / 冲突检测)机制,在共享式以太网中,多个设备同时发送数据会产生冲突,设备需要通过退避算法来重新发送数据。
三、网络层相关知识点
- IP 地址
- IP 地址用于在网络中唯一标识设备。IP 地址分为 IPv4 和 IPv6。IPv4 地址是 32 位的二进制数,通常用点分十进制表示。每个网络中的设备必须有正确的 IP 地址配置,包括 IP 地址、子网掩码、默认网关等。如果 IP 地址配置错误,如 IP 地址冲突(两个设备配置了相同的 IP 地址),会导致网络通信混乱,数据包无法正确地被发送和接收。
- 子网掩码用于划分网络部分和主机部分。正确设置子网掩码很重要,例如在一个企业网络中,根据部门等因素划分不同的子网,通过子网掩码可以确定一个 IP 地址所在的子网,从而实现不同子网之间的隔离和通信控制。
- 路由
- 路由是网络层的关键功能。路由器根据路由表来转发数据包。路由表包含目的网络地址、下一跳地址等信息。动态路由协议(如 RIP、OSPF 等)可以自动更新路由表,以适应网络拓扑的变化。如果路由出现错误,如路由环路(数据包在几个路由器之间不断循环转发),会导致数据包无法到达目的网络,增加网络延迟,甚至使网络瘫痪。
四、传输层相关知识点
- TCP 协议
- TCP 是面向连接的协议,它通过三次握手建立连接,确保数据传输的可靠性。在数据传输过程中,TCP 采用序列号、确认应答、重传机制等来保证数据的正确性和完整性。例如,当发送方发送数据后,会启动重传计时器,如果在规定时间内没有收到接收方的确认应答,就会重新发送数据。
- TCP 还有拥塞控制机制,如慢启动、拥塞避免等。当网络出现拥塞(如带宽不足、路由器缓存溢出等情况)时,TCP 会调整发送窗口的大小,降低数据发送速率,以缓解网络拥塞。
- UDP 协议
- UDP 是无连接的协议,它的传输速度相对较快,但不保证数据的可靠传输。UDP 主要用于对实时性要求较高但对数据丢失不太敏感的应用,如视频直播、语音通话等。它只有简单的端口号等信息用于标识应用进程,没有复杂的确认和重传机制。
五、应用层相关知识点
- DNS 服务
- DNS 是将域名和 IP 地址相互映射的系统。它使得用户可以通过易于记忆的域名来访问网站,而不是直接输入 IP 地址。DNS 服务器有多种类型,如根 DNS 服务器、顶级域名 DNS 服务器和权威 DNS 服务器等。当用户在浏览器中输入一个域名时,会首先向本地 DNS 服务器查询,如果本地 DNS 服务器没有记录,会逐级向上查询,直到找到对应的 IP 地址。
- DNS 缓存可以提高域名解析的效率。在计算机本地、路由器和 DNS 服务器上都可能有 DNS 缓存。但如果 DNS 缓存中的记录过期或者错误,会导致域名解析错误,无法正确访问网站。
- Web 服务相关
- Web 服务通常基于 HTTP/HTTPS 协议。Web 服务器(如 Apache、Nginx 等)用于存储和提供网页内容。当用户访问网站时,浏览器会向 Web 服务器发送请求,服务器根据请求返回相应的网页内容。Web 服务器的配置也很重要,如虚拟主机配置可以实现在一台服务器上托管多个网站,服务器的性能参数(如最大连接数、带宽限制等)会影响网站的访问速度和稳定性。
网络地址与广播地址
网络地址
- 定义:一个IP地址段中用于标识这个网络本身的地址,不能分配给主机使用。
- 作用:用于区分不同的网络,是网络的标识。在网络通信中,路由设备会根据网络地址来判断数据包应该转发到哪个网络。
- 确定方法:将IP地址与子网掩码进行“与”运算,得到的就是网络地址。例如,IP地址为192.168.1.100,子网掩码为255.255.255.0,进行“与”运算后,网络地址为192.168.1.0。
广播地址
- 定义:一个IP地址段中用于标识这个网络中所有主机的地址,也不能分配给主机使用。
- 作用:用于向网络中的所有主机发送广播消息。当一个数据包发送到广播地址时,网络中的每个主机都会收到这个数据包。
- 确定方法:将IP地址与子网掩码进行“与”运算后,把结果的主机位全部置为1。例如,IP地址为192.168.1.100,子网掩码为255.255.255.0,网络地址为192.168.1.0,广播地址为192.168.1.255。
WebSocket协议
- 与 HTTP 协议的关系 :WebSocket 与 HTTP 是不同的协议。虽然 WebSocket 的握手阶段会使用 HTTP 协议来完成初始连接的建立,但它一旦建立连接后,就与 HTTP 无关了,它是在 HTTP 之上建立的一种持久化、双向通信的协议。HTTP 是请求 - 响应模式的协议,而 WebSocket 是全双工通信,允许客户端和服务端任何一方主动向对方发送数据。
- 通信方式 :不同于客户端采用长轮询的方式。长轮询是客户端不断地向服务器发送请求,等待服务器有数据返回后再发送下一个请求,是一种基于 HTTP 的 “伪实时” 通信方式,而 WebSocket 是一种真正的实时通信方式,建立连接后,连接一直保持打开状态,双方可以随时发送数据,大大减少了不必要的网络请求和数据传输的开销。
- 连接建立过程 :WebSocket 仍然需要至少一次客户端与服务端的握手。客户端发送一个包含 Upgrade 头的 HTTP 请求到服务器,请求将连接升级为 WebSocket 协议,服务器如果同意,会返回一个 101 Switching Protocols 的响应,之后 WebSocket 连接就建立成功,双方可以开始双向通信。
- 编程模型 :WebSocket 客户端基于事件的编程模型与 Node.js 类似。在客户端(如浏览器中的 JavaScript 代码)和服务器端(使用 Node.js 构建的 WebSocket 服务端),都可以通过监听事件(如连接打开、消息接收、连接关闭等事件)来处理 WebSocket 的通信过程,这种基于事件驱动的编程模型使得处理异步通信更加方便和高效。
其他相关知识点
- 应用场景
- 实时聊天应用 :WebSocket 可以让服务器及时地将用户发送的消息推送给其他用户,实现多人实时聊天的功能,如在线聊天室、即时通讯软件的实时消息推送。
- 在线游戏 :在游戏过程中,服务器可以实时地将游戏状态、其他玩家的操作等信息推送给客户端,保证游戏的流畅性和实时性,例如多人在线竞技游戏中的画面同步和操作反馈。
- 实时数据更新 :对于金融数据、体育赛事比分等需要实时更新的数据,WebSocket 可以使服务器在数据发生变化时立即推送给客户端,客户端及时更新显示,而不需要客户端频繁地发送请求去查询数据是否更新。
- 优势
- 低延迟 :由于 WebSocket 连接建立后,数据可以在客户端和服务端之间直接传输,减少了像 HTTP 那样每次通信都需要建立连接、发送请求头等步骤,从而大大降低了通信延迟。
- 高效的数据传输 :WebSocket 协议的头部信息相对简单,相较于 HTTP 协议,减少了数据传输的额外开销,提高了数据传输的效率,特别是在传输频繁的小数据包时,优势更加明显。
- 安全性
- 加密机制 :WebSocket 支持使用 wss://(类似 HTTPS)进行加密通信,在建立连接时可以通过 TLS/SSL 协议对数据进行加密,防止数据在传输过程中被窃取和篡改。
- 同源策略限制 :虽然 WebSocket 允许跨域通信,但在实际应用中,浏览器等客户端会对 WebSocket 连接进行一定的同源策略限制,以防止恶意网站通过 WebSocket 对其他网站进行攻击。不过,服务器端需要正确配置来处理跨域请求,如设置合适的 Origin 头信息等。
双绞线
双绞线基本结构和原理
- 结构 :双绞线由两条相互绝缘的铜导线绞合在一起组成。常见的双绞线有屏蔽双绞线(STP)和非屏蔽双绞线(UTP)之分。屏蔽双绞线在每对双绞线或缆芯外都包裹一层铝箔作为屏蔽层,可以减少电磁干扰;非屏蔽双绞线没有屏蔽层,成本相对较低,安装也较为方便。
- 工作原理 :双绞线通过将两根导线绞合在一起,利用电磁感应原理来传输信号。当电流通过导线时,会在导线周围产生磁场,绞合的方式可以使得两根导线产生的磁场相互抵消一部分,从而减少外部电磁干扰对信号传输的影响。
双绞线的信号传输能力
- 模拟和数字信号传输 :双绞线既可以传输模拟信号,也可以传输数字信号。在模拟通信中,如传统的电话线路就是利用双绞线传输语音信号;在数字通信中,如以太网中的双绞线可以传输计算机之间的数字数据。
双绞线的性能特点
- 安装和成本 :双绞线安装相对方便,其体积小、重量轻,便于在建筑物内布线。而且价格较低,特别是在短距离通信中,经济性优势明显,因此得到了广泛应用。
- 抗干扰能力 :非屏蔽双绞线虽然有一定的抗干扰能力,但由于没有屏蔽层,仍然会受到一定程度的外部电磁干扰,尤其是在强电磁场环境下,误码率可能会升高。而屏蔽双绞线的抗干扰能力更强,可以有效降低误码率,但价格相对较高,安装也相对复杂一些。
- 传输距离 :双绞线的传输距离有一定限制,一般在 100 米左右(对于标准的以太网双绞线)。如果需要更长距离的传输,通常需要使用中继器等设备来延长传输距离。
双绞线的应用场景
- 局域网 :双绞线是目前局域网中最常用的传输介质之一。在办公室、家庭等建筑物内的计算机网络布线中,通常会使用双绞线来连接计算机、交换机、路由器等网络设备。
- 电话网络 :传统的电话线路也大量使用双绞线,用于传输语音信号。不过,随着通信技术的发展,一些地区也在逐渐采用光纤等其他传输介质来替代部分电话双绞线。
网关
网关,在网络层以上的设备, 连接两个不兼容的系统需要在高层进行协议的转换
在网络层以上实现网络互连,是最复杂的网络互连设备,仅用于两个高层协议不同的网络互连。
OSI将计算机网络体系结构划分为以下七层:
物理层: 将数据转换为可通过物理介质传送的电子信号,网卡、集线器、中继器在本层。
数据链路层: 决定访问网络介质的方式。在此层将数据分帧,并处理流控制。本层指定拓扑结构并提供硬件寻址。
网桥或桥接器在本层。
网络层: 使用权数据路由经过大型网络。路由器在本层。
传输层: 提供终端到终端的可靠连接。
会话层: 允许用户使用简单易记的名称建立连接。
表示层: 协商数据交换格式。
应用层: 用户的应用程序和网络之间的接口。
信噪比
移动通信中的信噪比
- 定义:信噪比(Signal-to-Noise Ratio,SNR)是信号功率与噪声功率之比,用于衡量信号的清晰度和质量。在移动通信中,信噪比的计量单位是分贝(dB),计算公式为:
SNR=10lg(Pnoise/Psignal)
其中,Psignal 为信号功率,Pnoise 为噪声功率。
- 作用:信噪比是衡量通信系统性能的重要指标之一。较高的信噪比意味着信号质量较好,通话更清晰,数据传输更稳定可靠。较低的信噪比可能导致通话质量下降,出现杂音、断续等问题,甚至影响通信的正常进行。
移动通信网中的信噪比规定
- 与市话、长话用户通话:根据我国移动通信的体制规定,公众移动电话网的移动用户与市话、长话用户通话时,移动通信网内音频带内的信噪比应大于或等于 29dB。
- 不同场景要求:在不同的移动通信场景和标准中,对信噪比的要求可能有所不同。例如,在一些特定的集群调度系统中,移动用户与有线调度台通话时,音频带内信噪比大于或等于 20dB。
影响信噪比的因素及提高方法
- 影响因素
- 环境干扰 :移动通信环境中的电磁干扰、无线电噪声等会影响信噪比。例如,在靠近强电磁辐射源的地方,可能会增加噪声功率,降低信噪比。
- 传输损耗 :信号在传输过程中会因距离、障碍物等因素而产生损耗,导致信号功率降低,从而影响信噪比。
- 设备性能 :基站和移动台的发射功率、天线增益、接收机灵敏度等设备性能参数也会对信噪比产生影响。例如,接收机灵敏度低可能导致接收到的信号功率小,信噪比降低。
- 提高方法
- 增加发射功率 :提高基站或移动台的发射功率可以增加信号强度,从而提高信噪比,但需考虑电磁辐射和能耗等问题。
- 优化天线系统 :使用高增益天线、合理规划天线位置和方向等,可以增强信号的发射和接收能力,改善信噪比。
- 采用信号处理技术 :如信道编码、解码、均衡等技术,可以有效地降低噪声对接收信号的影响,提高信号的质量和可靠性。
计算机接入internet的方式
- 拨号连接仿真终端方式
- 原理:这种方式是早期的一种 Internet 接入方式,通过调制解调器将计算机连接到公共电话网,然后拨号连接到 Internet 服务提供商(ISP)的服务器。在连接过程中,计算机就像一个终端设备,通过终端仿真软件与 ISP 服务器进行通信。
- 特点:这种方式的连接速度较慢,一般只有几 kbps 到几十 kbps,因为受到电话线路带宽的限制。而且在连接过程中,用户需要一直占用一条电话线路,无法同时进行语音通话。
- 应用:现在这种方式已经很少使用,主要用于一些对网络速度要求不高的特定场景,如在一些偏远地区或在某些特殊情况下,电话线路是唯一的可用通信线路。
- 经过局域网连接的方式
- 原理:对于企业和学校等机构内的计算机,通常通过局域网连接到 Internet。局域网内部的计算机通过交换机或路由器等网络设备组成一个内部网络,然后通过路由器或防火墙等设备连接到 Internet。
- 特点:这种方式可以共享网络资源,如打印机、文件服务器等。而且通常可以提供较快的网络接入速度,因为局域网内部的通信速度较快(如常见的 100Mbps 或 1000Mbps 以太网),并且可以实现内部网络的安全管理和统一的网络配置。
- 应用:适用于办公和教育环境,以及一些公共机构,如图书馆、培训机构等。通过局域网接入 Internet 可以方便地实现内部网络的扩展和管理,同时提供安全的网络访问。
- SLIP/PPP 协议连接方式
- SLIP(Serial Line Internet Protocol)
- 原理:SLIP 是一种简单的串行线路 Internet 协议,用于在拨号连接的电话线路上实现 IP 数据包的传输。它定义了如何将 IP 数据包封装在电话线路上传输。
- 特点:SLIP 的协议比较简单,功能有限。它不能处理错误校验和流量控制等问题,因此在现代网络中逐渐被更先进的协议所取代。
- 应用:在早期的 Internet 接入中比较常见,现在由于其功能的局限性,已经很少单独使用。
- PPP(Point - to - Point Protocol)
- 原理:PPP 是一种更通用和功能更强大的点对点协议,它不仅可以传输 IP 数据包,还可以支持多种网络协议。PPP 在拨号连接时,会先建立一个数据链路层的连接,然后进行网络层的配置和认证,最后建立网络连接。
- 特点:PPP 具有多种优势,如支持多种认证方式(PAP 和 CHAP),可以动态分配 IP 地址,能够进行错误检测和纠正等。它可以有效地利用电话线路的带宽,并且在连接过程中可以实现数据压缩,提高传输效率。
- 应用:目前是拨号接入 Internet 的主要协议。当用户通过电话线路拨号连接到 ISP 时,通常会使用 PPP 协议来建立连接,并且由 ISP 为用户分配一个临时的 IP 地址。
- SLIP(Serial Line Internet Protocol)
- 经分组网连接的方式
- 原理:分组网是一种基于分组交换技术的网络,数据被分割成一个个小的分组进行传输。计算机通过分组交换网络连接到 Internet,分组网中的交换节点负责将分组转发到目的网络。
- 特点:分组网可以实现资源共享和高效的网络通信,具有较好的灵活性和可靠性。但是,这种方式的接入成本相对较高,通常需要特定的网络设备和配置。
- 应用:主要用于一些大型企业和机构之间的网络互连,以及在一些特殊场景下,如军事通信和科研网络等。
电话通信相关
传统电话网络(PSTN 和移动通信网络)
- 公共交换电话网(PSTN)
- 原理 :PSTN 是一种电路交换网络,通过物理线路建立连接,为用户之间提供语音通信服务。当用户拨打电话时,电话交换机会在主叫方和被叫方之间建立一条专用的电路,这条电路在通话期间被双方独占,确保语音信号的连续传输。
- 特点 :具有较高的语音质量和稳定性,因为专用电路不受其他通信干扰。但是,它的灵活性较低,因为需要预留物理线路资源,且在高峰时段可能会出现线路繁忙的情况。
- 移动通信网络(2G/3G/4G/5G)
- 移动通信原理 :移动通信网络通过无线基站与移动设备(如手机)建立连接。手机将语音信号转换为数字信号,然后通过无线信道发送到基站,基站再将信号传输到核心网,核心网负责将信号转发到被叫方的基站,最后由基站将信号发送到被叫方手机。
- 特点 :具有较高的灵活性和移动性,用户可以在不同地点进行通话。随着移动通信技术的不断发展(从 2G 到 5G),网络速度和容量也不断提高,能够提供更好的语音质量和服务体验。
- 信令和协议 :在移动通信网络中,使用了多种信令和协议来控制通信过程,如用于建立连接的初始地址消息(IAM)、地址全的消息(ACM)、通话结束的消息(REL)等。这些信令和协议遵循国际电信联盟(ITU)等组织制定的标准,确保不同网络设备之间的兼容性和通信的可靠性。
互联网语音通信(VoIP)
- 原理 :VoIP(Voice over Internet Protocol)是通过互联网传输语音的技术。它将模拟语音信号转换为数字信号,然后将数字信号封装成 IP 数据包,通过互联网发送到对方。微信打语音电话就是基于 VoIP 技术。
- 特点 :灵活方便,只要有互联网连接,就可以在任何地点进行通话。通常成本较低,尤其是进行长途通话时,因为不需要像传统电话那样支付高额的长途费用。但是,通话质量可能会受到网络带宽和稳定性的影响。
- 协议 :常用的协议包括会话初始化协议(SIP)、实时传输协议(RTP)、实时控制协议(RTCP)等。SIP 用于建立、管理和终止会话,RTP 用于传输实时数据(如语音),RTCP 用于监控数据传输质量。
- 数据处理和传输 :语音信号在发送方经过采样、量化、编码等处理,转换为数字信号。然后通过网络协议栈(如 TCP/IP 或 UDP/IP)将数据包发送到接收方。在接收方,数据包经过解码、还原等处理,恢复为语音信号。
- 网络架构 :VoIP 通常采用客户端 - 服务器架构,如微信的语音通话,客户端负责音频采集和处理,服务器负责会话管理和连接建立。
DDOS攻击(分布式拒绝服务攻击)
常见的 DDoS 攻击方式
- SYN Flood
- 原理 :攻击者向目标服务器发送大量伪造源 IP 地址的 SYN 请求,使服务器的 TCP 半连接队列被占满,从而无法响应正常的连接请求。当服务器发送 SYN - ACK 回复后,由于源 IP 是伪造的,服务器无法收到客户端的 ACK 响应,导致半连接处于等待状态,资源被耗尽。
- 特点 :主要针对 TCP 协议的三次握手过程,攻击流量通常较小,但能有效耗尽服务器资源,导致服务不可用。
- 防御方法 :可以通过设置合理的 SYN cookies、限制半连接队列长度、缩短半连接超时时间等措施来缓解 SYN Flood 攻击。
- NTP 放大攻击
- 原理 :利用 NTP(网络时间协议)服务器的 monlist 功能,攻击者发送一个较小的请求数据包,诱使 NTP 服务器向目标服务器发送大量响应数据。由于响应数据的大小远大于请求数据,从而放大了攻击流量。
- 特点 :攻击流量被放大,能够快速淹没目标服务器的网络带宽,造成网络拥塞和服务瘫痪。
- 防御方法 :更新 NTP 服务器的软件,禁用 monlist 功能,限制 NTP 服务器对外部请求的响应范围,同时在网络入口处部署流量清洗设备,过滤异常的 NTP 请求和响应。
- CC 攻击(Challenge Collapsar 攻击)
- 原理 :CC 攻击主要针对 Web 服务器和应用程序。攻击者通过控制大量僵尸主机,向目标服务器发送大量合法的 HTTP 请求,使服务器的资源(如 CPU、内存、带宽等)耗尽,导致无法正常响应真实用户的请求。
- 特点 :CC 攻击的流量通常较小,且请求看起来合法,难以与正常用户请求区分,因此对传统的流量过滤设备防御难度较大。
- 防御方法 :可以通过设置访问频率限制、验证码验证、人机识别等技术来限制恶意请求的频率和数量。同时,可以采用专业的 Web 应用防火墙(WAF)来检测和过滤 CC 攻击流量。
- 其他常见攻击方式
- UDP Flood :向目标服务器发送大量的 UDP 数据包,耗尽服务器的网络带宽和处理能力。由于 UDP 是无连接协议,服务器在收到 UDP 数据包后通常会进行处理或回复,从而加重服务器的负担。
- ICMP Flood :通过发送大量的 ICMP(Internet 控制消息协议)回显请求(Echo Request)数据包,使目标服务器的网络带宽和处理能力被耗尽。ICMP Flood 通常利用 ICMP 协议的广播特性,放大攻击效果。
- DNS 放大攻击 :利用 DNS 服务器的查询功能,攻击者发送一个较小的请求数据包,诱使 DNS 服务器向目标服务器发送大量响应数据。与 NTP 放大攻击类似,通过放大攻击流量来淹没目标服务器的网络带宽。
DDoS 攻击的防御
- 网络层面的防御
- 流量清洗 :通过部署专业的流量清洗设备,在网络入口处对流量进行实时监测和分析。当检测到异常流量时,自动将其引流到清洗设备进行清洗,将正常流量返回给目标服务器。
- 限速 :在网络设备上设置流量限速策略,限制单个 IP 或单个连接的流量速率。当某个 IP 或连接的流量超过设定的阈值时,自动对其进行限速或丢弃部分数据包。
- 负载均衡 :通过部署负载均衡设备,将网络流量分散到多个服务器上,减轻单个服务器的负载压力。在遭受 DDoS 攻击时,负载均衡设备可以将攻击流量分摊到多个服务器,降低单个服务器的负担。
- 主机层面的防御
- 优化系统配置 :对操作系统、Web 服务器、数据库等软件进行优化配置,提高系统资源的利用效率,增强系统的抗攻击能力。例如,调整 TCP/IP 栈参数、限制并发连接数、优化 Web 服务器的线程配置等。
- 安装安全防护软件 :在服务器上安装防火墙、入侵检测系统(IDS)、入侵防御系统(IPS)等安全防护软件,及时发现和阻断异常的网络连接和攻击行为。
- 使用应用层防护措施 :如设置 Web 应用防火墙(WAF)、验证码验证、人机识别等技术,对应用层的攻击进行防护,防止 CC 攻击等针对应用程序的恶意请求。
DDoS 攻击的特点和危害
- 特点
- 分布式 :利用大量的僵尸主机(被黑客控制的计算机、物联网设备等)同时向目标服务器发起攻击,攻击流量来自不同的 IP 地址和地理位置,难以追踪和定位攻击源。
- 高强度 :攻击流量通常很大,能够快速淹没目标服务器的网络带宽和处理能力,导致服务瘫痪。
- 难以防御 :DDoS 攻击形式多样,攻击流量可以模拟正常的网络请求,使得传统的安全防护设备难以准确识别和过滤恶意流量。
- 危害
- 服务中断 :导致目标服务器无法正常响应用户请求,业务瘫痪,给企业和用户带来经济损失和声誉损害。
- 资源耗尽 :耗尽服务器的网络带宽、CPU、内存等资源,影响服务器的正常运行和性能。
- 数据泄露风险 :在某些情况下,攻击者可能会利用 DDoS 攻击作为掩护,同时进行其他恶意活动,如数据泄露、植入后门等。
与水坑攻击的对比
- 水坑攻击的原理 :水坑攻击是一种针对特定用户群体的攻击方式。攻击者首先分析目标用户的网络行为习惯,找到他们经常访问的网站或网络资源,然后在这些网站或资源中植入恶意代码或进行钓鱼攻击,当目标用户访问这些受感染的网站时,就会触发恶意代码,导致系统感染恶意软件或泄露敏感信息。
- 与 DDoS 攻击的对比 :水坑攻击的主要目的是获取目标用户的信息或控制目标用户的设备,而 DDoS 攻击的主要目的是使目标服务器无法正常提供服务。水坑攻击通常具有针对性,而 DDoS 攻击的攻击目标较为广泛。水坑攻击攻击的手段主要是利用漏洞和恶意代码,DDoS 攻击的攻击手段主要是通过大量网络流量使目标服务器过载。
Socket套接字
Socket 就像是一扇门,网络通信的双方通过这扇门来传递信息。
- 服务器端
- 服务器就像一个卖家,在网络世界里支了个摊儿。它先打开一扇门(创建套接字),然后把这扇门放到一个显眼的位置(绑定一个地址和端口号),就像在街边挂个招牌一样。这扇门一直开着,等着有客户来敲门(监听连接请求)。一旦有客户敲门,它就迎上去,把客户领到一个专门的房间(接受连接后的套接字),在这个房间里和客户聊天(数据传输),聊完了就把客户送走,房间收拾好,准备迎接下一个客户。
- 客户端
- 客户端就像一个买家,它也有一扇门(创建套接字)。它知道卖家的地址和招牌在哪(服务器的 IP 地址和端口号),就直接走到卖家的摊位前敲门(建立连接请求),然后和卖家在一个专门的房间里交流(数据传输),交流完就离开这扇门(关闭套接字)。
这扇门(Socket)可以让两方互相发送消息,但它的行为规则得提前定好,比如有的门比较正式,需要先敲门打招呼(像 TCP 协议的流套接字),有的门比较随意,直接就把东西扔进去就行(像 UDP 协议的数据报套接字)。
Socket 的定义和基本概念
- 套接字的定义 :Socket 是一种通信端点,用于实现不同设备或同一设备上不同进程之间的数据传输。它为应用程序提供了访问网络通信协议的接口,使得应用程序可以发送和接收网络数据。
- 套接字的类型 :常见的套接字类型包括流套接字(Stream Sockets)和数据报套接字(Datagram Sockets)。
- 流套接字(SOCK_STREAM) :使用 TCP 协议,提供可靠的、面向连接的、双向的数据流传输服务。数据传输时保证顺序性、完整性,并且没有数据丢失和重复。
- 数据报套接字(SOCK_DGRAM) :使用 UDP 协议,提供无连接的、不可靠的数据报传输服务。数据以独立的数据报形式发送和接收,不保证顺序性和可靠性,数据可能会丢失或重复。
Socket 的工作原理和过程
- 服务器端 :
- 创建套接字 :服务器端调用 socket() 函数创建一个套接字,并指定使用的协议族(如 AF_INET 表示 IPv4)、套接字类型(如 SOCK_STREAM 或 SOCK_DGRAM)和协议(如 TCP 或 UDP)。
- 绑定套接字 :使用 bind() 函数将套接字与一个本地的 IP 地址和端口号绑定,使套接字能够在特定的网络地址和端口上监听连接请求或接收数据报。
- 监听连接(仅用于流套接字) :对于流套接字,服务器端调用 listen() 函数使套接字进入监听状态,等待客户端的连接请求。此时,套接字会创建一个连接请求队列,用于存放未处理的连接请求。
- 接受连接(仅用于流套接字) :当有客户端发起连接请求时,服务器端调用 accept() 函数接受连接请求,并返回一个新的套接字,专门用于与该客户端进行通信。原来的套接字继续监听新的连接请求。
- 数据传输 :服务器端通过读(recv())和写(send())操作与客户端进行数据传输。
- 关闭套接字 :数据传输完成后,服务器端关闭套接字,释放相关资源。
- 客户端 :
- 创建套接字 :客户端同样调用 socket() 函数创建一个套接字。
- 连接服务器(仅用于流套接字) :对于流套接字,客户端调用 connect() 函数主动与服务器端的套接字建立连接。connect() 函数需要指定服务器端的 IP 地址和端口号。
- 数据传输 :连接建立后,客户端通过读(recv())和写(send())操作与服务器端进行数据传输。
- 关闭套接字 :数据传输完成后,客户端关闭套接字,释放相关资源。
Socket 编程的应用场景
- Web 服务器和客户端 :Web 服务器(如 Apache、Nginx)使用 Socket 监听客户端的 HTTP 请求,并返回相应的网页内容。浏览器作为客户端,通过 Socket 与服务器建立连接,发送请求并接收响应。
- 即时通讯软件 :即时通讯软件(如微信、QQ)的客户端和服务器之间通过 Socket 实时传输消息、文件等内容。服务器使用 Socket 接收多个客户端的消息,并转发给相应的接收方客户端。
- 文件传输工具 :文件传输工具(如 FTP 客户端、迅雷)利用 Socket 实现文件的上传和下载。客户端与服务器端的 Socket 进行通信,协商文件传输的相关参数,并传输文件数据。
- 游戏客户端和服务器 :在线游戏的客户端和服务器之间通过 Socket 实时交互游戏数据,如玩家的操作、游戏状态更新等。服务器通过 Socket 向多个客户端发送游戏同步信息,保证游戏的实时性和同步性。
- 网络监控和管理工具 :网络监控工具使用 Socket 与网络设备(如路由器、交换机)进行通信,收集设备的运行状态、性能数据等。管理员可以通过这些工具远程监控和管理网络设备。
Socket 编程中的关键函数和概念
- 关键函数 :
- socket() :创建一个套接字。
- bind() :将套接字与本地的 IP 地址和端口号绑定。
- listen() :使套接字进入监听状态,等待客户端的连接请求。
- accept() :接受客户端的连接请求,返回一个新的套接字用于与客户端通信。
- connect() :主动与服务器端的套接字建立连接。
- send() 和 recv() :用于发送和接收数据。
- close() :关闭套接字,释放相关资源。
- 其他重要概念 :
- 协议族 :如 AF_INET 表示 IPv4 协议族,AF_INET6 表示 IPv6 协议族。它决定了套接字使用的地址格式和网络协议版本。
- 端口号 :用于标识特定的服务或应用程序进程。端口号是一个 16 位的无符号整数,范围为 0 - 65535。其中,0 - 1023 为系统保留端口,通常用于常见的网络服务(如 HTTP 的 80 端口、HTTPS 的 443 端口等)。
- IP 地址 :用于在网络中标识设备的地址。IPv4 地址是一个 32 位的二进制数,通常以点分十进制表示(如 192.168.1.1);IPv6 地址是一个 128 位的二进制数,以冒号分隔的十六进制表示(如 2001:0db8:85a3:0000:0000:8a2e:0370:7334)。
- 超时机制 :在网络通信中,为了防止程序无限等待,通常会设置超时时间。Socket 编程中可以通过 setsockopt() 函数设置套接字的超时选项,如 SO_RCVTIMEO(接收超时)和 SO_SNDTIMEO(发送超时)。
Socket 编程的优点和挑战
- 优点 :
- 跨平台性 :Socket 编程接口在不同的操作系统(如 Windows、Linux、macOS)上都有实现,具有较好的跨平台性,方便开发跨平台的网络应用程序。
- 灵活性 :Socket 支持多种网络协议和通信方式,可以根据具体需求选择合适的协议(如 TCP 或 UDP)和套接字类型(如流套接字或数据报套接字),灵活地实现各种网络通信功能。
- 高效性 :Socket 提供了直接的网络通信接口,能够高效地利用操作系统底层的网络资源,实现快速的数据传输。
- 挑战 :
- 网络编程复杂性 :Socket 编程涉及到网络协议、网络通信原理等多个方面的知识,需要对网络编程有一定的理解和经验,才能正确编写程序,处理各种复杂的网络情况。
- 网络环境的不确定性 :网络环境可能存在各种问题,如网络延迟、丢包、连接中断等。Socket 编程需要处理这些异常情况,保证程序的健壮性和可靠性。
- 安全性问题 :Socket 编程中,网络数据传输的安全性是需要重点关注的问题。需要采取加密、身份验证等措施,防止数据被窃取或篡改,抵御网络攻击。