各层协议总结
了解各层所包含的网络协议,以及应用层协议使用的端口号、是依赖 UDP 还是 TCP。
网络协议要素
网络协议规定了通信双方交互的规则,主要包括以下三要素:
- 语法:定义信息的格式和结构(如报文结构、编码方式等)
- 语义:规定控制信息的含义和需要完成的操作
- 时序:定义事件的发生顺序和通信双方的协同工作方式(如请求与响应的先后顺序)
应用层协议
应用层协议直接面向用户,为应用程序之间的通信提供服务:
协议 | 端口号 | 依赖协议 | 简要说明 |
---|---|---|---|
HTTP/HTTPS | 80 / 443 | TCP | 超文本传输协议,用于网页浏览。HTTPS 是加密版本,基于 TLS/SSL。 |
FTP | 20 / 21 | TCP | 文件传输协议,用于文件上传与下载。20 为数据通道,21 为控制通道。 |
SMTP | 25 | TCP | 简单邮件传输协议,用于邮件的发送。 |
POP3 | 110 / 995 | TCP | 邮局协议,用于从邮件服务器接收邮件。995 是加密版本(POP3S)。 |
DNS | 53 | UDP(部分 TCP) | 域名系统,将域名解析为 IP 地址。较大响应或区域传输时使用 TCP。 |
DHCP | 67(服务器)/ 68(客户端) | UDP | 动态主机配置协议,用于自动分配 IP 地址及其他网络参数。 |
传输层协议
传输层为应用进程间提供可靠或不可靠的数据传输服务:
- TCP(Transmission Control Protocol):面向连接,提供可靠的字节流服务,适用于要求高可靠性的应用(如 HTTP、FTP)。
- UDP(User Datagram Protocol):无连接,不保证可靠性,但开销小、速度快,适用于实时性要求高的场景(如 DNS、视频流)。
网络层协议
网络层负责实现数据包从源主机到目标主机的传输:
- IP(Internet Protocol):不可靠的无连接协议,提供数据报服务,是整个互联网的核心协议。
- ICMP(Internet Control Message Protocol):用于发送错误报告与网络诊断信息(如 ping 命令使用的就是 ICMP 回显请求)。
- RIP / OSPF / BGP:路由选择协议,主要用于自治系统内部(RIP、OSPF)或之间(BGP)的路由计算
- NAT:网络地址转换,在私网和公网之间转换 IP 地址
数据链路层协议
数据链路层负责将网络层传来的数据组装成帧,在链路上传输并进行差错控制:
- ARP(Address Resolution Protocol):地址解析协议,用于将 IP 地址解析为对应的 MAC 地址。
- PPP(Point-to-Point Protocol):点对点协议,用于点对点链路的数据传输,常用于拨号上网。
- HDLC(High-Level Data Link Control):高级数据链路控制协议,用于同步链路的帧传输,支持面向比特流的通信。