【学习笔记-CS144 计算机网络】网络层
主要功能:
-
寻址和路由选择
-
建立和维护连接
-
差错和纠错功能
-
流量和拥塞控制
-
数据分片和重组技术
网络层协议
IP有关协议
IPv4:32bits, a,b,c,d,0~255。有数字划分规范,ABCD类。
IPv6:128bits, 能解决IPv4网络地址资源数量的问题,而且也解决了多种接入设备连入互联网的障碍。
网络(子网)掩码:它用来指明一个
类别 | 子网掩码的二进制数值 | 子网掩码的十进制数值 |
---|---|---|
A | 11111111 00000000 00000000 00000000 | 255.0.0.0 |
B | 11111111 11111111 00000000 00000000 | 255.255.0.0 |
C | 11111111 11111111 11111111 00000000 | 255.255.255.0 |
网络地址:子网掩码与IP地址按位与运算后的地址
CIDR划分法:用于给一些特定区域内的用户分配IP地址以及在互联网上有效地路由IP数据包的对IP地址进行归类的方法。用于弥补A类的浪费和BC的膨胀不足。
eg: 128.14.35.7/20 = 10000000 00001110 00100011 00000111
即前20位是网络前缀,后12位是主机号,那么我们通过令主机号分别为全0和全1就可以得到一个CIDR地址块的 最小地址和最大地址,即
最小地址是:128.14.32.0 = 10000000 00001110 00100000 00000000 最大地址是:128.14.47.255 = 10000000 00001110 00101111 11111111 子网掩码是:255.255.240.0 = 11111111 11111111 11110000 00000000
IP报头格式:
-
版本(Version):4bits ,有IPv4和IPv6这两个版本。
-
报头长度(Header Length):4bits ,表示 IP报文头部的长度,以32比特(4字节)为单位递增,该字段的最小值为5
-
服务类型(Type of Service):8bits。该字段指出应该如何处理数据报文。
-
总长度(Total Length):16bits,表示该IP报文的总大小,包括报头和携带的数据。
-
标识(Identification):16bits,唯一标识原始IPv4数据包的数据分片。
-
标志位(Flag):3bits,主要用于指出是否进行分片以及是否有更多分片。
-
分片偏移(Fragment Offset):13bits,当一个报文过大不能够在一个数据帧中传输时,可以使用分片和重组功能,这里主要是用于表示偏移量,即将一个报文分开封装,分别发出,到达目的地再根据偏移量进行重组。
-
存活时间(Time To Live,TTL):8bits,表示报文在网络中可以生存的时间,当计时器到期时该报文将被网络丢弃。
-
协议(Protocol):8bits,标识承载数据使用什么协议
-
报头校验和(Header Checksum):16bits,是对报头进行循环冗余校验(CRC)的结果
-
源 IP地址(Source Address):32bits,表示发送者的 IP地址
-
目的 IP地址(Destination Address):32bits,表示接收者的 IP地址
-
选项(Options):用于安全、测试等目的。
-
填充(Padding):长度可变
ICMP协议
主要功能:
-
确认IP包是否成功到达目标地址
-
通知在发送过程中IP包被丢弃的原因
DHCP协议
子网内,由DHCP服务器动态分配IP地址
路由算法与路由协议
RIP协议【距离-向量路由算法】
RIP路由协议的工作流程主要包括路由表生成和路由表更新维护两部分,并基于距离矢量算法计算路由,且遵循度量值越小则越优的路由选取原则。
距离矢量协议:每个节点只与它的直接邻居交换信息。
-
生成路由表
-
对相邻设备发送请求全部路由信息
-
接受相邻设备的相应信息,并更新自己
-
将更新后的数据发送给相邻设别
-
-
更新维护路由表
-
更新定时器:一段时间发送更新报文
-
无效计时器:决定一条线路信息有效时长
-
清除计时器:决定清除无效路由的时间
-
抑制定时器:无效后暂缓接收请求,减少目的设备震荡产生的影响
-
-
路由表计算
-
根据距离矢量算法进行路由计算
-
-
防环路机制
-
环路:
A-B-C,C无效,A申请连接C。数据流从A到B,但B此时连接不到C,而在A中仍然保存了A-B-C的未更新路径,从而又跳到了A,形成环路。
-
解决方案:
-
水平分割
-
从哪个接口学习到的RIP路由信息,就禁止从该接口发送出去
-
不允许将从某一邻居学习到的路由信息再发送回该邻居(NBMA)
-
-
毒性逆转
对于从某一接口学习到的路由信息,当从该接口发出去时将该路置为16(即路由不可达)
-
触发更新
-
当路由信息发生变化,邻居及时更新并向外不断传递。
-
-
-
OSPF协议【链路状态路由算法】
链路状态协议:通过广播的方式和所有节点交换信息,存储网状图。
-
存在Router ID:标识路由器
-
进入链路状态:洪泛到其他邻居节点,并接受来自邻居的信息。存储完毕后跑最短路计算,构建数据库。
-
使用COST(开销)作为度量值。
BGP协议【区域间路由协议】
概念:区域间路由联系协议。当BGP运行于同一AS内部时,被称为IBGP;当BGP运行于不同AS之间时,称为EBGP
工作方式:
-
通过报文驱动
-
对等体进行TCP连接,通过Open报文协商
-
BGP连接后交换整个BGP路由表,并发送keepalive维持连接,不定期更新
-
发送Notification报文进行报错,BGP连接中断
路由聚合:BGP路由表十分庞大,向对等BGP通告时可以发送聚合后路由