====== 计算机网络技术 ====== ---- 计算机网络是由多台计算机设备通过通信线路连接起来的系统,主要目的是数据交换、资源共享和信息传输。 根据网络的覆盖范围和功能,计算机网络可以分为局域网(LAN)和广域网(WAN)。 **局域网(LAN)**: 局域网是在相对较小的地理区域内,如学校、办公室或家庭内部连接计算机和其他设备的网络。 局域网通常用于连接少量设备,速度快,延迟低。 **广域网(WAN)**: 广域网覆盖更广泛的地理区域,可以跨城市、省份乃至国家。 广域网通常由多个局域网通过公共网络(如互联网)连接而成,用于在远距离传输数据。 ====== 服务器与客户机模型 ====== ---- 在网络中,服务器和客户机模型是一种常见的网络架构。 **服务器**是提供资源、数据、服务的计算机,而**客户机**则是请求并使用这些资源的设备。 客户机通过网络向服务器发送请求,服务器处理这些请求后将结果返回给客户机。 ====== OSI参考模型 ====== ---- **OSI(开放系统互连)参考模型**是国际标准化组织(ISO)制定的网络通信模型,包含七层结构,每一层都有其特定功能: {{ :wiki:osi_model.png?450|}} 1. **物理层**:负责在物理媒介上传输原始比特流,涉及电气、机械、过程和功能规范。 2. **数据链路层**:负责在相邻节点之间的可靠传输,处理帧同步、差错控制等。 3. **网络层**:处理数据包从源到目的地的传输和路由选择。 4. **传输层**:负责端到端的通信和数据流控制,确保数据正确传输。 5. **会话层**:管理用户的会话,控制建立和断开通信连接。 6. **表示层**:确保一个系统的应用层所发送的信息可以被另一个系统的应用层读取,进行数据格式化和编码。 7. **应用层**:为应用软件提供网络服务,如HTTP、FTP等协议。 ====== 网络设备 ====== ---- 网络设备是实现网络功能的硬件,主要包括: **中继器(Repeater)**:用于放大和恢复信号,扩展网络传输距离。 **集线器(Hub)**:用于连接多个网络设备,实现信号的分配。 **交换机(Switch)**:用于连接设备的网络设备,可以根据数据包的地址信息进行智能转发。 **路由器(Router)**:连接不同网络,根据IP地址决定数据的最佳路径。 **接入点(AP, Access Point)**:允许无线设备连接到有线网络。 通过这些设备和技术的组合,计算机网络能够实现复杂的数据交换和资源共享,支持现代信息技术的发展。 ====== 数据封装 ====== ---- {{ :wiki:data_encap.png?500|}} 数据要通过网络进行传输,要从高层一层一层地向下传送, 如果一个主机要传送数据到别的主机,先把数据装到一个特殊的协议报头中,这个过程就叫封装。 计算机在传数据之前需要将数据分段,在每段添加附加信息,称为封装。封装分为切片和加控制信息。 当数据在传输层添加上源端口和目标端口, 我们称之为数据段或消息,可靠传输称为数据段,不可靠传输称为消息。 在网络层会为数据段或消息添加目标地址和源地址,称为数据包。 数据包在数据链路层添加了目标MAC地址、源地址和帧校验序列(FCS),称为数据帧。 ====== 中间件 ====== ---- 在当代的互联网架构中,中间件的存在,如[[网络地址转换器]](NAT)和[[防火墙]],已经成为了网络通信的常见景象。 它们在实现网络安全和有效管理公网地址资源方面发挥着重要作用。 然而,这也意味着不同内网之间的客户端往往无法实现直接对话,由于中间件的干预,网络通信变得更为复杂。 即便是在IPv6时代,这个问题依然存在。 尽管IPv6由于其庞大的地址空间,使得NAT不再是必须的,但是其他形式的中间件,如防火墙,仍然可能妨碍连接的建立。 它们通过筛选和管理跨其边界的数据流,确保网络的安全性和规范性,但同时也限制了通信的流畅性。 大多数现有的中间件是在客户端/服务器(C/S)模型上构建的。 在这种模式下,客户端(通常隐藏在网络的深处,没有固定的公网IP地址)会主动向服务端(拥有固定的公网IP地址和DNS名称)发起连接请求。 这表现为一种非对称的通信模型,即内网用户可以相对自由地发起对外部网络的连接,而外部网络的用户却无法直接访问内网的设备,除非进行了中间件的特殊配置。 特别地,在有NAT端口地址转换(NAPT)的场景中,内网用户没有独立的公网IP,而是通过NAPT的地址和端口转换,与内网中的其他用户共享一个公网IP地址。 对于一些客户端应用来说,如网页浏览器,这种模式并不构成问题,甚至可以在一定程度上增强用户隐私保护,因为它们只需要发起外向的连接请求。 但是,在点对点(P2P)的应用场景中,情况则大为不同。 P2P应用要求内网中的主机(客户端)能够直接与其他终端(Peer)建立连接。 这在两个终端都位于各自中间件之后的情况下尤其复杂,因为它们都没有自己的公网IP地址。 这种情况下,任何从外部发起的连接尝试或数据传输,如果没有在内网中提前进行请求,都有可能被NAT设备直接丢弃。 [[P2P通信技术]]是一种可以在有NAT的情况下,实现内网主机之间直接通信的策略和技术。