计算机网络 - 网络层 -IP协议栈

TCP/IP协议栈

在这里插入图片描述

IP

IP数据报

IP数据报格式

网络层传输单元: 分组 是IP数据报切下来的小单元
数据部分是传输层的报文段,这里不作为重点,
主要研究IP数据报首部
在这里插入图片描述字节:words 位 bit
20 × 32 Byte(B)

IP数据报首部格式

https://www.zhihu.com/question/53780216 感谢大佬解答

首部长度 (长): 4位 0000~1111 总共可以表示16个数字
首部长度的单位是4字节: 若 首部长度为8 , 则实际上首部长度大小5×4Byte = 20B
∵报头的 (总宽为20Byte)
首部长度字段的最小值为5

问题: 为什么这里首部长度1bit 代表是4字节呢 ???

其中首部长度这个首部字段表示了IP头部的总长度,但它不是直接表示,
这里的首部长度 借助4位 表示的是整个IP数据报首部大小

区分服务:优先级,希望获得哪种服务
生存时间TTL:分组的寿命,每经过一个路由器,生存时间-1,防止无法交付的数据报无限的在链路中兜圈子
协议: 数据部分的协议
首部检验和:检验首部
在这里插入图片描述

在这里插入图片描述

IP数据报分片

封装时 IP分组封装到数据帧后,IP分组就成了数据部分,此时该部分不能大于MTU (最大传输单元) -Maximum Transmission Unit (1500字节)

简而言之:IP数据报整体 <=MTU
在这里插入图片描述当数据帧的数据部分超过MTU, 此时 结合 数据帧的数据部分(IP分组)的首部 对数据进行分片
IP分组首部 分片 = 标识 + 标志 + 片偏移
在这里插入图片描述

IP数据报分片过程

IP数据报 头:存放了分片信息
IP数据报 数据部分: 被分片的小羊羔

片偏移量 : 当前片段的数据部分开始数字 / 8 字节
在这里插入图片描述在这里插入图片描述

IP数据报的三种传播方式

在这里插入图片描述

单播 - 一对一 / 点对点

在这里插入图片描述

广播 - 一对所有
组播(多播) - 一对多 (UDP)

需要组播路由器的支持 - 具有复制功能的路由器
这种路由器既能支持单播,也能支持组播
在这里插入图片描述问题:怎么在R2组播路由器分发的时候,怎么同时发给属于这一组的所有主机呢? - 怎么找到组

IP组播地址

一个D类地址 = 一个组播组 ,只能作为目标地址
源地址只能是单播地址
基于UDP, 尽最大努力交付
在这里插入图片描述

硬件组播

局域网范围内 决定 给那些主机,怎么给这些主机传播数据报

组播也需要组播MAC地址
组播MAC地址开头:01-00-5E
MAC地址是由IP组播 组的地址最后23位转换

转化方法: ⭐
01-00-5E开头
后23位追加到开头后,把23位每四位写成一个数 (转十六进制)

存在问题:同一组内的IP地址不一样,但是映射成同一MAC地址
所以还要在IP层进行软件过滤

IGMP协议与组播路由选择协议

通过IGMP协议,判断该组播路由器所连局域网当中,是否还有可以接受组播数据报的 主机
组播路由选择协议:路由器之间的路径选择
在这里插入图片描述

IP地址

在这里插入图片描述后来由于IP地址不够满足使用了,引入了子网的划分,后来引入了超网
在这里插入图片描述

分类的IP地址

互联网中的ip地址

在这里插入图片描述绿色: 无编号网络,无名网络
红色: LAN
一个路由器不同接口可以连接不同网络
在这里插入图片描述

特殊IP地址

0.0.0.0 本网范围内表示主机
0.0.0.1 本网内特定主机
255.255.255.255 本网范围内发广播
在这里插入图片描述

私有IP地址

私有IP地址如何和外部通信呢 - NAT技术
在这里插入图片描述

网络地址转换NAT

专用网 ->因特网 LAN->WAN
因特网->专用网 WAN->LAN
在这里插入图片描述

分类的IP地址

把一个很大的地址空间分成几类
1B=8bit
在这里插入图片描述A类网络编号 全1和全0不能使用 ; 主机号 全1和全0不能使用
B类地址 网络号全0不能使用 ; 主机号 全1和全0不能使用
C类地址 网络号全0不能使用 ; 主机号 全1和全0不能使用
在这里插入图片描述

子网的划分

将主机号部分的高位地址作为子网号
在这里插入图片描述

子网掩码

外部是看不见本单位内的子网划分的,所以当外部传入145.13.3.10的时候,只能找到对应路由器 如何找到路由器的子网对应客户端呢? – 子网掩码
在这里插入图片描述使用方法: 目的IP地址 和 子网掩码 逐位相与 =子网网络地址
在这里插入图片描述不同掩码划分在CIDR技术中会进一步讲解

子网掩码练习题

在这里插入图片描述
255.255.255.255 本网范围内发广播
主机所在的子网号180.80.76.0
剩下主机号的位数全为1即可
在这里插入图片描述

利用子网掩码进行分组转发

是否直接交付:目的IP与子网掩码计算后,得到的地址 与某一子网地址一致,直接交付
若不是直接交付,就是特定路由: 找到路径 找到路径后去检查他的下一跳,直至找到,或全部找完
默认路由: 是在找不到无能为力了
生存时间结束: 丢弃 ,报告转发分组出错
在这里插入图片描述

构成超网

无分类编址CIDR

引入变长子网掩码, 主机多的时候,分配一个较短的子网掩码,主机少的时候,分配一个较短的子网掩码

/20 : 前20位 作为网络前缀, 32-20=12 剩下12位作为主机号

CIDR地址块:网络前缀相同的连续IP地址

CIDR的子网掩码:前缀有多少位,就有多少个1
在这里插入图片描述在这里插入图片描述

构成超网

将多个子网聚合成一个大的子网(超网)
方法:将网络的前缀缩短
修改网络前缀 /n ,n为最大重复长度
在这里插入图片描述

最长前缀匹配

前缀越长 : 地址块越小 -> 主机位数越少
在符合条件的情况下, 选择最精确的那个,前缀最长的那个
B
在这里插入图片描述
CIDR技术中心,
子网号是可以全0和全1的 所以不用减
主机号 全0代表本网络,全1代表广播地址
在这里插入图片描述

主机如何获得IP地址

在这里插入图片描述

静态配置

动态配置 - DHCP服务器

DHCP协议: 应用层协议 ,基于UDP
但是是网络层的基础
DHCP在通信过程中,用的都是广播方式
在这里插入图片描述

IPV6

NAT,CIDR都是延缓IPV4的消耗速度,但是现在仍然不够用了
升级后的IPV6可以支持QoS,更好的解决网络延迟和阻塞
在这里插入图片描述

IPV6数据报格式

在这里插入图片描述IPV4 : 首部长度字段, 总长度字段
IPV6:有效载荷长度 :扩展首部+数据部分的大小

每一个扩展首部内,都有一个下一个首部字段
基本首部 - 扩展首部1, - 扩展首部2 … - 扩展首部n - 数据部分
数据部分是上层传来的报文段
跳数限制: 生存时间.
在这里插入图片描述

IPV4 和 IPV6对比

因为IPV6在路由器内不能分片,只能在主机上分片
所以IPV6在传输过程中,太大了超过MTU,会返回ICMPV6分组过大的差错报文
在这里插入图片描述

IPV6地址表示形式

不采用点分十进制
采用冒号十六进制记法
在这里插入图片描述

IPV6基本地址类型

在这里插入图片描述

IPV6向IPV4过渡的策略

在这里插入图片描述

双栈协议 - 双通道

一个通道接受IPV4,一个通道接受IPV6

隧道技术 - 封装转化

把IPV6作为数据存入IPV4的数据部分,伪装成IPV4

移动IP

区分:
动态IP :使用DHCP协议在局域网内部的主机,动态的获得一个IP地址
移动IP : IP地址不变,但登陆地理位置发生改变

A给B家里寄信,但是B在公司,于是在家里的B妈妈就转发给了在公司的B

移动IP核心: 地理位置变化, IP不变
在这里插入图片描述在这里插入图片描述在这里插入图片描述

ARP高速缓存(IP与MAC地址的映射)

在这里插入图片描述

发送数据的过程

ip地址(逻辑地址),mac地址(物理地址)

网络层:加头
加上源主机IP和目的IP
链路层:加头加尾
加上源MAC地址和目的MAC地址

怎么获得目的MAC地址呢? --ARP
ARP存储的都是一个局域网内的IP和MAC对应

在一个局域网LAN内部

第一次建立IP与MAC之间的联系

广播发送源IP 目的IP 源MAC地址 FF-FF-FF-FF-FF-FF代表广播分组
然后符合目的IP的主机 会应答源IP的MAC地址
在这里插入图片描述

在两个局域网LAN之间

目的IP和自己的子网掩码按位相与,判断是否在这个网关内
先检查ARP内有没有IP和MAC的映射

查询当前默认网关(与外界沟通的路由器)的MAC地址

到了新的局域网LAN内,源IP不变,目的IP不变,但是源MAC地址和目的MAC地址会发生变化

为什么交换机走5不走4,参考交换机那一节
在这里插入图片描述

ARP例题

在这里插入图片描述

ICMP+IGMP

处于网络层和传输层之间,起到桥梁的作用
更好的转发IP数据报,提高交付成功的机会

ICMP

丢弃差错数据后,需要发送ICMP报文,
支持主机或路由器 实现 差错(异常)报告网络探寻
ICMP报文是IP数据报的数据部分
在这里插入图片描述

ICMP差错报文

ICMP差错报文分类

无法向上层交付 - 终点不可达
发送速度过快(拥塞)而丢弃报文 - 源点抑制 (现在用的很少了)
超过生存时间 - 时间超过
发送过程中,数据超过生存时间隔壁 / 终点在规定时间内没有收到数据 就不要了
首部字段错误 - 参数问题
没有找到最合适的路由器 - 重定向
在这里插入图片描述

ICMP差错报文数据字段

在这里插入图片描述

不应发送ICMP差错报文情况

ICMP属于IP数据报的数据部分**.ICMP自己出错 不发出错报文**
如果出错,只对第一个分片发ICMP出错报文

组播: 一对多, 区分广播:一对所有
组播地址的数据报,不发送ICMP 广撒网负责捞鱼就行了,不需要哪些鱼跑了
特殊地址,不发ICMP出错报文
在这里插入图片描述

ICMP 询问报文

在这里插入图片描述

ICMP应用 - ping

在这里插入图片描述

IGMP 网际组管理协议

是否有主机参加了/退出了某组播组

  • IGMP管理组播主机
    如何判断组播组内,哪些是需要这份数据的主机呢?
    -组播路由选择协议使用
    在这里插入图片描述

IGMP工作两阶段

加入组播组 :
申请 - 批示,公式
监察 - 更新成员名单
组播路由器只知道,有没有组织的人,但是具体组织有多少人是秘密
在这里插入图片描述

组播路由选择协议

一个组播里面的成员是动态变化的
可以加入也可以离开

组播路由选择协议的核心:找到以源节点为根节点的组播转发树
在这里插入图片描述在这里插入图片描述

路由转发协议

https://blog.csdn.net/AKUANer/article/details/105913310

网络层设备

路由器

转发:从一个输入端口转发到一个输出端口
路由选择:宏观上,选择一个合适的路径

如果是路由分组: 收到RIP分组或者OSPF分组,则把分组送往路由选择处理器 ,查询转发表后 ,再输出

若是数据分组,则直接查询转发表,再输出
路由器在这里插入图片描述

路由器输入端口

物理层:接受比特流
数据链路层:根据协议封装成帧,再去掉帧头帧尾上交网络层
网络层:先判断是路由分组还是数据分组
  路由分组 ->路由选择处理机 , 数据分组 ->直接查转发表
然后分组排队等候查表和转发
路由器输入端口

路由器输出端口

输出端口: 队列溢出是造成分组丢失的最大原因
路由器输出端口

物理层,链路层,网络层 三层设备区别

物理层设备:来什么转发什么
 中继器,集线器
链路层设备:能隔离冲突域
 网桥,交换器
网络层设备:能隔离冲突域,能隔离广播域
 路由器
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值