目录
[1.1 独立模式](#1.1 独立模式)
[1.2 网络互连的兴起](#1.2 网络互连的兴起)
[2.1 局域网(LAN)](#2.1 局域网(LAN))
[2.2 广域网(WAN)](#2.2 广域网(WAN))
[3.1 IP地址](#3.1 IP地址)
[3.2 端口号](#3.2 端口号)
[3.3 五元组:网络通信的"身份证"](#3.3 五元组:网络通信的"身份证")
[4.1 什么是协议?](#4.1 什么是协议?)
[4.2 协议的重要性](#4.2 协议的重要性)
[5.1 为什么需要协议分层?](#5.1 为什么需要协议分层?)
[5.2 OSI七层模型](#5.2 OSI七层模型)
[5.3 TCP/IP五层(或四层)模型](#5.3 TCP/IP五层(或四层)模型)
[7.1 数据封装](#7.1 数据封装)
[7.2 数据分用](#7.2 数据分用)
[8.1 同一网段内的主机通信](#8.1 同一网段内的主机通信)
[8.2 跨网段的主机通信](#8.2 跨网段的主机通信)
前言
在当今数字化时代,网络已成为我们日常生活和工作中不可或缺的基础设施。从浏览网页、发送邮件到视频会议、在线支付,所有这些活动都依赖于网络通信。本文将带您深入浅出地了解网络原理的基础知识,从网络发展史到协议分层,帮助您建立对网络通信的系统性认识。
一、网络发展简史:从独立模式到网络互连
1.1 独立模式
早期的计算机系统是独立运行的,每台计算机都独立工作,无法与其他计算机共享数据和资源。这种"孤岛式"的计算模式限制了计算机的使用效率和应用范围。
1.2 网络互连的兴起
随着业务需求的增加,人们越来越需要计算机之间能够互相通信、共享软件和数据。于是,"网络互连"的概念应运而生------将多台计算机连接在一起,完成数据共享。
网络互连的本质:计算机之间通过网络传输数据,即网络通信。
二、网络规模划分:局域网与广域网
2.1 局域网(LAN)
定义:Local Area Network,简称LAN,指在局部范围内组建的私有网络。
特点:
- 本地、局部组建的网络
- 局域网内的主机之间可以方便地进行网络通信(内网)
- 局域网与局域网之间在没有连接的情况下无法通信
局域网组建方式:
- 基于网线直连
- 基于集线器组建
- 基于交换机组建
- 基于交换机和路由器组建
2.2 广域网(WAN)
定义:Wide Area Network,简称WAN,通过路由器将多个局域网连接起来,形成覆盖大范围的网络。
特点:
- 由多个局域网(子网)组成
- 例如:企业在全国各地的分公司,通过专线连接形成的广域网
- 全球化的公共型广域网称为互联网(又称公网、外网)
重要提示:局域网和广域网只是相对概念。例如,某些特定区域的"天朝特色"广域网,也可以视为一个较大的局域网。
三、网络通信基础:IP地址与端口号
3.1 IP地址
定义:IP地址用于标识网络主机、其他网络设备(如路由器)的网络地址。
作用:就像发送快递需要知道收货地址一样,IP地址用于定位主机的网络地址。
格式:
- 32位的二进制数
- 通常分割为4个"8位二进制数"(4个字节)
- 用"点分十进制"表示:a.b.c.d(a,b,c,d为0~255的十进制整数)
示例:
二进制:01100100.00000100.00000101.00000110
点分十进制:100.4.5.6
3.2 端口号
定义:端口号用于标识主机中发送数据、接收数据的进程。
作用:就像发送快递不仅需要指定收货地址(IP地址),还需要指定收货人(端口号)。
格式:
- 0~65535范围的数字
- 进程可以通过绑定一个端口号,来发送及接收网络数据
3.3 五元组:网络通信的"身份证"
在网络通信中,仅靠IP地址和端口号还不足以唯一标识一次通信。TCP/IP协议使用五元组来标识一个网络通信:
- 源IP:标识源主机
- 源端口号:标识源主机中该次通信发送数据的进程
- 目的IP:标识目的主机
- 目的端口号:标识目的主机中该次通信接收数据的进程
- 协议号:标识发送进程和接收进程双方约定的数据格式
实际应用 :在Windows系统中,可以通过
netstat -ano命令查看网络数据传输中的五元组信息;若需过滤,可使用netstat -ano | findstr命令。
四、协议:网络通信的"语言"
4.1 什么是协议?
定义:网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵从的一组约定、规则。
作用:如同见网友约定"胸口插支玫瑰花"见面,协议确保不同厂商、不同操作系统、不同硬件的计算机能够顺畅通信。
4.2 协议的重要性
- 计算机生产厂商众多:不同厂商的设备需要统一标准
- 操作系统多样:Windows、Linux、MacOS等需要兼容
- 网络硬件复杂:网卡、路由器、交换机等需要协同工作
协议的本质:协议最终体现为在网络上传输的数据包的格式。
五、协议分层:网络通信的"组织架构"
5.1 为什么需要协议分层?
协议分层类似于面向接口编程:
- 定义好两层间的接口规范,让双方遵循这个规范来对接
- 使用方不关心提供方的实现细节,只需使用接口
- 提供方利用封装特性隐藏实现细节,只需开放接口
5.2 OSI七层模型
定义:Open System Interconnection,开放系统互连。
OSI七层模型:
重要提示:OSI七层模型是理论框架,实际网络中并未完全实现。
5.3 TCP/IP五层(或四层)模型
定义:TCP/IP是一组协议的代名词,包括许多协议,组成了TCP/IP协议簇。
TCP/IP五层模型:
- 应用层:负责应用程序间沟通,如SMTP、FTP、Telnet等。我们的网络编程主要针对这一层。
- 传输层:负责两台主机之间的数据传输,如TCP(确保可靠传输)。
- 网络层:负责地址管理和路由选择,如IP协议。路由器工作在这一层。
- 数据链路层:负责设备之间的数据帧传送和识别,如网卡驱动、帧同步、冲突检测等。交换机工作在这一层。
- 物理层:负责光/电信号的传递方式,如网线、光纤、电磁波等。集线器工作在这一层。
图2:TCP/IP五层模型示意图
四层模型:在实际应用中,物理层常被忽略,因此也称为TCP/IP四层模型。
六、网络设备所在分层
表格
| 网络设备 | 工作分层 | 说明 |
|---|---|---|
| 主机 | 传输层至物理层 | 操作系统内核实现下四层 |
| 路由器 | 网络层至物理层 | 传统路由器工作在下三层 |
| 交换机 | 数据链路层至物理层 | 传统交换机工作在下两层 |
| 集线器 | 物理层 | 仅实现物理层功能 |
注意:随着技术发展,出现了3层或4层交换机、4层路由器,但本文讨论的是传统意义上的网络设备。
七、数据封装与分用:数据在网络中的"旅行"
7.1 数据封装
当应用层数据通过协议栈发送到网络上时,每层协议都要加上一个数据首部(Header),称为封装(Encapsulation)。
- 应用层数据 → 传输层:段(Segment)
- 传输层数据 → 网络层:数据报(Datagram)
- 网络层数据 → 数据链路层:帧(Frame)
7.2 数据分用
数据到达目的主机后,每层协议剥掉相应的首部,根据首部中的"上层协议字段"将数据交给对应的上层协议处理。
八、网络通信实例分析
8.1 同一网段内的主机通信
当两台主机位于同一网段时,通信过程如下:
- 源主机应用层生成数据
- 传输层添加首部,形成段
- 网络层添加首部,形成数据报
- 数据链路层添加首部,形成帧
- 物理层将帧转换为电信号/光信号
- 目的主机接收到信号,逐层剥掉首部
- 最终将数据传递给目的应用层
8.2 跨网段的主机通信
当两台主机位于不同网段时,通信过程如下:
- 源主机将数据发送到默认网关(路由器)
- 路由器根据路由表将数据转发到目的网段
- 目的网段的路由器将数据发送到目的主机
- 目的主机接收并处理数据
