先来个整章的大框架,看起来也没有多少东西(bushi)。
这篇文章,就先写概述和转发。
一、网络层的功能
互联网在网络层的设计思路是,向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务
1.1.异构网络互联
1.网络互联是指:
将两个以上的计算机网络,通过一定的方法,用一种或多种中间设备相互连接。
根据所在的层次中继系统可分为:
1>物理层:中继器、放大器、集线器
2>数据链路层:网桥或交换机
3>网络层:路由器
4>网络层以上:网关
物理层和数据链路层的中继系统仅仅是扩大了该网络,但仍是一个网络。因此网络互联通常是指用路由器进行网络互联和路由选择。路由器是一台专用计算机,用于路由选择
2.通过IP使得性能各异的网络在网络层看起来就像一个统一的网络。
1.2.!!!路由选择和分组转发
路由器的主要功能:路由选择和分组转发
路由选择:(控制层面)告诉你往哪搬
根据特定的路由选择协议构造出路由表,同时经常或定期和相邻路由器交换路由信息而不断地更新和维护路由表
分组转发:(数据平面)搬砖
路由器根据转发表将用户的IP数据报从合适的端口转发出去
1.3.拥塞控制
作用:确保子网能够承载所达到的流量
1>开环控制:在设计网络是事先将有关发生拥塞的因素考虑周到(静态)
2>闭环控制:事先不考虑发生拥塞的各种因素(动态)
1.4.SDN
路由选择功能由远程控制器计算。
二、路由算法
1.静态路由(管理员手动配置)
简单、可靠在负荷稳定、拓扑变化不大的网络中运行效果很好。适用于小型网络
2.动态路由(自适应算法)
路由器之间彼此交换信息,按照路由算法优化出路由表。适用于大型网络
1>全局性:链路状态路由算法(OSPF),所有路由器都能掌握完整的网络拓扑和链路费用(跳数)信息
2>分散性:距离——向量路由算法(RIP),路由器只能掌握物理相连的邻居及链路费用
3.层次路由
自治系统AS(一个AS可包含很多局域网)
1>内部网关协议IGP:OSPF,RIP。不同AS内部可以使用不同的协议
2>外部网关协议EGP:具体协议为BGP
三、IPV4
1.IP数据报格式
1.首部+数据部分
首部:固定部分(20B)+可变部分
首部长度最小为5,单位是4B,表示首部长最短为(固定部分)20B,最长为60B;
总长度(首部+数据)单位是1B;
TTL(防止数据无限传输)
源IP地址:4B
目的IP地址:4B
2.IP数据报分片
最大传输单元(MTU):链路层数据帧上限,以太网的MTU是1500字节,下限是64字节
网络层上限是1420B
如果数据报过长,就要对数据报进行分片。
首部中的标识+标志+片偏移,用来进行分片操作
标识:统一数据报
标志:只有两位(DF(don't Fragment)1,禁止分片0允许分片;MF(1,表示还有分片;0表示没有分片))
片偏移:某片在原分组中的相对位置,单位是8B
3.IPV4地址与NAT
1>IPV4地址:
A、B、C、D、E四类地址
注意一些特殊地址:
主机号全0:表示网络本身
主机号全1:表示本网络的广播地址
全0:表示本网络上的本主机
全1:本网络的广播地址
2>网络地址转换NAT
将A/B/C类地址的一部分网段拿出来作为私有IP,路由器对于私有网段的数据报一律不准转发
使得整个专用网只需一个全球IP,减少了IP地址的需求量
私有IP地址只能用于LAN,不能用于WAN连接(因此私有地址不能直接与internet相连,必须通过网关利用NAT将私有IP地址转换为INternet中的合法IP后才能用于internet)
私有IP地址也称为可重用地址
4.子网划分 与子网掩码、CIDR(在网络内部再次划分子网)
1、三级IP地址:网络号+子网号+主机号
2、使用子网时的分组转发:
3、 使用子网掩码时,路由器的分组转发算法:
1>从收到分组的首部提取目的IP;
2>先判断是否为直接交付,若无,执行<3>
3>若路由器中有目的地址的特定主机路由,则交付给下一跳路由器(相当于优先级高,特定路由先挑);
4>对路由器每一行中的子网掩码与目的地址相与,结果为N,若N与该行的目的网络地址匹配,则给下一跳路由器;
5>若路由表中有默认路由,则交付给默认路由器
6>转发分组出错
4.CIDR
查找路由表时:匹配时采用最长前缀匹配
5.ARP、DHCP和ICMP
1.IP地址和MAC地址
2.ARP和RARP
ARP看到了IP地址,工作在网络层
NAT路由器看到了端口,因此工作在传输层
3.ICMP(网际控制报文协议)
(常用的PING指令,用的就是该协议:例如,打开cmd,随便ping 一个网站,就可检测这台电脑和这个网站的连通性)
ICMP报文作为IP层数据报的数据,加上数据报的首部,组成IP数据报发送出去。
IP报文有两种,ICMP差错报文和ICMP询问报文。
一、差错报文:
1>终点不可达
2>源点抑制
3>时间超过(TTL到0)
4>参数问题
5>改变路由(重定向)
二、不发送差错报文的几种情况:
1.第一个分片后续的数据报片都不发ICMP差错报告报文
2.具有主播地址的数据报都不发送ICMP差错报文
3.具有特殊地址的数据报不发送ICMP差错报文
三、ICMP询问报文
1.回送请求报文
2.时间戳请求报文
3.掩码地址请求
4.路由器询问地址
四、IPV6(16B)
IPV6地址每四位使用一个十六进制数来表示,并用:分隔每十六位
当有相继的0值域时,这些域可以用::来进行缩写。