主要任务是把分组从源端传到目的端,为分组交换网上的不同主机提供通信服务
网络层传输单位是数据报
拥塞是网络全局性的一个状态,整个网络每个结点都处于忙碌状态。而流量控制是平衡接收方和发送方的发送速率。解决拥塞有**开环控制(静态)和闭环控制(动态)**两种方式。
路由器
以电话网络为例
独占资源体现在,一旦通信双方建立起了连接,即使他们不传数据,此条电路也不能为其他人所用。
报文:源应用发送的信息整体
存储转发:报文到了交换设备后,不立即发送出去,而是在交换设备处存储到有链路空闲再转发。这样以来,发送途径的路径是不固定的。
将报文分组,进行传输(分组:把大的数据块分割成小的数据块)
总的来说,分组交换的时延还是小于报文交换
分组交换是并行转发分组,而报文交换是串行转发分组
此处视频结合了一个例题,建议去看一下。
电路交换是直通式的,交换设备就像打开的闸门;报文交换和分组交换都是存储转发的。
分组交换包括数据报的交换方式和虚电路的交换方式
层次 | 名词 |
---|---|
应用层 | 报文 |
传输层 | 报文段 |
网络层 | IP数据报,分组 |
数据链路层 | 帧 |
物理层 | 比特流 |
检索转发表:找到和当前分组携带目的地址相同的记录,进而确定了从哪个链路接口转发出去。
每个交换设备都维持一张表,记载了不同的虚电路号对应的转发接口,因此经过交换设备的携带相同虚电路号的分组会从同一个链路接口转发出去。
虚电路在源主机和目的主机之间建立起了一条类似于电路的逻辑连接。
IP数据报如果过大,会分片,即网络层的分组。在此章不用区分二者
数据部分就是传输层的报文段
首部部分
首部长度:4bit表示0~15个数,单位是4B,因为就像上图那样每一行都是32bit=4B,首部长度一定是4B的整数倍;最小为5(0101)是因为固定部分的长度固定是20B,首部超过20B的部分,由可变部分占据。
总长度:最大值65535,但是实际上长度过大就会分片,以满足数据链路层MTU(最大数据传输单元)的要求
标识(16bit):同一数据报的分片使用同一标识
标志(3bit):只有2位有意义
片偏移(13bit):指出较长分组分片后,某片在原分组中的相对位置**(即某片的数据部分在原数据部分中的偏移)**,以8B为单位。可以推出,除了最后一个分片,每个分片长度一定是8B的整数倍。
注意IP地址不是标识主机,而是接口/端口,比如一台主机可能有有线接口和无线接口,路由器也有很多端口,每一个端口/接口都会分配一个IP地址
回顾:网桥不能分割广播域,所以网桥相连的属于同一个局域网
每个网络可以用一个网络号来代表。比如最左边的为222.1.3.0(主机号为0)
0.0.0.0:表示本网络
255.255.255.255(全1):作为广播地址,向本网所有主机进行广播。路由器由于隔离广播域,所以不转发
127.xxx.xx.xx:不会离开主机,用于测试。
用于本地网络或者专用网
A类网段:10.0.0.0
B类网段:172.16.0.0~172.31.0.0
C类网段:192.168.0.0~192.168.255.0
左边:-1代表减去网络号全0(不包括类号)(此处待查证:网络号包不包括前面的类别号),-2再减去A类中的127.0环回地址
右边:-2代表减去主机号全为0和全为1的情况。注意最右边代表的是每个网络中的最大主机数,即网络号固定时主机号的变化范围。
本地私有IP如何和外部IP进行通信?
端口号:传输层概念,唯一地标识主机中的某一个进程。不同主机可以有相同的端口号。
在NAT路由器处,LAN端和WAN端中的“IP地址:端口号”互相转换,由NAT发入的数据报,目的IP地址要转换;由NAT发出的数据报,源IP地址要转换。
PS:对于端口号的转换,有待后面进一步学习
可以看出,同一个IP地址,经过不同的子网掩码,可以得到相同的网络地址。区别在于,这不同的子网掩码中网络号位数(连续的1的个数)和主机号位数(连续的0的个数)不同,即可划分的子网个数和每一个子网中可使用的最大主机数不同。
另:根据子网掩码可以判断出网络号+子网号多少位,主机号多少位,但是要判断子网号多少位,要根据前面分类的IP地址那张图。
路由表转发分组的算法:
1.首先判断目的IP是否能直接交付:将目的IP和路由器相连的子网的子网掩码相与,看是否得到几个子网地址中的一个。
2.是否特点主机路由:路由表中特殊行,含特殊的IP地址
3.检测路由表中有无路径:将目的IP和路由表中每一行的子网掩码相与,即对于有些非相连的子网,不能直接交付,但是可以知道下一跳的地址。
4.默认路由0.0.0.0:发给默认路由,默认路由会发给另一个路由,再重复上述过程
5.丢弃,报告转发分组出错:步骤四也不是无限制的,超时即丢弃报错
举例,由一个CIDR地址推出地址块的最小地址和最大地址
针对情形:R1要与网络1和网络2通信,下一跳都是R2。于是想要将所有下一跳都是R2的网络合并起来,这样在R1的路由器转发表中就能减少冗余数据。
网络1:206.1.0|0000000.0(‘|’表示网络前缀分割处)
网络2:206.1.1|0000000.0
所以缩短网络前缀,将网络1和网络2融合成一个更大的地址块:206.1.0.0/16(找公共前缀)。这个网络前缀对应的下一跳地址就是R2。
例题
该题就是对CIDR编址再进行子网划分。CIDR中,如果再进行子网划分,子网号可以全0或者全1,所以最大子网个数不用减2。
1号主机要给3号主机发文件,网络层填入3号主机的IP是通过传输层的DNS获取的,数据链路层要填入MAC地址,这是通过ARP高速缓存中存储的IP到MAC的映射来获取。ARP通常存储的是局域网内的映射
如果ARP中没有找到对应IP地址的记录,1号主机就会广播ARP请求分组,只有3号主机才会响应并返回一个单播ARP响应分组。
如果1号主机要和5号主机通信
交换机是没有MAC地址的,路由器有。
1号主机的ARP中肯定没有5号主机的映射,此时1号主机将目的IP地址与自己的子网掩码相与,发现目的IP不在自己的网段内。然后就查询自己默认网关IP6的IP地址(每个主机知道默认网关),通过广播ARP请求分组,得到并填入默认网关IP6的MAC6地址(数据链路层)。即跨局域网情况下,通过ARP协议得到本局域网默认网关的MAC地址
然后默认网关IP6处解封装和封装。由于路由器是个三层设备,所以解封装最多到网络层,再进行封装。到了MAC7处如下图,封装时IP地址不变,MAC地址改变
到了MAC9处如下。MAC5的获取也是通过广播ARP请求分组
答案是6次
1.路由之间不一定是点对点,所以也会使用ARP获取MAC地址。
2.此题应该是最多使用6次ARP。
PS:MAC转化为IP地址使用RARP协议
为什么STEP3还要用广播:告知其他所提供的IP未被采用的DHCP服务器,其提供的IP可以给其他主机。
IP数据报的首部也有一个检验和,但只能检验首部是否出错,不能检验ICMP报文(数据部分)是否出错。
Traceroute原理:
源主机发送一系列数据报,不同的是TTL不同(比如1,2,3,4…)。不同TTL的数据报,其TTL减为0时所处的位置也不同,而TTL为0时会返回主机ICMP差错报告报文,通过这样来确定距离,跟踪路径。(大概理解)
CIDR和NAT只是划分已有的地址空间,治标不治本
改进首部格式:IPv4的首部字段太多
扩展首部的理解:相当于IPv4首部的可变部分。
下一个首部:基本首部和扩展首部都含有该字段,这样从上一个首部可以找到下一个首部(就像链表)。而标识上层协议首部是指扩展首部的最后一个的下一个首部指向数据部分,而数据部分就是上层(运输层)传来的报文段。
6和7:链路层MTU太小,而IPv6数据报很大,那么在路由器处仍然会丢弃,再返回差错报告报文(使用ICMPv6协议),即7中的分组过大。
隧道技术理解:IPV6数据报在到达IPv4路由器时,封装进一个IPv4数据报的数据部分,进而能通过IPv4路由器进行传播。之后碰到IPv6路由器再解封装。
距离向量的距离,就是跳数。
R2如何填写路由表信息?通过与其他路由器交换信息来学习。
特点:当网络出现故障时,要经过比较长的时间(例如数分钟)才能将此信息传送到所有的路由器。
理解建议看视频中的例子。
此节应该是非重点,注意关键名词的记忆和大致理解
BGP发言人:在配置BGP时,每一个自治系统的管理员都要选择至少一个路由器,来作为BGP发言人。往往是BGP边界路由器。BGP发言人同样会使用自治系统内部的协议(OSPF,RIP)。
BGP发言人交换路径向量。
并不要求最佳路由,而是较好路由(因为网络规模大)。
(考研这部分不会太深入)
RIP:考察距离向量的算法
OSPF/BGP:内部/外部,区分所使用的路由选择算法。
王道书上的总结
这几个协议很多地方解释的比较模糊,可能是由于非重点吧,估计这部分还是以概念记忆和区分为主。
单播
组播,并不需要一开始就复制90份,而是逐步复制,起初的几个链路上都只有一个数据报。
有可能的情况:目的IP地址不同,即数据报要发送给不同的主机。但是他们后23位相同, 所以由IP地址映射到MAC地址时,得到相同的MAC地址。解决办法是在IP层进行过滤,就能过滤掉那些目的IP地址不是本主机,但是映射MAC后可能指向本主机的那些数据报。
考察:IP->MAC的映射
IGMP协议:一个组播路由器,通过使用IGMP协议,就可以知道它所连的局域网中,是否含有可以接收组播数据报的主机。
组播路由选择协议:组播路由器之间协同合作
区别于动态IP:通过使用DHCP协议,在一个局域网内部的一台主机可以动态地获得一个IP地址。
这里的隧道和前面的意思差不多,本质就是封装数据报(完整放入数据部分)。
局域网内是通过MAC地址通信,当A移入外部网络并和外部代理第一次通信时,外部代理就获得了A的MAC地址,以便后面将发给A的数据报转发给A。
A离开这个外部网络后,A在这个外部网络得到的转交地址注销(可给其他主机使用)
输入端口对线路上收到的分组的处理
输出端口将交换结构传送来的分组发送到线路
路由器是三层的设备:网络层,数据链路层,物理层
交换机的每一个端口都是一个冲突域。不能隔离广播域:广播分组发到局域网,不管有没有交换机/网桥,局域网内的每一个主机都会收到。