应用层

应用层是参考模型的最上层,也是距离用户最近的一层,为各式各样的应用定义了通信规则和协同方式,满足不同的应用需求。围绕这个主题,本章主要探讨了以下内容。 (1)应用进程通信方式与套接字编程 客户/服务器模型(C/S):服务器长期运行,被动等待请求;客户主动发起请求,完成服务后断开。优点是集中管理,缺点是服务器可能成为瓶颈。现代 Web、FTP、电子邮件均采用此模型。 套接字(Socket):应用层与传输层的编程接口。原语包括: socket():创建套接字。 bind():绑定本地地址和端口(服务器用)。 listen()(TCP):进入被动监听状态。 accept()(TCP):接受连接请求。 connect()(TCP):主动连接服务器。 send()/recv() 或 write()/read():数据传输。 close():关闭连接。 基于 TCP 的套接字流程:服务器创建→绑定→监听→接受;客户端创建→连接→通信;可靠有序字节流。 基于 UDP 的套接字流程:无需连接,直接使用 sendto()/recvfrom(),发送和接收数据报。 (2)域名系统(DNS) DNS 负责将主机名(如 www.example.com)解析为 IP 地址。域名空间为层次树结构,根域为 ""(点),顶层域(TLD)包括通用域(.com, .org)和国家域(.cn, .uk)等。 域名服务器按层次分工: 根域名服务器:全球 13 组(逻辑上),不直接解析,只指引到 TLD 服务器。 顶级域名服务器:负责特定 TLD 下的域名。 权威域名服务器:负责特定域(如 example.com)的所有记录。 本地域名服务器:ISP 或企业网络提供,缓存解析结果,代表用户发起查询。 解析算法: 递归查询:本地域名服务器代为请求其他服务器,将最终结果返回用户。 迭代查询:本地域名服务器依次询问各服务器(根→TLD→权威),每个服务器返回下一级地址。 DNS 缓存:各层服务器缓存解析结果,降低延迟,但必须设置 TTL 以确保更新。 (3)典型应用层协议 文件传输(FTP):使用两个 TCP 连接:控制连接(端口 21,发送命令)和数据连接(端口 20,传输文件)。支持主动模式(服务器主动连接客户端)和被动模式(客户端连接服务器协商的端口)。 远程登录 TELNET/SSH: TELNET(端口 23):明文传输,不安全。 SSH(端口 22):加密认证,支持远程 shell、文件传输(SFTP)、端口转发。 电子邮件协议: SMTP(简单邮件传输协议)(端口 25):用于邮件客户端到服务器、服务器到服务器之间的邮件发送。仅支持 ASCII 文本,使用 MIME 支持多媒体。 POP3(邮局协议第3版)(端口 110):下载邮件到本地,通常删除服务器上的邮件。 IMAP(互联网消息访问协议)(端口 143):邮件保留在服务器上,支持远程文件夹管理、部分下载。 MIME(多用途互联网邮件扩展):在邮件中传输非 ASCII 内容(图片、音频、附件),通过定义新的内容类型(Content-Type)和编码方式(Base64、QP)。 ...

August 27, 2025 · 1 min · farmer3-c

网络层

网络层是两个核心层之一,其功能是将分组从源主机一路送到目的主机。本章围绕这个功能,探讨网络层的技术和协议。 网络层服务模型 网络层首先探讨了源和目的之间的通信网络的分类和提供的服务: 数据报网络:提供无连接的服务,每个分组(数据报)独立路由,使用 IP 协议。特点:不维护连接状态,分组可能乱序到达。优点:鲁棒性强,适合动态路由。 虚电路网络:提供面向连接的服务,通信前需建立虚电路(如 X.25、ATM、MPLS)。特点:所有分组沿相同路径按序到达,可以预留资源(QoS)。缺点:需要维护连接状态,容错性差(节点故障导致所有连接中断)。 网络层上的协议分为被路由协议(routed protocol)和路由选择协议(routing protocol): 被路由协议:为分组的路由提供所需要的信息,例如 IP 协议提供地址和分组格式。 路由选择协议:用于填充路由表,如 RIP、OSPF、BGP。 IPv4 地址与子网划分 IPv4 地址表示和分类 IPv4 地址长度为 32 位,通常用点分十进制表示(如 192.0.2.1)。最初分为五类(A、B、C、D、E): A 类:首位 0,网络号 8 位,主机号 24 位(范围 0.0.0.0 – 127.255.255.255),但 0 和 127 保留,实际 1–126。 B 类:首位 10,网络号 16 位,主机号 16 位(128.0.0.0 – 191.255.255.255)。 C 类:首位 110,网络号 24 位,主机号 8 位(192.0.0.0 – 223.255.255.255)。 D 类(组播):1110 开头,地址 224.0.0.0 – 239.255.255.255。 E 类(保留):240.0.0.0 – 255.255.255.255。 子网划分与 CIDR IPv4 地址资源按块分配给 ISP,个人用户从 ISP 获取 IP 地址。为了方便管理和节约 IP 地址,使用子网掩码(如 255.255.255.0)将主机号再分为子网号和子网内主机号。**可变长子网掩码(VLSM)**允许不同子网使用不同掩码长度,尽量不浪费地址。 ...

August 27, 2025 · 2 min · farmer3-c

传输层

传输层是承接应用层和网络层的关键一环,传输层基于网络层提供的服务将主机与主机之间的通信封装为端与端之间的通信,实现了两台主机进程之间的数据交付,并且为上层应用屏蔽了复杂的底层网络细节,建立了网络的抽象模型。围绕以上特性,本章探讨传输层使用的技术。 (1)传输层多路复用/分用功能与端到端传输 传输层通过 多路复用 和 多路分用 实现多个应用进程共享网络层服务。 多路复用:发送方传输层将多个应用进程的数据(来自不同套接字)封装成数据段,然后传递给网络层。 多路分用:接收方传输层根据数据段中的端口号,将数据交付给正确的套接字(即相应进程)。 端口:16 位整数(0–65535),用于标识主机上的特定进程。 熟知端口(0–1023):分配给标准服务,如 HTTP(80)、HTTPS(443)、FTP(21)、SSH(22)、DNS(53)。 注册端口(1024–49151):用户应用程序使用,需要向 IANA 注册。 动态/私有端口(49152–65535):客户端临时使用。 套接字(Socket):IP 地址 + 端口号的组合,唯一标识网络中的一个端点。套接字是应用层与传输层之间的编程抽象。 传输层提供两种核心服务模式:无连接的 UDP 和面向连接的 TCP。 (2)UDP(用户数据报协议) UDP 提供无连接、不可靠的数据传输服务,不保证顺序,不进行重传。 特点: 无连接:发送前无需建立连接,每个 UDP 数据段独立处理。 轻量:头部开销小(仅 8 字节),无拥塞控制和流量控制。 支持组播和广播。 应用场景:对延迟敏感、容忍丢包、实时性要求高的场景(如 DNS 查询、VoIP、视频直播、在线游戏)。 UDP 数据段格式: 源端口(2 字节)、目的端口(2 字节)、长度(2 字节,包括头部和数据)、校验和(2 字节,覆盖头部和数据及伪头部)。 校验和计算:包含 UDP 伪头部(源 IP、目的 IP、协议号、UDP 长度),用于检测从网络层到传输层的差错。 典型应用: 远程过程调用(RPC):客户调用远程服务时,UDP 的低延迟适合请求-响应交互。 实时传输协议(RTP):通常运行在 UDP 上,传输音视频媒体流,允许少量丢包。 (3)TCP(传输控制协议) TCP 提供面向连接、可靠、有序的字节流服务。 特点: 面向连接:数据传输前需经过三次握手建立连接。 可靠传输:使用序号、确认、重传保证数据不丢失、不重复、按序到达。 流量控制:基于滑动窗口机制,协调发送速率避免接收方缓存溢出。 拥塞控制:动态调整发送速率,避免网络过载。 全双工通信:支持双向同时传输数据。 TCP 数据段格式: 源端口、目的端口(各 2 字节) 序号(4 字节,本段第一个字节的序号) 确认号(4 字节,期望收到的下一个序号,表示之前的数据都已收到) 数据偏移(4 位,头部长度) 标志位:ACK(确认有效)、RST(复位)、SYN(同步序号)、FIN(终止连接)、URG(紧急指针有效)、PSH(立即推送) 窗口大小(2 字节,接收方给出的剩余缓存空间) 校验和(2 字节,覆盖头部、数据和伪头部) 紧急指针(2 字节,与 URG 配合) 选项(可变长,如最大段大小 MSS、时间戳、窗口缩放因子) 可靠传输机制: ...

August 27, 2025 · 2 min · farmer3-c

链路层

数据链路层的主要功能 数据链路层位于物理层和网络层之间,其主要功能包括: 成帧:将网络层交付的比特流封装成独立的帧,添加帧头和帧尾,以便接收方能识别帧的边界。 差错控制:通过检错码或纠错码检测(或纠正)传输过程中产生的比特错误,并可配合重传机制。 流量控制:协调发送方和接收方的速率,防止接收方缓存溢出。 介质访问控制(MAC):在广播型多路访问链路(如以太网、WiFi)上,决定哪个节点何时占用信道。 链路管理:建立、维护和释放数据链路层的连接(在面向连接的链路中)。 可靠传输:在不可靠的物理链路上,通过确认和重传机制实现数据的可靠交付。 本章对成帧的基本方法进行了详细的描述;针对错误的处理这一数据链路层的重要任务,介绍了检错和纠错的基本原理和典型的编码方法;详细介绍了奇偶检验、循环冗余校验、互联网校验等常用检错码,以及纠1位错的海明码、里所码、低密度奇偶检验等常用纠错码。 成帧的基本方法 成帧是指将原始比特流分割成若干独立的帧,以便接收方能准确提取每个帧的数据。常用方法: 字节计数法:帧头中使用一个字段表示帧的总长度(字节数)。接收方读取长度字段后,就知道从哪里结束。缺点:长度字段本身出错会导致帧同步丢失。 字节填充的标志字节法:使用特殊标志字节(如 FLAG=0x7E)表示帧的开始和结束。如果数据中出现了标志字节,则在其前面插入转义字节(如 ESC=0x7D)。接收方遇到转义字节则删除并还原数据。 比特填充的标志比特法(HDLC 常用):使用标志位序列 01111110 作为帧边界。发送方在数据中连续出现 5 个 1 后自动插入一个 0;接收方连续收到 5 个 1 后,若下一比特为 0 则删除该 0,若为 1 且再下一比特为 0 则视为标志。该方法避免了修改数据内容长度。 物理层编码违例法:利用物理层编码中的“非法”信号作为帧边界(例如曼彻斯特编码中不使用连续的相同电平)。仅适用于特定的物理层编码。 检错与纠错基本原理 检错码:在数据后添加冗余位(校验位),使得接收方能根据校验位判断数据是否出错。常见检错码:奇偶校验、循环冗余校验(CRC)、校验和(Checksum)。检错码无法确定错误位置,只能判断“有/无错误”。 纠错码:添加更多冗余位,使接收方能不仅检测错误,还能定位并纠正一定数量的错误比特。典型纠错码:海明码(纠1位错)、BCH码、里所(Reed-Solomon)码、低密度奇偶检验(LDPC)码。纠错码的编码效率(数据位/总位数)较低,适用于无法重传的场景(如深空通信、实时音频)。 常用检错码详解 奇偶校验:在数据后面附加一个比特,使整个数据中 1 的个数为奇数(奇校验)或偶数(偶校验)。可以检测奇数个比特错误,但不能检测偶数个错误,且无法纠错。 循环冗余校验(CRC):将数据视为多项式,用生成多项式相除,余数作为 CRC 码附加。接收方重新计算并比对余数。可以检测任意长度的大多数突发错误(取决于生成多项式),广泛用于以太网、WiFi、存储设备。 互联网校验和(Internet Checksum):将数据按 16 位字分组,进行二进制反码求和,结果取反。简单高效,用于 IP、TCP、UDP 头部校验。错误检测能力弱于 CRC,但便于在软件中快速计算。 常用纠错码简介 海明码(Hamming Code):通过在数据位之间插入校验位,使得数据位与校验位形成多个奇偶校验组。能够纠正单比特错误,并能检测双比特错误(扩展海明码)。最小码距为 3(或 4)。 里所码(Reed-Solomon, RS):非二进制纠错码,以符号(如 8 位字节)为单位进行编码,非常擅长纠正突发错误。广泛用于光盘、QR 码、卫星通信、数字电视。 低密度奇偶检验码(LDPC):使用稀疏校验矩阵,通过迭代置信传播译码,性能接近香农极限。用于 5G、WiFi 6(802.11ax)、10G 以太网等。 为了实现数据链路层上的可靠传输,本章介绍了利用停-等协议实现流量控制,利用肯定确认与重传机制处理信道上出现差错的情况。此外,为了提高信道利用率,本章介绍了滑动窗口协议的基本思想,在此基础上详细说明了回退 n 帧协议和选择性重传协议的工作原理,并对两者的滑动窗口大小进行了分析。 ...

August 27, 2025 · 2 min · farmer3-c

物理层

物理层负责比特流的透明传输 物理层是参考模型中的最底层,是最基础的一层。本章探讨传输比特所需要的介质和所使用的技术。 通信 信道 物理层通信:利用物理传输介质,将计算机中的比特流(0、1)转换为电信号、光信号或电磁波信号,在物理链路上实现透明、原始的比特流传输,不负责数据含义与纠错,只负责信号的发送与接收。 信道:在物理层中,传送信号的通路,是传输比特流的逻辑通道,包含传输介质和相关通信设备。 模拟和数字通信 数字和模拟通信的区别在于使用数字信号还是模拟信号进行传递消息。 模拟信号:代表信息的信号及其参数(幅度、频率或相位)随着消息连续变化的信号,它在幅度上连续,但在时间上可以连续也可以不连续。 波形连续,具有无穷多个幅度取值; 易受干扰,噪声会累积且难以去除; 不易加密,不易存储和处理(需先数字化); 典型例子:传统电话语音、模拟电视信号。 数字信号:不仅在时间上是离散的,而且在幅度上也是离散的信号,通常只取有限个离散值(如二进制信号取0和1)。 波形离散,只传送0和1; 抗干扰能力强,噪声不会累积(可通过中继器再生); 易加密、易存储、易纠错,与计算机系统天然兼容; 典型例子:以太网信号、USB信号、光纤通信信号。 并行和串行通信 串行通信:数据在传输过程中,逐位依次传输,一次只传输一个比特。数据通过单一的通信线路(如一根电线或一根光纤)按顺序发送和接收。 优点:节省线路资源,线缆成本低;远距离传输时不易出现信号间干扰(串扰)。 缺点:传输速率相对较低(需通过提高时钟频率来提升速率)。 典型应用:USB、RS-232、I²C、以太网(内部串行化)、SATA。 并行通信:数据在传输过程中,同时通过多条线路传输,一次可以传输多个比特。通常每条线路传输一个比特,多条线路同时传输数据。 优点:相同时钟频率下,数据吞吐量是串行的N倍(N为并行位数)。 缺点:线路多,成本高;远距离时不同线路的信号到达时间可能不一致(时延偏移),限制传输距离和速率。 典型应用:旧式打印机并口(Centronics)、IDE硬盘接口、芯片内部总线。 同步和异步通信 异步通信:收发双方时钟各自独立,以字符为单位传输,每个字符加起始位、停止位做同步。 特点: 按字符逐个发送,字符之间的间隔不固定; 无需统一的时钟信号,实现简单,成本低; 每个字符需要额外的起始位和停止位(通常每8位数据需2-3位开销),传输效率较低; 适用于低速、间歇性数据传输。 例子:串口RS-232、键盘输入、鼠标通信。 同步通信:收发双方使用统一时钟信号(可由单独时钟线或从数据信号中提取),以数据块/帧为单位连续传输,不需每个字符加起止位。 特点: 连续成块传输,数据块内比特间隔固定; 收发双方时钟需严格同步(使用同步时钟或锁相环); 传输效率高,额外开销仅为帧头帧尾(如标志位或同步字符); 硬件复杂,适合高速、大块连续数据传输。 例子:以太网、光纤通信(SONET/SDH)、USB高速模式。 单工、半双工和全双工通信 单工通信 定义:信息只能单向传输,一方固定发送,一方固定接收,不能反向。 例子:广播、电视、遥控器。 半双工通信 定义:双方都能收发,但同一时刻只能单向,不能同时发和收。 例子:对讲机、传统步话机、RS-485总线。 全双工通信 定义:双方可同时发送和接收,双向互不干扰。 例子:手机通话、以太网(使用独立收发线对)、微信语音通话。 信号传输特性与信道容量 通过信号的傅里叶分析,本章解释了其传输过程存在的衰减、失真等现象,引入了截止频率、物理带宽的概念以及它们对信号传输的影响。 傅里叶分析与信号失真 任何周期信号都可以分解为一系列不同频率的正弦波(基波和谐波)的叠加。当信号通过实际信道时,不同频率分量会经历不同的衰减和相移,导致接收端波形发生畸变。 幅度衰减:高频分量衰减通常比低频分量更严重,导致信号边沿变缓。 相位失真:不同频率的传输延迟不同,造成码间干扰。 信道带宽:信道的截止频率范围,只有频率落在带宽内的分量才能被有效传输。 信道带宽与截止频率 物理带宽:信道能够通过的最大频率与最小频率之差,单位为赫兹(Hz)。例如,话音信道带宽约为3.1 kHz(300 Hz~3.4 kHz)。 截止频率:信号功率衰减超过某一阈值(通常为-3 dB)的频率点。 影响:带宽越窄,可传输的高频分量越少,输出波形越接近“圆滑”,可能导致接收端无法区分相邻比特。 信道容量:奈奎斯特定理与香农定理 信道的物理带宽直接影响信道的传输性能,即它的传输速率,或者数字带宽。 奈奎斯特定理(无噪声信道) 对于无噪声、带宽为 B 赫兹的理想信道,最大数据速率为: 最大数据速率 = 2B * log2(M),其中 M 为信号电平数(如M=2,则速率为 2B bps)。 该定理给出了在避免码间串扰条件下的理论上限。 ...

August 27, 2025 · 2 min · farmer3-c

计算机网络概述

计算机网络在信息时代的作用 计算机网络已经成为信息社会的核心基础设施。它使得人们可以随时随地访问、处理和交换信息,极大地促进了数字化、网络化和智能化的发展。具体作用包括: 信息共享:用户可以通过网络访问分布在世界各地的信息资源(网页、数据库、文件等)。 通信协同:电子邮件、即时消息、视频会议等应用支持人与人、人与机器之间的高效协作。 远程访问:支持远程办公、在线教育、远程医疗等,打破了地理限制。 电子商务与金融:网络支付、网上银行、在线购物等改变了传统商业模式。 娱乐与媒体:流媒体、社交网络、在线游戏等丰富了人们的文化生活。 互联网概述 网络的网络 互联网是由众多计算机网络(局域网、城域网、广域网)通过路由器互联而成的“网络的网络”。其两大基本特点是: 连通性:任何接入互联网的用户(终端)之间都可以相互交换数据,仿佛彼此直接相连一样。这种连通性不受物理距离的限制。 共享性:指资源共享,包括信息(网页、文件)、软件(在线服务、云应用)和硬件(如远程打印机、算力资源)。共享使得资源利用率大幅提升,降低了成本。 互联网基础结构发展三个阶段 第一阶段(1969–1990):ARPANET 到互联网雏形 1969 年美国国防部建立 ARPANET,最初只有 4 个节点。 20 世纪 70 年代提出 TCP/IP 协议体系。 1983 年 ARPANET 全面采用 TCP/IP,标志着现代互联网的诞生。 80 年代中期美国国家科学基金会建立 NSFNET,成为主干网。 第二阶段(1990–2000):商业化与万维网兴起 1990 年 ARPANET 停止运行,NSFNET 成为骨干。 1991 年万维网(WWW)公开,浏览器出现,互联网向公众开放。 1995 年 NSFNET 退役,互联网完全由商业 ISP 运营,进入爆炸式增长。 第三阶段(2000 至今):移动互联网、物联网与高速宽带 光纤到户、4G/5G 移动通信普及。 智能终端、云计算、社交网络、流媒体成为主流。 物联网(IoT)将数十亿设备接入互联网,进入“万物互联”时代。 互联网的标准化工作 互联网的标准化由 IETF(互联网工程任务组) 等组织负责,遵循“ rough consensus and running code” 原则。主要成果以 RFC(Request For Comments) 文档形式发布。 Internet Standard:经过充分验证的正式标准(如 RFC 791 – IP、RFC 793 – TCP)。 Proposed Standard / Draft Standard:处于不同成熟度的草案。 此外还有 BCP(Best Current Practice)、Informational 等类型。 标准化过程公开透明,任何人均可提交提案,保证了互联网的开放性和快速演进。 互联网的组成 互联网从物理结构上由以下四类元素构成: ...

August 27, 2025 · 2 min · farmer3-c

计算机网络

计算机网络 概述 物理层 链路层 网络层 传输层 应用层 参考 计算机网络, 谢希仁 CS-Notes book

August 27, 2025 · 1 min · farmer3-c