计网期末考点整理(第5,6章)

  • 网络层通过路由选择算法,为IP分组从源主机到目的主机选择一条合适的传输路径,为传输层端—端数据传输提供服务。
  • IP协议的主要特点:

(1)IP协议是一种无连接不可靠的分组传送服务的协议;
(2)IP协议是点-点的网络层通信协议;
(3)IP协议屏蔽了互联的网络在数据链路层、物理层协议与实现技术上的差异。

  • IP协议是针对源主机—路由器、路由器—路由器、路由器—目的主机之间的数据传输的点—点的网络层通信协议。
  • IP协议提供的是一种 “尽力而为(best-effort)”的服务。
IP对物理网络差异的屏蔽作用
  • 早期的协议将IP分组称为IP数据报。IPv4分组由两部分组成:分组头数据。分组头(也称为“首部”)的长度是可变的。人们习惯用4字节为基本单元表示分组头字段。IPv4分组头的基本长度为20字节。若加上最长的40字节的选项,则IP分组头最大长度为60字节。
  • 版本字段的长度为4位,表示所使用的网络层IP协议的版本号。版本字段值为4,表示IPv4;版本字段值为6,表示IPv6。
  • 协议字段的长度为8位,表示使用IP协议的高层协议类型。
  • 分组头长度字段的长度为4位,它定义了以4字节为一个单位的分组头的长度。
  • 分组头中除了IP选项字段填充字段之外,其他各项都是定长的
  • 因为报头的固定长度为20字节,所以分组头长度字段最小值为5(即)。
  • 总长度字段长度为16位,其定义以字节为单位的分组头字段与数据字段长度之和,能表示的IP分组最大长度为65535()字节。IP分组的数据长度等于分组的总长度减去分组头长度
  • 服务类型(service type)字段的长度为8位,用于指示路由器如何处理该分组
  • 生存时间TTL用来设定分组在Internet中的“寿命”,它通常是用转发分组最多的路由器跳数(hop)来度量。生存时间TTL的初始值由源主机设置,经过一个路由器转发之后,TTL值减1。当TTL的值为0时,丢弃分组并发送ICMP报文通知源主机。
  • 头校验和字段的长度为8位。设置头校验和是为了保证分组头部的数据完整性。IP分组只对分组头进行校验,不包括分组数据。其主要原因有2点:

(1)IP分组头之外的部分属于高层数据,高层数据都会有相应的校验字段,IP分组不对高层数据进行校验。
(2)每经过一个路由器,IP分组头都要改变一次,数据部分并不改变。设置头校验和只对变化部分进行校验是合理的,可以减少路由器对每个接收分组的处理时间,提高路由器的运行效率。

  • 分组头中最简单的部分是地址字段。地址字段包括源地址目的地址。源地址与目的地址字段长度都是32位,分别表示发送分组的源主机接收分组的目的主机的IP地址。在分组的整个传输过程中,无论采用什么样的传输路径或如何分片,源地址与目的地址始终保持不变
IPv4分组的结构
协议字段值所表示的高层协议类型
  • IP报头中有3个字段与分片有关:标识标志片偏移。标识字段长度为16位,最多可以分配65535个ID值。“标识”用来表示属于同一个IP数据字段的分片。标志字段共3位,最高位为0,该值必须复制到所有分组中。不分片位的值必须被复制。
  • 片偏移字段值表示分片在整个分组中的相对位置。它的长度为13位。片偏移值是以8字节为单位来计数,因此选择的分片长度应为8字节的整数倍。
标志字段的结构
IP分组的分片过程
分片与字段标识、标志与片偏移
  • 设置IP分组头选项主要用于控制测试。所有实现IP协议的硬件或软件都应该能够处理分组头选项。选项的最大长度为40字节,如果用户使用的选项长度不是4字节的整数倍,需要添加填充位,补成4字节的整数倍。分组头选项选项码长度选项数据等3部分组成。
  • 源路由是指由发送分组的源主机制定的传输路径,用来区别由路由器通过路由选择算法确定的路径。源路由分为严格源路由(SRR)松散源路由(LRR)
  • 记录路由是将分组经过的每个路由器IP地址记录下来。记录路由选项常用于网络测试
  • IP地址的点分十进制表示方法,通常用x.x.x.x的格式来表示,每个x为8位二进制(10进制表示每个x的值为)。
IPv4地址与划分地址新技术的研究过程
标准分类的IP地址
  • 特殊的IP地址:

直接广播地址:A类、B类与C类IP地址中主机号是全1的IP地址,如191.1.255.255。
受限广播地址网络号与主机号为全1的IP地址(255.255.255.255)。
“这个网络上的特定主机”地址网络号是全0(如0.0.0.25)。
回送地址:127.0.0.0是回送地址。

  • 每类的IP的主机号为全0和全1的两个地址保留。
保留的专用地址
  • 研究子网划分的基本思想是:借用主机号的一部分作为子网的子网号,划分出更多的子网IP地址,而对于外部路由器的寻址没有影响。子网掩码又称为子网屏蔽码
  • 子网掩码:是一种用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址主机地址两部分。
标准A类、B类或C类地址掩码
一个B类地址划分为64个子网的例子
可变长度子网划分的结构
  • 无类别域间路由CIDR,其以任意的二进制倍数的大小来分配地址。采用“斜线记法”,即<网络前缀>/<主机号>。例如:用CIDR方法给出一个地址块中的一个IP地址是200.16.23.1/20,那么它表示在这个IP地址的前20位是网络前缀,后12位是主机号。
CIDR及对应的掩码
  • 网络地址转换:NAT
  • 默认路由器第一跳路由器,也称源路由器,早期的文献中通常将其称为默认网关
  • 分组交付:指在Internet中主机、路由器转发IP分组的过程。路由器需要根据分组的目的地址与源地址是否属于同一个网络,判断是直接交付还是间接交付
分组交付的过程
  • 路由选择算法的主要参数:

(1)跳数(hop count):一个分组从源主机到达目的主机的路径上,转发分组的路由器数量
(2)带宽(bandwidth):链路的传输速率。
(3)延时(delay):一个分组从源主机到达目的主机花费的时间。
(4)负载(load):通过路由器或线路的单位时间通信量。
(5)可靠性(reliability):传输过程中的分组丢失率。
(6)开销(overhead):传输过程中的耗费,通常与所使用的链路长度、数据速率、链路容量、安全、传播延时与费用等因素相关。

  • 路由选择算法的分类:静态路由表动态路由表。在Internet中,路由器是采用表驱动的路由选择算法路由表是根据路由选择算法产生的。
路由表的生成和使用示意图
  • 每一跳转发过程中分组头的源与目的地址保持不变,而MAC地址是需要改变的。
  • IP路由汇聚最长前缀匹配原则;路由汇聚是减少路由表项数量的重要手段。路由表项由“网络前缀”“下一跳地址”组成。路由选择是选择具有最长网络前缀的路由的过程,这就是“最长前缀匹配”的路由选择原则。
CIDR的路由汇聚过程实例的示意图
汇聚前后的路由器Rg的路由表
  • 设计路由选择算法的目标是生成路由表,为路由器转发IP分组找出适当的下一跳路由器
  • 设计路由选择协议的目标是实现路由表中路由信息的动态更新
  • 自治系统的核心是路由选择的“自治”。对应于自治系统的结构,路由选择协议也分为两大类:内部网关协议(IGP)外部网关协议(EGP)
  • 内部网关协议主要有路由信息协议(RIP)开放最短路径优先(OSPF)协议
  • 外部网关协议主要是边界网关协议(BGP)
自治系统与IGP、EGP之间的关系
  • 路由信息协议RIP)是基于距离向量(V-D)路由选择算法的内部路由协议
  • 距离向量路由选择算法(也称为Bellman-Ford算法)要求路由器周期性地通知相邻路由器:自己可以到达的网络,以及到达该网络的距离(跳数)。路由刷新报文主要内容是由若干(V,D)组成的表。(V,D)表中V代表向量( vector),标识该路由器可以到达的目的网络或目的主机;D代表距离( distance),指出该路由器到达目的网络或目的主机的距离。距离D对应该路由上的跳数(hop count)。协议规定:与路由器直接连接的网络或主机不需要经过中间路由器的转接,距离为0;分组每经过一个路由器转发则距离值加1。相邻路由器在接收到某个路由器的(V,D)报文后,按照最短路径原则对各自的路由表进行刷新。
RIP路由信息更新过程示意图
  • 最短路径优先OSPF协议使用的是链路状态协议LSP),RIP使用的是距离向量路由选择协议。RIP只能根据相邻路由器的信息更新路由表,路由器虽然可以知道到达目的网络的跳数以及下一跳是哪个路由器,但是并不知道整个区域内部的网络拓扑结构。
  • 路由器的主要功能:① 建立并维护路由表;② 提供网络间的分组转发功能
  • 路由器通过定期与其他路由器交换路由信息来自动更新路由表。
  • Internet控制报文协议ICMP):ICMP本身是网络层的一个协议,但是它的报文要封装成IP分组,然后再传送给数据链路层。从协议体系上看,ICMP只是要解决IP协议可能出现的不可靠问题,不能独立于IP协议,是IP协议的一个组成部分。ICMP设计的初衷是用于IP协议在执行过程中由路由器来向源主机报告传输出错的原因。
ICMP报文结构示意图
  • 在IP分组头中,协议字段值为1表示IP分组的数据部分ICMP报文
  • ICMP报文类型:差错报告报文询问报文
  • Ping是测试目的主机是否能够到达的一种通用方法。用户通过调用Ping命令便是通过回应请求(ICMP echo request)和应答报文(ICMP echo reply)。报文中包括三个参数:报文长度(bytes)主机响应时间(time)生存时间(TTL)
  • Tracert命令可以获得从测试命令发出的源主机到达目的主机完整的路径。
  • IP多播的基本思想是:多个接收者可以接收到从同一个或一组源主机一次发送的相同内容的分组。
  • IGMP的操作:① 加入一个组;② 继续组成员关系;③ 监视组成员的关系;④ 离开一个组。
  • MPLS VPN的应用。
  • 对于TCP/IP来说,主机和路由器在网络层用IP地址来标识,在数据链路层用物理地址(如在Ethernet的MAC地址)来标识。
  • 正向地址解析:从已知的IP地址找出对应的MAC地址的映射过程;相应的协议称为地址解析协议(Address Resolution Protocol,ARP)。
  • 反向地址解析:从已知的MAC地址找出对应的IP地址的映射过程;相应的协议称为反向地址解析协议(Reverse ARP,RARP)。
地址解析协议与IP地址/MAC地址的关系
  • 移动主机是指从一个链路移动到另一个链路或一个网络移动到另一个网络的主机或路由器。
  • 涉及移动IP的4个功能实体:移动主机家乡代理外地代理通信对端
  • 移动IP的基本术语:家乡地址转发地址家乡网络家乡链路外地链路移动绑定隧道
使用隧道传输移动主机的IP分组
  • 移动IPv4的工作过程大致可分为4个阶段:代理发现注册分组路由注销
  • 代理发现是通过扩展ICMP路由发现机制来实现。
  • 移动IP的分组路由可以分为单播广播多播三种情况。
移动IP代理的发现机制
通过外地代理转发注册请求
移动主机直接到家乡代理注册
  • 冒号十六进制表示法:IPv6的128位地址按每16位划分为一个位段,每个位段被转换为一个4位的十六进制数,并用冒号隔开。

IPv6地址的例子:21DA:0000:0000:0000:02AA:000F:FE08:9C5A
根据零压缩法可以进一步简化表示为:21DA:0:0:0:2AA:F:FE08:9C5A
若几个连续位段的值都为0,则这些0可以简写为::,也称为双冒号表示法。前面的结果可以简化为21DA::2AA:F:FE08:9C5A

  • 注意:① 在使用零压缩法时,不能将一个位段内的有效0压缩掉。② 双冒号在一个地址中只能出现一次。
IPv6分组结构
IPv6报头结构
通过IPv4隧道传输IPv6分组的机制

1.IP协议提供的是一种“尽力而为”的服务。
2.IP分组由分组头和数据两个部分组成。IPv4分组头基本长度为20B,选项最长为40B。
3.IP地址技术研究分为4个阶段:标准分类的IP地址、划分子网的三级地址结构、构成超网的无类别域间路由(CIDR)技术、网络地址转换(NAT)技术。
4.路由选择算法为生成路由表提供算法依据,路由选择协议用于路由表路由信息的动态更新。
5.自治系统的核心是路由选择的“自治”。Internet路由选择协议分为: 内部网关协议与外部网关协议。目前,内部网关协议主要有RIP与OSPF协议;外部网关协议主要是BGP。
6. 路由器是具有多个输入端口和多个输出端口、转发分组的专用计算机系统,其结构可以分为路由选择和分组转发部分。
7.针对IPv4 协议缺乏传输可靠性保证机制,IP协议增加ICMP协议;针对IPv4 协议不能支持多播服务,IP协议增加了IGMP协议。
8.移动IP要求移动主机在改变接入点时不改变IP地址,以便在移动过程中保持已有通信的连续性 。
9.IPv6的主要特征是:新的协议格式、巨大的地址空间、有效的分级寻址和路由结构、有状态和无状态的地址自动配置、内置的安全机制、更好地支持QoS服务。

  • 传输层的主要功能是在进程之间建立端-端通信连接,实现分布式进程通信
  • 传输层中实现传输层协议的软件称为“传输实体”
  • 传输层之间传输的报文称为“传输协议数据单元(TPDU)”
传输协议数据单元概念示意图
TPDU结构与IP分组、帧结构的关系
  • 进程号也称为端口号。在网络环境中,标识一个进程必须同时使用IP地址与端口号。RFC793定义的套接字Socket)是由IP地址与对应的端口号(IP地址:端口号)组成。
  • 端口号的数值范围:0~65535之间的整数。端口号的类型:熟知端口号注册端口号临时端口号
IANA对于端口号数值范围的划分
UDP的熟知端口号
TCP常用的熟知端口号
TCP、UDP协议与应用层协议的关系
  • UDP是一种无连接的不可靠的传输层协议。UDP协议在传输报文之前不需要在通信双方之间建立连接,因此减少了协议开销与传输延迟。UDP对报文除了提供一种可选的校验和之外,几乎没有提供其他的保证数据传输可靠性的措施。如果UDP检测出在收到的分组出错,它就丢弃这个分组,既不确认,也不通知发送端和要求重传。UDP协议提供的是“尽力而为”的传输服务。
UDP对应用程序提交数据的处理方式
UDP报文格式
UDP校验和校验的伪报头与报头的结构
  • UDP协议适用的范围:① 视频播放应用;② 简短的交互式应用;③ 多播与广播应用;④ UDP协议是一种适用于实时语音视频传输的传输层协议。
  • TCP协议的主要特点:① 支持面向连接的传输服务;② 支持字节流的传输;③ 支持全双工通信;④ 支持同时建立多个并发的TCP连接;⑤ 支持可靠的传输服务。
  • 流(stream)相当于一个管道,从一端放入什么内容,从另一端可以照原样取出什么内容。它描述了一个不出现丢失、重复和乱序的数据传输过程。
TCP报文格式

① TCP是面向字节流的,它要为发送字节流中的每个字节都按顺序编号
② 在TCP连接建立时,每方需要使用随机数产生器产生一个初始序号( initialsequence number, ISN)。
③由于是连接双方各自随机产生初始序号,因此一个TCP连接的通信双方的序号是不同的。

  • 确认号字段长度为32位(4B)。确认号表示一个进程已经正确接收序号为N的字节,要求发送端下一个应该发送序号为N+1字节的报文段。例如,主机A发送给主机B的报文字节序号为10010-11009,主机B正确接收这个字节段,那么主机B在下一个发送到主机A的报头的确认号写为11010(11009+1),主机A在接收到该报文,读到确认号为11009时就理解为:主机B已经正确接收到最后一个字节的序号为11009及以前的所有字节,希望下面传送字节序号为11010开始的报文段。这是在网络协议中典型的捎带确认方法。
  • 报头长度字段的长度为4位。TCP报头长度是以4B为一个单元来计算的,实际报头长度是在20~60B,因此这个字段的值是在5(5×4B=20B)~15(15×4B=60B)之间。
  • 保留字段长度为6位。
  • 窗口长度是TCP为保证字节流传输的可靠性。
TCP工作原理示意图

三次握手(重点:☆☆☆)

(1)最初的客户端TCP进程是处于CLOSE(关闭)状态。当客户端准备发起一次TCP连接,进入SYN-SEND(准备发送)状态时,它首先向处于LISTEN(收听)状态的服务器端TCP进程发送第一个控制位SYN=1的“连接建立请求报文”。“连接建立请求报文”不携带数据字段,但是需要给报文一个序号,图中标为“SYN=1,seq=x”。注意:“连接建立请求报文”的序号seq值x是随机产生的,但是不能为0。随机数x不能为0的理由是:避免因TCP连接非正常断开而可能引起的混乱。如果在连接突然中断时,可能有一个或两个进程同时等待对方的确认应答,而这个时候有一个新连接的序号也是从0开始,那么接收进程就有可能认为是对方重传的报文,这样就有可能造成连接过程的错误。为了避免可能引起的问题,协议规定SYN报文序号seq值x必须随机产生并且不能为0
(2)服务器端在接收到“连接建立请求报文”之后,如果同意建立连接,则向客户端发送
第二个控制位SYN=1、ACK=1的“连接建立请求确认报文”确认号ack=x+1,表示是对第一个“连接建立请求报文”(序号seq=x)的确认。同样,“连接建立请求确认报文”不带数据字段,但是需要给报文一个序号(seq=y),图中标为“SYN=1,ACK=1,seq=y ack=x+1”,这时服务器进入SYN-RCVD(准备接收)状态
(3)在接收到“连接建立请求确认报文”之后,客户端发送第三个控制位ACK=1“连接 建立请求确认报文”,由于该报文是对“连接建立请求确认报文”(序号seq=y)的确认,因此确认序号ack=y+1。同样,“连接建立请求确认报文”不携带数据字段,但是需要给报文一个序号,按照TCP协议规定,这个“连接建立请求确认报文”的序号仍然为x+1。图中标为“ACK=1,seq=x+1,ack=y+1”,这时客户端进入ESTABLISHED(已建立连接)状态。服务器端在接收到ACK之后也进入ESTABLISHED(已建立连接)状态

四次挥手(重点:☆☆☆)

(1)当客户准备结束一次数据传输,主动提出释放TCP连接时,进入FIN-WA-1 (释放等待-1)状态,它向服务器端发送第一个控制位FIN=1的“连接释放请求报文”,提出连接释放请求,停止发送数据。“连接释放请求报文”不携带数据字段,但是需要给报文1个序号,图中标为“FIN=1,seq=u”,u等于客户端发送的最后一个字节的序号加1
(2)服务器在接收到“连接释放请求报文”之后,需要向客户发回“连接释放请求确认报文”,表示对接收第一个连接释放请求报文的确认,因此ack=u+1。这个“连接释放请求报文”的序号为v等于服务器发送的最后一个字节序号加1。图中标为“ACK=1,seq=v,ack=u+1”。TCP服务器进程向高层应用进程通知客户请求释放TCP连接,客户到服务器的TCP连接断开。但是,服务器到客户的TCP连接还没有断开,如果服务器还有数据报文需要发送时,它还可以继续发送直至完毕。这种状态称为半关闭(helf-close)状态。这个状态需要持续一段时间。客户在接收到服务器发送的ACK报文之后进入FIN-WAIT-2状态;服务器进入 CLOSE-WAIT状态
(3)服务器的高层应用程序已经没有数据需要发送时,它会通知TCP可以释放连接,这时服务器向客户发送“连接释放请求报文”。这个“连接释放请求报文”的序号取决于在半关闭状态时,服务器端是否发送过数据报文。因此序号假定为w。图中标为“FIN=1,ACK=1,seq=w,ack=u+1”。服务器端经过LAST-ACK状态之后转回到LISTEN(收听)状态
(4)客户在接收到FIN报文之后,向服务器发送“连接释放请求确认报文”报文,表示对服务器“连接释放请求报文”的确认。图中ACK报文记为“ACK=1,seq=u+1,ack=w+1”

字节流传输的状态分类
  • TCP协议通过滑动窗口机制跟踪和记录发送字节的状态,实现差错控制功能。
发送窗口与可用窗口
  • 接收字节流序号不连续的处理方法有两种:拉回方式与选择重传方式。
  • TCP使用重传计时器来控制报文确认与等待重传的时间
  • 在流量控制中,接收窗口又称为通知窗口
  • 慢开始与拥塞避免算法
TCP协议拥塞控制的过程示意图
  • 快重传与快恢复
连续收到3个重复确认的拥塞控制过程

你可能感兴趣的:(计网期末考点整理(第5,6章))