目录
数据交换方式:
数据报传输方式 (应用主流)和虚电路传输方式:
IP数据报 的数据格式:
IP地址的分类:
无类型域间选路CIDR:
公有IP地址和私有IP地址的区别:
一个容易“犯错”的CIDR
MAC地址:
IP层几个重要的协议:
ARP协议:
DCHP(动态主机设置协议,传输层协议)
ICMP(网际控制报文协议)
IGMP(维护IP组播的一种协议)
路由算法和路由选择协议:
1.路由器的结构:
2.路由器将IP报文进行转发的流程
3.路由算法:
RIP(距离向量)
RIP协议报文格式:
OSPF(开放式最短路径优先)
BGP(边界网关)
在网络层主要用到了分组交换:
1.数据报方式 :动态的选择传输路径,相当于无连接服务
2.虚电路方式:固定的传输路径,相当于连接服务
首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。
这里先说三个特殊的ip地址:
0.0.0.0 : 当我们用DHCP协议动态获取IP地址的时候 ,获取失败,用0.0.0.0代表源主机IP地址未知;
1.1.1.1:现在用作一个DNS服务了(谷歌等公司的DNS服务)
255.255.255.255 :代表有限广播,他的目标是网络中的所有主机
IP地址是一个网卡在网络世界的通讯地址,相当于我们现实世界的门牌号码
32位的IP地址就不够,还被分成了5类
在网络地址中,至少在当时设计的时候,对于A、B、 C类主要分两部分
这很好理解,大家都是六单元1001号
我是小区A的六单元1001号
而你是小区B的六单元1001号。
这里面有个尴尬的事情,就是C类地址能包含的最大主机数量实在太少了,只有254个
当时设计的时候恐怕没想到,现在估计一个网吧都不够用吧
而B类地址能包含的最大主机数量又太多了。6万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。
根据这种现象,于是就产生了:
这打破了原来设计的几类地址的做法,将32位的IP地址一分为二
10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24
这种地址表示形式,就是CIDR
后面24的意32位中前24是网络号,后8位是主机号
伴随着CIDR存在的
将子网掩码和IP地址进行AND计算,就可得到网络号
上面的表格。表格最右列是私有IP地址段
平时看到的数据中心里,办公室/家/学校的IP地址,一般都是私有IP地址段
因为这些地址允许组织内部的IT人员自己管理、分配,而且可重复
因此,你学校的某个私有IP地址段和我学校的可以是一样的。
这就像每个小区有自己的楼编号和门牌号,你们小区可以叫6栋,我们小区也叫6栋,没有任何问题
但是一旦出了小区,就需要使用公有IP地址。就像人民路888号,是国家统一分配的,不能两个小区都叫人民路888号。
你家里有Wi-Fi,对应就会有一个IP地址。一般你家里地上网设备不会超过256个,所以/24基本就够了,所以这时子网掩码为255.255.255.0比较合适
有时候我们也能见到/16的CIDR,这两种是最常见的,也是最容易理解的。
不需要将十进制转换为二进制32位,就能明显看出192.168.0(这个网络号是设置虚拟子网的最常用的网络号)是网络号,后面是主机号
而整个网络里面的第一个地址192.168.0.1,往往就是你这个私有网络的出口地址
例如,你家里的电脑连接Wi-Fi,Wi-Fi路由器的地址就是192.168.0.1
我们来看16.158.165.91/22这个CIDR
求一下这个网络的第一个地址、子网掩码和广播地址
你要是上来就写16.158.165.1,那就大错特错!!!
/22不是8的整数倍,不好办,只能先变成二进制来看
第一个地址是16.158.<101001><00>.1,即16.158.164.1
子网掩码是255.255.<111111><00>.0,即255.255.252.0
广播地址为16.158.<101001><11>.255,即16.158.167.255。
是一个网卡的物理地址,用十六进制,6个byte表示
MAC地址号称全局唯一,不会有两个网卡有相同的MAC地址,而且网卡自生产出来,就带着这个地址
很多人看到这里就会想,既然这样,整个互联网的通信,全部用MAC地址好了,只要知道了对方的MAC地址,就可以把信息传过去。
这样当然是不行的
一个网络包要从一个地方传到另一个地方,除了要有确定的地址,还需要有定位功能
而有门牌号码属性的IP地址,才是有远程定位功能
例如,你去XX市XX路XX号X楼X层找XX,你在路上问路,可能被问的人不知道X楼是哪个,但是可以给你指网商路怎么去
但是如果你问一个人,你知道这个身份证号的人在哪里吗?可想而知,没有人知道。
MAC地址更像是身份证,是一个唯一的标识
它的唯一性设计是为了组网的时候,不同的网卡放在一个网络里面的时候,可以不用担心冲突
从硬件角度,保证不同的网卡有不同的标识。
MAC地址是有一定定位功能的,只不过范围非常有限
你可以根据IP地址,找到XX市XX路XX号X楼X层,但是依然找不到我,你就可以靠吼了,大声喊身份证XXXX的是哪位?我听到了,我就会站起来说,是我啊
但是如果你在上海,到处喊身份证XXXX的是哪位,我不在现场,当然不会回答,因为我在杭州不在上海。
所以,MAC地址的通信范围比较小,局限在一个子网里面
例如,从192.168.0.2/24访问192.168.0.3/24是可以用MAC地址的
一旦跨子网,即从192.168.0.2/24到192.168.1.2/24,MAC地址就不行了,需要IP地址起作用了
上面主要讲了:
完成主机或路由器IP地址到MAC地址的映射。 解决下一跳走哪的问题。
ARP协议4种典型情况:
ARP协议使用过程:
检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF
的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存 (10-20min更新一次) 。ARP协议是自动进行的。
Dynamic Host Configuration Protocol
。
静态主机配置: 例如机房的电脑的配置,你左边同学的配置的IP和你的IP一般是相邻的。
动态主机配置: 例如我们大学教师上课,是需要经常移动的,到了某个教室,会选择动态分配一个暂用IP。
Internet Control Message Protocol
。
ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会(桥梁作用)。它封装在 IP 数据报中,但是不属于高层协议。主要有两种: ICMP差错报文、ICMP询问报文。
ICMP应用
ICMP有两个应用命令: PING
和Traceroute
。
PING
测试两个主机之间的连通性,使用了ICMP回送请求和回答报文。
Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。
Traceroute
跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文。
IGMP 实现如下双向的功能:
IGMP工作的两个阶段:
本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。
ICMP和IGMP都使用IP数据报传递报文。
交换结构(Switch fabric
)、一组输入端口、一组输出端口。
流程:
目前主流还是动态路由算法:
1.OSPF链路状态路由算法: 所有的路由器掌握完整对的网络连接和链路的费用的信息;
2.RIP距离向量算法:只掌握物理相连的邻居以及链路费用;
分层次的路由选择协议: 分成自治系统内(RIP
和OSPF
)的和自治系统外(BGP
)的。
由于因特网规模很大,许多单位不想让外界知道自己的路由选择协议,但还是想连入因特网。于是有了自治系统
AS
。自治系统AS: 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度 量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。一个As内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。
Routing Information Protocol
,路由信息协议。RIP其实是应用层的协议。
RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。
RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录 (即一组距离) 。
距离 : 通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路 由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。所以RIP只适用于小型网络。
看个路由表例子:
相关问题: RIP协议和谁交换? 多久交换一次? 交换什么?
距离向量算法(重要):
Open Shortest Path First
。开放式最短路径优先算法。
RIP协议当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。且只使用小型网络。而OSPF就是为了克服RIP协议的缺点的。
开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。
OSPF 具有以下特点:
所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快。
边界网关协议。Border Gateway Protocol
。
BGP 只能寻找一条比较好的路由,而不是最佳路由。
每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息。
BGP的邻站是交换整个的BGP路由表,但以后只需要在发生变化时更新有变化的部分。