一.网络层的功能
功能:
网络层 为 传输层 提供服务,将传输层的数据封装成“IP 数据报/分组”。
网络中的路由器根据IP 数据报首部中的源IP 地址、目的IP 地址进行“分组转发”。因此,网络层实现了“主机到主机”的传输(数据链路层实现点到点的传输(结点到结点))
数据链路层 为 网络层 提供服务,将网络层的IP数据报封装成帧,传输给下一个相邻结点
IP地址用32 bit 表示,常以8 bit 为一组(分为4组),记为十进制数
1、异构网络互联
①如何理解异构?
每个网络的拓扑结构不同、物理层&链路层的实现不同、主机类型也各不相同(异构)②重要的设备:路由器
在 TCP/IP 文献中,路由器也称为网关(Gateway)
2.路由与转发
都是需要根据表来进行的
①路由:
各个路由器之间相互配合,规划IP数据报(分组)的最佳转发路径各个路由器需要运行“路由协议”,最终生成各自的“路由表”
②转发:
一台路由器,根据自己的“转发表”,将收到的IP 数据报从合适的接口转发出去转发表=精简版路由表。更精简的数据结构有助于快速检索
四台路由器:R1、R2、R3、R4
3.拥塞控制
拥塞:
①原因:网络上出现过量分组,超负荷,引起网络性能下降
②现象:网络上的分组数增加,但吞吐量反而降低
③类比:节假日路上的车辆增多到一定程度时,收费站的吞吐量反而降低
拥塞控制的方法:
①开环控制(静态的方法)
在部署网络时,就提前设计好预防拥塞的方法。一旦网络系统开始运行,就不再修改②闭环控制(动态的方法)
动态监视网络状态,及时发现哪里发生拥塞,并将拥塞信息传递给相关路由器(如:通过 ICMP)相关路由器及时调整“路由表”
接入网络的每台主机至少拥有一个IP 地址通常,路由器的每个接口都需要分配一个IP 地址(最新技术标准已经取消了这个强制要求)
二.IPV4分组
1.IP协议、ARP协议、ICMP协议、IGMP协议
①IP 协议:(Internet Protocol,网际协议)是互联网的核心!
②ARP 协议:用于查询同一网络中的<主机IP 地址,MAC 地址>之间的映射关系
③ICMP 协议:用于网络层实体之 间相互通知“异常事件”,用于反应异常情况的
④IGMP 协议:用于实现IP组播
(应用层协议,传输层还没讲到)
2.IP数据报的结构:
版本:4bit,用于区分网络层使用的IP协议版本(v4、v6)
首部长度:4bit(1 bit 表示1位 0或1),表示 0~15,以4B为单位 ,分为固定部分和可变部分
最大 15 * 4B = 60 B①固定部分:20B
②可变部分:0~40B
总长度:16bit, 表示范围 0~65535,以 1B 为单位,
总长度涵盖首部、数据部分,
总长度=首部+数据部分
首部:最短 20 B
最长 60 B
数据部分:理论最短 = 0 B理论最长 = 65535-20 = 65515 B
例题1:求头部长度、总长度和数据部分的大小
解:
前40字节内容,还是十六进制,头结构单位是bit
1位十六进制相当于4位二进制 (四位二进制0000可以表示一位十六进制)
所以,一个十六进制数对应 4bit
所以 版本对应得是数字是1bit到4bit对应的数字,即4
所以 头部长度对应的是4bit到8bit对应的数字,即5,单位是4B
区分开:头部长度的长度是4bit
表达的内容是头部长度 = 5*4B = 20 B
所以,总长度对应得数字是16bit到31bit对应的数字,即 0030 ,单位是1B
转换到十进制是48
所以 总长度 = 48 B
数据部分=总长度 - 头部长度 = 48 - 20 =28 B
标识(16bit): 由IP 数据报的“源主机”生成,通常是自增序列
标志(3bit):最低位 MF,次低位 DF,最高位不用管
·MF=1,表示后面还有分片
·MF=0,表示这是最后一个分片 (后面是否还有分片)
·DF=1,表示不允许被分片
·DF=0,表示允许被分片 ( 能否进行分片)
片偏移(13bit):表示数据部分在“被分片前”的位置 以 8B 为单位(不考虑首部,只看有效的数据位)
数据部分:实际传输过程中,“数据部分”的长度受下一段链路的最短/最长帧长限制(就要考虑是否分片了)
重要概念:一个链路层数据帧能承载的最大数据量称为最大传送单元(MTU),
如以太网的MTU=1500B,如果一个IP数据报的总长度超过下一段链路的MTU,就需要分片
假设: 链路1的MTU=4000 链路2的MTU=1500
那么链路1发往链路2的IP数据报总长度不能超过1500B:
分片为3,
·第一个分片:
首部长度:20B
数据长度(有效数据):1480B
MF=1,DF=0
说明后面还有分片,允许被分片
片偏移=0
·第二个分片:
首部长度:20B
数据长度:1480B
MF=1,DF=0
说明后面还有分片,允许被分片
片偏移=185,因为单位为8B
有效数据从1480B开始
·第三个分片:(后面没有分片了)
首部长度:20B
数据长度:1020B
MF=0,DF=0
说明后面没有分片,允许被分片
片偏移=370,
有效数据从2960B开始
路由器需要将 IP 数据报分片
每个分片都是一个可以被单独转发的IP 数据报,都包含首部注意:
IP 数据报的“分片"可能在源主机、或任何一个路由器中发生
只有目的主机才会对分片进行“重组”
各分片有可能乱序到达目的主机
由于首部的“片偏移"字段是以 8B 为单位,因此,除了最后一个分片外,其他每个分片的数据部分必须是 8B 的整数倍
生存时间(8bit):数据报在网络中可通过的路由器数的最大值。常记"TTL";
TTL的初始值通常由源主机设置,每经过一个路由器,路由器就将 TTL 减 1,如果 TTL 减到0,就直接丢弃分组,并向源主机发送ICMP报文(反应异常情况)
ICMP 报文用于通知一个节点发生了某种“异常”
三.IP地址
网络层才存在的
时代背景:IPv4 协议是 1981年发明的,当时只有政府、学校、军队等大型机构会使用互联网。
完全没预料到互联网用户会迎来爆炸性增长。因此 IPv4 协议中,地址位数仅设计了 32bit
IP 地址资源由ICANN(互联网名字和数字分配机构 )进行分配
IP地址就是一个唯一标识,是一段网络编码(二进制),32位数
①11001010.11000100.00000100.01101010 转换为十进制如下:
②202.196.4.106 称为点分十进制
IP地址的形式:X.X.X.XX的范围:0-255
①错误形式:256.1.1.1
②正确:100.1.1.1 192.168.1.1
32bit lP 地址的两级结构 =<网络号>,<主机号>
单播(一对一,“私聊”)地址:A、B、C类A类固定第一位为0;网络号8位,主机号24位
B类固定前两位为10;网络号16位,主机号16位
C类固定前三位为110;网络号24位,主机号8位
多播(一对多,“群聊”)地址:D类固定前四位为1110
保留为今后使用:E类
·在那个年代,要求每台主机、每个路由器接口被分配的IP 地址都是全球唯一的·路由器和路由器连接的接口可以不分配IP 地址,但路由器和其他节点连接的接口必须分配 IP 地址
·从属于同一个网络的所有主机、路由器接口的IP 地址“网络号”都相同·当一台新主机接入网络时,需要给它分配一个IP 地址、并配置“默认网关(路由器)”
假设:某学校申请了一个B类地址段 166.1.x.x
某公司申请了一个C类地址段 200.1.1.x
B类地址段 网络号16位,则固定166.1 ;主机号16位自由分配
C类地址段 网络号24位,则固定200.1.1;主机号24位自由分配
在这里,