计算机网络
计算机网络是用通信设备和线路将分散在不同地点的有独立功能的多个计算机系统互相连接起来,并按照网络协议进行数据通信,实现资源共享的计算机集合。
网络的分类
- 局域网(LAN, Local Area Network)
- 广域网(WAN, Wide Area Network)
- 城/市域网(MAN, Metropolitan Area Network)
网络分层
网络分层常见的分层模型有 TCP/IP 四层模型
、TCP/IP 五层模型
、OSI 七层模型
。
OSI 七层模型的全称是开放系统互连参考模型(Open System Interconnection Reference Model), 是一种概念模型,由国际标准化组织(ISO)提出,用于使各种计算机在世界范围内互连为网络的标准框架。
物理层
物理层(Physical Layer)是 OSI 七层模型中的最底层,主要负责在物理传输媒介上传输数据比特流。
常用的物理层协议和标准包括 Ethernet、Wi-Fi、蓝牙等。 物理层关注的是数据传输的物理特性,如电压、电流、频率等,其数据单位叫做比特(bit)。
主要功能
- 数据的物理传输:通过电缆、无线等物理媒介将比特流从源传输到目的地。
- 数据的编码和解码:将数据转换为传输媒介可以识别和传输的信号,且在接收端进行解码。
- 定义物理设备标准:物理层直接和物理介质相关,主要定义了相关物理设备的标准,如网卡、网线、集线器、中继器、调制解调器等。
网线的线序
网线的线序分为两种主要类型:直通线缆(Straight-Through Cable)和交叉线缆(Crossover Cable)。
- 直通线缆:其水晶头两端都遵循
T568B
标准,直通线缆主要用于计算机与网络设备(如交换机或集线器)之间的连接。 - 交叉线缆:其水晶头一端遵循
T568A
标准,另一端遵循T568B
标准,交叉线缆主要用于计算机与计算机之间的直接连接,或者网络设备之间的某些特定连接。
T568A
:白橙、橙、白绿、蓝、白蓝、绿、白棕、棕
T568B
:白绿、绿、白橙、蓝、白蓝、橙、白棕、棕
数据链路层
数据链路层是 OSI 参考模型中的第二层,介乎于物理层和网络层之间。 它主要负责在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层。
主要功能
- 成帧(帧同步):将数据组合成数据块,封装成帧,以便在网络中传输。 这种帧格式传输方式的好处是,在发现有数据传送错误时,只需将有差错的帧再次传送,而不需要将全部数据的比特流进行重传,从而提高了传送效率。
- 差错控制:在数据通信过程中,由于物理链路性能和网络通信环境等因素,可能会出现一些传送错误。 数据链路层的差错控制功能可以尽量降低这些错误发生的几率。它通常利用抗干扰编码进行差错控制,如前向纠错(FEC)、反馈检测(ARQ)等。
- 流量控制:确保数据的发送和接收速度相匹配,防止因发送过快而导致数据丢失或接收方缓冲区溢出。
- 链路控制:建立、维持和终止数据链路连接,确保数据的可靠传输。
- MAC寻址:为网络中的每个设备分配一个唯一的MAC地址,以便在网络中识别和定位设备。
- 区分数据和控制信息:区分在数据链路层传输的数据和控制信息,确保它们能够正确处理和传输。
- 透明传输:无论所传数据是什么样的比特组合,都应当能够在链路上传送。 因此,数据链路层必须采用某种措施使通过的数据链路层的帧在比特组合上与链路所使用的某种数据链路层协议规定的特定控制信息在结构上出现差异,从而达到区分数据比特和控制比特的目的。
什么是 MAC 地址
MAC 地址全称为媒体访问控制地址(Media Access Control Address), 也称为局域网地址(LAN Address)、以太网地址(Ethernet Address)、硬件地址(Hardware Address)或物理地址(Physical Address)。
MAC地址实际上就是适配器地址或适配器标识符 EUI-48,用于在网络中唯一标示一个网卡。 每个网络设备都有一个唯一的MAC地址,类似于身份证号码,用于在局域网中识别和定位设备。 MAC地址由网络设备制造商生产时烧录在网卡的 EPROM(一种闪存芯片,通常可以通过程序擦写)中。
MAC地址由 48 位二进制数(6个字节)组成,通常表示为12个十六进制数,格式为 XX-XX-XX-XX-XX-XX1234
。 其前 3 个字节代表网络硬件制造商的编号,由 IEEE(电气与电子工程师协会)分配,而后3个字节代表制造商所制造的某个网络产品(如网卡)的系列号。
作用
- 在局域网内识别设备
- 防止欺骗
- 识别移动设备
特别的,现在为了提高用户在网络中的隐私保护,大多数设备都支持随机 MAC 地址功能。
网络层
网络层是OSI参考模型中的第三层,位于传输层和数据链路层之间。 它在数据链路层提供的两个相邻端点间的数据帧的传送功能上,进一步管理网络中的数据通信,将数据设法从源端经过若干个中间节点传送到目的端,从而向运输层提供最基本的端到端的数据传送服务。
主要功能
- 路由选择
- 拥塞控制
- 网络互连
- 等
在发送数据时,网络层把运输层产生的报文段或用户数据报封装成分组和包进行传送。 在TCP/IP体系结构中,由于网络层使用IP协议,因此分组也叫做IP数据报,或简称为数据报。
IP
TPv4 的地址被分为 A-E 五类:
类型 | 地址范围 |
---|---|
A | 0.0.0.0 ~ 127.255.255.255 |
B | 128.0.0.0 ~ 191.255.255.255 |
C | 192.0.0.0 ~ 223.255.255.255 |
D | 224.0.0.0 ~ 239.255.255.255 |
E | 240.0.0.0 ~ 255.255.255.255 |
这些地址范围是基于IPv4协议的。IPv6协议使用不同的地址格式和分类方式
传输层
传输层是 OSI 参考模型中的第四层,位于网络层之上,主要负责向两台主机进程之间的通信提供通用的数据传输服务。 传输层负责将上层数据分段并提供端到端的、可靠的或不可靠的传输。 传输层向高层屏蔽了下层数据通信的细节,使高层用户看到的只是在两个传输实体间的一条主机到主机的、可由用户控制和设定的、可靠或不可靠的数据通路。
主要功能
- 分割与重组数据
- 连接管理
- 按端口号寻址
- 提供流量控制
- 提供差错控制
TCP
TCP(Transmission Control Protocol,传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 它的设计目标是适应支持多网络应用的分层协议层次结构,并在不可靠的互联网络上提供可靠的端到端字节流。
TCP 的 三次握手 与 四次挥手
sequenceDiagram participant A as Client(IP: 1.1.1.1) participant B as Server(IP: 2.2.2.2) A ->> B: 发送 TCP 报文(TCP 头部:SYN=1, seq=a, ack=0) B -->> A: 发送 TCP 报文(TCP 头部:SYN=1, ACK=1, seq=b,ack=a+1) A ->> B: 发送 TCP 报文(TCP 头部:ACK=1, seq=a+1,ack=b+1) Note over A,B: 连接建立成功 A ->> B: 发送 TCP 报文(TCP 头部:FIN=1, ACK=1, seq=x, ack=y) B -->> A: 发送 TCP 报文(TCP 头部:ACK=1, seq=y,ack=x+1) B -->> A: 发送 TCP 报文(TCP 头部:FIN=1, ACK=1, seq=y,ack=x+1) A ->> B: 发送 TCP 报文(TCP 头部:ACK=1, seq=x+1,ack=y)
UDP
UDP(User Datagram Protocol,用户数据报协议)是一种无连接的传输层协议。 UDP 为应用程序提供了一种以最少的协议机制向其他程序发送消息的过程。 其主要特点包括无连接、不保证可靠传输和面向报文。
由于 UDP 不保证可靠交付,主机不维持复杂的连接状态,因此在发送数据前不进行连接,发送结束时也没有连接可以释放,从而减少了开销和发送数据之前的时延。
SSL
SSL(Secure Sockets Layer,安全套接层)是一种加密和保护网络通信的网络协议。 其主要作用是在客户端和服务器之间建立安全的连接,确保敏感数据在传输过程中不受到未经授权的访问或篡改。 SSL协议的主要功能包括加密数据、提供身份验证和完整性保护等安全特性。
TLS
TLS(Transport Layer Security,传输层安全性协议)是一种提供在两个通信应用程序之间保密性和数据完整性的协议。 TLS 是 SSL 协议的继任者,并提供了比SSL更高级别的安全性。
TLS 协议由两层组成:TLS 记录协议(TLS Record)和 TLS 握手协议(TLS Handshake)。 当两个应用程序之间需要建立安全连接时,它们会使用 TLS 握手协议来协商加密算法、交换密钥,并验证对方的身份。 一旦握手成功,它们就可以使用 TLS 记录协议来加密和解密传输的数据。
TLS协议是可选的,并且必须配置客户端和服务器才能使用。
会话层
会话层是 OSI 七层协议中的第五层。它建立在传输层之上,利用传输层提供的服务,使应用建立和维持会话,并能使会话获得同步。 会话层的主要功能包括会话管理、同步、对话控制、会话恢复以及安全性和身份验证等。
表示层
表示层(Presentation Layer)位于 OSI 参考模型的第六层。 它主要负责数据的表示,即确保应用层的数据能够被正确地解释和显示。 表示层的主要功能包括数据格式化、数据压缩、数据加密以及数据转换等。
应用层
应用层是 OSI 参考模型的最高层,也是直接为应用进程提供服务的层。 应用层的主要任务是通过应用进程间的交互来完成特定网络应用。 应用层协议定义的是应用进程间通信和交互的规则。
常见的协议包括HTTP(用于网页浏览)、FTP(用于文件传输)、SMTP(用于电子邮件发送)、POP3(用于电子邮件接收)、DNS(用于域名解析)等。