网络层
相关概念与相应问题
虚电路 vs 数据报
虚电路面向连接,所有分组都沿着同一条虚电路传送
数据报无连接,分组可能沿着不同路径传送,尽最大努力交付,可能出错、丢失、重复和失序。
虚电路与电路交换的差别:电路交换使用专用物理线路连接而虚电路为逻辑来连接,分组只是沿着这条逻辑连接按照存储转发方式传送的。
主要任务:网络层主要实现分组转发、路由选择。
由两个任务可以扩展出两个层面,控制层面与数据层面。路由器间传送路由信息,会根据路由算法计算路由表,若用软件计算为秒数量级;转发主机间的分组,通过查找转发表完成转发,若用硬件转发,就是纳秒数量级。
主要任务:分组转发、路由选择
软件定义网络SDN(software Defined Network)
- 远程控制器:掌握整个网络和各主机的状态,能够为每个分组计算出最佳的路由,在每一个路由器中生成其正确的转发表。
网络各层次的中间设备
直接交互与间接交互
直接交互:源主机与目的主机在同一网络或目的路由器向目的主机传递
间接交互:源主机与目的主机不在同一网络。
简述IP地址
IP地址是一个32位ipv4的标识符,在整个互联网范围内唯一。他由互联网名字和数字分配机构ICANN进行分配。采用点分十进制法表示。
分类IP
分类ip有5类,分别是A,B,C,D,E.其中D类是用于多播地址,E类为保存地址。
特殊的IP地址
- 直接广播地址:A、B、C类IP当中的主机号全为1的ip地址比如说B类当中的191.1.255.255
- 受限广播地址:网络号与主机号都是1的IP地址:255.255.255.255
- “在这个网络上的特定主机”地址;网络号都是0,如0.0.1.2
- 网络地址:主机号全是0的IP地址,指明该网络.用于路由器如191.1.0.0
- 送回地址:127.x.x.x比如127.0.0.1表示自己,用于网络软件测试和本地进程通信。Icp/Ip规定,网络号为127的分组不能出现在网络中
小结:网络号全1、全0或主机号全0、全1的IP地址均为特殊地址,不能作为普通地址分配给主机。
专用IP地址
专门用于一个机构内部网络、不能直接接入互联网的主机
划分子网
做法:从主机号借用若干位作为子网号subnet-id,使得IP地址由二级地址变成三级地址。
子网掩码
子网掩码就是将网络号与子网号都取为1,而主机号都取为0。
无分类编址CIDR
无分类域间路由选择CIDR消除了ABC分类和划分子网的概念,更有效的分配ipv4地址空间。使用地址前缀代替网络号和子网号,缩小路由项。
并且采用斜线记法如:128.14.35.7/20(对应掩码1的个数)
CIDR将网络前缀相同的连续ip地址组成“CIDR”地址块。同时也遵守着主机号全0、全1的不使用。
IP地址与硬件地址
主机通过广播arp获得IP地址与Mac地址。
ARP的工作原理:
ARP的适用范围:用于解决同一个局域网的ip地址与硬件地址的映射。如果要找的目的主机与源主机不在同一个局域网上,那么就要通过ARP找到位于本局域网上的某个路由器的硬件地址。然后将分组发送给这个路由器,这个路由器又将分组发送到下一个网络当中,再交由网络服务。路由器不发送ARP请求
IP数据报
IP数据报的组成情况
简述
版本(4bits):当值为4表示ipv4,当其为6表示ipv6
首部长度(4bits):定义了4字节为单位的首部长度;但最小是20B;最大是60B.
区分服务(8bits):用来获得更好的服务(但一般情况下都不使用这个)
总长度(16bits):定义了以字节为单位的分组总长度,其max为(2^16-1)B但不能大于最大传送单位(MTU).总长度=分组同总长度+数据长度
MTU:指数据链路层一个帧的数据字段最大长度;不同网络规定了不同MTU.如以太网的MTU为1500B
由上面MTU导出一个问题,当其程度超过MTU时会出现错误。对此,要对数据报进行切片操作。
标识(16bits):主机在发送IP分组时,由内部计数器值加1产生,不同分组的标识不同,一个分组的不同分片标识相同。
标志(3bits):最高为0,无意义,中间为DF(Do not Fragment/不能分片)当为0时,表示接受主机能将其进行分片操作,当其为1时,表示不能进行分片操作。最低一位MF(more Fragment/还有分片)当其为1,表示不是最后一个分片;当为0表示是最后一个分片。
片位移(13bits):表示分片在整个分组中的相对位置,以8字节为单位
生存时间(8bits):之时数据报在网络中可通过的路由器数的最大值。它由源主机初始化,经过一个路由器就减1,当值为0,就丢弃数据报并ICMP报文通知源主机。
协议(8bits):指出该数据报携带的数据使用哪种协议,以便目的主机的IP层将数据部分上交到那个处理过程
头校验和(16bits):只检验数据报的首部
计算方法:
注意:出现进位就将产生最高位的进位加到最后一位上
源地址与目的地址(各32bits):在分组传输过程中其源地址与目的地址始终保持不变。
转发分组
转发算法详情:
最长前缀匹配:在查找路由表时可能不止一个能够与之匹配;应当从中选择最长网络前缀路由。因为网络前缀更长、地址块就越小,路由就越具体。
除了顺序查早路由转发表,还可以使用二叉线索查找路由表。
注:因为当A、B在同一网络当中后,所使用的网络掩码都是相同所以当A的网络掩码与BIP地址相与后就是该地址,同理A、C不在同一网络所以不是A网络。
国际控制报文协议(ICMP)
icmp报文格式:
ICMP数据报的数据内容包含了出错IP分组的首部以及该数据段的前八个字节。最后加上规定的八个字节
不应发送ICMP差错报告的几种情况
- 对ICMP差错报告报文不再发送ICMP差错报告报文。
- 对第一个分片的数据报文的所有后续数据报文不再发送ICMP差错报告报文。
- 对具有多播地址的数据报都不发送ICMP差错报告报文。
- 对具有特殊地址的数据报(如127.0.0.0或者0.0.0.0)都不发送ICMP差错报告。
路由选择协议
路由选择协议规定了互联网中有关的路由器应如何相互交换信息并生成出路由表
分层次的路由选择协议
其中路由信息协议是具体协议。
路由信息协议RIP:一种分布式,居于距离向量的路由选择协议。其中“距离”也称为“跳数”,因为每经过一个路由器,跳数就加一。到直接连接的网络定义为一,到非直接连接的网络为所经过的路由器数+1.这里的距离为最短距离。
距离向量算法
1)路由器在最开始工作的时候,只知道直接相连网络的距离(定义为一)
2)接受到相邻路由器的一个rip报文。
3)将rip当中的下一跳变成来源路由器,距离加1。
4)通过修改后的的rip报文,将自己的路由表进行添加与修改。
5)分多种情况讨论,其中若网络在本地且下一跳也在但是距离不同则修改
6)若3分钟还没有收到相邻路由器的更新路由表,就把此路由器记为不可达路由器。//即将距离设置为16。
开放最短路径优先 OSPF
使用了最短路径算法并且采用分布式链路状态协议。链路状态就是说明本路由器与哪些路由器直接相连,以及该链路的度量。(10^8/带宽)
链路状态数据库:所有路由器都建立一个链路状态数据库实际就是全网的拓扑结构图。
OSPF的五种分组类型:问候分组、数据库描述分组、链路状态请求分组、链路状态更新分组、链路状态确认分组。
边界网关协议 BGP
BGP是不同自治系统AS的路由器之间交换路由信息的协议,在自治系统之间交换“可达性”信息。
BGP采用路径向量路由选择协议
BGP发言者
在AS之间,两个BGP发言者之间建立TCP连接,称为eBGP连接。在不同as之间交换路由信息。
在AS内部,相互通信的每队路由器之间也是用tcp连接,称为iBGP连接。在as内部路由交换BGP路由。
BGP的四种报文:
open(打开)用来与相邻的BGP发言者建立联系
update (更新) 用来通告某一路由的信息,以及列出要撤销的多条路由。
keepalive (保活) 用来周期性确保证实邻站的连通性。
notification (通知) 发送检验的差错。
路由器
路由器是一个多端口i输入多端口输出的专用计算机。其任务是分组转发。
路由器中的输入输出队列产生溢出是分组丢失的重要原因。
转发VS路由选择
- 转发就是路由器根据转发表将用户IP数据报从合适端口转发出去
- 路由选择则是按照分布式算法,根据各相邻路由器得到的关于网络拓扑的变化情况,动态地改变所选择的路由
- 路由表是根据路由选择算法得出,而转发表则是由路由表得出的。
- 在讨论路由选择的原理时,往往不去区分路由表与转发表
三种常用的交换方式
通过存储器、通过总线方式、通过互联网络。