计算机网络(湖南科技大学)
计算机网络基础
- 一、背景概述
-
- 网络系统、互联网及其发展脉络
- 1.2 演进过程中的三个关键阶段
- 1.3 ISP作为互联网服务的核心组成部分
- 以三层架构支撑的互联网体系框架
- 规范制定与协调推进的过程
- 构成要素分析
-
第二章 计算机网络基础
2.1 三大通信手段
2.1.1 电路传输(Circuit transmission)
2.1.2 数据包传输(Data packet传输)
2.1.3 消息传递(Message transmission)
2.1.4 三者之间的对比分析
-
2.2 计算机网络的概念
-
2.3 计算机网络的划分
-
- 2.3.1 按交换技术划分
- 2.3.2 按使用环境划分
- 2.3.3 按传输介质划分
- 2.3.4 按网络覆盖范围划分
- 2.3.5 按拓扑结构划分
-
2.5 计算机网络的性能指标
-
- 2.5.1 数据传输速率
-
- 2.5.2 数据传输带宽
-
- 2.5.3 数据吞吐量
-
- 2.5.4 数据延迟
-
- 2.5.5 延迟与带宽乘积
-
- 2.5.6 Round-Trip Time(RTT)
-
- 2.5.7 网络利用率
-
- 2.5.8 数据丢包比率
-
2.6 计算机网络的架构设计
-
- 2.6.1 常见的计算机网络架构
- 2.6.2 计算机网络架构设计的重要性和作用
- 正文:重要性:提供清晰的层次划分有助于系统管理;
- 正文:作用:通过层次化设计优化资源分配。
- 正文:总结:这种划分有助于提高系统的可维护性和管理效率。
- 正文:关键点在于明确各层次的功能与协作关系。
- 正文:具体实施时需要遵循一定的组织原则与方法论。
- 正文:最终目标是实现系统性能的最大化与稳定性保障。
-
2.6.3 常见的计算机网络架构
-
2.6.4 计算机网络架构设计中涉及的关键专业用语及其定义与意义
-
在架构设计过程中涉及的关键专业用语包括拓扑学、数据链路等术语;
-
这些术语用于定义系统的功能模块及其相互关系与协作机制;
-
主要目的是确保系统的高效运行与信息的安全传输。
-
三、物理层
-
-
3.1 物理层协议的主要任务
-
- 3.1.1 机械特性
- 3.1.2 电气特性
- 3.1.3 功能特性
- 3.1.4 过程特性
-
3.2 传输媒体(严格来说,不属于任何一层)
-
- 3.2.1 导引型传输媒体
- 3.2.2 非导引传输媒体
-
-
3.3 传输介质
* 3.3.1 单向数据流
* 3.3.2 多线程数据交换
* 3.3.3 同步通信链路
* 3.3.4 异步数据交互
* 3.3.5 单工连接模式
* 3.3.6 半双工通信模式
* 3.3.7 全双工连接模式
* 3.4 编码与调制
* * 3.4.1 常用编码
* 3.4.2 基本调制方法
* 3.4.3 混合调制
* 3.5 信道的极限容量
* * 3.5.1 面临问题
* 3.5.2 失真因素
* 3.5.3 奈氏准则
* 3.5.4 香农准则
* 3.5.5 总结
- 四、数据链路层
- 4.1 数据链路层概述部分
- 4.2 数据链路层的关键问题
-
- 4.2.1 点对点式的数据链路层(路由器的转发功能)
- 4.2.2 广播式的局域网覆盖(共享式局域网)
- 4.2.3 交换式的网络架构(交换式局域网)
- 4.2.4 无线网络的技术发展(无线局域网)
- 4.2.5 总结
- 4.1 数据链路层概述部分
4.3 封装成帧
* 4.3.1 目的
* 4.3.2 存在问题(接收方获取视频帧)
* 4.3.3 解决方法
* 4.3.4 其他方法(例如H.264编码方案)
* 4.3.5 透明传输
* 4.3.6 帧的数据构成规定
-
错误检测
- 错误描述
- 解决方案概述
- 具体方法之奇偶校验法
- 具体方法之循环冗余校验 CRC (Cyclic Redundancy Check)
-
第4章 数据可靠性传输
- 第4章第5节 前提条件
- 第4章第5节之1 数据传输存在的主要问题
- 第4章第5节之2 不同类型的传输错误
- 第4章第5节之3 实现可靠数据传输的具体方法——停止-等待协议(SW)
- 第4章第5节之4 实现可靠数据传输的具体方法——回传N帧协议(GBN)
- 第4章第5节之5 实现可靠数据传输的具体方法——重传选择协议(SR)
- 【注
- 第4章第5节 前提条件
-
4. 点对点协议 (PPP)
-
- 4.1 概念定义
-
- 4.2 具体内容
-
- 4.3 PPP 协议的具体帧格式
-
- 4.4 PPP 协议的透明传输机制
-
- 面向字节的异步链路采用通过在异步链路字节中插入转义字符实现字节填充的方法
-
- 面向比特的同步链路采用通过在同步链路中插入比特0实现比特填充的方法
-
- 差错检测过程及其工作状态分析
-
第四章第七节 MAC地址管理与介质访问控制机制
-
- 第七节概念阐述
-
- 第七节分类概述
-
- 基于静态划分的信道管理方案设计
-
- 动态接收到随机化的访问机制优化研究(适用于总线型局域网场景的技术规范)
-
-
动态接收到随机化的访问机制优化研究(适用于无线型局域网场景的技术规范)
- 4.8 MAC地址、IP地址、ARP协议
-
- 4.8.1 MAC地址
- 4.8.2 IP地址
- 4.8.3 ARP协议
-
-
4.9 集线器与交换机之间的主要区别
-
- 4.9.1 初始采用总线型架构的局域网方案
-
- 4.9.2 基于双绞线连接并通过集线器HUB实现的星型网络架构
-
- 4.9.3 利用集线器HUB技术在物理层面上实现网络规模扩展
-
- 4.9.4 网络层域内的智能数据转发设备
-
- 4.9.5 网络层设备如何自主学习并转发数据帧的过程
-
- 4.9.6 网络层设备如何执行自学习并成功发送数据帧的操作流程
-
4.10 在以太网交换机中的生成树协议STP
-
4.11 虚拟局域网VLAN的基本概述
-
-
4.11.1 问题描述
-
4.11.2 方案探讨
-
4.11.3 虚拟局域网VLAN的具体实现机制
-
五、网络层
-
- 5.1 网络层概述
-
- 5.1.1 主要任务
- 5.1.2 存在问题
- 5.1.3 TCP/IP协议栈
-
-
5.2 网络层提供的两类服务
-
- 5.2.1 基于连接的虚拟电路传输(互联网未采用该功能)
-
- 5.2.2 不依赖连接的数据分组传输(互联网采用了该功能)
-
- 5.2.3 这两种传输方式的比较分析
-
第五章 网络层技术
-
第五章第三节 IPv4地址
- 第五章第三节之1 背景分析
- 第五章第三节之2 IPv4地址的表示方法
- 第五章第三节之3 基于分类编码的IPv4地址
- 第五章第三节之4 划分子网使用的IPv4地址
- 第五章第三节之5 无分类编码的IPv4地址(注:此处存在编号重复的情况)
- 第五章第三节之6 IPv4应用规划方案
-
5.4 IP数据报的发送和转发过程
-
- 5.4.1 主要内容
- 5.4.2 举例说明
-
5.5 静态路由配置及其可能产生的路由环路问题
-
- 5.5.1 静态路由配置
-
概述:路由器的路由选择协议
内容介绍
互联网中使用的路由选择协议的主要特性
各部分中使用的具体协议类型
路由器的组成结构
概述:路由器的路由选择协议
内容介绍
互联网中使用的路由选择协议的主要特性
各部分中使用的具体协议类型
路由器的组成结构
-
5.7 路由信息协议RIP的基本工作原理
-
- 5.7.1 RIP介绍
- 5.7.2 RIP的基本工作过程
- 5.7.3 RIP中更新路由条目的规则
- 5.7.4 RIP在错误信息传播方面存在效率较低的问题
-
5.8 开放最短路径优先OSPF的基本工作原理
-
- 5.8.1 内容
- 5.8.2 OSPF的基本工作原理
-
5.9 边界网关协议BGP的基本工作原理
-
- 5.9.1 存在问题一
- 5.9.1 存在问题二
- 5.9.3 要求
-
-
5.10 IPv4数据包头部信息构成
-
5.11 网际层控制信息协议ICMP作用机制
-
5.12 基于虚拟专用网的技术实现 VPN功能及相应的网络地址转换机制 NAT运行原理
第六章 数据传输层
第六章 第七节 连接管理技术
*第七章 应用层面
-
第七节·电子邮件
-
第七节·第六条的第一部分 内容及原理
-
第七节·第六条第二部分 SMTP 协议的工作机制
-
第七节·第六条第三部分 常用的邮件访问协议
-
第七节·第六条第四部分 基于互联网的电子邮件
-
第七章第七节:World Wide Web (WWW)
- 第七章第七节第1小节:对万维网的定义
- 第七章第七节第2小节:Web浏览器
- 第七章第七节第3小节:万维网的具体应用场景
- 第七章第七节第4小节:The HyperText Transfer Protocol (HTTP)
- 第七章第七节第5小节:The format of HTTP messages
- 第七章第七节第6小节:The principles and applications of cookies
- 第七章第七节第7小节:The cache mechanisms and proxy servers associated with the World Wide Web
一、因特网背景
1.1 网络、互连网(互联网)和因特网
- 网络:网络(Network)由大量节点以及连接这些节点的线路构成。
- 互联网:多个子网络通过路由器进行互联从而形成一个更大的集成系统即互联网或者称为互连网因此互联网可被定义为"网格状互连网格"。
- 因特网:拥有数十亿用户的全球顶级信息资源共享平台总计包含数百个相连的子网其规模位居世界之首
注意:internet与Internet的区别
internet(互联网或全球范围内的计算机网络体系)是一个通用名词,在这一概念下包含了多个独立运行但相互连接的网络系统。这些系统之间的通信机制可以是任意设计的,并且根据实际需求可动态调整性能参数以适应不同的应用场景。
Internet(因特网)则是一个专用术语,在当前全球信息时代中具有核心地位。它特指由美国ARPANET项目演进而成的大规模开放性计算机网络体系,在这一架构下采用了标准化的通信协议族TCP/IP,并形成了完整的功能体系和服务模式。
1.2 因特网发展的三个阶段

1.3 因特网服务提供者ISP
- 接入因特网流程:具体来说,是借助isp网络实现的。isp可以从国家互联网管理机构申请获得成块的ip地址,并配备了通信线路和路由器等网络设备。因此,在支付相关费用后即可通过isp获取所需的ip地址(因为所有进入互联网的主机都需要分配唯一的ip地址以便进行数据传输),从而可利用该isp成功接入到因特网上。
- 我国isp:主要由中国电信、中国联通、中国移动三大电信运营商承担运营职责。
1.4 基于ISP三层结构的因特网
注意:位于外围的用户A和B,在想要实现通信时,则必须经过若干个ISP节点;另一方面地,在只要A或B中的任何一个能够接入互联网的情况下,则该用户提供者就可以充当一个ISP的角色(这通常只需要购买几台调制解码器或路由器这类设备)。
1.5 因特网的标准化工作

1.6 因特网的组成
- 边缘区域:包括通过互联网连接的各种设备集合。这些设备用于实现日常互动中所需的功能(如数据传输、语音传输和视频传输),同时也承担着资源共享的任务。
- 核心架构:复杂网络结构中的节点主要由路由器构成。这些路由器不仅负责向外围用户提供接入支持,并通过路由转发数据到相关节点完成信息交互。

二、计算机网络基础
2.1 三种交换方式
2.1.1 电路交换(Circuit Switching)

注意:由于效率低下,在电话通信领域应用较为广泛;而对电脑以及手机等其他物联网设备并不适用
2.1.2 分组交换(Packet Switching)
在发送端通常会将表示该消息的一整块数据定义为一个报文段,在接收端系统中接收方通常会将接收到的一个完整报文段划分为多个子报文段并进行处理,在每个子报文段头字段中附加必要的控制信息字段(即包头字段),并将这些子报文段按照一定的传输策略进行传输。接收方根据接收到的子报文段中的目标地址信息通过预设的数据传输表查找对应的输出接口地址,并将子报文段传输至下一个传输节点处理。发送端通常会按顺序将构造好的各个子报文段依次发送出去,在所有中间经过的传输节点都会对这些数据包进行暂存和转发处理,并最终完成所有中间节点的数据流转工作后完成整个过程的所有节点间的数据流转工作后完成整个过程的所有节点间的数据流转工作)。在此过程中系统不仅能够保证原始数据的有效传递还能确保各环节的工作效率得到充分提升同时系统还能够根据实际需求动态地调节各环节的工作参数进而实现系统的优化运行。然而在实际应用中仍然存在许多需要解决的问题例如由于网络环境复杂导致的数据包丢失现象容易发生以及可能出现的数据传输错误问题等这些问题如果得不到有效解决将会严重影响系统的整体性能表现
网络中各个组成部分各自承担不同的职责:发送端具体来说负责生成和传输数据分组;路由器具体来说负责缓存和转发数据分组;接收端具体来说负责接收数据分组并还原报文。
注意:在互联网领域中,默认情况下扮演着核心地位的是路由器设备。这种设备的主要职责是处理来自不同网络的数据包互联问题,并通过其转发功能实现数据包间的高效传递机制。

2.1.3 报文交换(Message Switching)
在报文交换中遵循存储转发机制的节点同样采用了分段转发的方式。然而由于报文大小不受限制血药式交换节点能够实现较大的缓存容量。特别适用于早期...通讯网络而如今多为分组交换技术所取代
2.1.4 三种交换方式的对比


2.2 计算机网络的定义

2.3 计算机网络的分类
2.3.1 按交换技术分类
电路交换网络、报文交换网络、分组交换网络。
2.3.2 按使用者分类
- 公用网(也可称公众网),即由电信公司出资兴建的大规模通信设施,并规定了入网费用的事宜后即可供任意符合条件的人使用。
- 专用网则特指某个部门为了满足内部特定业务需求而建立的独特通信系统;这种系统仅限于本单位内部的服务范围。
2.3.3 按传输介质分类
- 有线网络(双绞线网络、光纤网络等)
- 无线网络(WiFi、4G)。
2.3.4 按网络的覆盖范围分类
- 广域网WAN(其地理分布通常延伸至几十至几千公里范围...),从而能够覆盖一个国家、地区甚至横跨多个洲构成互联网的核心网络系统。
- 城域网MAN
- 局域网LAN
- 个域网PAN(其主要功能是将个人使用的电子设备如笔记本电脑打印机鼠标键盘耳机等通过无线技术连接在一起形成一个私人物件网络系统。
2.3.5 按拓扑结构分类
总线型网络(使用单根线把计算机连接起来)

总线型网络优点表现为易于建立网络结构,并能灵活支持节点数量的增减操作;同时该网络架构可有效减少所需线路数量。
总线型网络缺点在于当系统负载过重时通信效率明显下降;而一旦任一通道发生故障会导致整个网络瘫痪。
星型网络(每个计算机都通过独立的线路连接至中心设备,在过去是直接连接到计算机,在现在则是采用交换机或路由器)

星型网络优点:便于实现网络的集中控制与管理,在实际应用中各终端设备的数据传输必须通过中心服务器才能完成交互操作。星型网络缺点:其硬件成本较高,在大规模部署时容易导致维护成本上升;同时由于中心服务器在发生故障时容易导致大规模数据丢失风险。
(由所有计算机的网络接口构成一个环;这个环可以是单一的循环或双向循环;在其中信息以单向传递的方式流动)
ring network is the typical example of ring topology in local area networks.

网状型网络(通常情况下,每个节点至少连接两条路径与其他节点相连,并常用于广域网环境)。

网状型网络优点:可靠性高
网状型网络缺点:控制复杂、线路成本高
2.5 计算机网络的性能指标
- 性能指标可以通过多个维度进行衡量以评估计算机网络的整体性能。
- 常见的计算机网络性能指标包括以下8项:速率(bit/s)、带宽(bps)、吞吐量(bps)、时延(包括往返时延)、时延带宽积(或称为数据传输效率)、往返时间(RTT, round-trip time)、利用率和丢包率。
2.5.1 速率
比特

举例来说,在U盘、硬盘或内存条的产品信息中



速率

2.5.2 带宽

2.5.3 吞吐量

2.5.4 时延
发送时延:源主机将分组发往传输线路所花费的时间。

需要注意的是,在计算机网络中,主机的数据传输性能受到多个关键因素的影响。具体而言,在无线网络环境下,在一个固定时刻内能够被正确接收的数据量主要取决于网卡端口的数据传输速度、信道的有效容量以及交换机接口的数据传输速率等多方面的共同作用。

传播时延:分组的信号在链路上传输所花费的时间。

传输延迟是指路由器从接收数据分组到完成存储转发所需的时间。通常难以精确测量。因此,在整体延迟中通常会忽略这一部分。
2.5.5 时延带宽积

2.5.6 往返时间

2.5.7 利用率

2.5.8 丢包率

2.6 计算机网络的体系结构
2.6.1 常见的计算机网络体系结构
- OSI体系结构(法律上的国际标准)

- TCP/IP体系结构(事实上的国际标准)

- 原理体系结构(方便学习)

2.6.2 计算机网络体系结构分层的必要性
- 计算机网络是一个高度复杂的系统。自ARPANET方案提出以来,就形成了分层架构的理念。
- 分层方法可将复杂问题分解为多个较小的部分,每个部分都相对容易解决。
- 让我们从简单到复杂逐步探讨实现计算机网络所面临的关键问题,并详细说明如何将其各个部分划分至相应的层次。
(1) 最简单的情况(两台计算机直接通过网线连接起来)
在两台计算机之间通信时,首先要进行哪些准备工作?这些准备工作包括选择合适的传输介质(介质)、采用适当的信号编码方式以及确定物理连接接口。完成这些准备工作后便能实现数据通信,并将这些内容归类为物理层。

注意:严格意义上说,传输媒体(介质)并不属于物理层。
(2)实际用的情况——只有一个网络(总线型网络为例)

情况:基于最简单的案例,在两台计算机之间实现了物理层连接;当主机A发送数据至主机C时,并非只有该信号到达本地机C;反而,在总线上所有主机都会接收到该数据信号。
会产生这样的问题:主机C如何判断该数据是否为自身发送?其他主机又如何判断该数据并非来自自身?
解决方法:使用MAC地址。
此时面临着诸多挑战:需解决的问题包括通过分析信号的比特流来识别标识与数据(引出相关协议)、并为多个主机争夺同一通信总线并引伸出相应的协调机制
但实际上一般不使用总线型网络结构,而使用星型网络结构。
上述问题都被划分到数据链路层。

(3)实际用的情况——有多个网络
现有网络由多个子网络构成,在不同子网络中的主机之间通信同样会遇到诸多挑战。例如IP地址协议(Internet Protocol),即IP地址本身作为一个标识系统,在此框架下即可很好地解决上述问题。此外,在数据包在转发过程中可以通过不同的路由路径传输(路由器需根据配置决定如何转发分组),这使得通信过程更加灵活多样。
把上述问题划分到网络层

(3)实际用的情况——有多个网络的前提下,电脑上有多个进程(应用程序)
在多个网络共存的情况下,在前三层协议下实现了主机间的通信保障;然而,在每台主机上运行多个应用程序时,则会带来一系列相关问题:如何确定哪一个程序接收数据而另一个程序不接收数据?如果出现传输错误应如何处理?将上述情况归类于传输层进行处理。

实际应用中——当存在多组网络的前提下,并且在电脑上运行了多个应用程序的情况下(或者说是同时打开了多个程序),系统会将收集到的数据也发送到了各个相关应用中(或者说是分配给各个相关的程序)。然而这些应用程序同样需要具备相应的协议解析功能以及相应的响应机制(或者说是处理流程)。

2.6.3 计算机网络体系结构分层的必要性总结

2.6.4 计算机网络体系结构分层的专业术语

三、物理层
3.1 物理层协议的主要任务
- 物理层关注的是如何实现数据比特流在不同传输介质之间的传输。
- 物理层通过将不同传输介质的差异进行隔离与屏蔽,在此之上数据链路层只需专注于本层级内的协议和服务实现即可。
3.1.1 机械特性
指明接口所用接线器的形状和尺寸、引脚数目和排列、固定和锁定装置。
3.1.2 电气特性
指明在接口电缆的各条线上出现的电压的范围。
3.1.3 功能特性
指明某条线上出现的某一电平的电压表示何种意义。
3.1.4 过程特性
指明对于不同功能的各种可能事件的出现顺序。
3.2 传输媒体(严格来说,不属于任何一层)
3.2.1 导引型传输媒体
- 同轴电缆

- 双绞线

- 光纤

- 电力线

3.2.2 非导引传输媒体

- 无线电波

- 微波

- 红外

- 可见光
例如:LIFI,尚处于实验室阶段。
3.3 传输方式
3.3.1 串行传输

3.3.2 并行传输

3.3.3 同步传输

3.3.4 异步传输

3.3.5 单向通讯(单工)

3.3.6 双向交替通讯(半双工)

3.3.7 双向同时通讯(全双工)

3.4 编码与调制

3.4.1 常用编码
不归零编码
缺点:存在同步问题

同步问题:

归零编码
优点:自同步;缺点:编码效率低

曼彻斯特编码

差分曼彻斯特编码
比曼彻斯特编码变化少,更适合较高的传输速率。

3.4.2 基本调制方法

3.4.3 混合调制
例如:正交振幅调制(QAM)


3.5 信道的极限容量
3.5.1 面临问题

3.5.2 失真因素
- 码元传输速率
- 信号传输距离
- 噪声干扰
- 传输媒体质量
3.5.3 奈氏准则

3.5.4 香农准则

3.5.5 总结

四、数据链路层
4.1 数据链路层概述
线路(Link)是由一个节点连接到其相邻节点构成的一段物理线路,并且中间没有任何其他的交换节点。

数据链路(Data Link)即为此处所指的就是将实现通信协议功能的硬件和软件附加到网络介质上后所形成的网络基础结构。

- 数据链路层以帧为单位传输和处理数据。
4.2 数据链路层的重要问题
4.2.1 点对点式数据链路层(路由器的转发)
- 封装成帧(为上层来的数据报添加帧头帧尾)

错误检测(在节点之间传递信息时,采用检错码与检错算法来验证数据是否存在错误)

可靠传输(虽然接收方本次出现误码现象,在前一个节点不会放弃处理的意图,并会将信息重新发送下去直至达到无误的状态)

4.2.2 广播式数据链层(共享式局域网)
局域网中,该总线型的广播信道现在已淘汰,更多使用交换式局域网

4.2.3 交换式局域网

4.2.4 无线局域网

4.2.5 总结

4.3 封装成帧
4.3.1 目标
- 封装成帧是指将数据链路层产生的协议数据单元在其上附加帧头与尾部形成一个完整的帧交给上一层。
- 其中包含了关键的控制参数。
- 其中一个主要功能即用于明确该数据块的范围。

4.3.2 存在问题(接收方提取帧)

4.3.3 解决方法
- 帧头和帧尾的作用之一就是帧定界,占一个字节。
假设帧定界为01111110

4.3.4 其它方法
不是所有数据链路层协议都具备完整的帧定界机制。例如,在以太网V2中使用的MAC帧结构并未配备这一功能。相反地,在发送方传递至物理层时,在每个MAC帧前面会附加8字节的同步位字段。

此外,以太网V2的MAC帧协议还规定了帧间间隔时间,96比特时间

4.3.5 透明传输
定义:
透明传输被称为一种无需对上层传输的数据施加任何限制的情况;其如同不需处理的数据链路层。
产生问题:
当接收的数据块中恰包含帧标识符时,这将导致接收端出现解析错误。

解决方法:在执行添加帧头和帧尾的操作之前,请先核查数据部分是否存在帧限定标识符。如果发现存在该标识符,则应在其实现其前面加入一个转义字符以避免冲突。

其他协议的方法总结:
- 基于字节的物理链路采用了字符填充(亦即字节填充)的方式以达成透明传输的目的。
上述方案通过加入转义字符即可实现字节填充技术。
基于二进制单位的物理链路采用比特填充的方式达成透明传输。当设定帧定界符为0b1_时,在插入帧头与帧尾之前,在每连续5个''后面插入一个'’_符号以确保数据完整性。
4.3.6 帧的数据部分规定
- 为优化帧传输效率而采取措施,则应尽量增加其数据段的长度。
- 在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,
每种数据链路层协议均规定了帧数据段的最大允许长度,并将其定义为最大传送单元MTU。
- 在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,在考虑差错控制等多方面因素的基础上,

4.4 差错检验
4.4.1 问题
- 现实中的通信链路并非完美无缺,在信息传递过程中存在差异的可能性:1可能变为0而0也可能变为1。这种现象被称为比特差错。
- 此外,在一定时间段内发生的错误二进制位数与总二进制位数的比例称为误码率BER(Bit Error Rate)。

4.4.2 解决方法思路
采用差错检测码技术手段(FCS字段)用于在传输过程中检测是否存在比特错误,并且这是数据链路层面临的核心任务之一。

4.4.3 具体方法之奇偶校验
- 向待发送的数据末尾追加一位奇偶校验位;
- 以确保其中"1"的数量呈现奇数特性或偶数特性;
- 当发生单个错误时;
- 当出现双个错误时;
- 则无法检测到错误(漏检);

总结:此方法漏检率较高,一般不采用这种方法。
4.4.3 具体方法之循环冗余校验CRC(Cyclic Redundancy Check)
- 收发双方协商确定一个生成多项式G(x);
- 发送方基于待发送的数据和生成多项式G(x),计算并附加差错检测信息(冗余码),作为附加信息附加到数据块后一同发送出去;
- 接收方利用生成多项式G(x)进行差错检验,以确认接收到的数据是否存在误码;
发送方的处理:

接收方的处理:

多项式要求及举例:

举例一:

(1)构造被除数(在待发送信息后面添加生成多项式最高次数个0)
此处生成多项式中,最高次数为3,则添加3个0,即待发送信息由101001→101001000
(2)构造除数(生成多项式各项系数构成的比特串)
此处生成多项式中,其各项系数构成的比特串为1101
(3)做除法

验证余数值的长度应与生成多项式的最高阶相同;若当前长度不足,则应在前面添加零以达到所需的长度。

(5)合并(将余数加到待发送数据的后面)后发送

举例二:

(1)生成信息源,并将接收到的数据作为被除数。
(2)生成由生成多项式的各项系数组成的二进制序列作为除数。
(3)执行除法运算。
(4)检查计算结果:若余数值为零,则可判定传输过程无误码;若余数值不为零,则判定传输过程中存在误码。

总结:
- 检错码仅能检测出帧在传输过程中发生差错,并无法确定具体位置从而实现纠正。
- 为了纠正传输中的差错可采用冗余信息更多的纠错码进行前向纠错但其curring overhead较大导致在计算机网络中应用受限。
- 循环冗余校验(CRC)具很强的检错能力(漏检率极低)尽管计算较为复杂却便于用硬件实现因而广泛应用于数据链路层。
4.5 可靠传输
4.5.1 前提
采用差错检测技术(如循环冗余校验CRC),数据链路层对于帧传输中的误码情况能够识别出来(这些误码表现为比特错误)。
4.5.2 问题
数据链路层向上层提供的服务类型:
- 不可靠传输服务:主要舍弃包含误码的帧块,其余的操作不做;
- 可靠传输服务: 通过手段保证发送的数据内容会准确到达接收端。
注意:
- 通常情况下,有线通信介质的误码率较低,从通信系统设计者的角度来看,为了降低通信成本,并不需要要求数据链路层向其上层提供高度可靠的传输服务.即使在误码发生的情况下,数据传输的可靠性问题仍由其上层机制负责处理.
- 无线通信介质容易受到干扰的影响,其误码率相对较高,因而必须要求数据链路层向上层提供较高的数据传输可靠性保证。
4.5.3 传输差错种类
- 比特差错
比特差错只是传输差错中的一种。
数据包的丢失、数据包排序混乱以及数据包冗余发送
在现代计算机网络体系架构中, 传输过程中的错误现象不仅包括数据包的丢失, 还有数据包排序混乱以及数据包冗余发送。
注意:
- 分组丢失、分组失序以及分组重复这些传输差错通常不会在其下一层出现;相反,在其上一层会出现。
- 因此可靠传输服务不仅仅局限于数据链路层;其他各层都有可能采用该技术。
- 其实现涉及较多步骤;所需资源消耗较高。
- 是否采用可靠传输主要由应用场景决定。
(1)802.11 wireless LAN necessitates the data link layer to establish reliable transmission;
(2)Ethernet does not mandate the data link layer to ensure reliable transmission;
(3)IP conveys an unreliable, unconnected transmission service to its upper layer;
(4)TCP provides a reliable, connection-oriented transmission service to its upper layer;
(5)UDP conveys an unreliable, unconnected transmission service to its upper layer
4.5.4 可靠传输实现方法——停止-等待协议SW
具体实现思路为:每当发送端传输一个数据包时(即每次成功传输),系统都会立即触发机制等待接收端确认接收到该数据包的确认帧ACK。如果接收到的数据存在错误码(即出现错误),则系统将返回负反馈Nak包给发送端,并导致需要重新传输该数据包;与此同时,在完成一次成功传输后(即发完一个完整的报文),系统也必须确保其在缓冲区中保存当前处理中的报文段落(即不能立即删除)

在上述方法的实现过程中会出现下面情况:
问题一:发送方发送的数据,在传输过程中丢失

问题一现象:
接收方未能收到数据分组,则不会发送ACK或NAK应答。若不采取其他补救措施,发送方将一直处于等待对方发送ACK或NAK应答的状态。
问题一解决方法:
- 在完成数据分组传输后,在接收端设置一个超时 timer。当该 timer 到期且尚未收到任何确认(ACK)或否定(NAK)反馈后,则触发对原始数据包的再传发。这即被称为 timeout retransmission。
- 通常建议将重传间隔设置为稍大于两端节点间的往返通信延迟。
问题二:接收方发给接收方的ACK丢失

问题二的现象:若接收方发送到接收方的ACK丢失,则发送方将在重传时间段后重新发送上一次的数据。
针对问题二的解决方案:为了防止数据分组重复导致的传输错误,在采用停止-等待协议的情况下。当每次发送一个新的数据块时都会触发重传机制。为了确保每次重传的数据块具有与上一次不同的序列编号即可。在实现这一目标时仅需使用一个比特位即可完成序列编码的需求。
问题三:接收方发送的确认分组ACK超时到达发送方端

问题三现象:
当发送方在完成传输完数据分组 DATA0 后,在一个完整的超时时间段内未接收到接收方的数据确认分组 ACK,则该发端将立即重新传输 DATA0 分组。在此时第二个超时时间段内,接收端却接收到延迟到达的数据确认 ACK 分组,则接收端将视此 ACK 为 DATA1 分组的数据确认,并认为已经成功接收了 DATA1 分组的数据;与此同时(即此时),接收端还接收到被重传过来的 DATA0 数据与 DATA1 数据两份数据报信息;因此,在这种情况下(即同时接收到两份不同数据报的数据确认),接收端将误认为接收到的是重复的数据报(即把被重传来的 DATA0 数据视为重复的数据报),并立即重新传输 DATA0 的数据确认分组以避免冲突和丢失数据的问题。
针对问题三提出的解决方案是:当接收方接收到数据后向其发送相应的确认分组ACK信息进行编号。
针对问题三提出的解决方案是:当接收方接收到数据后向其发送相应的确认分组ACK信息进行编号。

停止-等待协议的信道利用率: 由于TA远远小于TD,该协议的信道会被忽视。而当RTT远远超过TD时,信道利用率将极低

信道利用率例题:

注意:
对于数据链路层的点对点信道而言,其往返时间较为稳定,因此在部署停止-等待协议时,无需为确认分组ACK进行编号配置。
为了便于接收端识别接收到的数据分组是否存在重复,必须对各数据分组进行唯一标识。
由于停止-等待协议具有明显的延时特性,因此仅需使用1位比特即可完成确认分组ACK编号功能,即设置为编号0和1。
为了使发送端能够准确判别接收到的ACK报文是否存在重复现象,同样需要对所有ACK报文进行编码处理。
超时计时器设置的有效重传间隔应根据实际需求谨慎确定,建议将其设置在稍大于"发送端至接收端平均往返时间"的时间段内。
然而在运输层中由于两端到两端之间的往返时间存在较大的不确定性因素,因而如何合理设定合适的重传间隔有时会成为一个较为复杂的问题。
当接收端检测到某接收到的数据分组包含传输错误码时应将其丢弃并等待发方响应;但若遇到无线通信链路传输质量不佳导致报文误码率较高的情形下则可采取另一种策略即向发方发送NAK报文指示其重新发报以加快发方重传速度。
总结:
- 如果往返时延RTT明显超过数据帧发送时延TD(如采用卫星链路),则信道利用率将显著下降。
- 一旦发生重传,则对于那些有意义的数据而言,信道利用率进一步降低了。
- 旨在解决停止-等待协议低效的问题,在此基础上发展出了另外两种改进型协议:后退N帧协议GBN和选择重传协议SR。

4.5.5 可靠传输实现方法——回退N帧协议GBN
问题:
在采用停止-等待协议的通信系统中发现信道使用效率较低;当发生超时再传现象时,系统的信道使用效率进一步降低;对此必须采取措施以提升该通信系统中各子站间的协作效率。
解决方法思路:
采用流水线传输可提高信道利用率。

解决方法:基于流水线传输机制,在此之上实现了通过设置发送窗口限制的方式实现的数据分组传送功能。该系统中规定了接收端的确认窗口仅允许一个确认帧的存在以确保通信效率的最大化。当 sender端设置其选择窗口大小为5时,则每次最多可传送5个数据块至 receiver端并在此过程中 receiver端会将每个接收到的数据分组编号信息进行记录直至所有数据均无误码后将所有五个确认帧一次性反馈给 sender端以便完成整个传送过程随后立即释放缓存空间以供下一组数据传输
注意:当发送窗口为1时,就是停止等待协议了。

优化策略采用累计确认机制
在实际应用中,接收方无需逐一分确认包即可。通常情况下,在接收到多个数据分组之后(由具体实现决定),仅需确认最后一个接收到的数据分组即可。其中ACKn表示序号为n及之前的所有数据分组均已完成正确接收。
特别指出的是这一点并非固定限制。
加入累计确认的优点:
- 假设数据传输无误的情况下, 即使分组信息丢失, 则发送方可能无需重新发送数据.
- 减少接收端的成本.
- 降低对网络资源的需求.
累计确认存在缺陷:由于ACK机制无法向发送方及时反映出接收方已正确接收的数据分组信息
传输过程中出现误码:
当发送方接收到多次确认后,则能判断出之前所发送的数据分组已经出现错误,并因此无需等到超时计时器超时不立即进行再传输。
假定计划发送编号包括6、7、0、1以及5的数据包。
其中5号数据包在传输过程中发生错误编码。
尽管6、7、0和1号数据包成功地接收到了对方。
但由于5号数据包的误码导致其未能被接收方确认。
从而使得所有相关联的数据分组都需要重新发送。
这就是Go-back-N协议的基本机制。
然而,在通信线路质量较差的情况下,
Go-back-N协议的信道利用率并不如停止-等待协议高效。
4.5.6 可靠传输实现方法——选择重传协议SR
问题:
回退N帧协议的接收窗口尺寸W_R仅能设置为1,从而使得接收方只能按照正确的顺序接收已经正确到达的数据分组。一个数据分组出现误码后会导致后续多个数据分组无法被正确按顺序接收而被丢弃(即使这些后续分组本身没有发生乱序或误码问题)。这将不可避免地导致发送方需要对这些数据分组进行超时重传,并无疑这种做法会严重浪费大量的通信资源。
解决方法思路:
为了进一步提升性能, 只需重传那些出现误码的数据分组即可。从而, 接收窗口的大小 W_R 不应固定为 1(而是应当大于 1)。这样可以让接收方优先处理那些没有错误却顺序颠倒但仍落在当前接收窗口内的数据块, 当所有缺失的数据块收集齐后一并发送给上层节点时, 就能确保信息完整性的一致性。这就是我们采用的选择性重传协议的依据。
该解决方法与GBN协议的差异在于:选择重传协议仅用于纠正发送方误传的数据分组错误,并非依赖累积确认机制;相反,在接收端必须逐一分确认识正确的数据分组
发送窗口与接收窗口的大小限制:

4.5.7 注意:
这三种可靠传输实现机制的基本原理不仅仅局限于数据链路层,在计算机网络体系结构的各层协议中也适用。
4.6 点对点协议(PPP)
4.6.1 概念
点对点协议PPP(Point-to-Point Protocol)是最常采用的网络通信技术之一,在现代网络体系中广泛应用于数据传输领域。


4.6.2 内容
PPP协议以一种方式提供了在点对点链路传输各种协议数据报的标准方法,并且主要包含以下三个组成部分:
- 通过将各种协议数据报编码为帧的形式进行处理
- 链路控制协议LCP负责管理数据链路的建立与维护
- 网络控制协议集合NCPs能够处理多种类型的网络层通信请求
4.6.3 PPP协议的帧格式

4.6.4 PPP协议的透明传输
如果帧的数据部分出现帧的定界符,如何正确提取数据。

4.6.5 PPP协议的透明传输之面向字节的异步链路采用插入转义字符的字节填充法

4.6.6 PPP协议在透明传输中的同步链路机制采用零号位填充技术

4.6.7 PPP协议的差错检测
FCS检错码使用循环冗余码CRC来计算。

FCS计算范围:

采用该方案后,在接收端每接收到一个PPP数据帧时都会执行校验过程。当校验过程确认无误后会接受该数据帧;若发现校验结果异常则会丢弃该数据帧。值得注意的是,在使用PPP协议的数据链路层时不具备可靠传输功能
4.6.7 PPP协议的工作状态

4.7 媒体接入控制MAC(Media Access Control)
4.7.1 概念
在共享信道中需要特别关注的一个问题是协调多个发送端和接收端站点对其共享传输介质的使用。其核心机制是MAC协议。

4.7.2 分类

注意:伴随技术的进步,成熟的交换技术和更低的成本使得采用更高性能的点对点链路和网络层交换机成为一种更加高效的选择,已经在有线环境中全面替代了共享型局域网络,然而由于无线信道具备 broadcasts特性,无线网络仍需依赖共享介质的技术实现数据传输
4.7.3 媒体接入控制之静态划分信道
信道复用:
- 复用(Multiplexing)属于通信技术中的一个核心概念。
- 若某网络环境下的数据传输速率超过单通道线路总承载能力之和,则可通过复用技术,在同一线路上建立多条独立的信息通道。
- 从而充分释放这条线路的数据传输潜力。

分类:
频分复用FDM

时分复用TDM

波分复用WDM

码分复用CDM(Code Division Multiplexing, CDM)是一种基于共享信道的技术。实际上,在无线通信系统中占据主导地位的是码分多址技术(CDMA),该方法主要用于多址接入场景。通常称为Code Division Multiple Access(CDMA)。如有需要可参考其他资料进一步了解相关内容。
4.7.4 媒体接入管理中的动态管理机制下的无序访问(基于总线局域网的CSMA/CD协议)
问题:

解决方案:基于信道访问的冲突检测技术用于载波监听多用户接入系统中,并结合CSMA/CD机制实现有效的冲突检测

争用期(碰撞窗口):
- 主机只需在经过2τ(即δ趋近于0)的时间段内即可判断本次发送是否遭遇了冲突。
- 由此可知,在以太网中将端到端往返传播时延定义为2τ的行为被称为争用期或冲突窗口。
- 由此可见,在经过争用期这段时间还未检测出冲突的情况下,则可以确定这次发送不会产生冲突。
- 每个主机在发送数据包后的一短暂时间段内都存在与其他主机产生冲突的可能性,并且这个时间段是不确定的。
- 它主要取决于与当前主机相连的那个发送节点距离本机的距离大小限制,并且这个时间上限不会超过总线上传播来回时延值,
- 即一个争用期时间长度。
- 很明显,在以太网中若要增加发送数据包的主机数量,则会导致总线上传播来回时延增大,
- 从而提高发生冲突的概率。
- 因此,在采用共享式以太网架构时,
- 我们必须限制连接进来的主机数量,
- 并尽量缩短所采用总线的最大传输延迟时间长度

最小帧长:
- 以太网规定最小帧长度为64字节(相当于512比特),即争用期持续512比特的时间;
- 当欲传输的数据量较为有限时(口),通常需附加一些填充字节以便使帧长不低于标准。
- 以太网设计的最小帧长度确保了主机能在该数据块传送完毕前完成对该块是否存在冲突的检测。
- 若未检出冲突,则后续传送的数据必然不会产生冲突。
- 检测到冲突后立即中止数据传输,并且已发送数据量必然低于标准(因为所有小于标准长度的 framed都因冲突而被提前终止)。


最大帧长:



截断二进制指数退避算法:

信道利用率:

帧发送流程:

帧接收流程:

其中涵盖的策略包括:
- 媒体访问策略中的动态连接与无序访问机制
- 特别适用于无线局域网环境下的冲突避免与重传机制
基于载波侦听的多路访问/冲突检测与重传机制(基于载波侦听的多路访问/冲突检测与重传机制)
- 802.11无线局域网采用CSMA/CA协议,在遵循CSMA协议的基础上增添了冲突避免CA功能,并放弃实现了冲突检测功能。
- 针对不可避免的冲突以及高误码率的问题,在数据链路层采用了停止-等待协议作为确认机制以确保数据正确接收。
- 802.11MAC层定义了两种不同的媒体接入控制方式:
(1)分布式协调功能(DCF)。在DCF模式下没有中心协调站点,默认情况下每个站点通过争用信道争用获取发送权限。
(2)点协调功能(PCF)。该方式采用集中的控制式接入算法通常在接入点AP处实施集中式协调。
问题:
- 既然CSMA/CD协议在采用广播信道的有线局域网中得到了成功应用,则其在采用广播信道的无线局域网中是否也可以得到应用呢?
- 在无线局域网环境中仍可采用载波侦听多路访问(CSMA)机制,在发送数据帧之前先对传输介质执行载波侦听。若检测到其他设备正在发送数据帧,则延迟发送以避免冲突。
- 在无线网络环境下无法实现基于硬件的支持进行冲突检测功能,请详细解释如下:
(1)鉴于无线通信介质具有特殊特性,在这种条件下接收端接收到的数据信号强度通常会远低于发送端所发射的信号强度(可能低至百万分之一)。要实现基于硬件的支持进行冲突检测功能,则对硬件的要求极为苛刻。
(2)即便能在硬件层面上支持冲突检测功能,在实际部署过程中由于无线电波传播特性的存在——如隐藏站点问题——使得这一技术的实际效果并不显著。
隐蔽站问题:

帧间间隔:

CDMA/CA工作流程:
(1) 只有一个源站时
- 为了实现网络通信的有效性, 我们加入了DIFS时间, 这是因为可能存在其他站点需要发送具有更高优先级的 framedata. 若存在此类情况, 则应确保这些高优先级 framedata 能够优先传输出去.
- 为了实现同一会话内各帧之间的正确隔离与管理, 我们引入了 SIFS 时间. 由于 SIFS 是所有帧间最小的时间间隔, 它用于将同一会话中的各个 frame 分离开来. 在这一段时间里该站点应能够完成从发送到接收角色转换.

当存在两个或多个源站时 为避免多个站点同时发送数据导致冲突 我们引入了一段随机退避时间

注意:
- 当站点检测到信道处于空闲状态时,并且所发送的数据帧并非紧接着上一个已成功发送的数据帧后的连续数据帧,则不使用退避算法。
- 以下特定条件下无法避免地需要采用退避策略:
(1)当信道处于忙状态时,在发送数据帧之前进行检测;
(2)每当重传数据帧的时候;
(3)在每次成功发送之后会立即连续发送下一个数据帧(以防止单个站点长时间占据信道)。
CDMA/CA的退避算法:


CSMA/CA协议的信道预约和虚拟载波监听


4.8 MAC地址、IP地址、ARP协议
4.8.1 MAC地址
说明:
MAC地址是以太网的MAC子层所使用的地址;属于数据链路层。
广域网中的点对点通信通道在数据链路层上无需使用地址信息。然而,在局域网中运行的数据链路层必须依靠地址标识来区分不同主机之间的通信关系。

解决方法:
当多个主机共享同一个广播信道时,在建立任意两个主机之间的通信之前,则每个主机都需要拥有一个独特的标识码;

在每个数据帧中传输时必须包含发送主机与接收主机的IP地址信息。此类IP地址被用于涉及媒体接入控制MAC(Media Access Control)的过程;此类IP地址因此得名Mac address。
网络接口卡(网络适配器)中的固定存储装置...能够可靠地记录设备的身份信息,并因此将MAC地址视为硬件标识符。
MAC地址有时也被称作设备的唯一标识符。请注意:这不表示MAC地址属于网络体系结构中的物理层。
通常情况下,在实际应用场景中,默认配置下用户终端通常配备有两个不同的局域网适配器设备:即有线局域网适配器(如带线网卡)以及无线局域网适配器(如无线网卡)。每一个这样的网络适配器都具有唯一的MAC地址标识符。然而,在实际配置中发现,在大多数情况之下交换机与路由器设备往往会配置有更多的本地端口接口数量设置选项,并因此也会对应地拥有更多的MAC地址资源池。因此综合考虑之后可以得出结论:严格意义上讲,在计算机网络环境中MAC地址实际上是针对各个设备本地端口接口的唯一标识符,并非是针对整个设备本身的唯一标识符。
IEEE 802局域网的MAC地址格式:
扩展的唯一标识符EUI,EUI-48
随机MAC地址:
美国国家安全局拥有这套系统,并且为了追踪城市内每个人的行动而监控电子设备的MAC地址。各大厂商的产品在扫描网络时采用了随机MAC地址技术以规避上述问题。
单播MAC地址举例:
广播MAC地址举例:(注意:广播帧的MAC地址为全1)
多播MAC地址举例:
特别提示:在为主机配置私有应用时,请务必遵循以下原则:必须避免使用公有的标准多播地址。这表明,在您的系统架构中存在大量有效的通信资源和功能特性能够直接关联于该主机的其他关键组件和应用服务。因此,在规划和配置一个多播组列表时,请确保所选的所有组别地址都不与现有系统中的任何有效资源产生冲突。具体可参考IEEE标准文档(http://standards.ieee.org/develop/regauth/grpmac/public.html)以获取详细指导信息。
4.8.2 IP地址
说明:
IP地址是TCP/IP体系结构网际层所使用的地址;属于网络(网际)层。
功能:
-
IP地址是互联网(Internet)上使用的主机与路由器所使用的地址,在代表两部分信息方面具有重要作用:
(1)网络号:代表数百上千个网络
(2)主机号:代表同一网络下的不同主机或路由器各个接口 -
明显可以看出,在之前的介绍中提到的MAC地址无法单独区分不同的局域网。
(1)如果只是一个单一局域网且不与互联网相连,则可以仅依靠MAC地址完成标识(这并不是一般用户所采用的方式)。
(2)若主机所在的局域网需要与互联网相连,则必须同时使用IP地址与MAC地址才能实现有效的通信功能。
数据包转发过程中IP地址与MAC地址的变化情况:
- 在数据包的转发过程中,源IP地址和目的IP地址保持恒定;
- 在每条链路(或每个网络)间调整的是源MAC地址与目标MAC地址之间的关系;这种变化体现在任意两个相邻设备之间。
会产生新的问题:在数据包转发过程中,在以下两种情况下会遇到不同情况:就IP而言,在其目标和源IP保持不变的情况下;而对MAC地址而言,在动态网络环境中 MAC 地址是动态变化的。其中 src MAC 地址即本端已知的 MAC 地址是确定无疑的;那么如何确定下一个设备的目标端口对应的 MAC 地址呢?
解决方法:
ARP协议(地址解析协议)
4.8.3 ARP协议
ARP协议归类于TCP/IP体系结构中的网际层;其功能在于基于已知设备分配的IP地址,在线使用该IP地址获取设备对应的MAC地址;它在TCP/IP体系结构中所属的层次是网络(网际)层。
目标:
利用IP地址得到MAC地址。
说明:
- 每台主机上都有ARP高速缓存
- ARP数据类型的生命周期
具体流程:
(1)局域网中(以总线型为例)
源主机通过其自身的ARP缓存机制检索目标主机对应的IP地址至MAC地址;当成功检索到目标IP地址的对应MAC地址时,则能够构造相应的MAC分组进行传输;反之,在无法确定目标IP地址的对应MAC地址时,则会生成带有 ARP 多播分组以通知相关宿主
当目标主机接收到一个ARP请求时,在其ARP快速访问缓存表中记录起始宿主的IP地址与其对应的MAC地址,并随后向该起始宿主发送一个带有封装标记的 ARP 应答包(以单播 MAC 路径传输)。该 ARP 应答包包含了目标主机的 IP 地址以及对应的 MAC 地址。
源主机接收到ARP响应后会将目的主机的IP地址与MAC地址存储在其专用的ARP缓存表中,并且能够构造想要发送出去的MAC帧并将其发送给目的主机
注意:
- ARP仅限于单一链路段或一个网络环境中采用逐段处理方式。
- 除了传统的ARP请求与响应报文外,在网络中还存在其他类型的报文如非法 ARP 和零代价 ARP。
- 该协议缺乏内置的安全防护机制,并存在arp欺骗攻击问题。
4.9 集线器与交换机的区别
4.9.1 早期的总线型以太网
机械连接点并不可靠。
4.9.2 使用双绞线和集线器HUB的星型以太网
比机械连接点与细同轴电缆更可靠。
- 采用集线器架构的以太网本质上仍然是基于总线的工作模式;多个站点共享同一根总线上运行,并始终采用CSMA/CD介质访问控制协议。
- 集线器主要负责传输数据;其每个接口仅负责转发接收的数据帧;无需本地设备进行冲突检测;当发生冲突时由所属设备自行处理冲突。
- 集成式交换机一般都具备基本具备一定的容错机制和一定的管理功能。例如,在网络中出现某台端口发生故障持续发送数据帧时;此时集线器能够通过断开与该端口相连线路来确保整个网络依然能够正常运行。
4.9.3 使用集线器HUB在物理层扩展以太网
由三个独立构成的三个网络组成;每个HUB所连接的集线器构成一个冲突域
若三个网络之间寻求互联,则通过配置一个主干HUB集线器进行连接配置;这将导致整个网络的冲突域增大;换而言之,则形成了一个扩展成更大逻辑总线型以太网的情况。
4.9.4 以太网交换机
4.9.5 以太网交换机与集线器区别
(1)单个网络内一对一发送单播
在由集线器HUB构成的局域网环境中,当网络中的设备A与设备C之间进行数据传输时,则设备A会发送一个单播数据包至集线器HUB;该数据包沿着共享总线传播至网络中的所有其他端点
在由交换机构成的局域网环境中,
假设设备A与设备C之间进行通信,
那么设备A将向交换机发送一个分组,
该分组将借助公共总线传递至设备C,
而不向其他所有设备发送数据。
(2)单个网络内多对一发送单播
在集线器中在同一时间向其发送来自两个主机的数据包以及来自一个主机的数据包时会导致冲突这些冲突会被反馈回各自对应的主机进行处理
交换机内部会同时向两个主机以及另一个主机传输数据。这两份数据会被暂时存储在交换机中,并随后一个个地发送给目标主机。
(3)扩展以太网
*集线器在扩展网络时会增加广播域并增强冲突域;交换机则在扩展过程中同样增加了广播域但成功隔离了冲突域。
注意:
- 该问题忽视了ARP机制;
- 该问题假定交换机的帧交换表已"预设完成"。
4.9.6 以太网交换机自学习和转发帧的流程
- 以太网交换机运行于数据链路层/物理层。
- 以太网交换机接收到帧后,在目标MAC地址对应的端口表中进行查找,并通过该端口转发接收到的帧。
- 以太网交换机是一种支持插接式配置的设备,在首次开机启动时其内部的帧交换表为空。
- 随着网络中各主机之间的通信活动不断展开,在线学习算法驱动下,以太网交换机逐步建立起完整的帧换 Rolod phone table.
以太网交换机记录存在有效时间的原因:
由于MAC地址与交换机接口之间的对应关系并非固定不变;当任意一台主机发生变更或网络适配器损坏时;都会引起 MAC 地址的变化;这也是为什么计算机内部维护的 ARP 缓存表具有时间限制的原因;其中 ARP 缓存表主要用于存储计算机内部 IP 地址与其对应的 MAC 地址的关系信息;如果某台计算机的 MAC 地址发生变更;则可能导致其在 ARP 缓存表中的数据失效。
4.10 以太网交换机的生成树协议STP
在当前以太网架构下,请探讨如何提升其抗干扰能力?具体而言,在实际网络拓扑中,若A至B的通信通道出现中断,则会导致H1无法与H3及H2实现有效的数据交换。
解决方法:添加冗余链路可以提高以太网的可靠性
潜在的问题是多余的通信链路也会产生不利影响,并可能导致网络环路形成(当单个主机发送广播数据包时, 会产生大量的广播风暴)
广播风暴:
- 显著占用网络资源,并导致网络无法正常转发其他数据帧;
- 主机接收到重复的广播帧;
- 显著占用主机资源;
- 交换机的帧交换表出现振荡状态异常
进一步优化方案:以太网交换机采用生成树协议STP(Spanning Tree Protocol),通过引入冗余连接来提高网络可靠性的同时也能够消除网络环路所导致的各种问题。
- 无论交换机之间的物理连接采用何种方式,这些设备均能自主完成对一个无环路特征的逻辑网络进行构建。
- 所形成的树形拓扑结构必须保证整个网络实现连通。
- 在首次建立交换机连接或者在发生网络物理拓扑变化时(可能是由于人为操作或者故障导致),这些设备都会执行生成树的新计算。
4.11 虚拟局域网VLAN概述
4.11.1 问题
此类交换机主要在数据链路层运行(同时涵盖物理层),而通过将多个此类设备互联即可构建交换式以太网系统,在该系统中所有成员均归属于同一个广播域。
当交换式以太网系统的规模逐渐扩大时,其对应的广播域也会随之扩大。
然而,在这种情况下会带来一系列问题:
(1)广播风暴现象不仅会导致大量网络资源消耗以及各主机占用过多CPU资源;
(2)这一特性使得系统的管理和维护难度显著增加;
(3)潜在的安全隐患也随之出现。
- 网络中会频繁出现广播信息
4.11.2 解决方法
分割广播域
(1)使用路由器可以隔离广播域
缺点:路由器成本高。
(2)虚拟局域网VLAN技术
虚拟局域网VLAN(Virtual Local Area Network)是一种通过技术手段将局域网中的设备分成与物理位置无关的逻辑组的技术。这些逻辑组具备一定的功能需求和性能标准。
在采用虚拟局域网VLAN技术之前:这些设备均为交换机,并将形成一个广播域。
通过部署虚拟局域网技术中的VLAN划分,在同一个VLAN内的网络设备能够接收广播数据包(即广播帧),而不同VLAN之间的网络设备无法接收来自其他VLAN的广播数据包(即广播帧)。这种机制有效地将不同的广播域进行划分。
4.11.3 虚拟局域网VLAN的实现机制
(1)IEEE802.1Q帧
(2)交换机的端口类型
五、网络层
5.1 网络层概述
5.1.1 主要任务
网络层的核心功能是负责建立与管理互联网的通信连接,并通过机制确保数据包能够顺利地在网络间流动。
5.1.2 存在问题
要实现网络层任务,需要解决以下主要问题:
- 网络层主要提供的服务类型是什么(是可靠传输还是不可靠传输)
- 网络层的寻址难题
- 路由选择难题
5.1.3 TCP/IP协议栈
- 互联网(Internet)是全球范围内最受欢迎的网络平台。
- 基于TCP/IP协议栈的网络层采用IP协议作为基础组件,在整个互联网体系中扮演核心角色。
因此,在TCP/IP协议栈中将该层次命名为网络层。
- 基于TCP/IP协议栈的网络层采用IP协议作为基础组件,在整个互联网体系中扮演核心角色。
5.2 网络层提供的两种服务
5.2.1 面向连接的虚电路服务(因特网不采用此)
可靠通信需以网络为基础建立各节点间的连接。
VC(Virtual Circuit)协议下,在建立好虚拟通道后双方可沿此通道传输数据分组。
目标主机地址仅在初始连接阶段使用;一旦连接建立完成,则后续每个数据分组只需在其头部标明所使用的虚拟通道编号(该编号对应着整个虚拟通道中的各个链路)。
若采用可靠的传输协议配合使用,则所有传输的数据分组均可准确无误地按顺序送达接收端(不会丢失或重复)。
当通信过程结束时应释放之前所建立的所有虚拟通道。
目前许多基于分组交换技术的大规模通信网均采用基于连接的传统虚拟通道服务。
5.2.2 无连接的数据报服务(因特网采用此)
- 确保可靠通信的任务应由用户主机承担
- 无需构建网络层之间的连接
- 各数据分组可能经过不同的传输路径
- 所有数据分组的第一部分必须包含目标主机完整的地址信息
- 该方法传输的数据分组可能存在误码、丢失、重复或顺序颠倒的情况。
- 因互联网架构本身不具备完整的端到端可靠性保障机制,因此在网络设备的设计上,路由器只需实现相对简单的流量控制功能即可,从而降低了设计复杂度和成本(与传统的交换机架构相比较)
- 因此,互联网正是采用了一种将复杂功能部署于边缘的方法(由用户主机及其内部运输层完成),而将较为简单的流量控制功能集中于互联网的核心节点以实现整体性能优化
5.2.3 两种服务对比
5.3 IPv4地址
5.3.1 背景
5.3.2 IPv4地址表示方法
5.3.3 分类编址的IPv4地址
- A类地址
- B类地址
- C类地址
- D类地址
地址区分类别步骤:
特殊IP地址:
例题:
5.3.4 划分子网的IPv4地址
现象:一家公司的初期规模较小,在人员数量达到或超过254人时,则必须获取到B或A类的网络地址块。出于成本考量的原因,在不影响现有业务的前提下(即采用了一个相对经济的配置方案),该公司选择性地获得了该区域内的一个子网段(即B类地址块)。通过这种方式实现了内部网段的自成体系。然而,在企业规模持续扩大之后(即当员工总数不断增加的同时也增添所需的子网数量),就意味着未来将不得不进一步扩展该公司的互联网资源以满足日益增长的需求
存在问题:为新增网络申请新的网络号会带来以下弊端
- 该过程将耗费更多的时间,并导致更高的成本
- 这一行为将导致其他路由器中的路由表记录数量显著上升
- 这一做法将导致原有网络中大量未使用的IP地址被浪费
解决方法:借用主机号中的一些位数,作为子网号来区分不同的子网。
引出新的问题:如果没有在图上标注子网号部分,我们如何确定分类地址中主机号中被用来表示网络部分的比特数量是多少。
解决方法:引入子网掩码
例题:
默认的子网掩码:
5.3.4 无分类编址的IPv4地址
面临问题:
CIDR表记法:
例如:
Route aggregation (constructing a hypernetwork): 面临的问题是:当R1向R2发送其自身 routes时, R2's routing table entries will increase by 5 records. 这样一来, 这些数据对R2 routing table的占用程度如何?能否减少这一数据占用?
解决方法:在R2路由表中找共同前缀,形成聚合地址块。
总结:
5.3.5 IPv4地址的应用规划
(1)定长的子网掩码FLAM(使用传统的分类编址的子网掩码)
例题:
分析:
子网划分:
主要问题在于网络5能够实现仅需4个IP地址的同时却只能提供32个可用IP地址。这种做法将导致大量IP资源的浪费
(2)变长的子网掩码VLSM(使用CIDR无分类编址)
- 分析同上,只不过现在依次分析各个网络需要主机号的最低位数。
为了展开申请到的网络地址[]{}]上的主机号信息,并根据各网络所需的IP地址数量从多到少的顺序,在该地址范围内(即从[]{}至[]{}$)依次将它们分配至该地址范围内
分配结果:
5.4 IP数据报的发送和转发过程
5.4.1 主要内容
5.4.2 举例说明
明确两个网络,并对每个网络依次赋予相应的IP地址和子网掩码配置(需要注意的是,在同一网络内的两台主机之间的通信属于直接的数据传输路径设计,在不同网络之间的两台主机之间的通信则需要经过路由器进行间接的数据转发)
(2)当主机C试图与主机F进行通信时,请问源主机C如何确定目的宿主F是否属于同一个网络?首先,请注意:当要向宿主F发送数据时,请记住:源宿主C必须能够识别出自己的网络信息才能完成通信任务。具体来说,请看以下步骤:第一步,请您明确一点:请将源宿主C的IP地址与其所使用的子网掩码进行按位运算(即"逻辑与"操作),即可得到该网络对应的网络基准地址(有时也被称为"网络ID")。这一过程有助于区分不同子网之间的边界。第二步,请您继续观察:将目标宿主F的IP地址与其所使用的子网掩码进行同样的按位运算处理,并将结果与上一步骤中获得的网络基准地址进行比较。如果两者完全一致,则说明目标宿主确实位于同一网络范围内;反之则不在同一网络内。显然,在这个案例中两者并不相同。(此处应补充说明)因此,请记住:为了让不同区域的用户能够互相通信起来,请确保每个区域内部都有指定的路由器节点来进行转发任务。(这部分需要进一步细化说明)所以,在这种情况下,请确保源宿主C能够正确地将其需要发送的数据包(即"IP数据报")传输至指定的默认路由器节点上,并由该路由器节点负责将其转发至目标宿主所在的网络区域。(这部分需要进一步细化说明)因此,在实际操作中,请确保所有参与通信的设备都能够正确识别并连接到各自的默认路由器节点上。(这部分需要进一步细化说明)综上所述,在本案例中由于两个目标点不在同一区域内因此无法直接实现通信需求
当路由器接收到一个IP数据报时,在其首部是否存在错误的问题上首先要进行判断:如果发现错误,则应立即丢弃该数据包并通知源主机;若无错误,则开始转发工作流程。随后系统会查看该IP数据包的目的地址字段,并在路由表中寻找匹配项:若找到对应项,则将该数据包转发至指定下一跳;若未找到匹配项,则同样丢弃该数据包并通知源主机。完成上述操作后系统会提取该IP数据包头部的各项地址信息以确定源端与目的端,并最终查询路由表以获取下一跳的信息(需要注意的是,在此过程中路由器会自动避免发送到广播域)
总结:
5.5 静态路由配置及其可能产生的路由环路问题
5.5.1 静态路由配置
定义如下:静态路由配置指的是用户或网络管理员通过使用路由器的相关命令来手动设置路由表信息的过程。
缺点:
- 手动配置的方式简单且计算开销较低。
- 通常仅适用于小型网络环境。
- 静态路由配置可能导致路由环路的原因可能包括:
(1)配置错误;
(2)可能聚合了不存在的网络;
(3)可能因网络故障而出现问题。
需补基础知识:
- 手动配置过程
情况一:
当路由器R1发送数据包至网络段位为192.168.2.0/24时,请问如何实现该路由器对此数据包的转发?由于该路由器的端口编号为"接口ID 5"并仅与局域网段位为"子网掩码 37FF"相连(即物理连接到设备编号5),而目标设备所在子网段位也为"子网掩码 37FF"(设备编号5),因此下一个接口应转发此数据包至目标设备所在子网段位。然而,在当前配置中该路由表中并未包含此相关信息,请您考虑在手动配置时添加以下 routes 描述项:"目的地址族: 本地地址范围 本地地址范围, 下一条接口: 子网掩码 37FF, 接口 ID: 5"
手动添加路由表条目后:
在情况二中:如同前面所述,在路由器R2向网络192.168.1.0/24发送数据包时,在R2的路由表中缺乏下一跳的信息。因此必须手动设置该路由器的路由条目
手动添加路由表条目后:
- 默认路由
情况描述:当路由器R1向互联网中的多个网络发送数据包时,默认路径会被自动启用以便访问所有未知的目的地。\n
当目标主机已知其IP地址但未知其所属网络时,默认路径会被启用。\n
通常情况下,默认路径会被配置以便访问所有未知的目的地。\n
在这种情况下,默认路径会被自动启用。\n
如果能够手动设置默认路径,则可以简化相关配置。\n
- 特定主机路由
问题:首先要明确的是,在 router 的 routing table entries 中的 destination 是指目的网络地址而非 target IP 地址(同样可以这样理解:router 的转发工作属于 network layer 因此只需要知道 destination 网络地址就能确定 target IP 地址所在的局域网中——知道了 destination 网络地址就可确定 target IP 必然位于该局域网内从而通过 data link layer 的 MAC 地址可以直接引用该 MAC 来定位 target host)。
若 router 中的 routing table entries 中的 destination 是一个精确的目标 IP 值则称其为 specific host routing 该技术主要用于 netlevel 测试。
具体说明导致路由环路出现的原因共有三种情况之一:(一)配置失误的具体情形。不同路由器在其默认情况下会被分配为直连网络的部分,在正常运作下能够实现与相邻节点之间的通信连接;然而,在手动设置相关参数时可能出现误操作而导致路径不正确的情况发生。例如,在实际应用中当某台设备如路由器R2向目标地址...发送数据包时 在正确配置下能够顺利传输 但在手动设置相关参数时可能出现误操作而导致路径不正确的情况发生 这种情况下就会产生问题并引发循环回送的情况
解决方法:
- 为了避免IP数据报在路由环路中无限循环,在IP数据报头信息中设置了生存时间(TTL)字段。
- IP数据报经过路由器处理时,TTL字段的值减一。当该字段的值不为零时会被路由器转发;如果该值等于零,则会被丢弃。
(3)问题:若R3需转发至网络地址198.55.55.55/34,则必须确保其下一跳记录存在于其路由表中;否则将无法实现正常通信。需要注意的是,在此情况下,在R3中的聚合路由实际上涵盖了四个子网区域:包括A类、B类、C类以及D类地址范围。但若尝试从该设备发送一个不存在于上述覆盖范围内的目标地址,则会引发错误行为——即数据将被错误地发送回自身端口而非指定的目的端口;这可能导致通信连接被断开并引发系统崩溃风险;因此必须严格按照规定的路由范围进行配置操作才能避免此类问题发生
注
(3)网络故障
情况:当R1的端口0连接至网络段(IP地址范围)为 ¹⁹².¹⁶⁸.¹.⁰/²⁴ 的线路出现故障且无法与另一端通信时,在此情况下 R₁ 的路由表中会自动删除对应记录 "目的网络为 ¹⁹².¹⁶⁸.¹.⁰/²⁴ 并通过接口 ₀ 进行通信" 。此时假如 R₂ 需要发送数据包到该目标网络段 ¹⁹².¹₆₈.₁.₀/²₄ ,而 R₂ 的路由表中有相关记录,则能够正常发送至该设备;然而 R₁ 中并未拥有该目标网络段的相关路由信息因而只能依据默认路径完成传输任务 。如果 R₂ 能够成功接收这些数据包并将其转发回 R₁ ,则会形成一种双向通信机制 。
解决方法:
当R1的端口0连接至网络段192.168.1.0/24出现故障无法通信时,则会导致该路由项被移除并直接标记为失效。经过这一操作后,在正常情况下不会有任何数据包被发送到与之相连的其他设备如R2。
5.6 路由先择协议概述
5.6.1 内容
- 静态路由选择
- 动态路由选择
5.6.2 因特网所采用的路由选择协议的主要特点
- 自适应:该网络系统具备良好的适应性,在动态变化的网络环境中能够灵活应对各种需求
- 分布式:各路由器之间会进行动态地交换路由信息
- 分层次:该网络架构采用分层设计策略,并将整个互联网划分为若干个独立运行的自治系统AS(Autonomous System)
因特网采用分层次的路由选择协议:将网络划分为多个自治系统AS;用于实现域内路由选择的协议是内部网关协议IGP(仅作为分类依据而非具体方案);而用于实现域间路由选择的则是外部路由协议ERP。需要注意的是,在实际网络架构中,并不存在单独负责网关功能的设备;通常情况下,在网络中没有路由器负责网关功能
5.6.3 各个部分使用的具体协议
在内部网关协议IGP中采用RIP或OSPF协议进行配置,在外部网关协议EGP中则采用BGP协议来实现数据传输
5.6.4 路由器的基本结构
路由器是一种拥有多个接口且配置有输入端口与输出端口的专用设备。其核心功能是处理数据分组流量。整个路由器架构可划分为两大主要组成部分:首先是智能路由模块(负责路径选择),其次是数据包转发模块(负责流量传输)。
5.7 路由信息协议RIP的基本工作原理
5.7.1 RIP介绍
5.7.2 RIP的基本工作过程
(1)
(2)
(3)
5.7.3 RIP的路由条目的更新规则
(1)初始条件
(2)当路由器C的RIP更新广播周期已满时,则该路由器会负责将自身存储的相应路由数据打包进RIP更新广播中并转发给下一跳的接收到端点D。具体而言,则会自动向其发送这些更新信息。
(3)当路由器D接收到RIP更新广播报文时,在其本地数据库中发现与邻居路由器C相关的路由信息后,在RIP协议框架下对相关路径进行优化与更新操作。具体来说,在处理该RIP数据的过程中,系统会将该信息反馈给相关节点,并通过链路状态协议(LSA)向相关节点发送新的路由信息:首先将目标网络下一跳地址字段设置为该邻居节点自身标识符,并在LSA中记录相应路径长度加1的操作;其次根据接收方当前已掌握的所有可达路径信息进行比对与优化处理;最后通过广播机制向所有相邻节点发送包含最新路径信息的新LSA数据包。因此,在此情况下,默认情况下会使得目标网络到自身所在区域的距离字段加1,并将下一跳字段设置为该邻居路由器。
(4)路由器D根据改造好的C的路由表,来更新自己的路由表。
规则一:
规则二:
规则三:
规则四:
规则五:
5.7.4 RIP存在“坏消息传播得慢”的问题
当N1网络发生故障时,R1会立即设置其路由表中针对N1的路由为直连并标记为不可达.经过完成一次完整的Routing Information Protocol( RIP) 更新周期后,系统会自动将此次故障报告的信息转发至相邻路由器如 R2
(2)而R2的路由表信息是之前R1没故障的时通过RIP协议候获得的。
(3)若R2的RIP周期先到时间,那么R2将这个之前的信息(现在已错误),再发送给R1
而R1接收到R2的信息后, 会将自身正确的信息(距离加1, 下一跳可达)更新为错误信息, 然后等待自身完成一个完整的RIP协议周期后再传向R2.
5
注意:
- 路由环路问题往往持续几分钟。
- "坏消息传播得慢"这一现象又被称作"路由环路"或"距离无穷计数"的问题,这是基于距离向量算法的一个典型缺陷。
- 这种情况属于该算法体系中的一个典型缺陷,主要影响其性能表现。
解决方案:采用多种策略尽量降低该问题发生的几率,并尽量减轻其影响的大小,但无法完全消除。
- 限定最长路径长度不超过15(当路径长度为16时视为不可达)
- 路由表发生变更时被及时触发更新数据包(而非仅依赖于周期性广播)
- 路由器被配置以记录接收特定路由信息的接口端口,并禁止该接口向与其相对应的相反方向传播该路由信息(即'水平划分')
5.8 开放最短路径优先OSPF的基本工作原理
5.8.1 内容
代价计算举例:
5.8.2 OSPF的基本工作原理
5.9 边界网关协议BGP的基本工作原理
5.9.1 存在问题一
没有统一的的度量,无法找到最佳路由的路径
5.9.1 存在问题二
存在一定的限制条件, 即国内的自主体系之间无法相互连接, 且单一的某个自主体系也无法实现功能, 同时还需支付费用
5.9.3 要求
(1)
(2)
BGP适用于多级结构的因特网:
BGP-4有四种报文:
三种网络层协议的所封装到的地方:
5.10 IPv4数据报的首部格式
5.11 网际控制报文协议ICMP
(1)差错报告报文
终点不可达
源点抑制
时间超时
参数问题
改变路由(重定向)
注意:
(2)询问报文
应用举例:
注意
5.12 虚拟专用网VPN与网络地址转换NAT
(1)虚拟专用网VPN
(2)网络地址转换NAT
注意:
六、传(运)输层
6.1 传输层概述
6.2 传输层端口号、复用与分用的概念
- 端口号相关概念
- 发送放的复用和接收方的分用
- TCP/IP体系的应用层常用协议所使用的运输层熟知端口号
6.3 UDP和TCP的对比
- UDP和TCP是TCP/IP体系结构运输层中的两个重要协议
对比一:
对比二:
对比三:
对比四:
对比五:
注意:由于TCP的首部字段较长与UDP相比,在实现功能方面自然更为丰富。例如,在流量控制和拥塞控制等方面都有显著的应用。
6.3 TCP的流量控制
6.4 TCP的拥塞控制
- 拥塞:
- TCP拥塞控制的四种算法
假设条件:
(1)慢开始(slow-start)
(2)拥塞避免(congestion avoidance)
(3)快重传(fast retransmit)
问题:
快重传具体实现:
(4)快恢复(fast recoery)
四种算法总结:
6.5 TCP超时重传时间的选择
6.6 TCP可靠传输的实现
窗口变化情况:
程序实现思路:
总结:
6.7 TCP的运输连接管理
6.7.1 TCP的连接建立
需解决的任务:
具体过程:
为了避免混淆并确保通信准确无误而被误认为是断开状态的恢复机制,在TCP协议中将三次握手机制维持为不可缩减的形式
注意:
6.7.2 TCP的释放TCP连接
具体过程:
当四次握手发生时(即TCP客户端向TCP服务器端发送确认),若第四次握手成功完成,则表示TCP数据包丢失。然而,在此过程中(即TCP客户端处于关闭状态),由于此时TCP客户端已处于关闭状态(因超时重传而被阻断连接),因此不会注意到TCP服务器发送的这个确认报文。因此,在此情况下(即当第三次握手未成功完成且TTP数据包丢失的情况下),会导致TCP服务器一直等待关闭(永远无法与TTP建立连接)。这样的情况会导致资源浪费现象。
该计时器用于:当TCP客户端与TCP服务器端处于正常连接状态,在传输数据的过程中如果出现故障,则会导致服务器持续处于等待数据状态
6.7.3 TCP报文段的首部格式
具体各个部分描述:
数据偏移举例:
七、应用层
7.1 应用层概述
- 分类
7.2 客户/服务器方式(C/S方式)和对等方式(P2P方式)
客户/服务器方式(C/S方式)
对等方式(P2P方式)
7.3 动态主机配置协议DHCP
问题:
为使以下标红圈网络中的主机正常上网,则需设置每台主机的IP地址、子网掩码以及相关的DNS服务器和默认网关设置。如果该网络包含大量主机,则手动完成这些配置将十分繁琐。(可以想象,在校园网中的认证流程(尤其是有线网络)通常需要先访问一个网站,并在其界面中输入相关信息;只有当相关信息匹配成功后才能实现上网)
解决方法:增加一台DHCP服务器
DHCP的工作过程:
(1)主机以广播方式发送DHCP DISCOVER数据报
DHCP 服务器会对 DHCP 客户机作出回应,并在此前使用 ARP 确认所选 IP 地址是否已被网络中的其他主机占用。
(3)DHCP客户机以广播方式告知已经有DHCP服务器给自己服务
(4)DHC服务器对客户机做出确认
在租用期结束后再次向原先的DHCP服务器请求延长租用期
DHCP服务器能够接收此请江能够完成分配并予以批准;当dhcp服务器接收此请求数量不足则会拒绝分配导致主机立即停止运行;若dhcp服务器未能接收相关请求数量则在租用期的0.875倍时间后再次尝试发送请求数量;当租用期结束则会导致主机同样立即停止运行
(7)DHCP可随时发送DHCP RELEASE数据报,使得客户机立即停用
现象:当另一台网络中的主机试图利用本网络的 DHCP 服务器来动态分配 IP 地址等信息时,请问能否实现?显然无法实现。
方法:给该路由器配置DHCP服务器的IP地址,并使之成为DHCP中继代理。
7.4 域名系统DNS
作用:将域名解析成IP地址
问题:因特网是否可以只使用一台DNS服务器?
域名:
因特网的域名空间:
域名解析的过程:
(1)递归查询
(2)迭代查询
改进:
7.5 文件传输协议FTP
7.5.1 内容
7.5.2 FTP的应用
FTP运行基于客户端/服务器端模式,在网络中相关终端设备即可实现上载各类文件资料,并提供下载功能。
在同一个局域网内配置了FTP客户端和服务器。随后,在同一网络中的另一台计算机上设置为FTP服务器时,可以选择第三方专门提供的应用软件或采用Windows自带的应用程序。
(2)FTP服务器计算机建立起来好FTP服务后, 通过浏览器或文件资源管理器的数据ftp://ip地址, 或者通过CMD命令ftp ip, 就能访问FTP服务器了。若采用CMD命令, 必须采用put和get指令来实现上传或下载功能; 但如果进行文件拖拽操作, 则需依赖专业的FTP客户端软件完成相应的操作步骤, 从而实现对 FTP 服务器的登录与文件传输功能的实现。
总结:
7.5.3 FTP的基本工作原理
当一个 FTP 客户端试图访问某个 FTP 服务器时, 系统会 随机选取一个临时端口号码 作为源 端 口, 并将 FTP 标准使用的 21 端 口 作为 目 标 端 口. 接着系统会向目标 server 发起一个 TCP 连接 请求. 所 建立 的 这 样 一 个 连 接 将 成 为 发 送 和 接 收 FTP 控 制 指令 的 渠 道, 即 客 户 端 和 server之间 的通信渠道.
当需要传输数据时,FTP客户端会通过命令通道通知FTP服务器开启与另一个临时端口号的TCP连接,并从而形成数据传输通道。随后,在完成该连接后,该客户端将选择一个临时端口号与FTP服务器的端口号20建立数据传输通道。这种模式被称为主动模式(因为数据传输前由FTP服务器主动发起连接)。
被动模式:当需要将数据进行传输时,在FTP协议中采用主动模式之前(即处于主动模式之前),FTP客户端会通过命令通道向FTP服务器指示开启一个临时端口并静默等待TCP连接的建立以便后续的数据通信
注意:
- 控制连接持续保持打开状态,在会话进行中负责传输相关的控制信息。
- 数据连接仅在实际需要建立时才会创建,并在任务完成时自动关闭。
7.6 电子邮件
7.6.1 内容及原理
7.6.2 简单邮件传送协议SMTP(Simple Mail Transfer Protocol)的基本工作原理
注意:
为了避免繁琐的过程,在此省略了认证流程。通常情况下,在应答代码后会紧跟简明扼要的信息。同一应答代码在不同SMTP服务器上的描述信息可能存在差异。
缺点及优化:
7.6.3 常用的邮件读取协议、
7.6.4 基于万维网的电子邮件
7.7 万维网WWW
7.7.1 万维网定义
7.7.2 浏览器
7.7.3 万维网的应用
- 统一资源定位符URL
- 万维网的文档
7.7.4 超文本传输协议HTTP(HyperText Transfer Protocol)
7.7.5 超文本传输协议HTTP报文格式
- 请求报文格式
请求行中的方法:
- 响应报文格式
7.7.6 Cookie原理及应用
定义:
工作原理:
(1)用户主机向万维网服务器发送HTTP请求
(2)服务器进程会生成一个独一无二的Cookie识别码,并以该识别码作为索引,在服务器后端数据库中建立一个详细记录系统的项目
随后就会向用户浏览器进程返回HTTP响应报文。其中有一个字段是Set-Cookie字段, 其值为此处的Cookie识别码.
每当用户浏览器接收到响应报文时,在指定的Cookie文件记录本中新增一行内容, 以注册并存储该服务器的域名以及对应的Cookie识别码.
当访问者再次登录/访问该网站时,在此过程中系统会自动从 cookie 文件中提取该网站对应的 cookie 识别码。
(6)将取出的Cookie识别码放到HTTP请求报文的Cookie首部行中。
(7)服务器根据Cookie识别码就可以识别出该用户。
(8)返回该用户的个性化网页。
7.7.7 万维网缓存与代理服务器
缓存在主机访问服务器的过程当中。
(1)若某台位于校园网的主机欲接入互联网上的原始服务器,则该主机首先会向校园网的代理服务器发起请求。
(2)当校园网中的代理服务器接收到网络请求后,在本地缓存模块中进行数据处理,并将处理后的响应返回给主设备
(2)若代理服务器中存储有关于某个请求的内容,则该代理服务器将向该主机返回包含该内容的响应。
(3)若Web服务器中未缓存目标数据,则Web服务器将向因特网上的原始服务器发起请求。
(4)原始服务器将包含有所请求对象的响应发回给代理服务器。
(5)代理服务器将该响应存入Web缓存,然后给主机发回该响应。
总结:当Web缓存系统的命中率达到较高水平时,则显著降低了该链路中数据传输的开销, 从而减少了因特网访问的时间延迟.
在代理服务器与原始服务器之间存在关于文件更新的问题:当原始服务器中的某个文档发生变更时(或者在这种情况下),然而,在这种情况下(或者此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时),然而,在这种情况下(或者在此时)。这将导致主机在请求相关资源时会接收到来自代理服务器的副本而非最新的版本
解决方法:
原始服务器一般会为每个响应内容记录修改时间和有效日期字段
(1)当该网络中的一台主机试图访问原始服务器时
(2)它将先由该网络中的主机向其代理服务器提交请求
(3)该主机将首先通过其所在的校园网代理服务器发起请求
若代理服务器中的该文档存在有效期内,则代理服务器将其打包在响应报文中返回给主机。
当代理服务器内的某个文档已过期时,则该代理服务器会向因特网上的原始服务器发送一个HTTP请求,在此HTTP报文中包含一个称为If-modified-since的首部字段,其值即为此文档最后一次修改的时间戳。
原始服务器基于该文档的修改日期即可确定代理服务器中存储的此文档是否与本系统中的此文档保持一致。如果一致,则指示代理服务器返回一个没有实体主体内容的回答;状态码设为304并附上Not Modified。
代理服务器将该文档的有效日期进行重置,并将其打包包含在响应数据包中返回给主机
当存在不一致时,则向代理服务器传输包含该文档的应答报文。接着会将更新后的该文档重新包装进应答报文中并返回给主机。
