计算机网络基础知识笔记 - AruiLR/MyNote GitHub Wiki
在网络层传递的数据格式称为 “分组”
- 路由选择:按照分布式算法,根据从各相邻路由器所得到的关于整个网络拓扑的变化情况,动态改变所选择的路由
- 分组转发:路由器根据转发表将用户的IP数据报从合适的端口转发出去
IPv4地址分为5类:A,B,C,D,E,其中D类地址为多播地址,E类地址保留为今后使用。
- A类地址
- 可用网络号:1.0.0.0~126.0.0.0 网络号全0的IP地址是保留地址,意思是“本网络”;网络号为127的IP地址为回环测试地址
- B类地址
- 可用主机号:128.1.0.0~191.255.0.0 主机号全0表示表示本网络本身,主机号全1表示本网络的广播地址 ...
- 从数据报的首部提取目的主机的IP地址D,得出目的网络地址N。
- 若网络N与此路由器直接相连,则把数据报直接交付给目的主机D,这叫路由器的直接交付,否则间接交付,执行3
- 若路由器的路由表中没有目的地址为D的的特定主机路由,则把数据报传送给路由表中所指明的下一跳路由器,否则执行4
- 若路由表中没有到达N的路由,则把数据报传送给路由表指明的下一跳路由器,否则执行5
- 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由,否则执行6
- 报告转发分组出错
注意:得到下一跳路由器的IP地址后不是直接将该地址填入到待发送的数据报,而是将该IP地址转换成为MAC地址(ARP协议),将其放到MAC帧首部中,然后根据这个MAC地址找到下一跳路由器。
目的:大幅度提高IP地址空间的利用率,减小路由器的路由表大小,提高路由转发能力
- 划分子网是一个单位内部的事情,单位对外仍然表现为没有划分子网
- 划分子网只是把IP地址的主机号部分进行了再划分,并没有改变IP地址原来的网络号。因此从一个IP地址本身和IP数据报的首部是无法判断源主机或目的主机所连的网络是否进行了子网的划分。
- 使用子网掩码时,路由表中的内容为目的网络地址、子网掩码、下一跳地址
- 子网掩码和IP地址做与运算即可得到子网的网络号。
IP::=[<网络前缀>,<主机号>]
- 将网络前缀都相同的连续的IP地址组成CIDR地址块,一个CIDR地址块可以表示很多地址,这种地址的聚合称为路由聚合,或称为构成超网。路由聚合是的路由表中的一个项目可以表示很多个原来传统分类地址的路由,有利于减少路由器之间的路由选择信息的交换,从而提高性能。
- 使用CIDR时,路由表中的每一个项目由“网络前缀”和“下一跳地址”组成
- 最长前缀匹配:IP地址和掩码做与运算即可得到网络前缀,查找路由表示有可能得到的匹配结果不止一个,这时应该从匹配结果中选择具有最长网络前缀的路由,因为网络前缀越长,其地址块就越小,路由就越具体
路由器
注意:普通路由器毫无疑问工作在网络层,但是NAT路由器转发数据报时需要查看和转换传输层的端口号,所以NAT路由器工作在应用层
- ARP(地址解析协议):用于IP地址到MAC地址的映射,该协议“看到了”IP地址,所以它工作在网络层
- ICMP(网际控制报文协议):为了提高数据报交付成功的机会,网络层使用了ICMP协议来允许主机或路由器报告差错或异常情况。ICMP报文作为IP数据报的数据,加上数据报的首部,组成IP数据报发送出去
- 差错报告报文:重点不可达(无法交付)、源点抑制(拥塞)、时间超时、参数问题、改变路由(重定向)
- 询问报文:回送请求和回答报文(应用层的PING使用这种ICMP报文)
因为IP数据报被封转在链路层数据报中,故链路层的MTU(最大传送单元:一个链路层数据报能承载的最大数据量)严格限制了IP数据报的长度。IP数据报分片在目的主机的网络层被重装
- 静态路由算法:指由网络管理员手工配置的路由信息。
- 动态路由算法:指路由器商上的路由表项通过相互连接的路由器之间彼此交换信息,然后按照一定的算法优化出来的,而这些路由信息是在一定时间间隙里不断更新,以适应不断变化的网络。