计算机网络之 IP层------COOKIE

 

目录

数据交换方式: 

数据报传输方式 (应用主流)和虚电路传输方式: 

IP数据报 的数据格式:

IP地址的分类: 

无类型域间选路CIDR:

公有IP地址和私有IP地址的区别:

一个容易“犯错”的CIDR

MAC地址:

IP层几个重要的协议: 

         ARP协议:

DCHP(动态主机设置协议,传输层协议)

ICMP(网际控制报文协议)

         IGMP(维护IP组播的一种协议)

路由算法和路由选择协议:

1.路由器的结构:

2.路由器将IP报文进行转发的流程

3.路由算法:

    RIP(距离向量)

    RIP协议报文格式:

    OSPF(开放式最短路径优先)

     BGP(边界网关)


 

 

数据交换方式: 

在网络层主要用到了分组交换:  

     1.数据报方式 :动态的选择传输路径,相当于无连接服务

      2.虚电路方式:固定的传输路径,相当于连接服务

计算机网络之 IP层------COOKIE_第1张图片

 

数据报传输方式 (应用主流)和虚电路传输方式: 

 

计算机网络之 IP层------COOKIE_第2张图片

 

IP数据报 的数据格式:

 

计算机网络之 IP层------COOKIE_第3张图片

 

首部检验和——占16 位,只检验数据报的首部,不检验数据部分。这里不采用 CRC 检验码而采用简单的计算方法。

 

 

IP地址的分类: 

 

这里先说三个特殊的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类

计算机网络之 IP层------COOKIE_第4张图片

在网络地址中,至少在当时设计的时候,对于A、B、 C类主要分两部分

  • 前面一部分是网络号
  • 后面一部分是主机号

这很好理解,大家都是六单元1001号

我是小区A的六单元1001号

而你是小区B的六单元1001号。

  • 下面这个表格,详细地展示了A、B、C三类地址所能包含的主机的数量

计算机网络之 IP层------COOKIE_第5张图片


这里面有个尴尬的事情,就是C类地址能包含的最大主机数量实在太少了,只有254个
当时设计的时候恐怕没想到,现在估计一个网吧都不够用吧
而B类地址能包含的最大主机数量又太多了。6万多台机器放在一个网络下面,一般的企业基本达不到这个规模,闲着的地址就是浪费。

根据这种现象,于是就产生了:

 

无类型域间选路CIDR:

 

这打破了原来设计的几类地址的做法,将32位的IP地址一分为二

  • 前面是网络号
  • 后面是主机号

10.100.122.2/24,这个IP地址中有一个斜杠,斜杠后面有个数字24

这种地址表示形式,就是CIDR

后面24的意32位中前24是网络号,后8位是主机号

伴随着CIDR存在的

  • 一个是广播地址
    10.100.122.255 如果发送这个地址,所有10.100.122网络里面的机器都可以收到
  • 另一个是子网掩码
    255.255.255.0

将子网掩码和IP地址进行AND计算,就可得到网络号

 

公有IP地址和私有IP地址的区别:

计算机网络之 IP层------COOKIE_第6张图片

 

上面的表格。表格最右列是私有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

 

 

一个容易“犯错”的CIDR

 

我们来看16.158.165.91/22这个CIDR

求一下这个网络的第一个地址、子网掩码和广播地址

你要是上来就写16.158.165.1,那就大错特错!!!

/22不是8的整数倍,不好办,只能先变成二进制来看

  • 16.158的部分不会动,它占了前16位
  • 中间的165,变为二进制为‭10100101‬。除了前面的16位,还剩6位。所以,这8位中前6位是网络号,16.158.<101001>,而<01>.91是机器号。

第一个地址是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。

 

 

 

MAC地址:

 

是一个网卡的物理地址,用十六进制,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是身份证,无定位功能
  • CIDR可以用来判断是不是本地人
  • IP分公有的IP和私有的IP

 

IP层几个重要的协议: 

 

ARP协议:

 完成主机或路由器IP地址到MAC地址的映射。 解决下一跳走哪的问题

ARP协议4种典型情况:

  • 1、主机A发给本网络上的主机B: 用ARP找到主机B的硬件地址;
  • 2、主机A发给另一网络上的主机B: 用ARP找到本网络上一个路由器(网关) 的硬件地址,
  • 3、路由器发给本网络的主机A: 用ARP找到主机A的硬件地址;
  • 4、路由器发给另一网络的主机B: 用ARP找到本网络上的一个路由器的硬件地址。

ARP协议使用过程:

检查ARP高速缓存,有对应表项则写入MAC帧,没有则用目的MAC地址为FF-FF-FF-FF-FF-FF的帧封装并广播ARP请求分组,同一局域网中所有主机都能收到该请求。目的主机收到请求后就会向源主机单播一个ARP响应分组,源主机收到后将此映射写入ARP缓存 (10-20min更新一次) 。ARP协议是自动进行的。

 

DCHP(动态主机设置协议,传输层协议)

 

Dynamic Host Configuration Protocol

静态主机配置: 例如机房的电脑的配置,你左边同学的配置的IP和你的IP一般是相邻的。

动态主机配置: 例如我们大学教师上课,是需要经常移动的,到了某个教室,会选择动态分配一个暂用IP。

计算机网络之 IP层------COOKIE_第7张图片

 

ICMP(网际控制报文协议)

Internet Control Message Protocol

ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会(桥梁作用)。它封装在 IP 数据报中,但是不属于高层协议。主要有两种: ICMP差错报文、ICMP询问报文

计算机网络之 IP层------COOKIE_第8张图片

ICMP应用

ICMP有两个应用命令: PINGTraceroute

PING

测试两个主机之间的连通性,使用了ICMP回送请求和回答报文

Ping 的原理是通过向目的主机发送 ICMP Echo 请求报文,目的主机收到之后会发送 Echo 回答报文。Ping 会根据时间和成功响应的次数估算出数据包往返时间以及丢包率。

Traceroute

跟踪一个分组从源点到终点的路径,使用了ICMP时间超过差错报告报文

IGMP(维护IP组播的一种协议)

IGMP 实现如下双向的功能:

  • (1)、主机通过 IGMP 通知路由器希望接收或离开某个特定组播组的信息。
  • (2)、路由器通过 IGMP 周期性地查询局域网内的组播组成员是否处于活动状态,实现所连网段组成员关系的收集与维护。

 

IGMP工作的两个阶段:

  • 1)、某主机要加入组播组时,该主机向组播组的组播地址发送一个IGMP报文,声明自己要称为该组的成员。

本地组播路由器收到IGMP报文后,要利用组播路由选择协议把这组成员关系发给因特网上的其他组播路由器。

  • 2)、本地组播路由器周期性探询本地局域网上的主机,以便知道这些主机是否还是组播组的成员。只要有一个主机对某个组响应,那么组播路由器就认为这个组是活跃的,如果经过几次探询后没有一个主机响应,组播路由器就认为本网络上的没有此组播组的主机,因此就不再把这组的成员关系发给其他的组播路由器。

ICMP和IGMP都使用IP数据报传递报文。

 

 

路由算法和路由选择协议:

 

1.路由器的结构:

交换结构(Switch fabric)、一组输入端口、一组输出端口。

计算机网络之 IP层------COOKIE_第9张图片

2.路由器将IP报文进行转发的流程

流程:

  • 从数据报的首部提取目的主机的 IP 地址 D,得到目的网络地址 N。
  • 若 N 就是与此路由器直接相连的某个网络地址,则进行直接交付
  • 若路由表中有目的地址为 D 的特定主机路由,则把数据报传送给表中所指明的下一跳路由器;
  • 若路由表中有到达网络 N 的路由,则把数据报传送给路由表中所指明的下一跳路由器;
  • 若路由表中有一个默认路由,则把数据报传送给路由表中所指明的默认路由器;
  • 报告转发分组出错。

 

3.路由算法:

计算机网络之 IP层------COOKIE_第10张图片

 

目前主流还是动态路由算法: 

     1.OSPF链路状态路由算法: 所有的路由器掌握完整对的网络连接和链路的费用的信息;

     2.RIP距离向量算法:只掌握物理相连的邻居以及链路费用;

分层次的路由选择协议: 分成自治系统内(RIPOSPF)的和自治系统外(BGP)的。

由于因特网规模很大,许多单位不想让外界知道自己的路由选择协议,但还是想连入因特网。于是有了自治系统AS

自治系统AS: 在单一的技术管理下的一组路由器,而这些路由器使用一种AS内部的路由选择协议和共同的度 量以确定分组在该AS内的路由,同时还使用一种AS之间的路由协议以确定在AS之间的路由。一个As内的所有网络都属于一个行政单位来管辖,一个自治系统的所有路由器在本自治系统内都必须连通。

 计算机网络之 IP层------COOKIE_第11张图片

  

RIP(距离向量)

Routing Information Protocol,路由信息协议。RIP其实是应用层的协议

RIP是一种分布式的基于距离向量的路由选择协议,是因特网的协议标准,最大优点是简单。

RIP协议要求网络中每一个路由器都维护从它自己到其他每一个目的网络的唯一最佳距离记录 (即一组距离) 。

距离 : 通常为“跳数”,即从源端口到目的端口所经过的路由器个数,经过一个路由器跳数+1。特别的,从一路 由器到直接连接的网络距离为1。RIP允许一条路由最多只能包含15个路由器,因此距离为16表示网络不可达。所以RIP只适用于小型网络。

看个路由表例子:

相关问题: RIP协议和谁交换? 多久交换一次? 交换什么?

  • 仅和相邻路由器交换信息;
  • 路由器交换的信息是自己的路由表
  • 每30秒交换一次路由信息,然后路由器根据新信息更新路由表。若超过180s没收到邻居路由器的通告,则判定邻居没了,并更新自己路由表;

距离向量算法(重要):

计算机网络之 IP层------COOKIE_第12张图片

 

计算机网络之 IP层------COOKIE_第13张图片

 

 

计算机网络之 IP层------COOKIE_第14张图片

 

RIP协议报文格式:

计算机网络之 IP层------COOKIE_第15张图片

 

OSPF(开放式最短路径优先)

Open Shortest Path First。开放式最短路径优先算法。

RIP协议当网络出现故障时,要经过比较长的时间才能将此消息传送到所有路由器。且只使用小型网络。而OSPF就是为了克服RIP协议的缺点的。

开放表示 OSPF 不受某一家厂商控制,而是公开发表的;最短路径优先表示使用了 Dijkstra 提出的最短路径算法 SPF。

OSPF 具有以下特点:

  • 向本自治系统中的所有路由器发送信息,这种方法是洪泛法(即路由器通过输出端口向所有相邻的路由器发送信息)。
  • 发送的信息就是与相邻路由器的链路状态,链路状态包括与哪些路由器相连以及链路的度量,度量用费用、距离、时延、带宽等来表示。
  • 只有当链路状态发生变化时,路由器才会发送信息

所有路由器都具有全网的拓扑结构图,并且是一致的。相比于 RIP,OSPF 的更新过程收敛的很快

 

 

 

 

 

BGP(边界网关)

边界网关协议。Border Gateway Protocol

  • 和谁交换? : 与其他AS的邻站BGP发言人交换信息;
  • 交换什么? : 交换的网络可达性的信息,即要到达某个网络所要经过的一些列AS;
  • 多久交换? : 发生变化时更新有变化的部分;

BGP 只能寻找一条比较好的路由,而不是最佳路由

每个 AS 都必须配置 BGP 发言人,通过在两个相邻 BGP 发言人之间建立 TCP 连接来交换路由信息

BGP的邻站是交换整个的BGP路由表,但以后只需要在发生变化时更新有变化的部分

 

 

计算机网络之 IP层------COOKIE_第16张图片

 

你可能感兴趣的:(计算机网络)