网络协议
基于TCP的应用层协议
POP3(Post Office Protocol 3):
- 用于支持客户端远程管理服务器上的电子邮件。
- 它支持**“离线”邮件处理**,即邮件发送到服务器上后,一旦邮件被POP3客户端下载到本地计算机,邮件服务器上的邮件通常会被标记为已读或删除(具体取决于服务器的配置和客户端的设置),在本地修改邮件后不会同步到服务器。
IMAP:
- 大致同理POP3,但需注意IMAP支持双向通信,允许在多个客户端之间同步邮件的更改。
FTP(File Transfer Protocol):
- 用于文件在客户端和服务器之间的传输。
- FTP默认使用TCP端口20(用于数据传输)和21(用于传输控制信息)。
SMTP(Simple Mail Transfer Protocol):
- 用于传输电子邮件的协议,处理邮件的发送和接收请求
HTTP(Hypertext Transfer Protocol):
- 用于在万维网(WWW)上传输超文本。
- HTTP协议不对请求和响应之间的通信状态进行保存,每次连接只处理一个请求,处理完毕后立即断开连接。
Telnet:
- 用于在Internet或局域网内提供一个双向的、交互式的文本命令行界面。
基于UDP的应用层协议
DHCP(动态主机配置协议):
- 用于自动分配IP地址和其他网络参数(如子网掩码、网关、DNS等)给局域网中的计算机。
TFTP(Trivial File Transfer Protocol):
- 一种简单、轻量级的文件传输协议。相较于FTP等复杂的文件传输协议,TFTP的设计目标是简洁、轻量级,适用于资源有限的嵌入式系统等场景。
SNMP(简单网络管理协议):
- 监视网络状态、修改网络设备配置、接收网络事件警告等,有助于提高网络管理效率,及时发现和解决网络问题。
DNS(域名系统):
- DNS是一个分布式数据库系统,用于将人类可读的域名转换为机器可读的IP地址。
- DNS的主要功能是提供域名解析服务,允许终端用户设备将给定的URL转换为网络可以理解的IP地址。
- DNS定义了两种报文:查询报文和响应报文,用于在客户端和DNS服务器之间进行通信。
需要注意的是,UDP的应用层协议通常需要自己实现一些避免丢包的机制,因为UDP本身并不提供数据包的确认、排序或重传等可靠性保障。
相较于TCP(传输控制协议),UDP(用户数据报协议)的优势主要体现在以下几个方面:
- 高效性:UDP协议无需建立连接,因此没有连接建立、维护和拆除的开销,这使得数据传输速度更快,吞吐效率更高。在实时性要求较高的应用中,如在线游戏、视频流传输等,UDP具有显著优势。
- 简单性:UDP协议架构简单,报文首部短,传输开销小。这使得UDP协议易于实现和使用,对系统资源的占用也较少。
- 支持广播和多播:UDP协议支持一对多的通信方式,即广播和多播。这使得UDP在需要向多个接收者发送数据的场景中表现出色,如网络会议、群组通信等。(TCP不支持)
- 实时性:由于UDP无需等待接收方的确认信息,因此具有较低的延迟。在一些对实时性要求较高的应用中,如在线游戏、实时音视频传输等,UDP的实时性优势尤为明显。
数据链路层协议
ARP(Address Resolution Protocol,地址解析协议)用于将IP地址解析为MAC地址的协议。
-
ARP请求报文(ARP request):
- 当一台计算机想要与另一台计算机通信时,它知道对方的IP地址,但不知道对方的MAC地址。此时,该计算机会发送一个ARP请求报文,询问网络中哪台计算机的IP地址与它想要通信的IP地址相匹配。
- 由于发送ARP请求报文的计算机不知道目标计算机的MAC地址,因此它只能以广播的形式发送ARP请求报文。广播帧的目的地址是所有计算机的物理地址,所以网络中的所有计算机都会收到这个请求。
- 这样做的目的是确保目标计算机能够接收到ARP请求,并回应其MAC地址。
-
ARP响应报文(ARP response):
- 当网络中的某台计算机接收到ARP请求报文后,它会检查请求中的IP地址是否与其自身的IP地址相匹配。
- 如果IP地址匹配,该计算机会发送一个ARP响应报文,其中包含其MAC地址信息,以回应发送ARP请求报文的计算机。
- 与ARP请求报文不同,ARP响应报文是以单播的形式发送的,即只发送给发送ARP请求报文的计算机。这是因为此时目标计算机的MAC地址已知,可以直接进行点对点的通信。
IP地址和MAC地址的区别
- 地址长度和表示方式:
- IP地址:长度为32位,通常表示为4个用点分隔的8位组(即4个字节),例如“192.168.0.1”。这种表示方式称为点分十进制格式。
- MAC地址:长度为48位(6个字节),通常表示为12个16进制数,每两个16进制数之间用冒号或连字符隔开,例如“00:50:29:5A:8H:1E”或“00-16-EA-AE-3C-40”。
- 所在寻址协议层:
- IP地址:应用于OSI(开放系统互连)模型的第三层,即网络层。它用于标识网络上的设备或主机,是网络层协议进行路由选择的基础。
- MAC地址:应用于OSI模型的第二层,即数据链路层。它用于在网络中唯一标识一个网卡,是数据链路层协议进行数据传递的基础。
- 性质和用途:
- IP地址:是逻辑地址,具有分级层次、可变性、全局唯一性和有序性等特点。它可以根据层级结构来分配,包含网络号和主机号两个部分,并可以分为A、B、C、D等类别。IP地址的作用是在网络中标识主机或设备,保证数据在网络中的传输。
- MAC地址:是物理地址,也称为硬件地址或局域网地址。它由网络设备制造商生产时烧录在网卡上,具有全球唯一性(除非用户自行更改)。MAC地址用于在网络中唯一标识一个网卡,确保数据能够准确地从一台设备传输到另一台设备。
- 工作原理:
- IP地址:在数据传输过程中,网络层协议根据目的IP地址选择路由,将数据从一个网络传递到另一个网络。在IP层以下的协议(如ARP)会根据目的IP地址找到中间节点的MAC地址,并通过中间节点将数据传送到目的网络。
- MAC地址:在数据传输过程中,数据链路层协议根据MAC地址将数据从一个节点传递到相同链路的另一个节点上。当数据包从初始节点开始传输时,会首先根据目标节点的IP地址映射到中间节点的MAC地址,然后通过中间节点将数据传送到下一个节点,以此类推,直到最终到达目标节点。
总结:IP地址用于标识网络上的设备或主机,是网络层协议进行路由选择的基础;而MAC地址用于在网络中唯一标识一个网卡,是数据链路层协议进行数据传递的基础。