目录
一、计算机网络背景与发展
1.1 计算机网络的背景
编辑1.2 计算机网络的发展历程
二、网络协议
2.1 认识网络协议
2.3 协议分层
2.4 OSI七层模型
2.5 TCP/IP 五层(或四层)模型
三、网络传输基本流程
3.1 网络传输流程图
3.2 数据包封装和分用
四、网络中的地址管理
4.1 IP地址
4.2 MAC地址
一、计算机网络背景与发展
1.1 计算机网络的背景
计算机网络的出现源于对计算机资源共享和信息交流的需求,尤其是在军事、科研和商业领域。早期的计算机是大型的、昂贵的设备,通常只能在单一计算机上完成计算任务。随着计算机技术的不断进步,尤其是微型计算机的普及,为网络的出现提供了硬件基础。随着科技的不断发展,尤其是在军事实验和科研合作的推动下,远程通信成为一种迫切需求。不同地点的计算机需要通过某种方式进行连接,才能共享信息和资源。
1.2 计算机网络的发展历程
1960s-1970s:ARPANET的诞生,成为现代互联网的基础。通过该网络,计算机能够相互通信,发送电子邮件,进行文件传输,进行初步的信息共享。此时的计算机网络仍然局限于一些科研机构和军事部门。1980s,随着TCP/IP协议的诞生,计算机网络的互联性得到了加强。TCP/IP协议成为全球互联网的通信协议标准。网络开始从学术界和军事领域走向商业领域。与此同时,局域网(LAN)和广域网(WAN)得到了广泛应用。1991年,世界上第一个网站诞生,标志着万维网(World Wide Web,简称WWW)的开始。网络技术在这一时期得到了极大发展。随着浏览器、搜索引擎等应用的出现,互联网逐渐普及到全球。电子邮件、网页浏览、在线购物、即时通讯等应用形式逐步进入人们的日常生活。互联网进入宽带时代,速度得到了大幅提升。无线网络(Wi-Fi)和移动互联网的普及进一步改变了人们的生活方式。社交媒体、云计算、大数据、物联网、人工智能等新兴技术的出现,使得计算机网络的发展进入了一个新的阶段。
![]()
二、网络协议
2.1 认识网络协议
"协议" 是一种约定,网络协议是指在计算机网络中,不同的设备和系统之间进行通信时所遵循的规则和约定。它定义了数据交换的格式、顺序、处理方式以及如何处理错误等细节。网络协议确保了不同厂商、不同设备之间能够互通,从而实现信息的有效传输。计算机之间的传输媒介是光信号和电信号。通过 "频率" 和 "强弱" 来表示 0 和 1 这样的信息。要想传递各种不同的信息, 就需要约定好双方的数据格式。
通俗地举个例子,假设你和你的朋友分别来自不同的地方,一个是讲粤语的,一个是讲东北话的。如果你们没有约定好“方言协议”,就直接交流,你可能会听不懂他说的话,或者他也听不懂你说的。假如你们事先约定了用普通话作为“共同协议”。无论你是粤语或东北话的使用者,大家都能理解普通话。这个普通话就类似于网络中的一个“协议”,它保证了你们能够沟通。
对于计算机而言,计算机生产厂商有很多,计算机操作系统也有很多,计算机网络硬件设备还是有很多。如何让这些不同厂商之间生产的计算机能够相互顺畅的通信? 就需要大家约定一个共同的标准,所有人都遵守,这就是网络协议。计算机之间通信的核心就是 网络协议。
2.3 协议分层
我们很容易就能够理解,现实生活中很多“协议”是分层的,例如,打电话:
这个例子中,我们的协议只有两层,但是实际的网络通信会更加复杂,需要分更多的层次。分层最大的好处在于 "封装"。
2.4 OSI七层模型
OSI(Open System Interconnection,开放系统互连)七层网络模型称为开放式系统互联参考模型, 是一个逻辑上的定义和规范,把网络从逻辑上分为了七层,每一层都有相关、相对应的物理设备。OSI 七层模型是一种框架性的设计方法,其最主要的功能使就是帮助不同类型的主机实现数据传输。它的最大优点是将服务、接口和协议这三个概念明确地区分开来,概念清楚,理论也比较完整。通过七个层次化的结构模型使不同的系统不同的网络之间实现可靠的通讯。
层级 名称 功能简介 常见协议 7 应用层 直接为用户提供网络服务,处理高层应用数据,如网页浏览、文件传输等。 HTTP, FTP, SMTP, POP3, DNS 6 表示层 负责数据的格式化、编码和加密/解密,确保数据能被应用层正确理解。 JPEG, GIF, SSL/TLS, ASCII 5 会话层 管理会话的建立、维护和终止,确保数据通信的顺畅。 NetBIOS, RPC, PPTP 4 传输层 提供端到端的可靠传输,确保数据的完整性和顺序。 TCP, UDP 3 网络层 负责路由选择和数据包的传输路径,确保数据从源到目的地的正确传递。 IP, ICMP, ARP, RIP 2 数据链路层 负责在物理链路上传输数据,进行错误检测和修正,控制数据的流量。 Ethernet, PPP, HDLC, Frame Relay 1 物理层 负责物理媒介的数据传输,定义电气信号、光信号等传输方式。 Ethernet (电缆), 光纤, 无线网络 2.5 TCP/IP 五层(或四层)模型
在实际应用中,TCP/IP 四层模型更为广泛使用,因为它更简化、更直接,更符合现代网络的实际需求。
层级 名称 功能简介 常见协议 5 应用层 负责应用程序间沟通,如简单电子邮件传输(SMTP)、文件传输协议(FTP)、网络远程访问协议(Telnet)等. 我们的网络编程主要就是针对应用层. HTTP, FTP, SMTP, DNS, POP3, Telnet 4 传输层 负责两台主机之间的数据传输. 如传输控制协议 (TCP), 能够确保数据可靠的从源主机发送到目标主机. TCP, UDP 3 网络层 负责地址管理和路由选择. 例如在IP协议中, 通过IP地址来标识一台主机, 并通过路由表的方式规划出两台主机之间的数据传输的线路(路由). 路由器(Router)工作在网路层. IP, ICMP, ARP 2 数据链路层 负责设备之间的数据帧的传送和识别. 例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作. 有以太网、令牌环网, 无线LAN等标准. 交换机(Switch)工作在数据链路层. Ethernet, PPP, Wi-Fi 1 物理层 负责光/电信号的传递方式. 比如现在以太网通用的网线(双绞 线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等. 集线器(Hub)工作在物理层. 光纤、铜线、Wi-Fi、以太网等物理媒介 物理层我们考虑的比较少,因此很多时候也可以称为 TCP/IP四层模型。一般而言,对于一台主机,它的操作系统内核实现了从传输层到物理层的内容;对于一台路由器, 它实现了从网络层到物理层;对于一台交换机,它实现了从数据链路层到物理层;对于集线器, 它只实现了物理层。此言并不绝对,很多交换机也实现了网络层的转发;很多路由器也实现了部分传输层的内容(比如端口转发)。
三、网络传输基本流程
3.1 网络传输流程图
我们通过下面两张图更好的了解网络传输的基本流程
对于跨网段的主机的文件传输,数据从一台计算机到另一台计算机传输过程中要经过一个或多个路由器。
3.2 数据包封装和分用
不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。
应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封装(Encapsulation)。
首部信息中包含了一些类似于首部有多长,载荷(payload)有多长,上层协议是什么等信息数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部,根据首部中的 "上层协议字段" 将数据交给对应的上层协议处理。
数据封装的过程
数据分用的过程
![]()
四、网络中的地址管理
4.1 IP地址
IP地址(Internet Protocol Address,互联网协议地址)是分配给每个连接到互联网的设备的唯一标识符,它类似于设备的“家地址”,用于定位和通信。IP地址的作用是让互联网上的设备能够找到彼此并进行数据交换。我们一般学习接触更多的是IPv4。
IPv4(Internet Protocol version 4) 格式:IPv4地址是由4组数字组成,每组数字在0到255之间,数字之间用点分隔。例如:192.168.1.1。 地址长度:32位(4字节),最多支持约43亿个唯一地址。 示例: 192.168.0.1 10.0.0.1 172.16.0.1 IPv6(Internet Protocol version 6) 格式:IPv6地址由8组16进制数值组成,每组4个字符,用冒号分隔。例如:2001:0db8:85a3:0000:0000:8a2e:0370:7334。 地址长度:128位(16字节),能够支持大量的设备(约340万亿个地址)。 示例: 2001:0db8:85a3:0000:0000:8a2e:0370:7334
IP地址的分类
- 私有IP地址:这些IP地址通常在局域网(LAN)内部使用,不会被路由器转发到互联网。例如:
192.168.0.0
到192.168.255.255
10.0.0.0
到10.255.255.255
172.16.0.0
到172.31.255.255
这些私有地址被广泛应用于家庭、公司和组织的内网。
- 公共IP地址:这是在互联网上唯一的IP地址,可以被全球任何地方的设备访问。它由ISP(互联网服务提供商)分配。
- 环回地址(Loopback address):
127.0.0.1
是环回地址,通常用于测试计算机本身的网络功能,也被称为“本地回环地址”或“localhost”。在大型网络中,IP地址需要被划分为不同的子网,以便更高效地管理。例如,
192.168.1.0/24
表示该网络的IP范围从192.168.1.0
到192.168.1.255
,而/24
表示前24位是网络部分,剩下的用于主机部分。IP地址还可以分类为动态IP地址【Dynamic IP:由DHCP,即动态主机配置协议,自动分配。它们是临时的,每次设备连接到网络时,可能会分配一个新的IP地址】和静态IP地址【Static IP:由网络管理员手动配置的IP地址,保持不变。通常用于服务器、路由器等设备】。
4.2 MAC地址
MAC地址(媒体访问控制地址,Media Access Control Address)是一种硬件地址,通常用于网络设备(如计算机、路由器、打印机等)之间的通信。每个设备的MAC地址在全球范围内是唯一的,用来标识设备在局域网中的身份。MAC地址在数据链路层(OSI模型的第二层)起作用,是网络通信中的基础元素之一。
每个网络设备的MAC地址都是全球唯一的,这使得它可以唯一标识网络中的每个设备。
MAC地址与硬件相关,通常由网络接口卡(NIC)制造商在设备制造过程中赋予设备。
MAC地址通常由6个字节(48位)组成,通常用十六进制表示。例如:
00:14:22:01:23:45
。前24位(3个字节):标识制造商(也叫 OUI,组织唯一标识符);后24位(3个字节):由制造商自行分配,确保同一制造商生产的所有设备具有不同的MAC地址。- MAC地址用于局域网内部的设备标识,通常与硬件绑定。IP地址用于广域网中的设备定位,是网络层的地址。IP地址与MAC地址是两个不同层次的标识,在局域网中,通过ARP协议将IP地址转换为MAC地址。
MAC地址的类型
- 单播(Unicast)MAC地址:普通的MAC地址,标识网络中单个设备。所有的设备都有一个唯一的单播MAC地址。
- 广播(Broadcast)MAC地址:
FF:FF:FF:FF:FF:FF
,用于在局域网内向所有设备广播消息。- 组播(Multicast)MAC地址:以特定的方式进行标识,供多个设备接收数据,但不包括所有设备。
MAC地址常用于局域网通信【在局域网(LAN)中,MAC地址用于确定数据包的目的地设备】、网络设备的识别【网络交换机和路由器使用MAC地址来管理设备,并进行数据转发】、ARP协议【在IPv4网络中,ARP协议通过IP地址解析对应的MAC地址,使得设备可以在局域网内正确地进行通信】和网络安全【通过MAC地址可以实现网络访问控制,比如在Wi-Fi路由器中设置MAC地址过滤,以允许或阻止特定设备接入网络】。