408-计网-基础笔记
本文最后更新于:2022年9月29日 中午
408-计网-基础笔记
1.网络体系结构
1.1.概念辨析
发展阶段
- 第一阶段:1983年阿帕网接受TCP/IP,选定Internet为主要的计算机通信系统
- 第二阶段:1985年起,美国国家科学基金会NSF围绕6个大型计算机中心建设计算机网络,即国家科学基金网NSFNET
- 第三阶段:多层次ISP结构
功能
- 数据通信:7层模型的 低3层。 对应 通信子网
- 资源共享:7层模型的 高3层。 对应 资源子网
按拓扑结构分类:总线、星形、环形、网状
性能指标
速率(比特率)
- 描述速率用10进制 $1kb/s=10^3b/s$,描述存储容量用2进制 $1KB=2^{10}B=2^{13}b$
带宽:网络设备能支持的最高速度。电磁波$1\mu s$传播200m
入口发送数据的速率,不是链路上传播的速率(主机可发送的最高数据率)
高速链路:发送速度极高,不是传播速度高
吞吐量:在单位时间内通过某个网络(或信道、接口)的数据量。单位b/s,kb/s,Mb/s等
时延:发送(传输)+传播+排队+处理
时延带宽积:又称为以比特为单位的链路长度。即“某段链路现在有多少比特”
往返时延RTT:从我发送第一个bit开始,到我收到第一个bit的确认 之间的时延
- RTT越大,在收到确认之前,可以发送的数据越多
- 传播时延 * 2 + 接收方处理时间
利用率
信道利用率:有数据通过时间 / 总时间
网络利用率:信道利用率加权平均值
随利用率增大,时延急剧增大
1.2.体系结构
概念填空
- 网络体系结构 是 从功能上 描述 计算机网络结构
- 计算机网络体系结构,简称网络体系结构,是分层结构
- 每层遵循某个/些网络协议以完成本层功能
- 计算机网络体系结构是计算机网络的各层及其协议的集合
- 仅仅在相邻层间有接口,且所提供服务的具体实现细节对上一层完全屏蔽
- 体系结构是抽象的,而实现是指能运行的一些软件和硬件
分层结构
SDU服务数据单元:用户的数据
PCI协议控制单元:协议信息
PDU协议数据单元:对等层次之间传送的数据单位(PCI + SDU)
图示
7层OSI (“物联网淑惠试用”)
物理层、数据链路层、网络层、传输层、会话层、表示层、应用层
数据链路层添首尾,物理层不做处理,网络层及以上只加头
“分组”和“数据报”的关系:数据报太长了就会切分为分组
层次 | 作用 | 功能 | 主要协议 |
---|---|---|---|
表示层 | 数据格式变换 | 加密解密、压缩恢复 | |
会话层 | 建立/管理/终止会话、从校验点/同步点继续恢复通信 | 数据同步 | HTTP |
传输层 | 两个进程端到端的通信,传输报文段 | 可靠/不可靠传输、差错控制(顺序错等等)、流量控制、复用分用 | TCP、UDP |
网络层 | 把分组/数据报从源端传到目的端 | 路由选择、流量控制、差错控制(奇偶校验等等)、拥塞控制 | IP |
数据链路层 | 把网络层传下来的数据报组装成帧 | 成帧(定义帧的开始结束)、差错控制(帧/位错)、流量控制、访问(接入)控制:控制对信道的访问 | SDLC、HDLC、PPP、STP |
物理层 | 传输比特 | 比特同步、比特编码、定义接口特性、传输模式、传输速率 | RJ45、802.3 |
4层TCP/IP
- 网络接口层、网际层、传输层、应用层
- 与7层模型相同点:都分层、基于独立的协议栈的概念、可以实现异构网络互联
- 与7层模型不同点
- OSI定义三点:服务、协议、接口
- OSI先出现,参考模型先于协议发明,不偏向特定协议
- TCP/IP设计之初就考虑到异构网互联问题,将IP作为重要层次
- 面向连接和无连接
5层体系结构
- 物理层、数据链路层、网络层、传输层、应用层
- 分别传输:比特、帧、数据报、报文段、报文
层次 | 作用 | 典型协议 |
---|---|---|
应用层 | 支持各种网络应用 | FTP、SMTP、HTTP |
传输层 | 进程-进程的数据传输 | TCP、UDP |
网络层 | 源主机到目的主机的数据分组路由与转发 | IP、ICMP、OSPF等 |
数据链路层 | 把网络层传下来的数据报组装成帧 | Ethernet、PPP |
2.物理层
2.1.原理
术语
信道:一条通信线路往往包含一条发送信道和一条接收信道
- 按 传输信号 分为:模拟、数字
- 按 传输介质 分为:无线、有线
通信方式:单工(单向)、半双工(可换方向,但是不能同时)、全双工(双向同时)
数据传输方式
- 串行:8bit 一个一个发。速度慢,费用低,适合远距离
- 并行:8bit 通过8条信道同时发送。速度快,费用高,适合近距离
实现同步的方式
同步:以一个数据区块为单位,又称为区块传输。先送出1个或多个同步字符,再送出整批的数据
异步:将比特从低位到高位分成小组进行传送,小组可以是8位或更长。发送方可以在任何时刻发送这些比特组,而接收方不知道它们会在什么时候到达。加一个字符起始位和一个字符终止位
典型例子:键盘
码元:用一个固定时长的信号波形(数字脉冲),代表不同离散数值的基本波形,这个时长内的信号称为k进制码元,而该时长称为码元宽度。当码元的离散状态有M个时(M大于2),此时码元为M进制码元。
1码元可以携带多比特的信息量。例如,在使用二进制编码时,只有两种不同的码元,一种代表0状态,另一种代表1状态。
速率:单位时间内传输的数据量
码元速率:单位时间信号变化次数(脉冲个数),单位波特(Band)。码元速率与进制数无关
如果画两段,就算电平不变,也算两个脉冲
信息速率:单位 比特每秒(b/s)
波特率为A,一个码元携带C个比特信息,那么信息速率就是A$\times$C(b/s)
带宽
- 模拟信号中:最高最低频率差值,单位Hz
- 数字设备中:单位 比特每秒(bps)
公式
影响失真程度的因素:码元传输速率、信号传输距离、噪声干扰、传输媒体质量
奈奎斯特定理:理想情况下,极限速率$=2\cdot W\cdot log_2V (b/s)$
V指码元离散电平数目。W指带宽,单位Hz
信道频带越宽,码元携带信息越多,速率越高
此公式限制码元速率,没有限制信息速率
香农定理:信道极限速率$=W\cdot log_2(1+\frac{S}{N})\ (b/s)$
看见带宽单位是Hz,考虑两个定理
信噪比和码元信息量都给了,都算,取最小值
2.2.编码
基带信号 对应 数字信道。使用数字发送器编码 或 使用调制器调制
宽带信号 对应 模拟信道。使用PCM编码器编码 或 使用放大器调制器调制
要求看见设备能推出来处理成了哪种信号
数字 -> 数字
非归零 NRZ
高电平1,低电平0
没有检错、难以同步
归零 RZ
- 1码元内,以前半段判断。后半段必须都是0
反向不归零 NRZI
码元开始处,电平翻转0,电平不变1
全0数据OK,全1数据难以同步
曼彻斯特
1码元内,前低后高为1,前高后低为0
1码元内跳变2次,只传输1位。数据速率只有调制速率的$\frac{1}{2}$
差分曼彻斯特
码元开始处,不变化1,变化0。码元中间跳变
常用于局域网。抗干扰性强
4B/5B
- 用5位编码4位,编码效率$80\%$。多出来的16位作为控制码(帧的开始结束、线路状态信息、保留)
数字 -> 模拟
- 调幅 2ASK
- 0没有幅度,1有幅度
- 调频 2FSK
- 0低频,1高频
- 调相 2PSK
- 0正弦波,1余弦波
- 调幅 + 调相 QAM
- 如果有A种相位,每个相位B种振幅,那么状态有A$\times$B种,需要$log_2(A\times B)$个比特
- 调幅 2ASK
模拟 -> 数字
- PCM。抽样,量化,编码。$f_{采样}\ge 2f_{信号最高}$
2.3.数据交换
报文交换和分组交换都是 存储转发交换方式。分组交换又分为数据报方式和虚电路方式。
- 电路:独占资源,适合远程批处理信息传输 或 实时性要求高的大量数据传输
- 建立连接,传输数据,拆除电路
优点 | 缺点 |
---|---|
传输时延小 | 建立连接时间长 |
数据顺序传送,无失序问题 | 信道使用效率低 |
实时性强 | 灵活性差,不适应突发性通信 |
全双工通信,没有冲突 | 无数据存储能力,难以平滑通信量 |
适用于模拟信号和数字信号 | 不同类型、不同规格、不同速率的终端很难相互通信 |
电路的交换设备及控制较简单 | 无法发现与纠正传输差错 |
- 报文:其长短很不一致,长度不限且可变
- 节点收下报文,暂存并检查
- 输出电路空闲时,找到下一个节点,传送
- 不需要占用端到端全部信道
优点 | 缺点 |
---|---|
无建立连接时延 | 实时性差,转发时延 |
平滑通信量 | 只适用于数字信号 |
提高线路可靠性、提高线路利用率、提供多目标服务、便于类型规格和速度不同的计算机之间通信 | 要求每个结点有较大的缓冲区。有时要把报文存在磁盘上进一步增加了传送时延 |
分组:限制所传输的数据单位的长度,一般选128B
数据报方式:为网络层提供无连接服务
无连接分组不是指不需要建立连接,指的是分组独立确定路径,不同分组路径可能不同
- 每个分组都要携带源地址、目的地址、分组号
- 交换结点可根据情况丢弃部分分组
- 具有冗余路径,对故障的适应能力强,适用于突发性通信
虚电路方式:路径上所有节点都维持一张虚电路表,每一项是一个打开的虚电路的信息
- 分组携带虚电路号
- 节点只做差错控制,无需路由选择
- 两个端系统之间可以有多条虚电路为不同进程提供服务
- 某个节点或链路彻底失效时,所有经过的虚电路都被破坏
优点 | 缺点 |
---|---|
无建立连接时延 | 仍然有转发时延、对交换机要求更强处理能力 |
线路利用率高 | 大量控制信息降低通信效率 |
简化了存储管理、减少等待发送时间、减少出错几率和重发数据量 | 数据报服务:排序工作增加了麻烦 |
分组短小,适用于计算机之间突发式数据通信 | 虚电路服务:需要三个过程,增加时延 |
- 对他们的取舍:
- 电路:传送数据量大,且传送时间远大于呼叫。传输时延最小
- 分组:端到端的通路有很多段的链路组成
- 分组:报文交换和分组交换信道利用率优于电路交换,其中分组交换比报文交换的时延小,适合突发式数据通信
2.4.传输
- 介质
- 导向
- 双绞线:便宜。长距离需要放大器/中继器
- 同轴电缆:抗干扰性比双绞线好,传输距离更远,价格更贵
- 基带同轴电缆(局域网)、宽带同轴电缆(有线电视)
- 光纤:带宽非常大,超远距离
- 高折射率纤芯在里面
- 单模、多模
- 损耗小、抗雷抗磁、不易窃听、小、轻
- 非导向
- 无线电波:所有方向,穿透力强
- 微波:固定方向,频段范围宽
- 地面微波接力通信
- 卫星通信
- 优点:通信容量大、距离远、覆盖广、广播通信和多址通信
- 缺点:时延长(250-270ms)、受气候影响、误码率高、成本高
- 红外线/可见光:固定方向、需要把信号转成各自的格式
- 导向
- 设备
- 中继器:再生数字信号 和 还原
- 543规则:最多5个网段(电线),最多4个中继器,其中最多3个挂载有终端(电脑)
- 集线器:再生放大转发
- 一个大冲突域,不能分割冲突域——平分带宽
- 中继器:再生数字信号 和 还原
3.数据链路层
链路是物理通道,数据链路是逻辑通道。数据链路层主要作用是加强物理层传输原始比特流的功能,将物理层提供的可能出错的物理连接改造成为逻辑上无差错的数据链路。数据链路层功能:
为网络层提供服务。无确认无连接、有确认无连接、有确认面向连接
有连接一定有确认!有线链路用第一种,差错控制交给上层;无线链路用另两种
连接的建立、维持、释放(用于面向连接的服务)
3.1.封装成帧
首尾加1字节的帧定界符。帧同步:接收方区分出起始和终止。最大传送单元 MTU:数据部分的最大长度
字符计数:帧首用1字节标明帧内字符数字符填充:SOH(Start Of Header)、EOT(End Of Transmission)- 填充转义字节
零比特填充:帧首尾都是01111110,数据中有连续11111就填0 “5110”
违规编码法:用不存在的电平标识开始和终止
曼彻斯特编码中电平一定跳变,不存在高高或低低
3.2.差错控制
物理层的编码是对一个bit进行的,把数字变为信号;数据链路层的编码针对一组bit,通过冗余实现差错控制。
循环冗余校验 CRC
- 生成多项式r+1位
- 模二除法,也就是异或,同0异1
纠错编码:海明码
- 数据m位,冗余r位,$2^r\ge m+r+1$
- 校验码填在$2^n$的位置,其他位置依次放数据。先算序号大的校验码
- 默认偶校验
- 校验结果从高往低写,对应二进制数就是错误的地方
3.3.流量控制
链路层流量控制是点到点(两个相邻节点),收不下就不回复
传输层流量控制是端到端(两个主机之间),给发送方规定一个缓冲区
停等协议:发送窗口1,接收窗口1
- 数据帧和ACK都需要编号
- 信道利用率 $u=\frac{t_d}{t_d+RTT+t_a}。\ t_d$:发送到链路上需要的时间
- 信道吞吐率 = 信道利用率 * 发送方发送速率
后退N帧 GBN:发送窗口>1,接收窗口1
上层调用时会检查发送窗口是否已满。实际实现中发送方可以缓存这些数据,窗口不满时再发送
累积确认,ACK n 表明接收方已经收到n号帧和它之前的全部帧
超时后从最小号未被确认的帧开始连续发送
若采用n个比特对帧编号,那么发送窗口的尺寸 $W_T\le 2^n-1$,防止套圈
最坏情况:ACK全部丢失。假设3位编码,此时发送方重复发送0-6,接收方重复回复ACK6,直到发送方收到ACK为止
由于全双工通信,有时把确认帧放在发送的数据里一起发送(顺风车)
例:RTT 100ms,发送带宽100Mb/s,发送窗口1000,每个帧1000B,忽略确认帧发送时长。求最高发送速率
每100.08ms发送一整个窗口,$\frac{1000\times1000\times8}{100+\frac{1000\times8}{100\times10^6}+0}\approx80Mb/s$
选择重传 SR:发送窗口>1,接收窗口>1
窗口每次向前移动到最小序号的未确认帧处
如果收到前一个窗口的帧,说明上次ACK丢失,重新返回ACK
发送窗口最好等于接收窗口(大了会溢出,小了没意义)$W_{T_{Max}}=W_{R_{Max}}=2^{n-1}$
与GBN区别在于发送了最小编号ACK后接收窗口随即滑动。
最坏情况:ACK全部丢失。假设3位编码,此时发送方重复发送0-3,接收窗口在4-7,接收窗口不会再滑动,直到发送方收到ACK0为止
3.4.介质访问控制
点对点(广域网)
广播(局域网):典型拓扑结构:总线型、星型(逻辑总线型)。需要介质访问控制来避免互相干扰
静态划分信道
- 频分多路复用 FDM
- 时分多路复用 TDM
- 统计时分复用 STDM:按顺序放入缓存,一个STDM帧满了就发出
- 波分多路复用 WDM:利用光波的不同频率
- 码分多路复用 CDM
- 码分多址 CDMA:要求各个站点芯片序列正交;线性相加后发送;分别与源站内积来分离数据
动态划分信道
随机访问
ALOHA:想发就发,如果冲突会导致差错,接收方不会确认。超时即可判定发生了冲突,等待随机时长重传
- 时隙ALOHA:把时间分为时间片(时间槽),一旦冲突,等到下一个时间片开始才能重传。吞吐量有提高
CSMA:先监听,信道空闲就发送完整帧;信道忙就推迟发送。总线型网络
没有冲突检测,发生冲突还是要把数据帧发送完。浪费
- 1-坚持CSMA:一直监听,空闲马上传输。冲突后等待随机时长
- 非坚持CSMA:信道忙则等待随机时长后再监听,空闲马上传输
- p-坚持CSMA:一直监听,直到空闲。一旦空闲,以p概率发送数据,1-p的概率等到下一个时槽再发送。如果冲突,下一个时槽开始再重复上述过程
CSMA/CD:边发边检测,一旦冲突马上停止。常用于半双工网络、总线型局域网
最迟一个RTT知道发生了碰撞。最差情况:A的数据刚刚到达B,B恰好刚刚开始发送,A在一个RTT(基本退避时间)后才能收到B的信号。
- 截断二进制指数规避:k为重传次数,但到10后不再增大。从$[0,1,…,2^k-1]$随机取一个数r,避退时间就是 r 倍 单程传播时延(又名 争用期)。16次失败后报告错误
- 最小帧长:传输速率 * RTT。以太网规定最短帧长为64B,<它的都要填充。收到<64B的都是无效的
CSMA/CA
- 空闲则发出RTS(request to send),包括源地址、目的地址、下一份数据将持续发送的时间等
- 接收端收到RTS后,将响应CTS(clear to send)
- 收到数据,CRC检验,正确则响应ACK
发送方没收到ACK就重传,二进制指数退避,有重传上限
CD用于以太网,使用电压检测冲突,协议检测冲突
CA用于无线网,多种手段检测冲突,协议避免冲突
轮询访问
- 轮询协议:老大挨个问手下要不要发送数据
- 令牌传递协议
- 令牌:一个特殊格式的MAC控制帧,不含任何信息。有最大持有时间
- 要发送数据,修改令牌的标识位,把数据加在后面,传递。目的主机把帧复制下来。转一圈又传回来之后删除数据部分,把标识位改回去,传递
- 物理 星型拓扑;逻辑 环形拓扑
- 常用于负载较重、通信量较大的网络中
3.5.几种网络
3.5.1.以太网
802.3:以太网;802.5:令牌环网;802.8:光纤(FDDI);802.11:无线局域网
- 使用CSMA/CD协议的网络就是以太网
- 无连接:无握手过程;不可靠:发送帧无编号、接收方不确认、差错控制交给上层
- 帧格式
- 不需要帧结束标识:采用曼码传输,电压不再变了说明传完了
- 802.3:
- 10BASE-T:传送基带信号,使用无屏蔽双绞线,速率10Mb/s
- 特点
- 100BASE-T:支持 全双工 和 半双工,可全双工不冲突
- 吉比特:在光纤或双绞线上传送1Gb/s信号,支持 全双工 和 半双工,可全双工不冲突
- 10吉比特:在光纤上传送10Gb/s信号,只支持全双工
3.5.2.无线局域网
- 帧头格式
- 其他类型
3.5.3.广域网
- 广域网延迟大,带宽大,强调资源共享而不是数据传输
- PPP协议:只支持全双工
- 帧格式
- 状态图
- 特点
- 简单:对于链路层的帧,无需纠错,无需序号,无需流量控制
- 封装成帧:帧定界符
- 透明传输:异步线路用字节填充,同步线路用比特填充
- 多种网络层协议
- 多种类型链路:串行/并行,同步/异步,电/光
- 差错检测:错就丢弃
- 检测连接状态
- 最大传送单元MTU
- 网络层地址协商:知道通信双方的网络层地址
- 数据压缩协商
- 三个组成部分
- 一个将IP数据报封装到串行链路(同步串行/异步串行)的方法
- 链路控制协议LCP:建立并维护数据链路连接。身份验证
- 网络控制协议NCP:支持多种网络层协议,每个不同的网络层协议都要一个相应的NCP来配置,为网络层协议建立和配置逻辑连接
HDLC协议:不是TCP/IP协议族的,由ISO制定,面向比特。全双工
- 帧格式
- 可靠性高:CRC检验,帧编号
三种站
- 主站:起控制作用
- 从站:被控制,配合主站参与差错恢复等链路控制
- 复合站:两种都行
三种数据操作方式
- 正常响应:从站发送消息要经过主站同意
- 异步平衡:每一个复合站都可以对别的站传输数据
- 异步响应:从站不需要经过主站同意
3.6.链路层设备
网桥:根据目的MAC对帧进行转发和过滤
- 网段:被网桥隔开的空间,使用同一物理层设备,能够直接通讯
优点:
- 过滤通信量,增大吞吐量
- 扩大了物理范围
- 提高了可靠性
- 可互连不同物理层、不同MAC子层和不同速率的以太网
分类
透明网桥:站点不知道帧将经过哪几个网桥,是一种即插即用设备
- 自学习:发送帧经过网桥,网桥会把它的地址和接口存到转发表里
源路由网桥:把详细的最佳路由信息(路由最少/时间最短)放在帧首部中
- 源站向目的站广播发送一个发现帧
交换机:多口网桥。每一个端口都是一个冲突域
直通式:查完目的地址(6B),立刻转发
- 延迟小
- 可靠性低,不支持不同速率的端口
存储转发式:将帧放入高速缓存,并检查否正确,正确则转发,错误则丢弃
冲突域:每一个节点都能收到所有帧,同一时间只能有1台设备发送信息
广播域:能接收一个广播信号的范围
设备对比
4.网络层
- 路由选择与分组转发
- 异构网络互联
- 拥塞控制:开环控制(静态)、闭环控制(动态)
4.1.转发
4.1.1.协议
- 路由表:目的网络地址、目的网络子网掩码、下一跳地址
- 协议
- IP协议
- 首部格式
- 首部长度$\times$4Byte。一般20B
- 总长度 = 首部 + 数据,单位是字节
- 协议字段
- 首部检验和:只检验首部
- 同一数据报的分片使用同一标识。高位保留;中间位DF 1禁止分片,0允许分片;低位MF 1后面还有,0最后一片/没分片
- 片偏移:分片后此便在原分组中相对位置,单位8B
- ARP
- 局域网查询
- 不在一个局域网,就先查网关的MAC地址,再发送
- DHCP
- 应用层协议,客户机和服务端通过广播交互,基于UDP
- 主机 广播 DHCP发现报文
- DHCP服务器 广播 DHCP提供报文
- 主机 广播 DHCP请求报文
- DHCP服务器 广播 DHCP确认报文
- ICMP
- 格式 报文封装在IP的数据部分
- 差错报文
- 不可达
网络拥塞- TTL=0
- 首部字段有问题
- 重定向
- 不应发送差错报告报文
- 不套娃
- 只报告第一个分片
- 对具有组播地址的数据报都不发送ICMP差错报告报文
- 询问报文
- 回送请求和回答报文:ping
- 时间戳请求和回答报文:时间同步
掩码地址请求和回答报文、路由器询问和通告报文
- IP协议
4.1.2.IP地址
- IPv4
- 基本形式
- 分类
- 可用数
- 特殊IP地址
- 私有IP地址 路由器不转发
- 子网划分:把主机号拆分为 子网号 和 主机号
- 子网掩码:1对应 网络号+子网号 的位数,0对应主机号的位数
- 无分类编址 CIDR
- 消除传统的ABC类地址以及划分子网的概念
- 融合子网地址与子网掩码,方便子网划分
- 把网络前缀都相同的连续的IP地址组成一个“CIDR地址块”
- 路由聚合:前缀缩短,也就是网络地址取交集
- 最长前缀匹配:路由表中可能有几个匹配结果,选择网络前缀最长的
- 基本形式
- IPv6
- 格式
- 特点:地址空间更大、移除了校验和、路由器不检查扩展首部、支持即插即用
- 与v4的区别
- v6首部长度必须是8B整数倍,v4首部长度必须是4B整数倍
- 地址空间从32位扩展到128位
- 只能在主机处分片,路由器不能分片
- ICMPv6 添加报文类型「分组过大」
- 取消了 协议、服务类型、总长度,将扩展字段移出首部变为扩展首部
- 即插即用(自动配置)
- 压缩形式
- 0000 换为 0
- 0XXX 换为 XXX
- 000X 换为 X
- 一连串连续的0可以被一对冒号取代(只出现一次)
- 任意播:一对多通信,可作目的地址,一般选最近的
- 过渡策略:
- 双栈协议:在一台设备上同时启用IPv4和IPv6
- 隧道协议:重新封装
4.1.3.IP应用
IP组播
224.0.0.0~239.255.255.255。D类地址,不是都能用
MAC地址
IGMP:让路由器知道是不是某个组播组还存在
要加入组播组时向组播组发送IGMP,声明要加入;本地组播路由器把成员关系发给其他组播路由器
本地组播路由器周期性探寻局域网上主机,只要有一个回应就可以
组播路由选择协议
链路状态
距离向量
协议无关:稀疏、密集
移动IP:设备移动,IP不动
- 移动过程
4.2.路由选择
4.2.1.路由选择算法
静态路由
- 简单可靠,拓扑变化不大的网络中效果好,用于军事或小型商业
- 路由更新慢,不适用于大型网络
动态路由
- 距离向量算法 RIP:全局性
- 链路状态算法 OSPF:分散性
4.2.2.路由选择协议
- 自制系统内 IGP
- RIP:每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳跳数记录
- 一条路由最多包含15个路由器,16跳标记为不可达
- 只和相邻路由器每30秒交换自己的路由表,超过180秒邻居没通告,则判定邻居没了
- 应用层协议,使用UDP传送,一次最多传送25条信息
- 好消息传得快,坏消息传得慢
- OSPF
- 洪泛法向所有路由器发送信息,广播
- 发送本路由器以及邻居的链路状态:费用、距离、时延、带宽
- 只有链路状态变化时才发送信息
- 算法:
- 网络层协议,使用IP传送
- 30min刷新一次;网络大时比RIP好很多;收敛很快
- RIP:每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳跳数记录
- 自制系统间 EGP
- BGP:边界路由器,交换网络可达性信息;发生变化时才更新
- 应用层协议,使用TCP传送
- 支持CIDR
- 刚运行时交换整个BGP路由表。但以后只交换更新部分
4.3.路由器
集线器不能互联物理层不同的网段。
默认路由全0,路由表没有匹配就从默认路由走。
5.传输层
5.1.概述
- 主机才有的层次
- 传输层提供进程和进程之间的逻辑通信,网络层提供主机与主机
- 端口号
- 服务端:熟知端口号0-1023;登记端口号1024-49151
- 常用端口号
- 客户端:49152-65535
- 套接字:(IP,端口),唯一标识一个主机和它上面的进程
5.2.UDP
- 特点
- 面向报文,适合一次性传输少量数据的网络应用
- 无拥塞控制,适合实时应用
- 首部格式
- UDP校验
5.3.TCP
首部格式
- 确认号:期望下一次收到的,代表N-1都已经成功
- 偏移:首部长度,单位4B
- 控制位:
- URG 紧急:不缓冲
- ACK 确认:为1时确认号才有效
PSH 推送:尽快接收,不等缓存填满RST 复位:连接有差错,尽快释放连接,重新传输- SYN 同步:为1时,连接请求/接受报文
- FIN 终止:数据发完,释放连接
- 窗口:接收窗口,允许对方发送的数据量
- 紧急指针:URG=1时才有用,直接指出紧急数据的位置
连接管理
- 三次握手
- 四次挥手
- A发完最后一个ACK还要再等两个最长报文段寿命,防止它刚刚发送的ACK没有送到
可靠传输
- 校验:和UDP一样加上伪首部计算校验码
- 序号、确认、重传:规定时间内没收到确认就要重传已发送的报文段
- 比期望序号大的失序报文段到达时,发送一个冗余ACK,指明下一个期待字节的序号。收到3个冗余立即重传
流量控制
- 一个例子
- A收到0窗口通知会启动计时器,到时间了会发一个0窗口的探测报文段
- 一个例子
拥塞控制
拥塞控制:发送站过多,数据迟迟到不了接收方
流量控制:发送过快,接收方缓存不够
讨论前提假设:不使用捎带确认,接收方窗口足够大。拥塞窗口是发送方算出来的,反映当前网络容量
- 慢开始、拥塞避免:
- 从1开始,每次乘2
- 到门限值开始线性增大
- 开始拥塞了,窗口改1,门限改为拥塞值的一半
- 快重传、快恢复:
- 收到3个重复确认,立即重传,窗口改为一半
- 慢开始、拥塞避免:
6.应用层
DNS
域名
递归查询:帮人帮到底
迭代查询:踢皮球
FTP
- 使用TCP实现可靠传输
- 控制连接端口21,数据传送端口20(主动模式用20,被动模式自行协商>1024)
- 传输模式:文本(ASCII)、二进制
电子邮件
SMTP:14条命令(几个字母)和21种应答信息(三位数字代码+简单文字说明)
C/S方式,端口号25,TCP
不能传送二进制对象,只能传送7位ASCII码(不能传送其他国家文字),服务器会拒绝过长的邮件
MIME:将非ASCII转为ASCII,再使用STMP传送
POP3:端口号110,TCP,C/S
IMAP:用户先看到邮件首部,打开邮件时才下载内容
HTTP
- 无状态(没有记忆),面向文本,使用Cookie保存访问记录
- 采用TCP,但是http本身无连接
- 连接方式
- 非持久连接
- 耗时2 * RTT + 传送时间
- 持久连接:非流水线式(等到确认再传送下一个文件)、流水线式
- 非持久连接
- 报文结构
- 例子:
- 状态码:
本博客所有文章除特别声明外均为原创,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!