因特网和网络互联技术
内容体系:
IP协议以及配套协议
IP地址-IP地址表示方法
点分十进制
分类IP地址:ABCDE
网络位和主机位
- A类(1-126开头)的第一个比特位固定为0,其他位可以变化。
- B类(128-191开头)的第一第二个比特位分别固定为1、0,其他位可以变化。
- C类(192-223开头)的第一第二第三个比特位分别固定为1、1、0,其他位可以变化。
- D类(224-239开头)是组播地址,它的第一第二第三第四个比特位分别固定为1、1、1、0,其他位可以变化。
- E类(240-255开头)是保留地址,用作科研使用。它的第一代第二第三第四第五位分别为1、1、1、1、0,其他位可以变化。
公有地址和私有地址
私有地址:10开头、(172.16-172.31)开头、192.168开头。除了私网地址之外的地址就是公网地址。
IP地址分类:单播地址、组播地址、广播地址(主机位为全1)
子网划分
可变长子网掩码(VLSM)
解决:IP地址空间的利用率很低、两级IP地址不够灵活的问题
- 主机位全零是网络地址,主机位全一是广播地址。
使用子网时分组的转发
子网掩码和目的地址做与运算得到网络地址,可以目的地址属于哪个网段。
- 在不在同一网络看网络地址是否一致。
- 与运算得到的数一致则是同一网络。
无分类编址CIDR
路由汇聚
汇总规则:选择网络地址相同的位进行汇聚,不同的位划分至主机位,从而实现将多个网段汇聚成一个新的超网网段。 主机位全零为汇聚网络id,也称超网id。 把IP地址转为二进制,找各个地址相同的位,不同的位转为0。
ipv4数据报
以太网帧的ip数据报(20字节的首部+数据部分)超过1500字节要进行分片传输。
- 分片的标识一致。
- 标志包括3位:最低位MF(1代表后面还有分片,0代表该分片时最后一个)、中间位(DF表示允不允许分片)
- 片偏移:分片过后,某一片在原数据报的相对位置,8个字节为偏移量,单位为比特位。
- 生存时间(TTL值)最大是255,每经过一个路由器减一。
- 协议字段是TCP或者UDP。
- 首部校验和:检验首部在传输过程中有没有出错。
IP地址与硬件地址
ARP协议
-
不同网段进行通信,先将数据报发给网关。MAC地址在路由器之间不断切换,源IP地址和目的地址不变。
-
ARP表中没有目的IP主机的MAC地址。会进行本地ARP广播
cmd命令:arp -a 查看arp缓存
arp-d:清除arp缓存
静态绑定arp:arp -s ip -address mac -address
网际控制报文协议ICMP
ICMP 五种差错报告报文 :
-
终点不可达报文 : 路由器 / 主机 不能交付数据报时 , 就会向源点 发送 终点不可达报文 ;
-
源点抑制报文 : 路由器 / 主机 拥塞 , 丢弃 IP 数据报 , 向源点发送源点抑制报文 , 让源点降低发送速率 ;
-
时间超过报文 :
- 生存周期为0 : 路由器 生存周期 TTL = 0 时 , 丢弃该报文 , 同时向源点发送 时间超过报文 ;
- 分组丢失 : 终点 在预定时间内 没有收到 数据报的全部数据分组时 , 就会将已收到的数据分组全部丢弃 , 向源点发送时间超过报文 ;
-
参数问题报文 : 路由器 / 主机 收到的 数据报 首部 字段有错误值 , 丢弃该数据报 , 向源点发送 参数问题报文 ;
-
改变路由报文 : 路由器 将 改变路由报文 发送给主机 , 让主机下次将数据报发送给另外的路由器 ; 又称为 “重定向报文” ;
ICMP 询问报文 :
-
回送请求 和 回答报文(ping命令) : 主机 / 路由器 询问特定主机 , 目的主机收到该报文后 , 必须给源主机 发送 ICMP 回答报文 ; 目的是 测试该 目的主机是否可达 ;
-
时间戳请求 和 回答报文 : 请求 主机 / 路由器 当前的日期 和 时间 ; 用于进行时钟同步 和 时间测量 ;
ICMP 差错报文形成
- 取出 IP 数据报内容 : 取出 IP 数据报 首部 , 以及 数据部分的 前 8 88 字节 ;
- ICMP 差错报文 组成 : ICMP 前 8 88 个字节 + IP 数据报 首部 + IP 数据报数据部分前 8 88 字节 ;
- 组装 IP 数据报 : 将 ICMP 数据报 装入 IP 数据报 数据部分 ;
ICMP 差错报文 不发送 情形
ICMP 差错报文 不发送 情形 :
-
ICMP 差错报文错误 : IP 数据报 中 , 如果 ICMP 差错报文部分出错 , 就不用再发送 ICMP 差错报告报文了 ;
-
后续数据报分片 : ICMP 差错报文只针对数据报的第一个分片 , 后续分片就不发送 ICMP 差错报告报文了 ;
-
组播地址 : 如果 IP 数据报的地址是 组播地址 , 不发送 ICMP 差错报文 ;
-
特殊地址 : 如果 IP 数据报的地址是 特殊地址 , 不发送 ICMP 差错报文 ; 如 : 默认路由地址 等 ;
ICMP 应用
ICMP 应用 :
-
PING : 测试连通性 , 使用 ICMP 回送请求 和 回答报文 ;
-
华为Traceroute/思科Tracert : 追踪 分组 从原点 到 终点 路径 , 使用 ICMP 时间超过差错报告报文 ;
Traceroute/tracert 应用 细节 :
源主机 与 目的主机之间 有n个路由器 ;
第1个数据报 TTL=1, 第1个路由器收到该数据报 , 发现其生存周期为0, 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第1个路由器的地址 ;
第2个数据报 TTL = 1 , 第2个路由器收到该数据报 , 发现其生存周期为0 , 向源主机回送 ICMP 时间超过差错报告报文 , 这样就得到了第2个路由器的地址;
第n 个数据报 TTL = n , 第n个路由器收到该数据报 , 发现其生存周期为 0 , 向源主机回送 ICMP 时间超过差错报告报文 ,这样就得到了第n个路由器的地址;
IPv6协议
IPv6的优点:
- 更大的地址空间
- 扩展的地址层次结构
- 灵活的首部格式
- 改进的选项
- 允许协议继续扩充
- 支持即插即用(自动配置)
- 支持资源的预分配
首部(40字节)
扩展首部:
128位,16进制。
- 从任何十六进制数字组中删除一个或多个前导零;通常对全部或全部前导零进行此操作。例如组0042被换为42。
- 连续的零可以用双冒号进行替换。双冒号只能使用一次,因为多次使用会是地址不确定。
IPv6数据报的目的地址可以是以下三种基本类型之一:
- (1)单播地址:传统的点对点通信。
- (2)多播地址:一点对多点的通信。
- (3)任播地址:这是ipv6增加的一种类型。任播的目的站是一组计算机,但数据报在交付时只交付其中的一个,通常是距离最近的一个。
单播地址
全球路由单播地址
ipv6扩展了地址的分级概念,使用以下三个等级:
- (1)全球路由选择前缀,前三位固定为001,占48位。
- (2)子网标识符,占16位。
- (3)接口标识符,占64位。
链路本地单播地址
- 每个设备的接口在启动ipv6的时候会自动配置一个链路本地单播地址
- ipv6的“邻居发现”机制要用到IPv6的链路本地单播地址
- ipv6中没有了广播,IPv4中的ARP在IPv6中不能工作,“邻居发现”是IPv6和IPv4的ARP对应的寻址机制。
- 链路本地地址以“FE8O”开头
- interfaceID 是通过EUI-64自动生成
- 路由器不会转发链路本地地址
组播地址
- 任何节点能够是一个组播组的成员
- 一个源节点可以发送数据包到组播组
- 组播组的所有成员都能收到发往该组的数据包
- 组播地址在IPv6包中不能用作源地址或出现在任何选路头中
任播地址
- 任播地址是IPv6特有的地址类型,它用来标识一组网络接口
- 路由器会将目标地址是任播地址的数据包发送给距离本路由器最近的一个网络接口(一对一组中的一个)
特殊地址
特殊的单播地址:
站点本地地址现在已经被淘汰了
考点:全球单播地址、环回地址、链路本地地址
特殊ipv6地址
ipv6协议-过渡方案
-
双协议栈:主机或路由器同时装有IPV4 和 IPV6两个协议栈,因此,主机既能和IPV4通信,也能和IPv6网络通信。
IPv6和IPv4是功能相近的网络层协议,两者都基于相同的物理平台,而且加载于其上的传输层协议TCP和UDP又没有任何区别。如果一台主机同时支持IPv6和IPv4两种协议,那么该主机既能与支持IPv4协议的主机通信,又能与支持IPv6协议的主机通信,这就是双协议栈技术的工作机理。
-
隧道技术:在IPV6分组进入IPV4网络时,将IPV6分组封装成IPV4分组;当封装成IPV4分组离开IPV4网络时,再装数据部分(IPV6部分)转发给目的节点。
利用隧道技术可以通过现有的运行IPv4协议的Internet骨干网络(即隧道)将局部的IPv6网络连接起来,因而是IPv4向IPv6过渡的初期最易于采用的技术。路由器将IPv6的数据分组封装入IPv4,IPv4分组的源地址和目的地址分别是隧道入口和出口的IPv4地址。在隧道的出口处,再将IPv6分组取出转发给目的站点。
-
网络地址转换技术:对IPV6和IPV4报头实行相互翻译,实现IPV4/IPV6协议和地址的转换。IPv6和ipv4地址相互转换。
网络地址转换/协议转换技术 NAT-PT 通过与SIIT协议转换和传统的IPv4下的动态地址翻译(NAT)以及适当的应用层网关(ALG)相结合,实现了只安装了IPv6的主机和只安装了IPv4机器的大部分应用的相互通信。
QOS(服务质量)
QOS,是用来解决网络延迟和阻塞等问题的一种技术。
- 网络延迟
- 延迟
- 延迟抖动
- 丢包
使用QOS的目的:区分流量,保证重要流量及时被转发。
三种QoS服务模型
“服务模型”就是设备为不同业务流提供服务的一种模式。总体来说,包括Best Effort、IntServ和DiffServ三种服务模型。
Best Effort模型
Best Effort(尽力而为)模型是一种为所有业务流提供相同服务等级的服务模型,也是最简单的服务模型。
在Best Effort模型中,应用程序可以在任何时候发出任意数量的报文,而且不需要事先获得批准,也不需要通知网络,网络尽最大的可能性发送每一个数据报文,但对时延、可靠性等性能不提供任何保证。
Best Effort模型是Internet的缺省服务模型,它适用于绝大多数网络,如FTP、Email等,通过先进先出(FIFO)调度方式来实现。
IntServ(IntegratedService,综合服务)模型
IntServ模型常与组播应用结合,使用于需要保证带宽、低延迟的实时多媒体应用,如电视会议、视频点播等。当前,采用RSVP协议的IntServ模型定义了两种业务类型:
-
(1)保证型服务(GuaranteedService):提供保证的带宽和时延限制来满足应用程序的要求。如VoIP应用可预留10MB带宽和要求不超过1s的时延。
-
(2)负载控制型服务(Controlled-LoadService):保证即使在网络过载(overload)的情况下,仍能对报文提供类似Best Effort模型在未过载时的服务质量,保证某些应用程序报文的低时延和低丢包率需求。
IntServ模型的最大优点是可以提供端到端的QoS传输服务,最大缺点是可扩展性不好
DiffServ(Differentiated Service,差分服务)模型
DiffServ模型一般用来为一些重要的应用提供端到端的QoS。
通常在配置DiffServ模型后,边界设备通过报文的源地址和目的地址等信息对报文进行分类,对不同的报文设置不同的优先级,并标记在报文头部,而其他设备只需要根据设置的优先级来进行报文的调度。
在DiffServ模型中,流分类、流量监管、流量整形、拥塞管理和拥塞避免是对不同类型报文提供有区别服务的基石,它们主要完成如下功能:
-
(1)流分类:依据一定的匹配规则识别出不同类型的报文,是有区别地实施服务的前提。
-
(2)流量监管:对进入交换机的特定流量的规格进行监管。当流量超出规格时,可以采取限制或惩罚措施,以保护运营商的商业利益和网络资源不受损害。
-
(3)流量整形:一种主动调整流的输出速率的措施,使流量适配下游交换机可供给的网络资源,避免不必要的报文丢弃和拥塞。
-
(4)拥塞管理:在发生网络拥塞时必须采取解决资源竞争的措施。通常是将报文放入队列缓存,并采取某种调度算法安排报文的转发次序。
-
(5)拥塞避免:过度的拥塞会对网络资源造成损害。拥塞避免功能可以监督网络资源的使用情况,在发现拥塞有加剧的趋势时采取主动丢弃报文的策略,通过调整流量措施来解除网络的过载。
在这些功能组件中:
- 流分类是基础,它依据一定的匹配规则识别出报文,是有区别地实施服务的前提;
- 流量监管、流量整形、拥塞管理和拥塞避免从不同方面对网络流量及其分配的资源实施控制,是有区别的提供服务具体体现。
传输层概述
进程之间的通信
UDP协议(用户数据报协议)
特点:
无连接、尽最大努力、面向报文、支持一对一、一对多、多对一和多对多、首部开销小
udp报文格式
UDP 报文中每个字段的含义如下:
-
源端口:这个字段占据 UDP 报文头的前 16 位,通常包含发送数据报的应用程序所使用的 UDP 端口。接收端的应用程序利用这个字段的值作为发送响应的目的地址。
这个字段是可选的,所以发送端的应用程序不一定会把自己的端口号写入该字段中。如果不写入端口号,则把这个字段设置为 0。这样,接收端的应用程序就不能发送响应了。
-
目的端口:接收端计算机上 UDP 软件使用的端口,占据 16 位。
-
长度:该字段占据 16 位,表示 UDP 数据报长度,包含 UDP 报文头和 UDP 数据长度。因为 UDP 报文头长度是 8 个字节,所以这个值最小为 8。
-
校验值:该字段占据 16 位,可以检验数据在传输过程中是否被损坏。