参考来源:原创
核心内容
(一)网络层的功能
- 异构网络互联
- 路由与转发
- 拥塞控制
(二)IP协议
- IPv4分片
- IPv4编址与NAT
- 子网划分与子网掩码(CIDR)
- ARP协议, DHCP协议, 与ICMP协议
- IPv4和IPv6的区别
(三)ICMP协议
- 作用和分类
- ping, traceroute
上
下
(四)路由选择协议
- 自治系统
- 域内系统与域间路由
- RIP路由协议
- OSPF路由协议
- BGP路由协议
(五)路由算法
- 静态路由与动态路由
- 距离向量路由算法
- 链路状态路由算法
- 层次路由
网络层的功能
转发:当一个分组到达路由器的一条输入链路的时候,路由器要给它选择一条输出链路输出
路由选择:当分组从发送方流向接收方时,网络层要决定这些分组所采用的路由或路径
注意: 转发是对网络层中的单个路由器而言,路由选择是对网络层中所有的路由器
因特网网络层三个主要组件:
- IP协议
- 路由选择
- ICMP
IP协议
IP数据报报文
一些解释:
重组标识,标志(flag),段偏移量:用于IPv4的分片
生存时间(寿命):确保数据包不会永远在网络中循环,没经过一台路由器,该值减一,直到为0
目的IP地址:由主机通过DNS服务器决定,在应用层中便已经得到
IP数据报分片
先看一道题:
看不懂先没关系,一个个解释。
引入目的:防止IP数据单元可能大于链路最大可以承受的单元MTU,例如IP数据报长度4000字节,而MTU = 1500字节,这岂不是GG
那怎么办呢:自然是把4000个字节分成三个部分,三个部分的顺序不能乱,数据也不能丢,每个部分都要有IP首部。
怎么保证顺序不乱呢:加入了片偏移量,片偏移量是该报文的首部位于原始块【真实数据】的位置/8
怎么保证这几个片是一个部分呢:加一个flag(标志),1表示下面还有东西,0表示这个部分结束了。并且还有一个叫做标识的东西,是16比特,一个部分的标识都是相等的
这题详解:
4000字节的数据 = 20首部 + 3980字节的真实数据
分成三个部分:
1. 20首部+1480真实数据,标识为x, flag = 1(表示下面还有东西),偏移为0(头所在的位置就在0的位置)
2. 20首部+1480真实数据,标识为x, flag = 1(表示下面还有东西),偏移为1480/8 = 185(头所在的位置是原始块真实数据的1480的位置,除以8就是偏移量)
3. 20首部+1020真实数据(3980-1480-1480), 标识为x,flag = 0(表示下面没有东西了),偏移为1480*2/8 = 370(头所在的位置是原始真实数据的1480*2的位置,除以8就是偏移量)
IPv4编址
IP地址:给每个连接在因特网上的主机(或路由器)分配一个在全世界唯一的32位标识符,由因特网名字和号码指派公司(ICANN)进行分配。均由(网络号-主机号)的格式组成。
分类:
- A类,IP地址的第一位为0, 范围在:1.0.0.0~127.255.255.255, 主机号24位,总主机有2^24-2 = 16777214台
- B类,IP地址的前两位为10, 范围在: 128.0.0.0~191.255.255.255,主机号16位,总主机有2^16-2 = 65534台
- C类,IP地址的前两位为110, 范围在: 192.0.0.0~223.255.255.255, 主机号8位,总主机有2^8-2 = 254台
NAT与DHCP
这两个概念我最开始分不清楚,很模糊,现在看倒还好。
先说一个例子:假设服务商给公司只提供了一个IP,但是有100台主机,这可怎么办。于是通过一个DHCP服务器,给100台主机分配动态的IP,当然这些IP都是伪IP,不能直接访问因特网,所以要通过NAT,NAT将内部IP地址映射到某个端口上,转换为因特网可以识别的地址,这样就能正常上网了。
主要区别: DHCP快速分配IP地址,NAT让这些IP可以访问因特网。
逐个解释:
DHCP(Dynamic Host Configuration Protocol): 动态主机分配协议,它分为两个部分:服务器端和集中管理的客户端。DHCP服务器用来对所有的IP集中管理,负责处理客户端的DHCP要求。客户端用来获得服务端分发的IP。
DHCP注意: 有一个租用地址的时期,相当于我有很多的地址,如果你需要,我就借你用一段时间,到期了就换给我。它有一个IP池,哪个计算机来申请的话,就从IP地址池捞一个起来,租给你用,用完还给我。
NAT(Network Address Translation): NAT和IP伪装是一个概念。NAT会自动将每一台PC在内网的LAN IP地址,在离开防火墙时转换成公网的IP地址,此外,数据包返回的时候,也进行逆向的转换。
IPv4和IPv6的区别
区别 | IPv4 | IPv6 |
---|---|---|
地址空间 | 32 | 128 |
路由表 | 大 | 小 |
组播 | 弱 | 强 |
流控制 | 无 | 有 |
ICMP
有的时候啊,运行一个FTP,HTTP会话,会遇到一些【目的网络不可达】这样的错误报文。这些报文就是在ICMP中形成的。
ICMP报文承载在IP分组中
作用:支持主机或路由器,1.差错报告,2.网络探询
两类ICMP报文:
- 差错报告报文
- 目的不可达
- 源抑制
- 超时超期
- 参数问题
- 重定向
- 网络探询
- 回声请求与应答报文
- 时间戳请求与应答报文
Traceroute: 跟踪程序,允许我们跟踪从一台主机到世界上任意一台主机的路由。这个东西灰常因缺思厅。就是源主机发送一大堆普通的IP数据报,然后将TTL(寿命)设为1,2,3…这样,当路由器收到数据报时,寿命为0的数据报要丢弃,同时返回一个ICMP报文,包含了路由器的名字和它的IP地址,所以发送n个IP数据报,最后到达目的主机,返回n个ICMP报文,就能知道这一条路由线路了..
还有一些其他的繁琐的破地方,不知道要不要掌握,先空出来。