IP地址与MAC地址
由于MAC地址已固化在网卡上的ROM 中,因此常常将 MAC地址称为硬件地址或物理地址;物理地址的反义词就是虚拟地址、软件地址或逻辑地址,IP地址就属于这类地址。
从层次的角度看,MAC地址是数据链路层使用的地址,而IP地址是网络层和以上各层使用的地址,是一种逻辑地址(称IP地址为逻辑地址是因为IP地址是用软件实现的)。
IP地址与MAC地址在层次间的关系
IP地址与MAC地址在运输中的关系
为什么不能只用MAC地址进行寻址
地址解析协议ARP
已经知道了一个机器的IP地址,需要找出其相应的 MAC地址。地址解析协议ARP就是用来解决这样的问题的。
ARP运行流程
主机跨网络寻址
IP数据报的格式
一个IP数据报由首部和数据两部分组成首部的前一部分长度是固定的,共20字节,是所有IP数据报必须具有的。在首部的固定部分的后面是一些可选字段,其长度是可变的。
版本
首部长度
区分服务
总长度
总长度与首部长度的关系
标识、标志、片位移
数据报的划分
练习
生存时间、协议、首部检验和
首部检验和的计算方法
二进制反码求和的运算
源IP地址与目的IP地址
可变部分(可选字段+填充)
IP转发分组
分组在互联网上传送和转发是基于分组首部中的目的地址的,因此这种转发方式称为基于终点的转发。
IP转发分组的工作流程
直接交付与间接交付
源主机如何判断自己与目的主机在同一网络
源主机C如何知道需要经由哪个路由器
实际上用户为了让本网络中的各主机能与其他网络中的各主机进行通信,就要必须给本网络中的各主机指定本网络中的一个路由器,由该路由器帮忙进行转发。所指定的路由器也被称为默认网关。
静态路由配置
静态路由配置是指用户或网络运维人员使用路由器的相关命令给路由器人工配置路由表。
人工配置方式简单、开销小、但不能及时适应网络状态(流量、拓扑等)的变化,一般只在小规模网络中采用。
默认路由
特定主机路由
出于某种安全问题的考虑,同时为了使网络运维人员更方便地控制网络和测试网络,特别是在对网络的连接或路由表进行排错时,指明到某一台主机的特定主机路由是十分有用的。
最长前缀匹配
使用二叉树线索查找转发表
为了进行更加有效的查找,通常是把无分类编址的转发表存放在一种层次的数据结构中,然后自上而下地按层次进行查找。这里最常用的就是二叉线索(binary trie)。
二叉线索的结构
二叉线索的运作
以上只是给出了二叉线索这种数据结构的用法,而并没有说明“与唯一前缀匹配”和“与网络前缀匹配”的关系。
显然,要将二叉线索用于转发表中,还必须使二叉线索中的每一个叶节点包含所对应的网络前缀和子网掩码。当搜索到一个叶节点时,就必须将寻找匹配的目的地址和该叶节点的子网掩码进行按位AND运算,看结果是否与对应的网络前缀相匹配。
总之,二叉线索只是提供了一种可以快速在转发表中找到匹配的叶节点的机制。但这是否和网络前缀匹配,还要和子网掩码进行一次逻辑AND运算。
网际控制报文ICMP
为了更有效地转发IP数据报以及提高IP数据报交付成功的机会,TCP/IP体系结构的网际层使用了网际控制报文协议ICMP (Internet Control Message Protocol)
ICMP报文的种类
ICMP报文有两种,即ICMP差错报告报文和ICMP询问报文。
- 差错报告报文:用来向主机或路由器报告差错情况。
- 询问报文:用来向主机或路由器询问情况。
差错报告报文详解
不应发送ICMP差错报告报文的情况
询问报文详解
ICMP的典型应用——分组网间探测PING
分组网间探测PING用来测试主机或路由器之间的连通性。
ICMP的典型应用——跟踪路由
跟踪路由应用traceroute,用于探测IP数据报从源主机到达目的主机要经过哪些路由器。
跟踪路由的运行过程
IPV6
互联网经过几十年的飞速发展,在2011年2月3日,IANA 开始停止向地区互联网注册机构RIR分配IPv4地址,因为 IPv4地址已经全部耗尽了。
不久,各地区互联网地址分配机构也相继宣布地址耗尽。我国在2014年至2015年也逐步停止了向新用户和应用分配IPv4地址,同时全面开始商用部署IPv6。
解决IP地址耗尽的根本措施就是采用具有更大地址空间的新版本的IP,即 IPv6。经过多年的研究和试验,2017年7月终于发布了IPv6的正式标准。
IPV6的基本首部
IPv6数据报由两大部分组成,即基本首部(base header)和后面的有效载荷(payload)。
与IPV4相比,IPV6首部某些字段发生更改
IPv6基本首部中各字段的作用
IPv6数据报的扩展首部
IPv4数据报如果在其首部中使用了选项字段,则在数据报的整个传送路径中的全部路由器,都要对选项字段进行检查,这就降低了路由器处理数据报的速度。
实际上,在路径中的路由器对很多选项是不需要检查的。因此,为了提高路由器对数据报的处理效率,IPv6把原来IPv4首部中的选项字段都放在了扩展首部中,由路径两端的源点和终点的主机来处理,而数据报传送路径中的所有路由器都不处理这些扩展首部(除逐跳选项扩展首部)。
IPV6的地址
IPV6的表示方法
IPV6写作方式说明
IPV6地址的分类
从IPv4向IPv6过渡
下面介绍两种由IPv4向IlPv6过渡的策略:
- 使用双协议栈
- 使用隧道技术
双协议栈
- 双协议栈(Dual Stack)是指在完全过渡到IPv6之前,使一部分主机或路由器装有IPv4和IPv6两套协议栈。
- 双协议栈主机或路由器既可以和IPv6系统通信,又可以和IPv4系统通信。
- 双协议栈主机或路由器记为IPv6/IPv4,表明它具有一个IPv6地址和一个IPv4地址。
- 双协议栈主机在与IPv6主机通信时采用IPv6地址,而与IPv4主机通信时采用IPv4地址。
- 双协议栈主机通过域名系统DNS查询目的主机采用的IP地址:
- 若DNS返回的是IPv4地址,则双协议栈的源主机就使用IPv4地址;
- 若DNS返回的是IPv6地址,则双协议栈的源主机就使用IPv6地址。
隧道技术
隧道技术的核心思想:
- 当IPv6数据报要进入IPv4网络时,将IPv6数据报重新封装成IPv4数据报,即整个IPv6数据报成为IPv4数据报的数据载荷。
- 封装有IPv6数据报的IPv4数据报在IPv4网络中传输。
- 当IPv4数据报要离开IPv4网络时,再将其数据载荷(即原来的IPv6数据报)取出并转发到IPv6网络。
网际控制报文协议ICMPv6
由于IPv6与IPv4一样,都不确保数据报的可靠交付,因此IPv6也需要使用网际控制报文协议ICMP来向发送Pv6数据报的源主机反馈一些差错信息,相应的ICMP版本为ICMPv6。
ICMPv6的封装
ICMPv6报文的分类
ICMPv6报文可被用来报告差错、获取信息、探测邻站或管理多播通信。