1、网络层
从发送主机向接受主机传送数据段(segment)
发送主机:将数据段封装到数据报(datagram)中
接收主机:向传输层交付数据段(segment)
每个主机和路由器都运行网络层协议
路由器检验所有穿越它的IP数据报的头部域:决策如何处理IP数据报
网络层核心功能——转发与路由
转发(forwarding):将分组从路由器的输入端口转移到合适的输出端口,转发表确定本路由器如何转发。
路由(routing):确定分组从源到目的经过的路径,路由算法(routing algorithms)。
网络层核心功能——连接建立
某些网络的重要功能:ATM ,帧中继,X.25
数据分组传输之前两端主机需要首先建立虚拟/逻辑连接
网络设备(如路由器)参与连接的建立
网络层连接与传输层连接的对比:
网络层连接:两个主机之间(路径上的路由器等网络设备参与其中
传输层连接:两个应用进程之间(对中间网络设备透明)
网络层服务模型:
网络层为发送端(主机)到接收端(主机)的数据报传送通道提供什么样的服务模型?
无连接服务:不事先为系列分组的传输确定传输路径;每个分组独立确定传输路径;不同分组可能传输路径不同;数据报网络
连接服务:首先为系列分组的传输确定从源到目的经过的路径(建立连接);然后沿该路径(连接)传输系列分组;系列分组传输路径相同(分组顺序得到保障);传输结束后拆除连接;虚电路网络
数据报网络和虚电路网络都是分组交换网络
类似于传输层的无连接服务(UDP)和面向连接服务(TCP),但是网络层服务:主机到主机服务,网络核心实现。
=================================================================
2、虚电路网络与数据报网络
虚电路VC Virtual Circuit:
一条从源主机到目的主机,类似于电路的路径(逻辑连接):分组交换;每个分组的传输利用链路的全部带宽;源到目的路径经过的网络层设备共同完成虚电路功能。
通信过程:呼叫建立(call setup)——数据传输——拆除呼叫
每个分组携带虚电路标识,而不是目的主机地址
虚电路经过的每个网络设备,维护每条经过它的虚电路连接状态
链路、网络设备资源(如带宽、缓存等)可以面向VC进行预分配
预分配资源=可预期服务性能
VC的具体实现:每条虚电路包括:
从源主机到目的主机的一条路径
虚电路号(VCID),沿路每段链路一个编号
沿路每个网络层设备(如路由器),利用转发表记录经过的每条虚电路
沿某条虚电路传输的分组,携带对应虚电路的VCID,而不是目的地址
同一条VC,在每段链路上的VCID通常不同
路由器转发分组时依据转发表改写/替换虚电路号,VC路径上每个路由器都需要维护VC连接的状态信息!
虚电路信令协议(signaling protocols)
用于VC的建立、维护与拆除:路径选择
应用于虚电路网络:如ATM、帧中继(frame-relay)网络等
目前的Internet不采用
数据报网络:
网络层无连接
每个分组携带目的地址
路由器根据分组的目的地址转发分组
基于路由协议/算法构建转发表;检索转发表;每个分组独立选路。
数据报转发表:
Internet(数据报网络):计算机之间的数据交换,弹性服务,没有严格时间要求;链路类型众多,特点性能各异,统一服务困难。简化网络 复杂边缘;智能端系统:可以自适应、性能控制、差错恢复。
ATM(VC网络):电话网络演化而来,核心业务是实时对话:严格的时间、可靠性需求,需要有保障的服务。“哑”端系统,非智能 电话机 传真机;简化边缘,复杂网络;
=================================================================
3、IPV4协议
IP协议-IP数据报
Internet网络层 是典型的数据报网络:路由和转发的功能
路由协议:路径选择,RIP OSPF BGP
转发表(路由表)
IP协议:寻址规约、数据报(分组)格式、分组处理规约
ICMP协议:差错报告、路由器“信令”
IP数据报:首部+数据(包含上层的数据分组),首部包括很多域和字段(包含固定部分+可变部分)
IP分组格式:版本号(占4位);总长度字段占16位:IP分组的总字节数;
首部长度:字段占4位,IP分组首部长度;
服务类型字段占8位:指示期望获得哪种类型的服务;
生存时间TTL:字段占8位,IP分组在网络中可以通过的路由器数,路由器转发一次分组,TTL减1。如果TTL=0,路由器则丢弃该IP分组,同时向IP主机发送报文。
协议字段占8位:指示IP分组封装的是哪个协议的数据包。
首部校验和字段占16位:实现对IP分组首部的差错检测,计算校验和时,该字段置全0,采用反码算数运算求和,和的反码作为首部校验和字段。
典型的IP分组首部长度是20个字节。
标识ID字段占16位:标识一个IP分组,IP协议利用一个计数器,每产生一个IP分组计数器加1,作为该IP分组的标识。
标志位字段占3位:保留+DF(DON’T FRAGMENT)+MF(MORE FRAGMENT)
片偏移字段占13位:一个IP分组分片封装原IP分组数据的相对偏移量。
片偏移字段以8字节为单位。
IP分片:
最大传输单元(MTU):IP数据报在网络中传输,需要封装到链路层的数据帧里面。网络链路存在MTU——链路层数据帧可封装数据的上限。不同链路的MTU是不一样的。这就涉及到IP分片和重组
大IP分组向较小MTU链路转发时,可以被“分片”。(fragmented)路由器只管分不管装。由最终目的主机负责重组。
1个IP分组分为多片IP分组。IP分片到达目的主机后进行“重组”。
IP首部的相关字段用于识别分片以及确定分片的相对顺序。目的主机收不齐分片的话,会等待一段时间后,把其它分片都丢弃 。
IP分片过程:
假设原IP分组总长度为L,待转发链路的MTU为M
若L>M,且DF=0,则可以/需要分片
分片时每个分片的标识复制原IP分组的标识
通常分片时,除最后一个分片,其他分片均分为MTU允许的最大分片
一个最大分片可封装的数据应该是8的倍数,因此,一个最大分片可封装的数据为:总需要分片数。
每片的片偏移字段取值为:
每片的总长度字段为:
每片的MF标志位为:
IP编址:
IP分组:源地址(SA)-从哪儿来;目的地址(DA)-到哪儿去
接口(interface):主机/路由器与物理链接的连接:实现网络层功能;路由器通常有多个接口;主机通常只有一个或两个接口(有线的以太网接口和无线的802.11接口)。编址编的是实现网络层功能的接口
IP地址:32比特(IPv4) 编号标识主机、路由器的接口。分成4个8比特,每个8比特写成十进制。
IP地址与每个接口关联。实际上是指某个接口的IP地址。
怎样为接口分配IP地址?
IP子网:IP地址分成两个部分,高比特位表示网络号(NetID),低比特位表示(HostID)。具有相同网络号的局域网叫IP子网。
IP子网特点:IP地址具有相同网络号的设备接口。不跨越路由器可以彼此物理联通的接口。(第三层及以上层网络设备)
有类IP地址:有类编址
A类:NetID地址8位,HostID24位
B类:NetID地址16位,HostID16位
C类:NetID地址24位,HostID8位
D类,E类 用来命名和标识互联网中一组主机。
NetID |
HostID |
作为IP分组源地址 |
作为IP分组目的地址 |
用途 |
全0 |
全0 |
可以 |
不可以 |
在本网范围内表示本机;在路由表中用于表示默认路由(相当于表示整个Internet网络) |
全0 |
特定值 |
不可以 |
可以 |
表示本网内某个特定主机 |
全1 |
全1 |
不可以 |
可以 |
本网广播地址(路由器不转发) |
特定值 |
全0 |
不可以 |
不可以 |
网络地址,表示一个网络 |
特定值 |
全1 |
不可以 |
可以 |
直接广播地址,对特定网络上的所有主机进行广播 |
123 |
非全0或非全1的任何数 |
可以 |
可以 |
用于本地软件环回测试,称为环回地址 |
私有地址
IP子网划分与子网掩码:
子网划分:如何将一个IP子网划分成更小的网络。
IP地址继续划分:网络号(高比特)+子网号(原网络主机号部分比特)+主机号(低位比特)
如何确定是否划分了子网?利用多少位划分子网?
那就是子网掩码,形如IP地址:
32位,点分十进制形式
取值:NetID、SubID位全取1;HostID位全取0
子网地址+子网掩码——可以准确确定子网大小
路由器如何确定应该将IP分组转发到哪个子网?
子网掩码的应用:将IP分组的目的IP地址与子网掩码按位与运算,提取子网地址。
=================================================================
4、无类域间路由(CIDR: Classless InterDomain Routing)
消除传统的 A 类、B 类和 C 类地址界限
NetID+SubID——Network Prefix 可以任意长度
融合子网地址与子网掩码,方便子网划分
无类地址格式:a.b.c.d/x ,其中 x 为前缀长度
例如:Prefix+HostID
提高 IPv4 地址空间分配效率
提高路由效率:将多个子网聚合为一个较大的子网,构造超网,路由转发表
=================================================================
5、 DHCP协议
如何获得IP地址:
硬编码:静态配置
动态主机配置协议:Dynamic Host Configuration Protocol
从服务器动态获取:IP地址,子网掩码,默认网关地址,DNS服务器名称与IP地址
“即插即用”
允许地址重用
支持再用地址续租
支持移动用户加入网络
DHCP工作过程:主机广播(DHCP discover);DHCP服务器利用(DHCP offer);主机请求IP地址(DHCP request); DHCP服务器分配IP地址(DHCP ack)
=================================================================
6、 NAT网络地址转换
只需/能从ISP申请一个IP地址:IPv4地址耗尽
本地网络设备IP地址的变更,无需通告外界网络
变更ISP时,无需修改内部网络设备IP地址
内部网络设备对外界网络不可见,即不可直接寻址(安全)
替换:利用(NAT IP地址,新端口号)替换每个外出IP数据报的(源IP地址,源端口号)
记录:将每对(NAT IP地址,新端口号)与(源IP地址,源端口号)的替换信息存储到NAT转换表中
替换:根据NAT转换表,利用(源IP地址,源端口号)替换每个进入内网IP数据报的(目的IP地址,目的端口号),即(NAT IP地址,新端口号)
16-bit端口号字段:
可以同时支持60000多并行连接!
NAT主要争议:
路由器应该只处理第3层功能
违背端到端通信原则
地址短缺问题应该由IPv6解决
NAT的穿透问题:
=================================================================
7、 ICMP协议 互联网控制报文协议
支持主机或路由器完成差错或异常报告;网络探询;
两类ICMP报文:
差错报告报文(5种)
目的不可达,源抑制,超时/超期,参数问题,重定向(Redirect)
网络探询报文:
回声(Echo)请求与应答报文(Reply)
ICMP报文封装到IP数据报中传输
=================================================================
8、 IPv6简介
最初动机:32位IPv4地址空间已分配殆尽
其他动机:改进首部格式
快速处理/转发数据报
支持QoS
IPv6数据包格式:
固定长度的40字节基本首部40B+有效载荷(扩展首部+数据)64KB
基本首部(版本+优先级+流标签+载荷长度+下一个首部+跳步限制+源地址+目的地址)
不允许分片
优先级:标识数据报的优先级
流标签:标识同一“流”中的数据报
下一个首部:标识下一个选项首部或上层协议首部(如TCP首部)
其他改变vs IPv4
校验和:彻底移除,以减少每跳处理时间
选项:允许,但是从基本首部移出,定义多个选项首部,通过“下一个首部“字段指示
ICMPv6:新版ICMP
附加报文类型, e.g. “Packet Too Big“
多播组管理功能
IPv6地址表示形式:128bits
冒号分割的十六进制,8组16进制数
压缩形式:
一般形式:
IPv4-嵌入形式:
地址前缀:
URLs:
IPv6基本地址类型:
单播(unicast):一对一通信
多播(multicast):一对多通信
任意播(anycast):
IPv4向IPv6过渡
不可能咋某个时刻所有路由器同时被更新为IPv6
不会有 “标志性的日期“
IPv4和IPv6路由器共存的网络如何运行?
隧道技术:IPv6数据报作为IPv4数据报的载荷进行封装,穿越IPv4网络。
=================================================================
9、路由算法
=================================================================
10、Internet路由