计算机网络考试大纲##
考研-专业课
(一)可参考书目
1、《计算机网络》(第7版),谢希仁编著,电子工业出版社,2017
2、《计算机网络》(第5版),Andrew S. Tanenbaum,严伟,潘爱民译,清华大学出版社,2012
(二)复习内容
一、计算机网络概述
计算机网络定义与分类
定义:
计算机网络是一些互相连接的、自治的计算机的集合
计算机网络主要是由一些通用的、可编程的硬件互联而成的,而这些硬件并非专门用来实现某一特定目的。且这些硬件能够用来传送多种不同类型的数据,并能支持广泛的和日益增长的应用
分类:
1.按照作用范围分类
广域网WAN WIDE、城域网MAN METROPOLITAN、局域网LAN LOCAL、个人局域网PAN PERSONAL
2.按照网络的使用者
公用网、专用网
3.用来把用户接入到互联网的网络
AN,acess network,通过ISP才能接入
计算机网络体系结构
计算机网络的各层及其协议的集合就是网络的体系结构
- 不同的体系
- 四层体系:TCP/IP:应用->运输->网际->网络接口
- 五层体系:应用->运输->网际->数据链路层->物理层
- 七层体系:OSI:应用->表示->会话层->运输->网络->数据链路层->物理层
- 分层体系的好处:
- 各层之间是独立的
- 灵活性好,只需要修改接口
- 结构上可分割开
- 易于实现和维护
- 能促进标准化工作
- 通常各层需要完成的功能有:
差错控制
、流量控制
、分段和重装
、复用和分用
、建立连接和释放
协议的三个要素(对等实体间通信的规则的集合):
- (语法)数据与控制信息的结构或格式
- (语义)需要发出何种控制信息,完成何种动作以及做出何种响应
- (同步)事件实现顺序的详细说明
具有五层协议的体系结构
- 每层定义:接口服务和协议
- 应用层:通过应用进程间的交互来完成特定网络应用。定义的是应用进程间通信和交互的规则(DNS,HTTP,SMTP)
- 运输层:为两个主机进程之间的通信提供通用的数据传输服务(TCP,UDP)
- 网络层:将数据封装成分组或包,给分组交换网上的不同主机提供通信服务(IP)
- 数据链路层:组装成帧,帧包括数据和控制信息
- 物理层:传送的单位是比特
协议水平,服务垂直
网络标准化工作及相关组织
互联网协会 Internet society (ISOC)
互联网工程部IETF(internet engineering task force)
互联网研究部IRTF(internet research task force)
IRSG(internet research steering group)
RFC(request for comment)
互联网草案(internet draft)
建议标准(proposed standard)
互联网标准(internet standard)
二、物理层
物理层的基本概念
- 主要任务
- 四个特性
- 机械特性:接口所用接线器的形状和尺寸,引脚数目和排列,固定和锁定装置等
- 电气特性:在接口电缆的各条线上出现的电压的范围
- 功能特性:某条线上出现的某一电平的电压的意义
- 过程特性:对于不同功能的各种可能事件的出现顺序
数据通信的基础知识
- 数据通信系统的模型
源系统
、传输系统
、目的系统
数据
是运送消息
的实体
- 信号分为模拟信号与数字信号
- 模拟信号:连续信号
- 数字信号:离散信号,代表不同离散值的基本波形被称(码元)
- 码元速率:单位时间内通过信道的码元个数,数据速率
- 数据速率:单位时间内通过信道的信息量
- 码元速率和数据速率是两个不同的概念,对同一信道,仅当使用二进制编码时,二者相等
- 信道的基本概念
- 单向通信、双向交替通信、双向同时通信
- 基带信号->基带调制->带通调制(调幅、调频、调相)->带通信号
- 常用编码方式
- 信道的极限容量
- 由于码间干扰,会使得一串清晰的码元变得无法识别,速率越高,距离越远失真越严重
- 在任何信道中吗元传输的速率是有上线的
- 奈奎斯特定理:最大数据传输率 = 2hlog2(V) h:信道带宽,v:信号的状态数
- 任何信道中,码元传输速率是有上限的,传输速率超过此上限,就会出现严重的码间串扰
- 如果信道的频带越宽,能通过的信号高频分量越多,就越可以利用更高的速率传送码元
- 信噪比(信号的平均功率与噪声的平均功率之比S/N) = 10lg(S/N) dB
- 香农公式(信道的极限信息传输速率):C = Wlog2(1+S/N) bit/s w:信道带宽,S平均功率,N噪声功率
- 信道的带宽或信道中的信噪比越大,信息的极限传输速率就越高
- 香农公式的意义在于:只要信息传输速率低于信道的极限信息传输速率,就一定存在方法实现无差错传输
- 最初在数字传输系统中使用的传输标准是脉冲编码调制PCM,现在高速的数字传输系统使用同步光纤网SONET或同步数字系列SDH
传输介质及其特性
- 主要任务为确定与传输介质的接口的一些特性
- 物理层涉及的四个特性
- 机械特性:接口所用接线器的形状和尺寸、引线数目和排列、固定和锁定装置等等
- 电气特性:在接口电缆的各条线上出现的电压的范围
- 功能特性:某条线上出现的某一电平的电压表示何种意义
- 过程特性:对于不同功能的各种可能事件的出现顺序
- 物理层下传输媒体:数据传输系统中发送器和接收器之间的物理通路
- 导引型传输媒体
- 双绞线:屏蔽双绞线STP,无屏蔽双绞线UTP
- 同轴电缆:内导体铜质芯线外包裹屏蔽层,抗干扰和传输速率均高于双绞线,75Ω50Ω
- 光缆:多模(多条不同入射角度的光线在一条光纤中传输,距离短成本低)、单模(光线直径=光波波长,不会反射)
- 容量大,损耗小,抗干扰,保密性,体积小
- 非导引型传输媒体
信道复用技术
- 频分复用、时分复用和统计时分复用
- FDM频分复用的所用用户在同样的时间占用不同通过的频率带宽资源
- TDM时分复用的所有用户在不同的时间里占用同样的频带宽度
- STDM统计时分复用:需要使用集中器
- 波分复用
- 码分复用
- CDM
- CDMA 码分多址,使用不同码型,用户之间不会相互干扰,类似白噪声
- 不同的码片必须正交
数字传输系统
- 最初在数字传输系统中使用的传输标准是脉冲编码调制PCM,现在高速的数字传输系统使用同步光纤网SONET或同步数字系列SDH
宽带接入技术
- ADSL非对称数字用户线,用数字技术对现有的模拟电话用户线进行改造
- 光纤同轴混合网HFC,在有线电视网的基础上开发的
- FTTx光纤到XXX
三、数据链路层
数据链路层功能和设计要点
- 数据链路层在物理层实现
比特流
的基础上实现了帧
(数据链路层的协议数据单元)的传输
- 使用的信道类型:点对点,广播
- 涉及的问题:
- 成帧方法:怎样组成帧,怎样识别
- 字符计数:帧头部字段指明本帧字节数
- 字符填充的首尾定界法:定义专门的字符作为其实终止标志,并用字符填充方式将标志字符与数据区分开
- 比特填充的首尾定界法:定义专门的比特序列……………………同上
- 物理编码违例:使用无效的物理编码
- 差错控制
- 流量控制,可靠传输
- 广播信道中的介质访问控制
错误检测和纠正
- 误码率BER bit error rate 表示链路可靠性
- 处理方法:检测并纠正(纠错码);可检测错误的编码+重传(检错码)
- 常用检错编码方法:奇偶校验,简单累加和,循环冗余校验CRC
- CRC原理:
- 发送方把数据分组,每组Kbit,在其后添加供检测用的N位冗余码,共发送k+n比特
- 对M计算n位冗余码的过程:
M
后添加n个0
M'
除以n+1位长的事先约定好的P
,得到商Q,余数R
R
作为冗余码,最终发送2^nM+R
- 接收方对收到的k+n位除以P,余数为0表示正确
- 通常用生成多项式表示除数P
- 纠错码,增加冗余信息使能够检测错误发生地,如海明码
- 通过检错、纠错可以做到帧的无差错传输,但不代表可靠传输
基本数据链路协议,包括:停止-等待协议、后退N帧协议和选择重传协议;
- 无限制单工协议
- 单向、理想信道、发送方总有数据,接收方总能及时处理所收到的数据
- 单工停止等待协议
- 如果接收方处理速度跟不上发送方,帧可能丢失
- 增加流量控制机制:接收方每收到一帧发送一个应答帧,发送方收到应答帧后发送下一帧
- 有噪声信道的单工协议
- 帧在传输过程中可能出错
- ARQ协议(自动重复请求)
- 校验和、确认帧、超时重发、帧序号
- 正常接收、数据帧出错或丢失(接收方未收到或校验出错丢弃改帧,发送方等待确认帧超时,重发)、确认帧出错或丢失(发送方未收到有效的确认帧,重发数据帧,接收方收到后,检查帧序号重复,不上交,只返回确认帧)
滑动窗口协议
- ARQ同一时刻只有一个帧在链路上,信道利用率低
- TD,发送数据帧时间,RTT环路时延,TA发送应答帧时间
- 原理:允许发送方连续发送多个帧,通过滑动窗口实现流量控制
- 帧有序号,发送方维护一个发送窗口,包含允许发送的帧的序号;接收方维护一个接收窗口,包含允许接收的帧的序号
- 发送方
- 上边界(最大)、下边界(最小)
- 每发送一个帧,上边界+1
- 下边界的帧被接收方确认后,下边界+1
- 接收方
- 收到的帧号等于下边界,返回确认,整个窗口前移1格
- 在外面,则丢弃
- 窗口总是保持固定大小
- 连续发送的多个帧中某个帧出错或丢失,但后续帧已被正确接收
- 数据链路层需按顺序向网络层上交帧
- 出错帧后的帧丢弃,从出错帧重新发送(后退N帧),实际上此时接收窗口宽度为1
- 出错帧后的帧保留(由数据链路层缓冲),只重发出错帧(选择性重传),检测到错误后,发送一个否定确认NAK,(尽快重发,不必等到超时),选择重传要求接收方能够缓冲接收窗口内的帧,
ACKn
表示n及n以前的帧均正确接收
点对点协议PPP
- 数据链路层协议,点到点链路
- 将IP数据报封装至串行链路
- 链路控制协议LCP
- 网络控制协议NCP
- PPP帧格式
标志字段F |
地址字段A |
控制字段C |
协议字段 |
(载荷)IP数据报 |
FCS |
标志字段 |
0x7E |
0xff |
0x03 |
2Byte(0021 IP数据报
c021 链路控制数据
8021 网络控制数据) |
不超过1500Byte |
两字节的CRC校验 |
0x7e |
- 透明传输问题(帧边界识别)
- 同步:SONET/SDH:零比特填充
- 每五个1添加一个0
- 异步:字符填充
- 7E变成7D5E,7D变成7D5D,信息字段中出现的控制字符前添加7D,且编码改变
- PPP协议的工作状态
- 链路精致,链路建立,鉴别,网络层协议,链路打开
介质访问控制协议,包括介质访问控制基本概念、协议分类、CSMA/CD协议;
- 局域网的数据链路层
- 介质访问控制技术MAC
- 缘由:局域网通常使用广播信道
- 静态划分
- 动态介质访问控制
- 随机访问,用户可随机发送信息,可能产生碰撞
- 受控访问:多点探询,轮询
- 局域网技术标准
- IEEE802将数据链路层分为两个子层:LLC(逻辑链路控制,高层),MAC(介质访问控制)
- CSMA/CD协议
- 载波监听多点访问/碰撞检测(carrier sense multiple access with collision detection)
- 载波监听:发送前检测总线
- 碰撞检测:边发送边监听,(由于线路的传播时延)
最短时间不小于端到端时间,最长时间为两倍端到端时间
- 碰撞强化:检测到碰撞后,立即停止,并发送32/48位的干扰信号,以便让所有人都知道发生了碰撞
- 碰撞退避:发生碰撞后,等待一段时间,采用
截断二进制指数退避算法
- 退避时间 = 两倍端到端时间*倍数
- 倍数:0,1,...,2^k-1中随机取数,K = min{重传次数,10}
- 重传次数超过16次,丢弃该帧,向上层报告
- 争用期:两倍端到端时间,发送后经过争用期还没有检测到碰撞,就可以肯定不会发生碰撞
- 以太网争用期 51.2us,对10Mbit/s以太网,可发送64字节,因此规定以太网帧长>=64,小于64为无效帧,
即帧长>=两倍端到端时间*传送速度
- 网络较轻时效率高,硬件灵活简单,较重时效率低,实时性差
以太网,包括IEEE局域网标准、以太网、高速以太网技术;
- IEEE802.3标准
- 以太网物理层
- 最初为总线结构,50Ω同轴电缆,10Mbps
- 单点故障会导致全网瘫痪,结点多时可靠性差,维护困难,成本高
- 非屏蔽双绞线,采用集线器连接,星形结构
- 10Base-T:10Mbps,基带传输,双绞线,还有10base5(粗同轴电缆),10base2(细同轴电缆),10base-F(光纤)
- 使用集线器的以太网逻辑上仍然是一个总线网
- 集线器很像一个多接口的转发器,工作在物理层
- 采用曼彻斯特编码,上升为1,下降为0
- 以太网MAC层
- 节点发送数据时,网上所有节点都能收到
- 每个结点有唯一的MAC地址
- MAC地址48位,24位为厂商标识符,24位为厂商自行分配
- 适配器收到一个帧就检测目的MAC地址
- 以太网帧格式
- 目的地址源地址,各6字节
- 类型,表明上层协议类型,0800表示IP包,两字节
- 数据,网络层数据报,长度
46-1500
字节数据字段,4字节FCS
- FCS,4字节,帧校验序列,采用CRC
- 每个帧发送时前插8字节,七个用于比特同步,后一个为帧起始
- 由于采用曼彻斯特编码,总线中无电平跳变代表总线空闲
- 高速以太网
- 快速以太网
- IEEE802.3U
- 传输速率100Mb/s
- 仍然使用CSMA/CD协议(全双工时不用)
- 最短帧长不变,最大电缆长度减小到100m
- 线缆标准
- 100base-tx,两对UTP5类线或屏蔽双绞线
- 100base-fx,使用一对光纤
- 100base-t4,使用4对UTP3类线或五类线
- 千兆以太网
- IEEE802.3z
- 1Gb/s
- 仍然使用CSMA/CD协议(全双工时不用)
- 线缆标准
- 1000BASE-X:基于光纤
- 1000BASE-SX SX表示短波长
- 1000BASE-LX LX表示长波长
- 1000BASE-CX CX表示铜线
- 1000BASE-T:使用 4对5类双绞线UTP
- 万兆以太网
- IEEE802.3ae
- 10Gb/s
- 帧格式不变
- 只使用光纤
- 只工作在全双工模式,没有争用
局域网互连技术,包括物理层及数据链路层互连技术、网桥概念和工作原理、局域网交换机工作原理;
- 在物理层扩展局域网
- 使用
中继器
或集线器
,集线器连接所有为一个碰撞域,碰撞域增大,概率增加
- 在数据链路层
- 使用
网桥
- 根据MAC帧的目的地址对收到的帧进行转发
- 具有过滤帧的功能,收到帧时,检查目的mac地址,并确定转发到哪个接口
- 优点:
- 过滤通信量,增大吞吐量
- 各网段是独立的碰撞域
- 扩大了物理范围,提高了可靠性
- 可互联不同物理层,不同Mac层和不同速率的局域网
- 缺点:
- 存储转发增加时延
- MAC没有流量控制机制
- 只适合用户数不太多,不超过几百个,和通信量不太大的局域网
- 网桥分类
- 透明网桥
- 站点不知道所发送的帧经过哪几个网桥
- 即插即用
- 自学习算法建立转发表(若从A发送的帧从接口X进入了网桥,那么相反方向一定能进入A):收到帧后查找,找到则,没找到,则向其他所有接口转发
- 生成树算法:避免多个局域网形成环路时帧无休止转发
- 多接口网桥:交换机
- 每一个接口为一个网段,大幅提高性能
- 集线器由所有接口共享介质带宽,交换机每个接口独享带宽
- 源路由网桥
- 发送帧时,将路由信息放在首部
- 获取路由信息的方法:
- 源站以广播方式向目的站发送一个发现帧,发现帧转发过程中记录所进过的路由
- 发现帧到达目的地时沿各自的路由返回源站
- 源站从所有可能的路由中选择出一个最佳路由
- 可获得最佳路由
- 网桥对主机不透明
- 虚拟局域网
- 在局域网基础上,将站点分组,构成若干逻辑上独立的虚拟局域网,帧不会再两个VLAN中自动转发,包括广播帧。
四、网络层
互联网默认路由是0/0
网络层提供的两种服务
- 网络层应该向传输层提供怎样的服务
- 面向连接的服务,即虚电路(virtual circuit)
- 通信双方在开始数据传输前,先由网络建立连接,之后的数据均通过该连接进行,由网络保证数据传输的可靠性
- 虚电路只是一种逻辑连接,分组沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接
- 支持方:以电信公司为代表的一派
- 无连接的服务,即数据报(datagram)
- 网络在发送数据时不需要先建立连接,每一个分组在网络中独立传送
- 网络层不保证服务质量,分组可能出错、丢失、重复和失序,也不保证分组传送的时限
- 支持方:以Internet为代表的一派
- TCP/IP采用数据报服务
IP协议
- IP协议
- 是两个最主要的协议之一,配套的还有ARP,RARP,ICMP,IGMP
- IP地址
- 分配给主机或路由器的标识符,IPv4 32位,由ICANN负责(Internet Corporation for Assigned Names and Numbers)
- IP 地址的编方法经历了三个阶段:
– 分类的 IP 地址:最基本的编方法,1981年通过标准
– IP 地址被分为A, B, C, D, E五类,每一地址都包含网络号
和主机 号
两个字段
- IP 地址 ::= {<网络号>,<主机号>}
– 不同类的 IP 地址区别主要是网络号、主机的长度不同
- A0+8+24,B10+16+16,C110+24+8,D1110+8+24(组播多播地址),E1111+8+24(为今后保留)
- 点分10进制
- 全零表示本网络或本主机
- 全1地址表示在网络上的全部主机(广播地址)
- netid+全1表示netid上的所有主机(对netid的广播地址)
- 127+00000001-11111110,本地环回测试
- IP地址与硬件地址
- IP地址:网络层及以上各层使用的地址,是一种逻辑地址,存放在IP包头部
- 数据链路层及物理层使用的地址,存放在数据链路层的帧中
- ARP与RARP协议
- ARP
- IP地址与物理地址的转换:主机A
广播
发送ARP请求分组,对应主机响应
- 主机设有一个ARP高速缓存,存有本地局域网上各主机和路由器的IP地址与硬件地址的映射表
- 当主机A想向本局域网B发送IP包时,首先检查缓存中有物主机B的IP地址,有就查出对应硬件地址,将地址写入MAC帧,没有就广播。
- 如果对应主机不在本局域网内,IP包需要路由器转发,此时表项是对应路由器IP和物理地址
- IP数据报格式
- 头部+数据,头部20字节固定地址+0到多个可选字段
- 校验和算法,对包头每16位求反,循环相加(进位在末尾),和再求反
- 校验时,把校验和也加进去,然后反码算术运算求和,若结果为0则保留,否则丢弃
版本 |
首部长度 |
服务类型 |
总长度 |
标识 |
标志 |
片偏移 |
生存时间TTL |
协议 |
首部校验和 |
源地址 |
目的地址 |
4 |
(最小5,最大15,word(32bits)为单位,所以首部最长60字节)4 |
8 |
(单位为字节,代表IP包最大长度为65535字节)16 |
(产生IP包标识,超过数据链路层MTU的IP包要分片)16 |
(一个空标志+DF(dont fragment)+MF(more fragment))3 |
(某片在原分组中的相对位置,以8字节单位)13 |
(IP包在网络中可通过的路由器数的最大值,为0丢弃,并向源主机发送警告win128unix255linux64)8(上层协议类型) |
8(包头校验和) |
16 |
32 |
32 |
划分子网和构造超网
- 子网的划分:最基本编址方法改进
- IP地址空间利用率有时很低,因为给每一个物理网络分配一个网络号会使路由表太大,另外两级的IP地址不够灵活
- 于是增加子网字段,形成3级IP地址
- 基本思路
- 拥有多个物理网络的单位可按物理网络划分为若干子网
- 从主机号借用若干位用作子网号subnetid
- {网络号+子网号+主机号}
- 使用子网掩码得知子网划分信息(目的地址与子网掩码按位与)
- 路由表中除了包括目的地址,还要有子网掩码栏目,如果一个路由器连在两个子网上,需要两个地址和子网掩码
- 使用子网掩码的分组转发过程
- 包含了三项基本信息:目的地址,子网掩码,下一跳
- 从收到的首部提取目的地址,
- 在某一局域网内可能要使用ARP协议
– 构成超网:比较新的无分类编址方法
- CIDR:无分类域间路由
- 消除传统ABC和划分子网的概念
- 使用各种网络前缀来代替分类地址中的网络号和子网号
- {网络前缀+主机号}
- 主机号全零全一一般不使用,前者代表
本网络
,后者代表本网络的广播地址
- 斜线记法,/20表示高20位是网络前缀
- 不使用子网,但仍然有地址掩码
- 路由聚合:一个地址块可以表示很多地址,这种地址的聚合成为路由聚合
- 路由聚合的好处:路由表中的一个项目可以表示很多个原来传统分类地址的路由,减少表项,减少路由器间交换的路由信息量
- 10.0.0.0/10可简写为10/10,省略低位中连续的0
- 网络前缀后跟
*
- 最长前缀匹配:使用CIDR时,表项中
目的网络地址
由固定长度变成了变长,查找路由表时从匹配结果中选择具有最长网络前缀
的路由
ICMP协议
- 网际控制报文协议:用于报告出错和测试等控制信息,位于IP层,封装在IP包中传输,IP报头中protocol字段为1
- 类型,代码,校验和
- 共有九种类型,
- 差错报告报文
- 终点不可达(路由器或主机无法传输报文时,向源主机发送)、源点抑制(路由器或主机由于
拥塞
丢弃报文)、时间超过(收到TTL为零的报文,tracert
测试到另一台主机所经过的路由信息,逐步发出UDP报文,直到到达目的主机)、参数问题(头部有非法字段)、重定向(改变路由)
- 询问报文两类
- 回声探测(测试网络连通性,如
ping
)、请求时间(用于时间同步)
路由算法及协议,包括路由算法分类、距离向量路由算法及RIP协议、链路状态路由算法及OSPF协议、BGP基本原理;
- 路由器依据信息(路由表路由表路由表)转发分组,
**路由信息**
是路协议生成的,路由算法是路由协议的基础和核心,不是转发分组
的
- 正确完整、计算简单、自适应、稳定、公平、最佳(不存在一种绝对的最佳路由算法)
- 静态路由和动态路由(否是自适应,开销和能否适应网络状态,适应小、大规模)
- 自治系统:在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度量以确定分组在该AS内的路由,同时还使用一种AS之间的路由选择协议,一个AS可使用多种内部路由选择协议和度量,但对其他AS表现出的是单一的和一致的路由选择策略
- 路由协议分类
- 距离向量路由与RIP协议
距离向量路由
属于动态路由算法/也被称为bellman-ford/ford-fulkerson算法
- 每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和线路,并通过与相邻路由器交换信息来更新表
- 路由器周期性地向
所有相邻路由器
发送它的距离表,同时也接收每个邻居发来的距离表
- 相邻路由器X发来的表中,X到i的距离为Xi,本路由器到X的距离为m,则。。。最后取最小值更新本路由器的路由表
- 对好消息反应迅速,对坏消息反应迟钝
- RIP协议
- 适用于小规模网络中的路由,
最长距离
为15
,16为不可达,直接连接的距离为0
- 仅和相邻路由器交换信息
- 交换的信息是当前本路由器所知道的全部信息
- 按固定的时间间隔交换路由信息
- 收到相邻路由器
X
的一个RIP报文
- 修改此报文中所有项目,把下一跳字段中地址都改为X,并把距离字段+1。每个项目有三个关键数据:
目的网络N
,距离d
,下一跳路由器X
- 对修改后的
rip报文
中的每一个项目,重复(没有则加,有则替换,小于替换):
- 若
路由表
中没有目的网络N,则把该项目加到路由表中,
- 否则若下一跳字段给出的路由器地址是X,则用收到的项目替换原有项目
- 否则若收到项目中的距离d小于路由表中的距离,则进行更新
- 否则什么都不做
- 若3分钟还没有收到相邻路由器的更新路由表,则把此路由器记为不可达,距离为16
- 报文格式
- 使用UDP数据报,首部为命令+版本+全零(4字节),内容部分为地址族标识符,路由标记,网络地址,子网掩码,下一跳路由器地址,距离(20字节一个路由,最多个有25个)
- 简单开销小,对故障不敏感,支持的网络规模有限,最大距离15,路由器之间交换的是完整路由表,随着网络规模的扩大,开销随之增加
- 链路状态算法
- 链路状态路由的基本思想
- 每个路由器完成五个工作:
- 发现邻居,学习地址;路由器启动后,发送hello包发现邻居,两个或多个路由器连在一个LAN时,引入人工结点
- 测量到各邻居节点的延迟;
- 构造分组,包含所有刚刚知道的信息;
- 把这个分组发送到其他所有路由器;
- 计算出到每一个其他路由器的最短路劲
- 链路状态即本路由器都和哪些路由器相邻,以及该链路的度量
- 链路状态数据库实际上是全网的拓扑结构图,在全网范围内是一致的
- 各路由器使用dijkstra算法计算最优路劲
- OSPF协议简介
- 链路状态路由
- 优点:收敛速度快,链路发生变化时,结点会以泛洪方式告知所有网络中的其他结点
- 使用于规模较大的网络,尽在链路状态发生变化时发送泛洪信息
- 为了管理大规模的网络,OSPF将一个自治系统再划分为若干个区域
- 划分区域的好处:利用泛洪法交换信息局限在一个区域内
- 直接使用
IP
,数据报短,报头长24字节,版本类型分组长度,路由器标识符,区域标识符,校验和,鉴别类型,鉴别
- 五种分组,问候,数据库描述,链路状态请求,链路状态更新,链路状态确认
- 允许给每条路指派不同的代价,支持CIDR
- BGP
- 不同自治系统的路由器之间交换路由信息的协议
- 使用环境特殊,难以找到最佳路由,只能找一条能够达到目的网络的较好的路由
- 每个AS的管理员至少选择一个BGP发言人
- 一般是边界路由,也可以不是,发言人之间交换路由
- 基于
TCP
- 交换的信息为路径向量
- 采用四种报文
- open update keepalive notification
- 协议特点
- 交换路由信息的节点数量级很大,边界路由很少,支持CIDR
- 路由器
- 核心任务是分组转发,不校验,核心是路由选择处理机
- 交换结构有通过存储器、通过总线、通过互联网络
IP组播基本原理、特点及用途
- 组播又称多播,实现一点对多点的数据传输,例如网络视频服务
- 使用D类地址作为组播地址,协议类型为2(IGMP协议)
- 在局域网中的硬件组播:将mac地址与ip地址形成对应关系
- 在internet中的组播:路由器需要支持组播,主机通过IGMP协议与组播路由器通信,实现数据报传输
网络地址转换NAT原理
- 保留了一系列专用地址10/8,172.16/12,192.168/16,只能用于机构内部
- internet中路由器不转发目的地址为专用地址的包
- 优点:减少IP地址空间的占用,可提高安全性
- 当内部网络使用专用地址时,与internet的通信需要经过NAT(网络地址转换)
- NAT路由器内部使用TCP/UDP端口号实现外网数据包向外网数据包向内网地址的转换
IPv6基本知识,包括:IPv6特点、地址、包结构等
- 冒号16进制,128位
- 零压缩,一串零可以为一对冒号取代,每个地址只能用一次
- 冒号十六进制可结合点分十进制后缀,CIDR仍然适用
- 首部固定长度40字节,取消了校验和,允许多个扩展首部,扩展首部+数据成为有效载荷
- 版本4;流量类别8;流标号20;有效载荷长度16;下一个首部8;跳数限制8;源地址128;目的地址128
- 扩展首部:原ipv4首部的选项功能都放在IPv6扩展首部中,数据报途中经过的路由器不处理扩展首部,扩展首部由源和目的站的主机处理
- 逐步演进,向后兼容,双协议栈,隧道技术(v6封装成v4,协议类型为41)
五、传输层
传输层功能及提供的服务
- 又称运输层,向应用层提供通信服务,实现
可靠传输
:差错控制
,顺序控制
,拥塞控制
- 网络层实现主机之间的逻辑通信,运输层实现应用进程之间的逻辑通信
- 主要协议为UDP,TCP
- 真正的
端到端通信
- 需要为多个应用程序提供服务:复用与分用
- 传输层必须提供区分上层应用进程的手段:端口
- 不使用id是因为进程ID依赖于特定操作系统,且一个进程可能需要占用多个主机进程通信
- 端口号分为:
- 服务器端使用的端口号:熟知端口号0-1023,登记端口号1024-49151
- HTTP 80;FTP21
- 客户端使用的端口号49152-65535
UDP协议
- 不可靠传输协议
- 传送数据时无需建立连接
- 与TCP 相比,效率更高但可能出现数据错 、丢包顺序等问题
- 基于 UDP 的典型应用协议: DNS 、RIP 、…
- 只增加了很少的功能,端口和差错检测,为不可靠传输协议
- 无连接,尽最大努力交付,不保证可靠,不使用拥塞控制,面向报文,支持一对一一对多多对多,首部开销小,8字节,面向报文,适合多媒体,应用进程给出报文长度
- 首部格式:(源地址,目的地址,0,17,UDP长度)伪首部,源端口,目的端口,长度,校验和;实际只有八个字节,计算校验和要添加伪头部
- 在接收方,如果目的端口没有应用程序接收数据,则向源主机返回
目的不可达
TCP协议,包括:报文段格式、可靠传输、流量控制、拥塞控制和连接管理。
- 可靠传输协议
- 提供面向连接的服务
- 一对一链接,可靠交付,全双工通信,面相字节流
- 传送数据前要先建立连接,结束后释放连接
- 需进行确认、流量控制计时器连接管理等,处开销较大
- 主要特点
- 一条虚链接,不是真正的物理连接,TCP不关心进程一次发送的报文的长度,根据对方给出的窗口值和拥塞程度来决定一个报文段应包含多少字节。可以把长的分成多个,也可以把短的积累起来
- 连接作为最基本的抽象,连接的断点是套接字,IP地址+端口号
- 首部格式:20字节固定首部,也有伪首部,
- 全双工,应答与数据一同发送给对方,填充字段保证首部是4的整数倍
源端口 |
目的端口 |
序号seq |
确认号 |
数据偏移 |
保留 |
6个标志 |
窗口 |
校验和 |
紧急指针 |
16 |
16 |
32(本报文段发送的数据的第一个字节的序号 字节为单位) |
32字节,期望收到对方的下一个报文段数据第一个字节序号 |
4(首部长度,单位4字节) |
6 |
6(URG:紧急数据,ACK:确认号字段有效,PSH:尽快交付而不是等到缓存填满,RST:严重差错,SYN:连接请求、链接接收,FIN:释放TCP) |
16窗口大小,单位为字节 |
16 |
16指出本报文段有多少个紧急字节 |
– 基于 TCP 的典型应用协议: HTTP 、FTP 、…
- TCP可靠传输的实现
- 滑动窗口协议实现可靠传输和流量控制
- 发送窗口:在没有收到对方应答的情况下,可以连续把窗口内数据发送
- 窗口大小的确定:对方发来的窗口大小
- 根据收到对方的报头中确认号字段,窗口向前滑动,确认号字段表示在此之前的数据已被正确接收
- 超时重传时间的选择
- 校验和+超时重传,对报文段设置一次计时器
- 自适应算法计算超时重传时间,
- 加权平均往返时间: 新的RTTs = (1-α)旧的+α×新的样本,(α取0.125)
- RTO超时重传时间(略大于RTTs) = RTTS+4*RTTd
- RTTd是RTT的偏差加权平均值,第一次测量时,RTTd取测量到的RTT样本值的一半,之后的测量中:新的RTTd = (1-b)×旧的rttd+b*|rtts-新的rtt样本|,b = 0.25
- 流量控制
- 利用滑动窗口实现流量控制
- 窗口大小字段告知对方自己接收窗口的剩余大小,发送方窗口不应大于接收方窗口
- 在建立连接时接收方告诉发送方窗口大小
- 慢启动、拥塞避免、(慢开始、块恢复)
- 连接管理
- 连接建立
- 数据传送
- 连接释放
- 三次握手
- A向B发出连接请求,SYN = 1,seq = x
- B收到,如同意,则返回 SYN = 1,ACK = 1,确认号 = x+1,自己选择的seq = y
- A收到后向B给出确认:ACK = 1 ,确认号 = y+1
- 为什么是3次握手:防止失效的连接请求在服务器端占用资源
- 连接释放:
- 可由任意一方发起
- A 发起:FIN=1 seq = u
- B 确认,ACK = 1,ack = u+1 ,seq = v
- A到B的连接被释放,但B此时发送数据A仍然要接收
- B要释放,则发送释放报文:FIN = 1 ACK = 1,seq = w,ack = u+1
- A收到,确认,ACK = 1,ack = w+1,seq = u+1
六、应用层
- 基本都是基于客户、服务器方式,都是通信中涉及的两个应用进程
套接字编程接口
域名系统 DNS
- Domain name system是internet使用的命名系统。
- 采用层次结构的命名树作为主机的名字,并使用分布式的域名系统DNS
- 多个域名服务器上运行专门的域名服务器程序,完成域名到IP的解析
- 基于UDP
- ...。三级域名...二级域名...顶级域名
- 域名不区分大小写,长度不超过255字符
- 域名服务器分四类:根域名(知道所有的顶级域名服务器的域名和IP)、顶级域名(负责管理在该顶级域名服务器注册的所有二级域名)、权限域名(负责一个区)、本地域名(默认域名服务器)
- 域名服务器定期把数据复制到几个域名服务器来保存
- 本机向本地域名服务器的查询一般采用递归查询
- 本地域名服务器一般采用迭代查询
- 域名服务器端口号 53
- 递归发一条,迭代发多条
文件传送协议
- FTP
- 一个主进程,若干个从属进程
- 端口号为21
- 打开端口,等待用户请求,启动请求,返回等待,
并发
- 使用两个TCP,控制连接和数据连接
- 控制连接在整个会话期间一直打开
- 数据连接只有当服务器收到用户翻来的传输请求后,才会创建数据传输进程和数据连接,数据传送进程实际完成文件的传送,传送完毕后关闭
万维网WWW原理
- 需要解决三个问题:怎样标识所有万维网文档,用什么协议实现各种超级链接,如何存储和标识万维网文档
- URL,统一资源定位符uniform resource locator
- 协议://主机:端口/路径
- 主机为域名,端口和路径有时省略,不区分大小写
- HTTP hypertext transfer protocol
- 基于TCP,面向事物的客户服务器协议,不记录客户端的访问状态,熟知端口号是80,服务器通常在该端口上监听,客户端要请求某个页面时,与服务器建立TCP连接,之后请求,并传送,完成后释放链接
- HTTP1.0每传送一个文件都需要建立一次,而一个页面常常包含数量众多的文件
- 首先建立TCP连接,三次握手,第二次握手后,第三次握手报文的数据部分可传送HTTP请求报文,请求文档所需时间 = 文档传输时间+2RTT
- HTTP1.1使用持续连接,在一段时间内保持连接,不局限于同一个页面
- 有两类报文,请求报文和响应报文
- http是面向正文的,报文中字段都是ascii,因而每个字段的长度都是不确定的
- 报文由开始行(请求报文中是请求行)、首部行和实体主体
- 应答报文的开始行是状态行1xx通知信息,收到请求或正在处理。2xx表示成功,3xx表示重定向,4xx表示客户差错,5xx表示服务器差错
电子邮件系统构成与协议
- 发送邮件的协议SMTP simple mail transfer protocol
- 读取邮件的协议POP3 、IMAP
- 基于TCP
- 电子邮件系统的两种实体,用户代理UA(用户和电子邮件系统的接口)、邮件服务器(用于发送和接收邮件,同时使用SMTP和POP3,既可以作为客户也可以作为服务器)
- MIME ,multi-purpose internet mail extension,