网际协议IP
- 与IP协议配套使用的还有
1.虚拟互联网络
- 能将网络互相连接起来要使用一些中间设备
- 物理层使用的叫做转发器
- 数据链路层使用的叫做网桥
- 网络层使用的叫做路由器
- 网络层之上使用的叫做网关
- 转发器或者网桥进行连接时,只是将网络进了扩大,只能是同种网络
- 很多不同的网络,可以通过相同的网络层(IP层)协议,由路由器连接成为虚拟互联网。隐藏了连接,看起来就像是一个网络
2.分类的IP地址
- IP地址及其表示方法
- IP地址::= {<网络号>, <主机号>}
- 最大可指派网络数,是指的可以有多少个网络号,其中A有一个位固定,B有两个,C有三个。因此,网络号的个数,2的7-1,16-2,24-3次幂。
- 最大主机数,就是在网络号相同的情况下,能有多少个不重复的主机号。
- 其中,全0指的本机,全1指的网络中的全部主机,因此同一网络中的不同主机号个数:A类为224-2。B类216-2。C类28-2;
IP地址的特点
- 由网络号和主机号组成,分配机构只需要分配网络号即可,主机号由拥有网络号的单位自行分配;
- 路由器进行转发时,只需要根据主机的网络号来转发分组,减少了路由表的存储空间和查找时间
- 一个主机连接到两个不同的网络时,就需要两个IP地址。
- 也就是说,每个路由器必定都有两个IP地址
- 有网桥,转发器连接的若干个局域网,其实还是一个网络
- 所有分配到网络号的网络,不论大小都是平等的
IP地址与硬件地址
IP地址和硬件/物理地址
- IP层看不到MAC帧的内容,即MAC地址
- 链路层也看不到IP层的内容,即IP地址
- 中间每通过一次路由器,MAC地址就会变更
ARP地址解析协议 和 RARP逆地址解析协议
IP->ARP->物理地址
- ARP:由IP找MAC
- 在一个局域网中,当一个主机A要向B进行传输时,它只知道其IP,不清楚B的物理地址
- 此时A就会在局域网中广播ARP请求:我的IP是xxx,物理地址是xxx,我想知道IP为B的物理地址
- IP不是B的,就会忽略这条广播
- 当B接收到该请求时,就会将自己的硬件地址,单播发送给A
- 这样A,就是有了B的硬件地址
- 然后A进行信息发送,还会将B的信息存入ARP高速缓存,以便下次使用
- 但是ARP高速缓存内的信息,在一定时间不使用后,该条信息就会被删除,如果想再次使用,就只能再次发送ARP请求
IP数据报的格式
- 版本:IPV4/IPV6
- 首部长度:数据部分前的长度
- 分区服务:不用
- 总长度:16位,首部+数据,最长216-1=65535
- 标识:超过MTU的数据报需要进行分段,为了标识哪些是同一段,而设置的位
- 标志:MF=1,表示后面还有分的段,=0表示是最后一段。DF=0允许分片,=1不允许
- 片偏移:分段的数据段,是起始位置偏移的多少个字节开始的
- 生存时间:TTL(Time To Live),是指的数据在网络中的生存时间,一般用跳数表示,每经过一次路由器,就将跳数-1。当TTL变成负数额时候,就丢弃数据
- 协议,占8字节。指出此数据报携带的数据是使用何种协议,一遍接收端的IP层知道将数据部分上交给哪个处理,常用的字段如下
- 可变部分:这是一个选项字段。不同的选项其字段长度可能不同。并且最后不足四字节整倍数,还要进行0补齐
IP层转发分组的流程
划分子网和构造超网
划分子网
- 因为ABC 类网的划分,太过大,
- 一方面利用不完,因为很少有那么大的网络
- 另一方面,会给路由器的路由表大小造成很大压力,也影响查表的时间
- 因此,就将一个大的网络划分成很多小的子网
- 现在网络中要求,即使没有子网,也要使用子网掩码
- 子网掩码对应的网络号,都为1
- 将网络的IP,同子网掩码相与,得到的就是真正的网络地址
- 子网号的位数:16位中占据的前几位
- 子网数:2子网号的位数-2(因为全0和全1不用)
- 每个子网的主机数:就是除了子网号占据的位之外,16位中的其他位能表示的个数:216-子网号位数-2
使用子网时分组的转发
- 转发讲解
- 这个和前面的转发是相同的区别在于:
- 需要先将从数据报首部提取的目的IP地址D与本地网络的子网掩码相与得到D的网络地址
- 若该地址同本地的网络地址相同,则D在本地的子网中,直接传递即可
- 若不同,则将其交付给本地默认的路由
- 本地路由将D与自己的路由表中的每一行子网掩码一次相与,获得网络地址
- 将刚才获得的网络地址同路由表中该行对应的的目的网络地址相比较,看是否与该行的目的网路地址相同
- 若相同,则说明D要由该行所在的路由器进行下一步传递,即下一跳
- 若不同,则对比路由表中的下一行
- 直至表对比结束,若还没有,则执行默认路由跳转
- 若没有默认的路由跳转,则报错
- IP地址就是我们所说的IP地址,或者说是主机的IP地址
- 网络地址其实可以理解为在网络路由中传递时,用到的地址,它是由IP地址同子网掩码相与后,得到的
- 目的网络地址,就是路由表中,与子网掩码相对应的那个地址。若IP地址同子网掩码相与后的结果和目的网络地址相同,则代表,这个IP地址就要由其子网掩码对应的路由来转发(或者就是该IP就在这个子网掩码对应的子网内),
- 每一个以路由器为间隔的两个“网络”,都有不同的子网掩码。
- IP地址可以理解为,封装在信息里面了。IP地址与子网掩码相与后的地址,才是信息在网络中转发用到的地址。该地址是IP和子网掩码相与得到的
构造超网
无分类编址 CIDR
- 产生原因:路由表中的项目太多;且1992年B类地址已经分配了一半!
- 其实就等于将网络的划分更加细化了
- 以前网络的划分,ABC,一次就是8位
- C是最小的网络,如果有64个C类网络,路由表中就要存64个
- 但是现在,用一个CIDR就可以表示这个网络,因为CIDR是一位一位的
最长前缀匹配
- 掩码也会相应的变化:CIDR有几位,则子网掩码也为多少位的1
网际控制报文协议ICMP(Internet Control Message Protocol)
允许主机或路由报告差错情况和提供有关异常情况的报告
- 报文种类
- 1.差错报告报文
- 终点不可达:当路由器或主机不能交付数据报时,就向源点发送该报文
- 源点抑制:当路由器或主机由于拥塞而丢弃数据报时,就像源点发送该报文,使源点知道应当把数据报的发送速率放慢
- 时间超过:路由器收到超时数据报时,丢弃数据报以外,海英给源点发送超时报文
- 参数问题:当路由器或目的主机收到数据报的首部中有的字段值不正确时,丢弃以外,还向源点发送参数问题报文
- 改变路由(重定向):等于是向源点发报文,更新路由表
- 2. 询问报文
- 回送请求和回答:由主机或路由想一个特定的目的主机发出的询问,收到的主机必须给源主机或路由回送回答报文。此用以测试目的站是否可达,以及了解其有关状态
- 时间戳请求和应答:请求某个主机或路由回答当前的日期和时间
路由选择协议
路由算法
- 必须是正确的:一定能够最终到达目的网络和目的主机
- 计算简单:即路由选择的计算,不应使网络通信量增加过多
- 自适应网络通信量和拓扑的变化:当较优的路由出现了故障,能够即使改变路由,不出现故障;而当较由的路由恢复时,也能及时恢复这个较优的路由
- 稳定性:在网络通信量和拓扑相对稳定的时候。解应该相应的固定,而不应该不停地变化
- 公平:即对每一个用户都是平等的,不能为了一部分用户的低延迟而影响其他用户
内部网管协议
1.路由信息协议RIP(Routing Information Protocal)
- 优点:开销小,简单
- 缺点:网络最远为15个路由;且网络中,坏消息传递的慢
- 使用的UDP
- 只和相邻的路由进行信息的交换
- 交换的是路由已知的全部路由表
- 按固定的间隔进行信息的交换,超时则认为路由不可达
- 交换的信息为:目的网络,跳数,下一跳的路由
- 最远只能有15个路由器,否则就视为不可达
- 只以距离为准,即使现选的距离近延迟高,而又有一条距离远,延迟低的,也选距离近的
- 算法
- 网络初始时,每个路由都没有信息,但是网络逐步进行信息的交换,也能很快的进行收敛
- 网络将相邻的路由信息距离/跳数加一
- 如果自己的路由表中没有的信息,则进行添加
- 如果通过相同的路由到达相同的网络的距离变了,则进行替换
- 如果通向某网络的距离短了,则进行更新
- 解释
- 加一:假如地址为X的相邻路由发来的报文是某一个项目是“NET2, 3, Y”,意思就是,X经过Y到达网络NET2的距离为3,即,现在我经过X要到达网络NET2的距离为4
- 添加:表中没有的信息,即新的目的网络,应该加入到路由表中,例如表中没有NET2这个网络,则应将其加入到路由表中
- 替换: 如果表中原有的信息是“NET2, 3, Y”,而新收到的信息是“NET2, x, Y”,不论x是几,只要原先表中有通过Y向NET2的信息,现在的也是通过Y向NET2的信息,不论距离远近,就替换
- 更新: 如果路由表中已有“NET2, 3, Y”,现在的距离是“NET2, 2, Z”,则进行更新
- RIP协议的报文格式
- 首部4字节,必为0是为了补齐4字节
- 路由部分,每个路由信息占据20个字节,最多有25个路由信息
坏消息为何传递的慢
2.开放最短路径优先OSPF(Open Shortest Path First)
优点:适用于较大的网络
过程:
- 网络中的路由信息发生了改变,就将该信息向所有相邻的路由器发送
- 相邻的路由器接受到信息后,再次将该消息对其自身相邻的路由其进行发送
- 但不向回发送,即你给我发来的消息,不再给你发回(不然网络自己就崩了)
- 以此类推,称为洪泛法
- 只有链路状态发生变化时,才会进行洪泛法发送,而不像RIP那样,实时发送
发送的信息:
- 1.与本路由器相邻的所有路由的链路状态
- 2.链路的度量代价:距离,时延,带宽等
这样,每个路由器就都能知道它所在的整个网络的拓扑状态
OSPF使用IP数据报格式
五种分组类型
- 1.问候分组:用来发现和维持邻站的可达性
- 2.数据库描述:向邻站给出自己的链路状态数据库中的,所有链路状态项目的摘要信息
- 3.链路状态请求:向对方请求发送某些链路状态项目的详细信息
- 4.链路状态更新:用洪泛法对全网更新链路状态
- 5.链路类型确认:对链路更新分组的确认
优点
- 可以根据我们的需求,设置不同的代价
- 能够在多条路径间,进行负载均衡
- 只和可信赖的路由间进行信息交换
- 网络中链路可能经常变化,每条链路状态上都有一个32位序号,越大越新,最快5s才能更新一次,这保证全部序号600年不会重复
外部网关协议——边界网关协议BGP
- 不同AS之间通信的协议
- AS其实就等于是将路由分成了一个个的组
路由器的构成
1物理层
2数据链路层
3网络层
IP多播(没细看)
IP多播就等于是,直播地点,将视频音频广播发送给指定用户
IP多播分为两种:
第一种是在本局域网上进行硬件多播
第二种就是在Internet范围进行多播
- 当多播组的主机数量很大时,采用多播方式就可明显的减轻网络中的各种资源的消耗。能过运行多播协议的路由器成为多播路由器,多播路由器当然也可以转发普通的单播IP数据报
- 在Internet,每一个主机必须有一个全球唯一的IP地址,通常我们需要在数据前添加目的IP
- 但是我们这是多播,目的主机可能会有成千上万个,不能在数据包中添加那么多IP地址
- 因此我们在多播数据报的目的地址写入的是多播组的标识符
- 标识符就是IP地址中的D类地址,地址范围是224.0.0.0-239.255.255.255
- 多播是尽最大努力进行交付
- 多播地址只能用于目的地址,不能用于源地址,此外多波数据不产生ICMP报文
- D类地址中有一些不能随意使用,因为已经被固定指派了
虚拟专用网VPN和网络地址转换NAT
-
VPN
-
其实VPN就是一个将两个异地的网络连接成一个的方法,称为虚拟专用网
-
在外界看起来,AB就像是一个本地局域网一样
-
A发送的数据经过R1,路由器判断这是内网数据,但是需要经过互联网发送
-
于是就将数据进行加密,然后传输
-
R2收到后,将数据传输给B
-
虽然看起来中间经过了互联网以及很多路由器,但是我们感觉就像是在本地相连一样
-
网络地址转换NAT
-
当在专用网内部的主机,本来已经分配到了本地的IP,但是现在邮箱和互联网上的主机通信,那么如何操作呢
-
其实就是把本地地址主机IP,通过有NAT的路由器,将其变成路由器的互联网地址(其实就是路由器的连接互联网的IP,路由器有几个,则局域网同时就能有几个连接互联网?),发送出去
-
接收的时候,路由器再将其发送至原先的主机IP