目录
[TCP/IP 协议栈](#TCP/IP 协议栈)
网络通信基础
网络协议概述
网络协议是一组规则和标准,定义了数据在网络中的传输方式。这些协议确保不同设备之间的通信顺畅且高效。网络协议分为多个层次,每个层次负责特定的任务。最著名的网络协议模型是 OSI(开放系统互连)模型和 TCP/IP(传输控制协议/互联网协议)模型。
-
OSI 模型 包括七层:
- 物理层:负责在物理介质上传输原始比特流。
- 数据链路层:提供节点间的可靠数据传输。
- 网络层:负责寻址和路由选择。
- 传输层:提供端到端的数据传输服务。
- 会话层:建立、管理和终止会话。
- 表示层:处理数据格式和加密。
- 应用层:直接面向应用程序提供服务。
-
TCP/IP 模型 则简化为四层:
- 网络接口层:对应 OSI 的物理层和数据链路层。
- 网络层:对应 OSI 的网络层。
- 传输层:对应 OSI 的传输层。
- 应用层:对应 OSI 的会话层、表示层和应用层。
在 SQL Server 的上下文中,重点关注的是 TCP/IP 模型,尤其是网络层和传输层。
TCP/IP 协议栈
TCP/IP 协议栈是互联网通信的基础,它由多个协议组成,每个协议负责不同的通信任务。
- 网络接口层:处理数据包的物理传输,包括硬件地址(MAC 地址)的封装和解封装。
- 网络层:使用 IP 协议(IPv4 或 IPv6)来封装数据包并确定数据包在网络中的路径。
- 传输层 :使用传输控制协议 (TCP) 或用户数据报协议 (UDP) 来保证数据包的可靠传输或实现无连接的数据传输。
- TCP:提供面向连接的服务,确保数据按顺序无损地到达目的地。
- UDP:提供无连接的服务,不保证数据包的顺序或完整性,但传输速度快。
SQL Server 主要使用 TCP 协议进行数据通信,因为这种协议提供了可靠的数据传输服务。SQL Server 监听特定的端口,以便客户端可以通过 TCP 连接到服务器。
端口和地址绑定
在计算机网络中,端口是一个逻辑概念,用于标识网络应用程序的通信通道。每个端口都是一个唯一的数字标识符,通常介于 0 到 65535 之间。端口分为两种类型:
- 知名端口(Well-Known Ports):编号从 0 到 1023,通常分配给常用的服务。
- 注册端口(Registered Ports):编号从 1024 到 49151,分配给具体的应用程序和服务。
- 动态端口(Dynamic Ports):编号从 49152 到 65535,用于临时端口分配。
SQL Server 使用一个或多个端口来接收客户端的连接请求。默认情况下,SQL Server 使用 TCP 端口 1433 来监听客户端连接。此外,还可以配置 SQL Server 使用其他端口,称为动态端口或自定义端口。
- 端口绑定:当一个服务想要接收来自网络的连接时,它需要绑定到一个端口。这意味着服务告诉操作系统它希望监听特定端口上的连接请求。
- 地址绑定 :除了指定端口外,服务还需要指定一个 IP 地址,这样客户端就可以知道服务的位置。SQL Server 可以绑定到所有可用的 IP 地址(例如,
0.0.0.0
或::
),也可以绑定到特定的 IP 地址。
端口和地址绑定是 SQL Server 网络配置的关键组成部分。正确的配置可以确保 SQL Server 服务能够被客户端正确识别和连接。同时,通过配置防火墙规则和其他安全措施,可以进一步保护 SQL Server 的网络端口免受未经授权的访问。