系列文章目录
第五章计算机网络之网络层8计算机网络之网络层
一、 CIDR与路由聚合
在有类地址的分配和使用过程中存在问题,分配效率低,造成地址浪费,路由过程效率低。所以提出新的技术CIDR
1.1 CIDR
Prefix前缀
超网:将两个小的子网构成在一起
路由聚合:在路由的转发表中面向更大的子网,记录它的转发信息,而不是对应的小子网。
1.2 路由聚合
二、如何获得IP地址
子网掩码:根据你配置该主机所在子网的规模确定。
默认网关:子网内的IP离开该子网,离开该子网送到那个接口进行转发
地址重用:当客户从DHCP服务器获得某个IP后,不使用后,DHCP服务器回收该IP,并且可以给其它客户使用该IP
三、动态主机配置协议DHCP
客户主机运行的DHCP客户端通过DHCP协议与DHCP服务器进行通信,进行报文交换,完成地址申请和分配
DHCP discover 接入网络的DHCP客户主机,首先在子网发送广播,谁能提供DHCP服务。(因为客户端不知道DHCP是否存在以及IP地址)
DHCP offer 当存在DHCP服务器,服务器通过广播的方式通告客户,我可以提供DHCP服务
DHCP request 作为一个主机明确期望从某个DHCP服务器申请租用IP地址时候,便会发送DHCP请求报文
DHCP ack作为一个服务器同意并且能分配IP时候回发送DHCP 确认报文,分配一个IP地址,同时指定该IP地址的租用期。
3.1 DHCP工作过程示列
DHCP discover
DHCP服务器,服务器端口号67,DHCP的实现是通过应用进程按照客户服务器方式实现(典型C-S方式)
src:0.0.0.0(表示本机IP)端口号68
协议规范的服务器67,客户端68,客户服务器应用进程方式实现的DHCP协议
dest:255.255.255.255受限广播地址
yiaddr:ip地址的缩写
transaction ID:事物ID
DHCP offer
yiaddr:223.1.2.4 DHCP服务器可以给客户端分配的IP地址
DHCP request
dest:255.255.255.255,67
一个网络中可能存在多个DHCP服务器,通过广播告诉其它的服务器,我已经确定从某个服务器哪里获取IP地址,其它服务器便快速收回预分配给该客户机的IP
其它主机没有DHCP协议收到该消息不做任何响应
作为客户还原回DHCP便得到了IP地址网关IP租用时间等待
四、网络地址转换(NAT)
内部网络全部是私有地址,通向外网用一个公有IP便行。
变更ISP,如联通变成电信,无需更改内部网络设备IP地址
P2P端到端,其中一端为私有,一端公共如何连接?彼此看不到(IP地址)
五、NAT穿透问题(解决P2P的问题)
1.静态配置:
手工配置NAT转换表,让NAT外部公共IP地址和端口映射内部IP地址和端口,当外部访问公共IP地址和端口时候就转发到内部对应的服务器和端口
内部服务器自动学习到NAT服务器,获得NAT拥有的公共IP地址,通过该协议,完成NAT转发表添删公共端口和私有端口映射关系。
外部访问,访问的是外部IP和端口,外部IP和端口将数据转发给内部的端口和IP。
六、互联网控制报文协议(ICMP协议)
源抑制:当路由存储满了,再来数据便会丢弃,ICMP给源主机说发送速率降低。目前Internet不用这种方法去控制拥塞控制。
TTL(超时超期):定义了数据报可以经过路由器最大数量,经过一个减一,减到0,路由器丢弃,并且发送ICMP给源主机
参数:当路由器转发IP数据报头部某些域或字段有问题,丢弃,并且发送ICMP播报。
重定向:当路由器收到IP数据报,该IP数据报到达的目的网络,不应该由该路由器转发发送,应该由该网络另一个默认网关路由器转发,会给源主机发送ICMP重定向数据报,告诉源主机该到达该目的IP数据报重新定向另一个网关
回声请求和回声应答:当主机探测一个网络到目的主机的网络是否可达,通过发送回声请求报文,收到回声应答,网络可达。
时间戳的请求与应答报文:通过发送时间戳的请求,对方发送时间戳的响应,获取时间戳
6.1 ICMP报文
比如TTL=0时候,路由器向源主机发送ICMP报文110
33目的网络没有该进程通过该端口号接受数据
七、例外情况
ICMP要封装在IP数据报上面进行传输,作为IP数据传输过程中出差错,会向源主机发送ICMP差错报文,该差错报文会封装在另一个IP数据报中,如果这个数据报出差错了,就不在发送ICMP差错报文了。
127.0.0.0(环回地址) 0.0.0.0(本网内的本机地址)
路由器询问和通告报文:现在通过DHCP或者手工配置来完成该功能
八、 ICMP报文的格式
ICMP类型有些32位全为0
8.1 ICMP差错报告报文数据封装(典型ICMP报文)
对于UDP数据报(段):前8个字节是完整的UDP头,事实ICMP就会把IP头和UDP头封装在ICMP差错报文中(源和目的端口和ip都知道)
对于TCP:前8位字节不是TCP头,TCP段头20字节,是源端口号和目的端口号。
8.2 ICMP应用举例:Traceroute
Traceroute工具:网络路径跟踪,从源主机从发,到目的主机,经过哪些路由器。
一般默认目的端口号大于3w过大的端口号
RTT记录路由器往返时间
Traceroute协议,一组发3个去探测。
探测过程中,由于互联网的数据报的特性,在Internet走的路径可能不一样,短时期探测中,走的路径不会变,因为路由表的更新没那么快
九、IPv6简介
9.1 IPv6动机
Qos:支持不同区分服务的质量
路由不支持IP数据报分片了,源主机来分片,目的主机组装
选项首部路由器不需要处理,路由器只处理40字节的基本头,所以IPV6可以快速IPV6数据报处理转发,提高数据传输速度
9.2 IPv6数据报格式
流:从一个特定的主机到达特定目的一系列数据报
流标签:希望IPV6能根据不同的流标签提供不同的服务
载荷长度:扩展首部和数据
下一个首部:如果没有选项首部直接就是上层协议首部TCP/UDP 最后一个下一个首部指向也是上层协议首部TCP/UDP
跳步限制:和IPV4 TTL一致
9.3 其他改变vsIPv4
9.4 IPv6地址表示形式
128 bit的IP地址按照16bit划分八组
IPV6改用:号分割的八组16bit转换成16进制数
压缩冒号只能使用一次::
兼容ipv4的地址,把前80个Bit固定为0,剩下16bit全为1,剩余32Bit写成ipv4的点分十进制方式。
9.5 IPv6基本地址类型
没有广播,广播称为特殊的多播地址
第一类:可以在IPV6数据报源地址/目的地址,作为目的地址,向IPV6地址发送IP数据报,会被目的地址标识的网络接口唯一接口接受。
第二类:只能作为IPV6数据报的目的地址(类似广播)
第三类:只能作为目的地址
9.6 IPv4向IPv6过渡
9.7 隧道(tunneling)
在边缘IPV6路由器上(有双协议)进行封装和卸载
十、例题一
10.1 第一问
该IP为C类地址,并且要划分两个120,C类分配IP 256-2=254个,所以子网掩码取前8位bit的最高位(0/1)
子网掩码:网络号和掩码号都取1
子网掩码最高位取0为第一个IP,取1为第二个IP
第一个IP,从0-127,去掉0(子网地址)和127(网络地址)可分配IP:128-2=126,1-126 分给局域网1/2
第二个IP,从128-255,去掉128(子网地址)和255(广播地址)可分配IP:128-2=126,129-254 分给局域网2/1
10.2 第二问
R1直连局域网1,所以没有跳
通过R1后无需再通过另一个路由器转发到局域网1
域名服务器,可以看成特殊的网络前32位bit全为1,因为他一个代表一个子网(子网只有一个IP)
路由表看见子网掩码为255.255.255.255,则为特定主机路由,IP指定特定主机。
缺什么路由(默认路由)
当一个路由表,其他路由表项都匹配不成功。网络前缀一个都匹配不成功
子网掩码:一个BIT匹配都不成功,相当于0个网络前缀。32全为主机号则0.0.0.0
10.3 第三问
在路由表中,能聚合一个网络的路由聚集在一起,使得路由表简短,路由更加高效。
能聚合的网络,多个子网地址连续相对连续,可以用较大网络描述,下一跳接口相同。