计算机网络知识点总结
整理了学习计算机网络的知识点笔记
知识内容来自《中科大计算机网络自顶向下》《湖科大计算机微课堂》
第1章:概论
Internet:
节点
- 主机及其上运行的软件应用 (主机节点)——目标数据
- 网络中的路由器、交换机等 网络设备 (数据传输节点)
边:通信链路
- 接入网络 线路:通过网络连接到互联网的线路(该线路经由交换机节点连接至网络中)
- 骨线传输介质:路由器之间的传输介质 (该介质用于实现数据节点之间的通信)
协议
- 一些标准
具体构成:
数以亿计的、互联的计算设备:
- 主机 = 端系统
- 运行的网络应用程序:APP 服务器 操作系统…
通信链路:
- 光纤、同轴电缆、无线电、卫星
- 传输速率 = 带宽(bps)
分组交换设备:
- 转发分组 (packets)
- 路由器(网络层)和交换机(switch)
协议控制发送、接收消息:
- TCP IP HTTP FTP PPP
Internet是“网络的网络” 网络与网络组合在一起
- 松散的层次结构,互连的ISP
- 公共Internet vs. 专用intranet
Internet标准 (开放)(参与度高)
- RFC: Request for comments
- IETF: Internet Engineering Task Force
协议 PDU
协议规定了两个或多个通信实体之间交换的报文格式(语法语义)以及它们之间的传递顺序,并且在报文传输、接收或其他事件中采取的具体行动
什么是Internet:从服务角度
- 通过利用通信设施进行交流的分布式的系统(解释网络存在的意义)
- 基础架构为apps提供了编程接口(作为核心组件的一部分),适用于主机层以下的应用
网络结构
网络边缘 :
- 主机
- 应用程序(客户端和服务端)
网络核心 : (数据交换的作用)
- 互联着的路由器 和交换机
- 网络的网络
接入网,物理媒体:
- 有线无线的通信链路(网络边缘系统接入到网络核心)
网络边缘:
端系统(主机):
运行应用程序
如Web、email
在 “网络的边缘” 客户/服务器模式
客户端向服务器请求、接收服务
如Web浏览器/服务器;email客户端/服务器 对等(peer-peer )模式
很少(甚至没有)专门的服务器
如 Gnutella、KaZaA、Emule
网络边缘:采用网络设施的面向连接服务
目标:在端系统之间传输数据
握手:数据传输前要做好准备
- 两个通信主机之间为连接建立
TCP——传输控制协议
TCP服务
- 可靠的,按顺序 的传送数据
- 确认和重传
- 流量控制
- 数据传输的流量大小
- 发送方不会淹没接收方
- 拥塞控制
- 当网络拥塞时,发送方降低 发送速率
网络边缘:采用基础设施的无连接服务
**目标:**在端系统之间传输数 据
- 无连接服务
UDP – 用户数据报协议 无连接
不可靠数据传输
无流量控制
无拥塞控制
网络核心
使用TCP的应用:
HTTP (Web), FTP (文件传
送), Telnet (远程登录),
SMTP (email)
使用 UDP的应用:
流媒体、远程会议、 DNS、
Internet电话
网络核心:路由器的网状网络
电路交换:
利用信令系统 连接一条独享 的电路(进行双向通信)
独享资源:不同享
- 每个呼叫一旦建立起来就能够保证性能 (性能保障)
没有数据发送,被分配的资源就会被浪费
将带宽分成片
- 频分 FDM
- 时分 TDM 时隙
- 波分 WDM
每条链路的速率(一个时间片):
(所有链路的速率)/时隙
共用时间:传输时间+建立链路
电路交换不适合计算机之间的通信
连接具有较长的持续时间
计算机之间的通信呈现波动性,在采用分时共享的方式进行通信时会导致大量数据流量得不到及时处理
即使这个呼叫没有数据传递,在其占用的片上也 无法 被其他呼叫使用 (资源浪费)
可靠性不高?
分组交换:
基于分组的存储转发机制下实现网络通信方案
好处:
- 共享
- 按需使用
资源共享 ,按需使用: 存储 -转发:分组每次移 动一跳( hop ) 且完全存储
- 在发起转发前,节点必须接收整个分组的完整拷贝并在完成转发过程中使用此数据
- 传输延迟相较于线路交换过程而言更为显著
- 队列等待时间
分组交换:存储-转发
在传输过程中,在到达下一个链路之前,整个分组必须先进入路由器进行存储-转发处理。
在速率R bps的链路上运行时,在经过路由器进行存储-转发处理后产生的延时时间为每比特所需的时间。
分组交换: 排队延迟和丢失
😏如果到达速率 >链路的输出速率:
- 分组将会排队,等待传输
- 如果路由器的缓存用完了,分组将会被抛弃
分组交换网络核心的关键功能
路由: 决定分组采用的源到目标的路径 (全局功能)
- 路由算法 算出路由表
转发: 将分组从路由器的输入链路转移到输出链路 (局部功能)
分组交换:统计多路复用 (没有固定的模式)
分组交换 vs. 电路交换
同样的网络资源,在采用分组交换的情况下能够使得更多人能够方便地接入互联网!即使自己不用时也能供他人使用。
分组交换是“突发数据的胜利者”
适合于对突发式数据传输
- 资源共享
- 简单,不必建立呼叫
过度使用会造成网络拥塞:分组延时和丢失
- 对可靠地数据传输需要协议来约束:拥塞控制
Q: 怎样提供类似电路交换的服务?
- 保证音频/视频应用需要的带宽 (多媒体的应用)
分组交换网络:存储-转发
分组交换机制中包含数据分组在存储转发过程中的传输方式。自源端经由传输介质传递至目的端的过程中,“按照有无网络层的连接”分为两种类型:一种是有网络层连接的情况;另一种是没有网络层连接的情形。
数据报网络: 通信之前无需建立连接 有数据就传输
- 目标地址决定了下一跳的目的地
- 在不同的阶段中, 路由可能会发生变化(可能导致路径混乱)
- 例如: 询问路线
- Internent
虚拟电路网络:用于在通信前建立连接 在虚拟电路网络中,在通信前会设置连接路径;每个路由节点都会包含指向其后续节点的虚拟通道表
- 带有虚电路标识VC ID的每个分组都会标记其下一跳。
当建立一个呼叫时会确定路径,并且在该整个呼叫期间路径始终保持不变。- 路由器持续维护每个连接的状态信息。
X.25和ATM
- 路由器持续维护每个连接的状态信息。
接入网络和物理媒体
住宅接入:modem
通过调制加载音频信号上,在电话线路中进行传输,在局端设备处解调出这些数据;相反地,在局端设备处解调出这些数据。
- 调频
- 调幅
- 调相位
- 综合调制
物理媒体
Bit: 通过发送-接收对之间的传输路径实现信息传递 物理链路:构成连接所有发送-接收对的物理传输介质 导引型 媒体:
- 信号沿着固体媒介被导引:同 轴电缆、光纤、 双绞线
非导引型 媒体:
- 开放的空间传输电磁波或者光 信号,在电磁或者光信号中承 载数字数据
光纤和光缆:
高速
低误码率:在两个中继器之间可以有很长的距离,不受电磁噪声的干扰
安全
Internet结构和ISP
- 端系统通过接入ISPs (Internet Service Providers)连 接到互联网
如果将每两个ISPs直接相连 不可扩展 需要很大的时间复杂度
每个接入ISP通过网络接口连接到覆盖全球范围内的所有客户ISP与提供者ISP,并参与经济合同关系
ISPs有竞争有合作
合作利用IXP (Internet exchange point)
(全球接入和区域接入)
这些互联网内容提供商(例如Google、Microsoft、Akamai等)可能会自行搭建各自的网络系统,并将其提供的各种服务与内容向终端用户提供得更接近。通过这种方式,他们不仅能够提升服务质量,还能降低自身的运营成本。
分组延时、丢失和吞吐量
分组丢失和延时的发送时机
- 分组到达链路的速率超过了链路输出的能力
- 分组等待排到队头、被传输
(延时):因为输出能力大小有限 分组排队传输 所以传输会有延时
(分组被丢弃):在缓冲区供分组等待使用的情况下,在无法找到空闲缓冲区时将导致该分组被舍弃。
分组延时:
1. 节点处理延时 :
- 检查 bit级差错
- 检查分组首部和决定将分组导向何处
2. 排队延时 (随机)取决于当前网络情况
- 在输出链路上等待传输的时间
- 依赖于路由器的拥塞程度
两点间数据接收的延迟:
- 传输延时: 第一个数据与最后一个数据传输时间的延时 R =链路带宽(bps) L =分组长度(bits) 将分组发送到链路上的 时间**= L/R (分组的大小除以链路的传播数据)** 存储转发延时
- 传播延时: 同一数据数据传输和接收的延迟 d = 物理链路的长度 s = 在媒体上的传播速度 (~2x108 m/sec) 传播延时 = d/s
节点延时:
d nodal = d proc + d queue + d trans + d prop
- dproc = 处理延迟 通常在微秒级别且不超过此数值
- dqueue = 队列延迟 受网络拥塞程度影响
- dtrans = 传输耗时 使用公式 L/R 计算得出,在低速率链路中可能较大(如拨号连接),通常范围为微秒至毫秒级
- dprop = 传播延迟 具体而言,在几微秒到几百毫秒之间波动
排队延时: 取决于流量强度
L : 分组长度
R:链路带宽
a: 分组到达队列的平均速率(单位时间内到达的分组数量)
流量强度: La/R
La:每单位时间需要放出的比特数量
La/R ~ 0: 平均排队延时很小
La/R - > 1: 延时变得很大
当数据流量输入速率(即参数La)与服务输出速率(即参数R)满足关系式La/R > 1时,在队列中积累的数据流量输入速率高于从该队列的服务输出速率,在这种情况下,系统中数据 packets的平均等待时间将无限增大!
设计系统时流量强度不能大于1!
(导致分组丢失)
利用TraceRT来测试往返延时
每份数据包中包含一个时间戳字段(TTL),该字段在初始时赋值后会逐个递减1,在计数器降为0的时候会触发本节点向起始节点发送一个ICMP响应报文通知数据往返时延信息。
- 数据中的TTL为0 返回ICMP
- 数据没有后续接收点 返回ICMP
分组丢失:
链路的队列缓冲区容量受限 当分组达到已满的队列时 失败的数据包可能由前一节点或源端系统(TCP)进行再传输 或者根本不进行再传输(UDP),两种情况均有可能发生
吞吐量: 在源端和目标端之间传输的速率(数据量/单位时间 )
- 瞬时吞吐能力: 在一个特定时刻的处理速度
- 平均吞吐能力: 在较长的时间段内的平均处理速度(受较小的吞吐量影响)
协议层次及服务模型
协议层次
网络是一个复杂的系统!
层次化方式 实现复杂网络功能:
将网络复杂的功能按照层级结构进行分类管理,并为每个层级分配一个或多个任务;其中各层级能够调用上一层级的服务。
这些协议实体之间进行互动以完成相应的协议操作。其主要目标是达成这一层次的功能需求。借助接口设计,为上一层系统提供了更为优化的服务支持。
在实现本层协议的时候,直接利用了下层所提供的服务
本层的服务:基于下层服务实现本层协议实体间的交互带来的新增功能模块(上层可利用)及更低一层提供的服务
层和层之间交流产生新的功能 产生新的服务特性
服务通过**原语(函数)**来操作。低层实体向上层实体提供他们之间的通信
协议是对等层实体之间相互通信的过程
Service Access Points (SAP):upper layer utilizes services provided by lower layer through the interfaces between layers—location;
本层协议的实现要靠下层提供的服务来实现
本层实体通过协议为上层提供更高级的服务
数据单元
常见的计算机网络体系结构:
OSI的七层次架构包括:底层物理媒体, 网络数据传输介质, 网络通信路径, 数据传输协议, 上下文管理机制, 语法规范以及应用程序接口
TCP/IP 的四层体系结构:网络接口层,网际层,运输层,应用层
五层协议的原理体系结构:物理层,数据链路层,网络层,运输层,应用层
物理层
物理层的基本概念:
- 物理层负责如何实现将数据比特流在各计算机间的不同传输介质上进行传送
- 物理层通过将不同类型的传输介质进行隔离与过滤,在此之上数据链路层即可专注于完成本层次的具体协议和服务工作而不必关心网络中实际采用了哪种具体的传输介质(为此上一层的服务)
常用术语:
信息:如语音、文字、图像、视频等
传输方式:
串行传输、并行传输
同步传输、异步传输
单向通信(单工)、双向交替通信(半双工)、双向同时通信(全双工)
编码与调制:
- 基带信号通常包含较多的低频甚至直流成分,多数信道无法传输这些内容,因此需要通过某种方式对基带信号进行调制 * 基带调制是一种技术,主要通过对基带信号的波形特征进行改变,使其能够更好地匹配信道的技术限制 * 通过这种技术处理后,得到的结果仍然是一个符合基带特性的信号
- 带通调制则是采用一种称为载波转移的技术,将基带信号从较低频率移动到较高频率区域,并将其转换为模拟形式.经过这种操作后得到的是一个特定频段内的移频模拟信号
常用编码:
编码:让每一个码元承载更多比特的信息量(当码元传输速率达到上限时提升单位时间内的信息传递效率的方式)
- 该不归零的编排方案容易导致同步上的混乱
- 传统的自同步编排方法如归零编排,在实现时往往面临效率较低的问题
- 基于传统以太网的技术框架下采用正跳变与负跳变相结合的方式完成二进制化处理
- 差分曼彻斯特编排方法相比传统的曼彻斯特编排方法,在实现上更为高效适合高速数据传输环境
基本调制方法:
- 数字基带信号
- 调幅(AM)
- 调频(FM)
- 调相(PM)
- 正交振幅调制QAM :相位与振幅调制
信道的极限容量:
-
影响码元在信道中传输速度的关键因素
- 导致信号失真的主要原因
- 码元在信道中的传输速度
- 信号在传播过程中所经过的距离
- 容易受到干扰的情况
- 传递介质的质量状况
- 导致信号失真的主要原因
-
信噪比与频率带宽对香农公式产生重要影响,在信息传递过程中具有不可忽视的作用;另一方面,在特定频带宽度下同时满足奈斯达准则与香农定理的要求,则需要考虑调制速率这一关键参数。
-
当通信信道宽度固定不变时,在遵循奈斯达准则及应用香农理论的基础上,则必须要采取多元化技术(即采用更为先进的调制方案)以及持续提升信道质量才能进一步提升信息传输效率。
-
自从香农理论首次提出以来,在此基础之上不断涌现了一系列新的信号处理技术和先进调制方法的目的就在于最大限度地接近香农理论所设定的信息传输速率上限。
数据链路层
三个重要问题:
封装成帧
差错检测
* **循环冗余校验CRC**
可靠传输
使用广播信道的数据链路层
- 共享式以太网的介质访问控制协议采用CSMA/CD机制
- 802.11无线网络通过介质访问控制协议采用CSMA/CA方法
数据链路层的互连设备
- 网桥和交换机的工作原理
- 集线器(物理层互连设备)与交换机的区别
帧头和帧尾的作用之一就是帧定界
透明传输的指数据链路层对上层交付的传输数据没有任何限制
三种可靠传输的实现机制
停止-等待协议SW
回退N帧协议GBN
选择重传协议SR
点对点协议PPP
点对点协议PPP是目前使用最广泛的点对点数据链路层协议
-
该系统采用将协议数据包以帧的形式进行处理。
-
链路控制协议LCP 负责创建并管理其相关联的数据链路之间的连接状态。
- 一套网络控制协议NCPs 其中的每一个协议支持不同的网络层协议
透明传输——面向字节的异步链路采用插入转义字符的字节填充法
在定界符后加入字符
透明传输——面向比特的同步链路采用插入比特0的比特填充法
点对点协议PPP工作状态
媒体接入控制
共享信道必须解决的问题包括协调多端发送与接收设备对一个共享传输介质的使用情况
在固定网络环境中已完全取代共享型本地网络的是一种基于直接通信介质的网络数据传输架构
但无线局域网仍然使用共享媒体技术
信道复用技术
复用器和分用器总是成对使用,前者用于共享高速信道,后者作用相反
- 频分复用FDM:通过不同频带的共享通信介质实现多用户同时传输数据
- 时分复用TDM:基于同一时间窗口内频率不重叠的多路信号实现高效共存
- 波分复用WDM:利用光纤作为传输介质并通过光纤放大器增强信号强度以确保稳定传输
- 码分复用CDM:基于同一时间窗口内频率不重叠的多路信号实现高效共存(码分多址)显著提升了系统的抗干扰能力
多址:多个点接入:动态分配
媒体接入控制——动态接入控制——-随机接入CSMA
- 多点接入机制
- 载波监听技术CS:站点在发送数据前需检查总线上传输的数据流量(‘先听后说’)
- 碰撞检测CD:当数据传输发生冲突时立即触发机制(‘边听边说’)强化冲突检测
- CMSA:CSMA/CA协议
CSMA/CD协议
总线局域网使用的协议 应用于使用广播信道的有线局域网
CSMA/CD协议——-争用期(碰撞窗口)
- CSMA/CD协议限制了同时连接的主机数量,并要求使用的总线长度不超过一定范围。
- 网络ethernet规定最大总线长度为2500米
CSMA/CD协议——-最小帧长
- 以太网将最低数据包大小设定为64个字节 (其中512比特的操作系统称为争用期)
- 最低数据包大小确保能够及时发现潜在冲突
- 如果在争用期内检测到冲突发生时立即停止传输导致所传输的数据包数量必然少于标准大小
- 因此所有小于标准大小的数据包都被判定为因冲突中断而产生的无效数据
CSMA/CD协议——-最大帧长
- 帧的最长尺寸设定为1522个字节
- 数据载荷的最低限度设定不低于42个字节
这样,在两端各增加一个额外的数据块后,
总数据量正好达到64个字节。
- 数据载荷的最低限度设定不低于42个字节
CSMA/CD协议——-截断二进制指数退避算法
退避时间=基本退避时间(争用期2t)*随机数r;
CSMA/CD协议——-信道利用率
极限信道利用率
- 参数a取较小值有助于提升信道利用率。
- 以太网到端的最大距离被限制了。
- 适当调长以太网帧长度能够减少冲突概率。
CSMA/CD协议——-帧接收流程
- 帧长度:若小于最小帧长度64字节则判定发生冲突
- 地址判断:判断目标MAC地址与接收端MAC地址是否一致或属于广播类型
- 校验检测:通过CRC校验检测数据传输是否存在错误
CSMA/CA协议
无线局域网使用的协议
- 在无线局域网环境中,采用CSMA/CA协议时必须避免发生冲突。
- 相比单纯的CSMA协议,在CSMA/CA协议中加入了冲突避免机制(CA)。
- 在无线局域网环境下,尽管难以完全消除所有冲突,并且由于高误码率的影响 ,802.11标准采用了**数据链路层确认机制(停止-等待协议)作为补充措施以确保数据传输的可靠性。
- 802.11 MAC层定义了两种媒体接入控制方案: 分布式协调功能(DCF)与点协调功能(PCF)。
帧间间隔IFS:
- 所有站点只有在持续不断地检测到信道空闲的一段指定时间后才能发送数据包
- 帧间间隔的时间长度取决于该站点当前正在传输的数据类型
- 高优先级的数据包需要等待的一个时间段能够被立即发送出去
- 低优先级的数据包则需要较长的一段时间来等待
- 短SIFS短帧间间隔协议采用固定时长为28微秒的方法来计算最小可选窗口大小
- DCf协议中的DIFS长帧间间隔采用固定时长为128微秒的方法来计算最小可选窗口大小
CSMA/CA协议------—工作原理
退避算法:在完成DIFS过程后仍需进行一次避免冲突的等待(以防止多个站点同时发送数据导致的数据碰撞)
- 当站点检测到信道为空闲状态,并且当前数据帧并非在成功发送完上一数据帧后立即连续发射,则不采用退避策略。
- 包括在传输过程中发现信道处于忙状态时。
- 每当重新传输一个数据包时;
- 每当完成一次成功传输后紧接着尝试传送下一个 framed时;
CSMA/CA协议------—退避算法
- 采用退避算法策略,在确定好退避计时器后进行参数配置。
- 当前端接收到冲突信号导致退避计时器归零时,则立即开始发送数据包。
- 在再次检测到信道忙状态之前,请先冻结当前的退避计时器设置,并等待信道空闲状态达到稳定后再经历DIFS帧间间隔的时间段。
- 多个接入点在信道空闲状态下会经历DIFS帧间间隔的时间段内随机分配不同的退避时间间隔。
- 当数据发送完成后,请等待信道归于空闲状态后再重新启动下一个周期的退避计时器配置。
CSMA/CA协议------—信道预约和虚拟载波监听
- 源站在发送预约RTS(确认响应) frames之后会立即向目的站发送CTS(确认) frames。
- 在完成SIFS(短时闲闲期)之后的目标站在立即发送CTs frames。
- 除了源站和目的站在外的所有其它站点接收到CTs frames后将推迟接入无线局域网。
- RTS与CTS frames都携带通信所需持续时间的信息。
- 数据 frames也携带**(虚拟载波监听)**信息。
- 只要站点接收到任何CTP、RTS或数据 frames中的通信持续时间信息就能确定信道已被占用。
- 虚拟载波监听能减少隐蔽 station带来的碰撞问题。
MAC地址、IP地址、ARP地址
MAC地址:
以太网的MAC子层使用的地址(数据地址)
点对点信道的数据链路不需要使用地址
使用广播信道的数据链路需要数据地址
每个主机发送的帧中必须携带标识发送主机和接收主机的地址
ABR协议 : 地址解析协议ARP
主机不清楚目标IP的MAC地址
- 使用广播MAC帧 来请求接收到目标IP的响应回复目标的MAC地址
集线器HUB与交换机SWITCH的区别
集线器
- 早期以太网中的互联设备
- 位于OSI模型物理层面上的工作
- 对接收信号进行放大处理并转发
- 避免冲突域与广播域产生干扰
交换机
- 主流的以太网技术被广泛应用
- 在OSI体系结构的数据链路层包括(物理层)
- 基于MAC地址对帧进行转发
- 专用独立碰撞域
- 广播域与集线器一致
- 交换机采用分时转发的方式对帧进行处理,并避免碰撞
以太网交换机的自学习和转发帧的流程
登记 --—转发(盲目泛洪)(明确)
- 设置备用链路能够增强以太网的可靠性
- 但这种做法可能会导致负面效应—-产生网络回环
- 网络回环可能引发的问题包括:
- 广播风暴可能导致网络混乱
- 主机接收到重复的广播数据包可能会引发性能下降
- 交换机的帧交换表发生漂移可能导致通信异常
- 网络回环可能引发的问题包括:
- 但这种做法可能会导致负面效应—-产生网络回环
- 采用生成树协议STP能够有效提升以太网的可靠性和稳定性,并且能够系统性地解决网络回环带来的各种潜在风险
- 不论物理连接如何变化,交换机都必须重新计算并重构其生成树结构
分割广播域的方法
- 使用路由器可以隔离广播域(但是路由器的成本高)
- 虚拟局域网
虚拟局域网VLAN
该方案通过将网络内部的所有设备按照不依赖于物理位置的方式来分组来实现对局域网内设备的管理;这些分组通常会共享一些基本需求
虚拟局域网VLAN的实现机制
IEEE 802.1Q帧是由交换机来处理
网络层
主要任务是实现网络互联,进而实现数据包在各网络之间的传输
面向连接的虚电路服务
无连接的数据报服务
IPv4地址概述
IPv4地址即为给网络上的每一台主机(包括路由器)的所有接口分配一个具有全球唯一性的32位标识符。
采用点分十进制表示方法
分类编址的IPv4地址
- A类 * 最小网络号0,保留不指派 0.0.0.0表示“在本网络上的本主机”
- 第一个可指派的网络号为1,网络地址为1.0.0.0
- 最大网络号为127,作为本地环回测试地址,不指派
- 最小的本地环回测试地址为127.0.0.1
- 最大为127.255.255.254
- 最后一个可指派的网络号为126,为126.0.0.0
- B类 * 最小128.0,网络地址128.0.0.0
- 最大191.255,网络地址为191.255.0.0
- C类 * 最小192.0.0,网络地址192.0.0.0
- 最大为223.255.255,网络地址为223.255.255.0
三种情况的地址不能指派给主机或路由接口:
- A类网络号0和127
- 主机号全为“0”这是网络地址
- 主机号全为“1”这是广播地址
基于每个网络中的主机及路由器接口总数,确定对应的类别。
划分子网的IPv4地址
借用16位主机号中的8位作为子网号
- 32位的子网掩码能够表示分类IP地址中的主机号部分占用了多少位作为子网号
- 子网掩码由连续的1组成用于标识网络号和子网号 而连续的0则用于标识主机号
- 划分后 IPv4地址与相应的子网掩码进行逻辑与运算即可得到IPv4所在的子网上对应的网络地址
- 在TCP/IP协议家族中 IPv4是基础协议之一
实际操作:
- 确定IP地址所属类别(如A类、B类等),并识别出其中网络部分与主机部分各自占用的字节数量。
- 将子网掩码表示法转译成二进制形式,并计算有多少个连续的"1"表示从主机号码中借用了相应数量的比特作为子网号码。
- 将IP地址中的主机号码转化为二进制表示,并将其与相应的子网号码对应起来。
- 保持网络号码和子网号码不变,在主机号码字段中将其全部设置为空值以形成网络地址;反之,在其全部设置为"1"以生成广播地址。
默认子网掩码
主机号全置为0,则为此类的默认子网掩码
无分类编制的IPv4地址
划分子网在一定程度上缓解了因特网上发展过程中遇到的主要挑战;然而规模庞大的C类网络由于受限的空间而未能得到充分开发;与此同时因特网使用的IP地址仍在以加快的速度消耗;因此整个IPv4地址资源仍面临完全耗尽的风险。
无分类域间路由选择CIDR是一种基于CIDR的新一代无分类域间路由选择机制;
它取消了传统意义上的A/B/C类地址划分以及划分子网的概念;
这种技术能更为高效地分配IPv4的地址空间。
CIDR采用"斜线表示法"的方式;
在斜线之后标注网络前缀占用的比特数。
此外在网络规划中网络前缀长度与地址块大小呈反比关系;
路由器在分组转发时会识别可选路径并根据最优先原则选择具有最长前缀的那一端;
这一过程即被称为"最长前缀匹配"。
IPv4地址的应用规划
小型互联网中的各设备分配IP地址:
- 查看主机端口上有多少台连接设备
- 查看路由器接口上连接了多少个端口
- 网络接口配置了一个IP地址
- 广播域设置了一个广播地址
IP数据报的发送和转发过程
- 主机发送IP数据报 * 判断目的主机是否与自己在同一个网络 (利用子网掩码)
- 若在就直接交付
- 若不在,需要间接交付,传输给主机所在的默认网关 (路由器)
- 路由器转发IP数据报 * 检查IP数据报首部是否出错 * 若出错,则直接丢弃该IP分组并告知源主机
- 若没有出错则进行转发
- 根据IP数据报的目的地址在路由表中查找匹配的条目 * 找到则转发
- 找不到则丢弃IP数据报,并告知源主机
静态路由配置及可能产生的路由环路问题
- 静态路由配置是指用户与网络管理员通过路由器的相关指令完成对路由器手动设置其路由信息的操作 * 由于该方式无法动态调整以适应网络状态的变化(如流量波动、拓扑结构变动等),因此存在一定的局限性
- 路由器运行中可能出现以下几种常见问题:
- 配置参数设置不当导致系统异常
- 网络分组聚合时未预先定义相关子网段
- 网络设备运行出现故障
路由选择协议
静态和动态路由选择
- 因特网所采用的路由选择具有特定的特点。
- 自适应地进行动态路由选择。
- 路由器之间动态地交换路由信息。
- 整个因特网按层次划分结构为许多较小的自治系统AS。
自治系统AS
- 内部网关协议IGP 外部网关协议EGP
转发表和路由表
- 该路由表记录了从目的网络向下一跳过渡的映射信息
- 在分析网络拓扑变化时需进行计算优化
- 转换表由路由表生成
- 转换表的结构设计应以提高查找效率为目标
路由信息协议RIP
- RIP通过跳数字段 来评估到达目的网络的距离
- 路由器与直连网络的距离设定为1
- 经过路由器的数量加一即确定非直连网络的距离
- 当距离达到16时认为是不可达的,并仅适用于规模较小的网络环境
RIP认为好的路由为所通过路由器数量最少的路由
当多个路径通向同一个目标网络时,在这些路径均为"距离相等"的条件下,则可以选择实施等效负载均衡策略。
包含三大要点
- 与哪些设备交换信息?只与相邻的路由器进行信息传递。
- 传递的数据内容是什么?它是当前设备的路由表数据。
- 在什么时间段进行数据交互?采用的是定期进行的数据交互策略。
RIP的路由条目的更新规则
发现新网络**,添加**
到达目的网络,但是下一跳不同**,新路由器有优势,更新**
到达目的网络,不同下一跳,等价均衡
到达目的网络,不同下一跳,但是新路由劣势 ,不更新
RIP存在“坏消息传播的慢”的问题:路由环路 或者距离无穷计数 问题
- 限制最大路径距离为15
- 路由表发生变化就立即更新报文
- “水平分割”
OSPF采用开放最短路径优先策略实现网络路由分配功能其核心运作机制是基于Dijkstra所提出的著名最短路径算法 SPF
不限制网络规模 ,更新效率高,收敛速度快。
有五种分组类型
- 问候分组:用于建立与邻居路由器通信关系的问候分组(周期性发送)。
- 数据库描述:该节点将自身的网络接口配置参数通过其数据库描述的形式发送给邻居路由器。
- 网络接口参数请求:当节点需要获取其他节点的信息时会主动向其发起网络接口参数请求。
- 网络接口参数更新:当节点发生拓扑变化时会将网络接口参数更新信息广播至整个网络范围内的所有节点。
- 网络接口参数确认:确认该确认分组是否已成功接收。
之后链路状态会达到一致
OSPF在多点接入网络中的路由器邻居关系的建立
- 配置指定路由器为 DR 和备用的指定路由器为 BRR
- 所有非 DR 和 BRR 设备在各自的区域网关 DR 和 BRR 下形成邻居关系
为了解决大规模网络环境下的应用需求,在OSPF协议中,默认情况下会将一个自治系统划分为若干个较小的区域。
目的:采用分布式的泛洪机制以实现链路状态信息仅限于每个区域而非整个自治网络,并从而降低了整体网络中的通信开销
- 区域内 routers IR:内部网络内部使用的 routers。
- 区域边界 routers ABR:负责区域之间连接的边缘 router。
- 主干 routers BBR:构成骨干 network 的核心 router。
- 自治系统边界 routers ASBR:处理不同自治 system 间连接的 border router.
边界网关协议BGP的基本工作原理(外部网关协议EGP)
不同自主系统间的BGP信息发布方需要进行路由信息共享,在此基础之上必须首先创建一个基于TCP的通信通道。通过在TCP协议的基础上传输相应的BGP报文数据从而实现两个BGP信息发布方之间的连接与交互
不存在回路的自治系统连通图
BGP-4有四种报文
- OPEN(打开)开销:用于建立与另一个BGP交换员之间的关系,并完成通信初始化。
- UPDTAE(更新)操作:用于通知某一路由器最新的网络配置信息,并指示移除不必要的路由。
- KEEPALIVE(保活)操作:用于持续确认相邻路由器之间的通信连通性。
- NOTIFICATION(通知)操作:用于检测并报告网络传输过程中的异常情况。
UDP直接封装RIP
TCP直接封装BGP
IP直接封装OSPF
IP数据报的格式
首部
前一部分是确定长度 的数据包段落,在编码时应确保其总计为20字节这一要求。后面则是一些可选字段段落,在编码时这些字段的长度是可变的
- 版本
- 占四位,指IP协议的版本
- 通信双方使用的IP协议版本必须一致
- 首部长度
- 占4位,可表示的最大十进制数是15
- 首部长度字段所表示的数的单位是32位字
- 区分服务
- 占8位,只有在使用区分服务时 才起作用
- 总长度 * 指首部和数据之和 的长度,总长度字段为16位
- 每种数据链路层协议都规定了一个数据帧中的数据字段的最大长度 ,称为最大传送单元MTU ,如以太网规定MTU值为1500字节,当数据字段过长时就要把过长的数据报进行分片 处理
- 使用尽可能长的IP数据报 会使传输效率得到提高,但数据报短些也有好处——越短则路由器转发的速度就越快
- 每种数据链路层协议都规定了一个数据帧中的数据字段的最大长度 ,称为最大传送单元MTU ,如以太网规定MTU值为1500字节,当数据字段过长时就要把过长的数据报进行分片 处理
- 标识
- 占16位,IP软件在存储器中维持一个计数器,每产生一个数据报,计数器就加1 * 用途:当数据报超过MTU而必须分片 时,这个标识字段的值就被复制到所有的数据报片的标识字段中,相同的标识字段的值使分片后的各数据报片最后能正确地重装 成为原来的数据报
- 片偏移
- 占13位,片偏移指出:较长的分组在分片之后,某片在原分组中的相对位置
- 生存时间
- 占8位,标明这是数据报在网络中的寿命 (防止网络环路)
- 协议
- 占8位,指出数据报携带的数据是使用何种协议
- 首部检验和
- 占16位,只检验数据报的首部,不包含数据部分
- 源地址 :占32位
- 目的地址 :占32位
首部的可变部分
在引入支持IP数据报功能的过程中(即为了实现该功能),这可能带来路由器转发开销的增加(即增加了负担)。根据最新修订的IPv6标准设计,在传输头字段结构上已实现了固定性(即首部固定)
在引入支持IP数据报功能的过程中(即为了实现该功能),这可能带来路由器转发开销的增加(即增加了负担)。根据最新修订的IPv6标准设计,在传输头字段结构上已实现了固定性(即首部固定)
网际控制报文协议ICMP(差错报告报文)
有五种:
- 终点不可达
- 源点抑制
- 时间通过
- 参数问题
- 改变路由(重定向)
以下情况不应发送IMCP差错报告报文
- 不再传输与ICMP错误相关的数据段。
- 除了第一个分片外的所有后续分段不再传输相关错误信息。
- 所有拥有多播地址的数据段都不传输。
- 其中包含特殊目的地址(如127.0.0.1或本地广播地址)的相关数据段不再发送。
ICMP询问报文
- 响应请求与返回响应:确认目标站点的可达性
- 获取时钟同步信息与记录时间:完成时钟同步过程并测量时间间隔
ICMP的应用
- 分组网间探测协议(Ping)
- 用于评估主机与路由器之间是否存在通信路径
- 应用层直接调用网际层的ICMP协议进行通信过程
- 通过回传请求与响应报文实现通信过程
- 路由追踪过程
- 目旨在确定数据包从源计算机到目标计算机经过的所有中继设备(路由器)
- Windows平台通常采用tarcert命令进行故障排除,在该过程中应用层直接调用ICMP协议,并发送及接收回传请求与响应报文以确保通信正常运行
- Unix系统则常用traceroute命令来执行路由追踪任务,在这一过程中仅在传输层利用UDP协议进行通信,并通过仅接收ICMP中的错误报告型报文中完成路径信息的获取
虚拟专用网VPN和网络地址转换NAT
- 虚拟专用网:基于公共因特网作为本机构各专用网络之间的通信基础平台,在同一机构不同部门之间构建的虚拟专用网络统称为内联网VPN。为了确保通信数据的安全性,VPN会对原始数据进行加密处理,并将其打包以便传输。
- 当内部网络需要与外部网络进行通信时,在外部加入特定设备以支持连接的技术被称为外联网VPN。
- 面对快速发展的互联网环境以及日益增长的企业需求带来的IP地址短缺问题,
- 可以采用一种更为灵活的方式——将NAT技术与端口号转换技术相结合使用(即NAPT),从而有效缓解这一挑战。
- 在传统的封闭式网络架构下,在没有某种特定中继设备辅助的情况下,
- NAT系统的主要功能包括对外部访问端点(如外网主机)实施地址屏蔽,并对外部请求提供简单的认证机制。
- 其核心功能之一是对外部网络隐藏内部主机的真实IP地址信息。
应用层
体系结构:
- 客户-服务器(C/S)体系结构 可扩展性差,可靠性差
- 对等体(P2P)
客户端进程:发起通信的进程 服务器进程:等待连接的进程
P2P 架构的应用也有客户端进程和服务器进程之分
分布式进程需要解决的问题
进程标示 和寻址 问题(服务用户 )标示自己与其他人的不同
进程接受报文必须要一个标识SAP
- 主机
- 所采用的传输层协议TCP/UDP
- 端口号
- 传输层-应用层提供服务是如何(服务) 利用socket
- 层间接口负责传输由某一方提供的SDU IP/TCP/UDP信息,并将该信息传递给另一方指定的IP/TCP/UDP端口号。
- 层间SAP
- 应用程序接口API
请阐述如何利用传输层提供的服务机制进行数据通信以促进不同应用进程之间的高效交互,并使用户ends能够方便地调用该服务
TCP socket identifier用于标识本地进程间的通信需求。能够方便地表示本地进程间的通信要求,并且无需每次都重新创建连接。
代表不同的对话关系
- 易于操作与维护
- 跨越层间接口的信息传输规模较小
- TCP socket :指定源IP地址、源端口号(port)、目标IP地址及目标端口号(port)的状态
UDP socket:本IP 本端口
socket 是2元组的一个具有本地意义的标示
但是传输 报文时:必须要提供对方IP,port
- 接收报文时: 传输层需要上传对方的IP,port
TCP 服务:
稳定传输服务
流量管理:确保发送方不会被网络拥塞覆盖
拥塞控制:在遇到网络拥塞时能有效抑制发送方的活动
实时性保证、数据量保证和安全防护功能
基于连接的技术架构:要求客户端与服务器之间建立客户端与服务器之间的通信连接
UDP 服务:
数据传输不可靠会导致不具备"可靠"服务"流量管理"、"拥塞控制"、"时间保障"和"带宽保障"等不具备功能
UDP存在的必要性
能够区别不同的进程(如IP地址),而IP服务却无法实现这一区分 基于IP服务实现了主机到主机端到端功能的基础上,并且成功实现了对主机应用进程的区分 无需开销地建立连接(即省去了开销时间),从而更适合事务性需求的应用 该系统未涉及可靠性保障工作(例如没有采用检错重发机制),因此特别适合那些对实时性要求较高但对可靠性的要求相对较低的应用
- 因为为了实现可靠性(准确性、保序等),必须付出时间代 价(检错重发)
没有拥塞控制和流量控制,应用能够按照设定的速度发送数据
基于TCP协议的应用中,在数据传输层面上观察到的现象表明:应用端发送的数据速率与主机端实际发送到网络层的速度并不完全一致。这一差异主要源于流量管理和拥塞控制机制的有效运行
SSL 在应用层 应用采用SSL库,使用TCP通信 https:// 安全运行
在TCP 上面实现,提供加密的TCP 连接 私密性 数据完整性 端到端的鉴别
Web与HTTP
Web页:由一些对象组成 包含一个 基本的HTML文件
对象可以是HTML文件、JPEG图像、Java小程序、声音剪辑文件等
通过URL对对象进行引用
URL格式:
HTTP
HTTP: 超文本传输协议 跑在TCP协议上
Web的应用层协议
HTTP是无状态的 (简单)维护状态的协议很复杂
服务器并不维护关于客户的任何信息
无状态的服务器能够支持更多的客户端
HTTP的连接:
非持久HTTP/1.0
- 仅限于一个对象能够在单个TCP连接上进行传输
- 处理多个对象时会使用多个TCP连接
- 基于HTTP/1.0协议的数据传输采用非持久型连接方式
非持久HTTP/1.0
- 多个对象可以通过一个(客户端与服务器之间)TCP连接进行传输。
- HTTP/1.1 通常会采用持续连接。
非持久HTTP连接
假设用户输入一个 URL 地址 [www\.someSchool\.edu\.someDept\.home\.index](http://www\.someschool\.edu\.someDept\.home\.index "www\.someSchool\.edu\.someDept\.home\.index")
HTTP 客户端通过指定端口号建立与服务器的通信 —》 服务器接收到客户端的连接请求后向其发出确认信号 —》 客户端发送包含所需资源信息的完整的 HTTP 请求包 —》 服务器解析并识别所需资源信息后返回相应的响应数据 —》 与目标 server 断开 TCP 连接通道 —》 浏览器从 server 接收回执状态码及相应 HTML 文件内容
响应时间模型:
往返时间RTT 响应时间:2RTT+传输时间
流水式的持久HTTP 非流水式的HTTP
HHTP报文 : 请求、响应
提交表单输入
Post方式 URL方式(GET方法)
HTTP响应状态码
用户-服务器状态:cookies (用户个人信息)ID
服务器不维护客户端状态(简单且能运行多个客户端)
4个组成部分:
-
在HTTP响应报文中包含一个cookies字段。
-
在HTTP请求报文中包含一个cookies字段。
-
在用户端系统中保留着一个cookies文件。
-
在Web站点中有一个后台数据库。
-
在HTTP响应报文中包含一个cookies字段。
-
在HTTP请求报文中包含一个cookies字段。
-
在用户端系统中保留着一个cookies文件。
-
在Web站点中有一个后台数据库。
Web缓存(代理服务器)
缓存既是客户端又是服务器
目标:不访问原始 服务器,就满足客户的请求
浏览器将所有的HTTP请求发给缓存
- 当缓存中存在目标时:缓存直接返回目标
- 如果目标不在缓存中,则先向原始服务器发起请求获取目标信息。
然后将获取到的目标信息返回给客户端。
- 如果目标不在缓存中,则先向原始服务器发起请求获取目标信息。
作用:
- 提升客户端的请求响应时间
- 链路上因通过该机构内部网络连接至Internet 的流量大幅降低
- 互联网广泛地应用了缓存技术:从而让较弱的ICP(Internet Client Process)也能有效地提供内容
FTP:文件传输协议 (有状态)
向远程主机上传输文件或从远程主机接收文件 (上传和下载数据)
使用TCP协议
客户端发控制连接给服务端 / 服务端发数据连接给客户端
- 采用SMTP协议通过持续连接传输信息
- 基于7位ASCII字符编码规则的报文传输
- SMTP服务器通过末尾标记符CRLF.CRLF标识报文结束
MIMT:多媒体邮件扩展
用户代理利用POP3、IMAP、HTTP从接收方邮件服务器拉去邮件
POP3
本地管理文件夹
可以选择“下载并删除”或者“下载并保留”
五状态
IMAP
远程管理文件夹
IMAP在会话过程中保留用户状态:
- 目录名、报文ID与目录名之间映射
DNS 域名解析系统
必要性:
- IP地址可标识主机以及路由器的位置
- IP地址不易于记忆且不利于人类使用
- DNS的主要职责是将域名解析为二进制的网络地址
- 该系统能够实现从域名到其对应的IP地址的转换过程
基础设施
基于层次化命名机制进行设备名称的分配。
分布式数据库架构响应名称解析请求来完成IP地址转换。
增删相关域维护问题将有助于提升系统效率。
该网络服务运行于UDP 53号端口上。
作为互联网的核心功能,其实现依赖于应用层协议。
主机别名与规范名称之间存在一一对应关系,确保通信可靠性。
名字服务器:维护利用远距离的集中式数据库
官方DNS服务器 为组织机构提供了一个基于其内部网络资源 的主机与IP地址之间的映射服务 该服务 包括但不限于Web邮件以及其他相关服务 这样一来 组织者可以根据自身需求选择是否自行管理该服务 或委托专业机构进行维护
官方DNS服务器 为组织机构提供了一个基于其内部网络资源 的主机与IP地址之间的映射服务 该服务 包括但不限于Web邮件以及其他相关服务 这样一来 组织者可以根据自身需求选择是否自行管理该服务 或委托专业机构进行维护
该TLD中心管理包括com、org、net、edu以及gov等顶级国际域名,并负责运营包括cn、uk、fr、ca和jp等官方注册的国家性顶级域名。
DNS记录:
DNS :保存资源记录**(RR)**的分布式数据库
Domain_name : 域名 Ttl: time-to-live: 存储周期(权威性服务、缓存记录) 存储周期建议从缓存中删除资源记录的时间间隔 Class 类别:当针对Internet时,默认设置为IN类 Value 值: 可能为整数、域名或ASCII字符串 Type 类别: 表示不同类型的资源记录
P2P应用
每个peer都可以是客户端也可以是服务端,可扩展性好!
P2P:集中式目录(在线)
对等方连接时告知中心服务器:ip地址和内容 上线告知下线告知
peer查询文件,能从对等方请求文件
问题:
单点故障 性能瓶颈 侵犯版权(文件传输分散,但是定位内容高度集中)
查询洪泛 Gnutella
overlay 覆盖网络
全分布式,且开发文件共享,协议公开
Gnutella协议:
向现有的 TCP 连接中发送一个查询报文。 将这个 TCP 连接上的请求信息发送给对等方。 作为反馈返回的响应包包含了此次搜索的结果。
可扩展性:限制范围的洪泛查询
KaZaA:查询 (Hash表)
每一个文件都具有一个哈希唯一标识符以及元数据描述符 客户端将信息发送给其直接上级 组群成员将通过哈希匹配机制对指令进行响应:
- 对每个匹配:元数据、散列标识码和IP地址
当某个组员将查询转发给其他组员时(或者由某位组员)),则会按照相应的匹配方式进行回应
- 向拥有文件的对等方发送一个带散列标识码的HTTP请求
非结构化P2P:
- 集中化目录(集中目录服务器)
- 完全分布式(洪泛式查询)
- 混合体
DHT(结构化)P2P:
overlay成一个环状结构,节点peer分段集中管理
有序的环状
CDN
视频流化服务和CDN 利用分布式的,应用层面的基础设施
多媒体流化服务:DASH (边缓存边播放)利用HTTP协议传输
服务器
- 将视频文件划分为若干块
- 各个块分别进行编码
- 采用不同的码率值(8至10个)进行编码
- 配置文件(manifest file):为每个块指定对应的网络地址。
CDN有两种接入方式
全网部署缓存节点,存储服务内容,就近为用户提供服务,提高用户体验
- enter deep 将CDN服务器深入到许多接入网
- 更接近用户,数量多 ,离用户近,管理困难
部署在少数(约十个)关键位置上。例如将服务器集群部署在pop附近的特定位置(这些位置距离若干第一isp pop相对接近)。
- 采用租用线路将服务器簇连接起来
- 小缺点:用户离缓存服务器跳数多
CDN over the top 运行在应用层,在上层加速
CDN内容访问场景:
例如:
- 用户通过网飞的服务器发送其个人认证以完成认证流程
- 网飞对已拍摄完毕的视频进行了分发处理从而实现快速播放
- 当用户向网飞服务发起观看请求时 该平台立即进行了相应的解析操作
- 网飞 servers 返回符合条件的CDN domain name供用户使用 同时系统会推荐最近可用的 CDNA 资源供其访问
TCP 套接字编程
**接口:**应用程序与网络通信协议(TCP或UDP)之间的通道 **TCP协议:**通过可靠地将数据流量传递给另一个进程实现信息传输
服务器首先运行,等待连接建立 1:服务器进程必须先处于运行状态
- 生成并绑定一个欢迎socket
- 将...与本地端口绑定在一起
- 阻塞式地等待用户在欢迎socket上建立连接
客户端发起与服务器端的连接请求: 2:自动将客户端本地套接字与指定本地port进行绑定。
- 指定服务器进程的IP地址和端口号,与服务器进程连接
3 :当与客户端连接请求到来时
服务器接收用户端发起的请求,在从阻塞状态下的等待中解出,并生成一个新的socket(与欢迎socket不同),随后与客户端建立通信
1. 允许服务器与多个客户端通信
2. 3. 使用源IP和源端口来区分不同的客户端
4.
4:连接API调用有效时,客户端P与服务器建立了TCP连接
TCP在客户端和服务器进程之间提供了可靠的、字节流(管道)服务
数据结构sockaddr_in
IP地址和port捆绑关系的数据结构(标示进程的端节点)
struct sockaddr_in
{
short sin_family; //地址簇
u_short sin_port; // port
struct in_addr sin_addr ; // IP address, unsigned long IP地址
char sin_zero[8]; // align 对齐
};
数据结构 hostent
域名和IP地址的数据结构
struct hostent
{
char *h_name; //主机域名
char **h_aliases; //别名
int h_addrtype;
int h_length; /*地址长度*/
char **h_addr_list; //IP地址列表
#define h_addr h_addr_list[0];
}
作为调用域名解析函数时的参数
返回后,将IP地址拷贝到 sockaddr_in的IP地址部分
UDP Socket编程
UDP: 在客户端和服务器之间没有连接
- 发送端在每个数据包中清晰地标明了目标系统的IP地址和端口号
- 服务器需要从接收的数据分组中解析出发送端的IP地址和端口号
UDP: 传送的数据可能乱序,也可能丢失
UDP 为客户端和服务器提供不可靠的字节组的传送服务
传输层
两个传输层协议:TCP、UDP
网络层服务:主机之间的逻辑通信 IP到IP间
传输层服务:进程间 的逻辑通信
- 基于网络层的服务 • 传输延迟与数据传输速率
- 同时对该网络层的服务进行增强 • 数据丢失会导致信息不可靠;顺序混乱会影响系统的稳定性;而加密则能提升安全性(其中带宽与延时无法进行增强)
Internet传输层协议:
- 可靠的、保序的传输:TCP
- 多路复用、解复用
- 拥塞控制
- 流量控制
- 建立连接
- 不可靠、不保序的传输UDP:
- 多路复用、解复用
- 没有为尽力而为的IP服务添加更多的其他额外服务
- 都无法提供的服务:
- 延时保证
- 带宽保证
多路复用、解复用
复用的意思就是公用
客户端通过TCP协议采用 socket 和 数据进行传输操作,在此过程中 socket 和 数据会多次被重复利用,并附加端口和IP信息进行打包处理。
解码或解析:为传输的数据包附加端口号及IP地址,并将其打包为完整的数据包头字段;随后,在接收端需要通过相应的机制对这些头信息进行解码或解析。
主机联合使用IP地址 和端口号 将报文段发送给合适的套接字
TCP:四位控制
为什么要有UDP:
- 未建立连接会导致延迟增加。
- 简而言之,在发送端与接收端均处于断开状态。
- 其报文段头部较小(开销较低)。
- 无Congestion control与流量 control:UDP能够尽可能快速地发送报文段。
- 应用->传输的速率= 主机->网络的速率
Internet校验和:
目标: 检测在被传输报文段中的差错 (如比特反转)
校验和:报文段的加法和
- 求和是,必须要将进位回卷到结果上
发送方将校验和放在UDP的校验和字段
接收方计算收到的报文段的校验和
检查计算出的校验和与校验和字段的内容是否相等
不相等—检测出错误
相等—也可能残存错误
**可靠数据传输(rdt)**的原理
rdt 在应用层、传输层和数据链路层都很重要
下层不可靠,要向上层提供可靠传输
Rdt1.0: 在可靠信道上的可靠数据传输(封装,解封装)
- 下层信道具有高度可靠性
- 所有传输的数据均未发生丢失现象
- 没有任何数据分组被丢弃
- 发送端与接收端各自的有限状态机
- 数据通过发送端传递至下层信道
- 接收端从该信道获取所接收到的数据
- 发送端与接收端各自的有限状态机
Rdt2.0:具有比特差错的信道
以下是对原文的有效改写
rdt2.0有一个致命的缺陷 ACK/NAK可能会出错
rdt2.1 :如果ACK/NAK出错
发送方:必须检测ACK/NAK 是否出错(需要EDC )
处理重复:
- 在分组序列中添加发送方标识
- 当ACK/NAK信息传输错误时,发送方应重新发送该数据分组
- 接收端将忽略重复的数据分组
停等协议:发送方发送一个分组,然后等待接收方的应答
接收方也在等待中 当正在等待1的数据时又接收到0 表明上一次回复中的ACK出现了问题 将会清除重复的数据块 然后向发送方发送新的ACK确认信息 并重新开始等待对方返回的数据块1
接收方不知道它最后发送的ACK/NAK 是否被正确地收到
rdt2.2:无NAK的协议
- 功能与rdt2.1相同,仅限于acks需携带编号
- 接收方应针对最终确认的数据段发送acks,并采用acks替代nal
- 收取方必须确保acks中包含数据段最终确认的具体序号
- 在发送acks时可采用上一个数据段的acks(带编号)进行替代
- ack信息量减半后,协议处理变得相对简单
- 接收方应针对最终确认的数据段发送acks,并采用acks替代nal
rdt3.0:具有比特差错和分组丢失的信道
下层信道可能会丢失分组(数据或ACK)一直不来ACK
- 会死锁
方法:发送方等待ACK一段合理的时间
- 发送端自动重传机制:当发送端未接收到应答ACK->将进行重传
- 可能仅是由于ACK应答出现延迟
- 而重传可能导致数据重复传输,但通过使用序列号可有效解决此问题
- 接收方需明确确认已正确接收的数据分组
- 建议设置一个较长的倒计数定时器(比正常往返时间要长)
- 即使在较早的时间点检测到超时(如延迟的ACK应答),该机制仍能有效工作;但其效率较低,因为每隔一段时间就会发生一次重复分组确认;
- 设置合理的定时器时间至关重要
- 即使在较早的时间点检测到超时(如延迟的ACK应答),该机制仍能有效工作;但其效率较低,因为每隔一段时间就会发生一次重复分组确认;
- 可能仅是由于ACK应答出现延迟
一旦出现错误信息...就会执行超时重传流程;即使接收到前一个方的确认也需要等待超时进行重传
rdt3.0的性能
rdt3.0能够正常运行,在较大的链路容量下运行效率显著下降。
在较大的链路容量下, 每次发送单个PDU未能充分释放传输潜力。
流水线:提高链路利用率
增加一次发送的分组数量,能提高链路利用率
但是无法一直增加,有瓶颈
流水线协议:
流水线:允许发送方在未得到对方确认的情况下一次发送多个分组
- 为了提升分组标识的范围,在编码时采用多bit位表示。
- 发送端和接收端需具备相应的缓冲区容量。
- 当发送端未获得接收端确认信息时,则可能需要对数据进行重传。
- 不同上层用户的数据取用速率与实际接收到速率存在差异,并在接收端可能存在数据乱序的情况。
此外,在接收端还需要通过排序机制保证数据传输的可靠性和完整性。
- 发送端和接收端需具备相应的缓冲区容量。
通用:滑动窗口协议
GBN协议与SR协议的
GBN:接收窗口=1
- 只能顺序接收
- 发送端:一旦一个分组没有发送成功,则要按顺序重新发送
SR:接收窗口>1
- 允许按任意顺序接收
- 当发送端检测到某一个分组未能成功发送时,则应选择性地重新发送该分组。
GBN与SR的对比
GBN
优点:简单,且所需资源少(一个缓存单元)
缺点:一旦出错回退N步代价大(出错后的全部重传)
SR
优点:出错时,只需重传一个代价小
缺点:复杂,所需资源多(多个缓存单元)
适用范围:
- 发生故障的概率很低:在大多数情况下,更适合采用GBN方案而不是SR方案。对于极其罕见的事件而言,在日常工作中做好准备并采取复杂的处理措施也是值得的。
- 链路容量较大(尤其是延迟较高且带宽足够宽):在这种情况下,则更适合采用SR方案而非GBN方案。任何一次失误都会带来巨大的影响。
TCP:概述
- point-to-point
- reliable byte stream with ordered byte segments
- no packet boundaries
- pipelined data flow
- Transit cache at sender and receiver ends
- Bidirectional data in full-duplex mode
- Maximum Segment Size (MSS)
- Bidirectional data in full-duplex mode
- connection-oriented
- Handshaking initializes state variables at both ends before data exchange
TCP报文段结构
- 序列编号遵循最大报文段MSS(即报文段首字节在字节流中的编号),而非简单地向前递增。
- 确认编号:
- 预期接收下一个字节的序列编号(表示此编号之前的所有序列已成功接收)。
- 累积标记。
- 头部长度指示了多少个字节一直到应用层的数据部分。
可靠数据传输
- 首先考虑简化的TCP发送方
- 忽略重复的确认
- 忽略流量控制和拥塞控制
快速重传 :
- 如果接收方收到同一数据的3个Nack(即负确认),则传输该数据段中序号最小的一个副本。
- 在定时器超限时之前传输该报文段即为立即再传。
TCP 3次握手
首先由 sender 方向 receiver 发出建立通道的请求数组元素;
随后 receiver 通过 ACK 报文反馈至 sender 确认通道建立;
sender 再次接收到 ACK 报文后完成通道确认并开始传输数据至 receiver;
2次握手会导致半链接以及接收老数据的问题
TCP关闭连接:(两次确认)对称连接释放
- 请示:发送方发起FIN请求以关闭连接;响应:接收方收到ACK并等待或响应。
- 再次示:接收方再次发起FIN请求以关闭连接;确认:发送方收到ACK并确认已关闭;若在两次超时间隔后尚未收到数据传输反馈,则采取措施断开连接。
拥塞控制原理
太多的数据需要网络传输,超过了网络的处理能力
如果不加以控制,拥塞程度会越来越严重
拥塞表现:
- 分组丢失
- 分组建立比较长的延迟
拥塞控制方法
端到端拥塞控制:
- 未获得来自网络的明确反馈信息
- 端系统通过检测延迟与数据包丢失情况来判断是否存在网络拥塞
- TCP协议所采用的技术手段
网络辅助的拥塞控制:
- 路由器向端系统提供反馈机制以传递拥塞信息。
- 当单个bit置位时表明存在拥塞状态具体类型包括SNA DECbit TCP/IP ECN以及ATM。
- 路由器明确分配发送端可使用的传输速率。
TCP拥塞控制
利用端对端的拥塞控制机制
- 端系统根据自身得到的信息,判断是否发生拥塞,从而采取动作
拥塞感知:
发送端:
- 某个时段Timeout了(丢包事件)导致网络出现拥塞现象
- 原因一:网络出现拥塞现象是由于某路由器buffer溢出导致数据包丢失,并且这类事件发生的概率显著高
- 原因二:当发生各类错误数据帧未通过校验直接丢失时会导致网络出现这类问题,并且这类事件发生的概率显著低
- 该段产生3次重复ACK报文的情况属于轻度拥塞情况
速率控制方法:
- 该系统会自动调节一个名为CongWin 的变量值,并将其视为反映当前网络拥塞状况的计算依据。
- 发送端会限制尚未完全传输的数据包数目。
TCP拥塞控制和流量控制的联合动作
- 发送端管理_发送而不确认_的量也必须不超过接收窗口以满足流量控制要求(两个窗口最小值)
- 须同时满足拥塞控制和流量控制要求
拥塞控制的策略:
- 慢启动
- AIMD:线性增、乘性减少
- 超时事件后的保守策略
AIMD:
乘性减:
在丢包事件发生后,系统会将CongWin设置为1,并以该数值的一半作为触发慢重传机制的条件;一旦达到该阈值,则会继续按指数方式发送数据包直至该阈值被成功突破.
加性增:
当CongWin>阈值时,一个RTT如没有发生丢失事件,将CongWin 加1MSS: 探测
