定义

网络层的目的是实现两个端系统之间的数据透明传送,具体功能包括寻址和路由选择、连接的建立、保持和终止等。它提供的服务使传输层不需要了解网络中的数据传输和交换技术。如果您想用尽量少的词来记住网络层,那就是“路径选择、路由及逻辑寻址”。

网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务

IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP

网际层IP的作用:物理地址寻址、数据的成帧、流量控制、数据的检错、重发等。数据链路层为网络层提供可靠的数据传输**
网际层IP的协议IPICMPARPRARP、OSPF、IPX、RIP、IGRP、
网际层IP的设备:路由器

网际协议IP

虚拟互联网络

分类的IP地址

网络地址

IP地址由网络号(包括子网号)和主机号组成,网络地址的主机号为全0,网络地址代表着整个网络。

四类地址

其中A类,B类,C类地址都是单播地址,而网络号里的1-3位表示类别位。IP地址指派范围

一般不使用的特殊ip地址


A类地址(50%)以0开头,第一个字节作为网络号

  • 地址范围为:1.0.0.0 到126.0.0.0
  • 每个A类子网最大主机数2^24-2 = 16777214

B类地址(25%)以10开头,前两个字节作为网络号,默认128.0.0.0不指派

  • 地址范围为:128.1.0.0到191.255.255.255
  • 每个B类子网最大主机数2^16 -2 = 65534

C类地址(12.5%)以110开头,前三个字节作为网络号,默认192.0.0.0不指派

  • 地址范围为:192.0.1.0~223.255.255.255。
  • 每个C类子网最大主机数2^8 -2 = 254

D类地址以1110开头

  • 地址范围是224.0.0.0~239.255.255.255,D类地址作为组播地址(一对多的通信);

E类地址以1111开头,地址范围是240.0.0.0~255.255.255.255,E类地址为保留地址,供以后使用。

注意:注:只有A,B,C有网络号和主机号之分,D类地址和E类地址没有划分网络号和主机号。

上图描述的是C类地址,前三个字节作为网络号

1,同一个局域网上的主机或路由器中的ip地址中的网络号必须是一样的
2,两个路由器直连时可以不分配IP地址
3,用网桥(交换机)互联的网段仍然是一个局域网

ip数据报格式

ip地址与硬件地址

ip地址和硬件地址写的位置不同

从不同层次上看ip地址和硬件地址

而ip地址到硬件地址的映射,由ARP协议来完成,注意,APR协议是解决同一个局域网上的主机或者路由器的IP地址和硬件地址的映射问题。

ARP和RARP工作流程分析

地址解析协议,即ARP(Address Resolution Protocol),是根据IP地址获取物理地址的一个TCP/IP协议。主机发送信息时将包含目标IP地址的ARP请求广播到网络上的所有主机,并接收返回消息,以此确定目标的物理地址收到返回消息后将该IP地址和物理地址存入本机ARP缓存中并保留一定时间,下次请求时直接查询ARP缓存以节约资源。地址解析协议是建立在网络中各个主机互相信任的基础上的,网络上的主机可以自主发送ARP应答消息,其他主机收到应答报文时不会检测该报文的真实性就会将其记入本机ARP缓存;由此攻击者就可以向某一主机发送伪ARP应答报文,使其发送的信息无法到达预期的主机或到达错误的主机,这就构成了一个ARP欺骗。ARP命令可用于查询本机ARP缓存中IP地址和MAC地址的对应关系、添加或删除静态对应关系等。

ARP协议工作流程

主机A的IP地址为192.168.1.1,MAC地址为0A-11-22-33-44-01;
主机B的IP地址为192.168.1.2,MAC地址为0A-11-22-33-44-02;
当主机A要与主机B通信时,地址解析协议可以将主机B的IP地址(192.168.1.2)解析成主机B的MAC地址,以下为工作流程:

  1. 根据主机A上的路由表内容,IP确定用于访问主机B的转发IP地址是192.168.1.2。然后A主机在自己的本地ARP缓存中检查主机B的匹配MAC地址

  2. 如果主机A在ARP缓存中没有找到映射,它将询问192.168.1.2的硬件地址,从而将ARP请求帧广播到本地网络上的所有主机。源主机A的IP地址和MAC地址都包括在ARP请求中。本地网络上的每台主机都接收到ARP请求并且检查是否与自己的IP地址匹配。如果主机发现请求的IP地址与自己的IP地址不匹配,它将丢弃ARP请求。

  3. 主机B确定ARP请求中的IP地址与自己的IP地址匹配,则将主机A的IP地址和MAC地址映射添加到本地ARP缓存中。

  4. 主机B将包含其MAC地址的ARP回复消息直接发送回主机A。

  5. 当主机A收到从主机B发来的ARP回复消息时,会用主机B的IP和MAC地址映射更新ARP缓存。本机缓存是有生存期的,生存期结束后,将再次重复上面的过程。主机B的MAC地址一旦确定,主机A就能向主机B发送IP通信了。

注意:ARP是广播发送,ARP响应是单播发送的。

RARP协议工作流程

逆地址解析协议,即RARP,功能和ARP协议相对,其将局域网中某个主机的物理地址转换为IP地址,比如局域网中有一台主机只知道物理地址而不知道IP地址,那么可以通过RARP协议发出征求自身IP地址的广播请求,然后由RARP服务器负责回答。

RARP是逆地址解析协议,作用是完成硬件地址到IP地址的映射,主要用于无盘工作站,因为给无盘工作站配置的IP地址不能保存。RARP协议工作流程:

  1. 给主机发送一个本地的RARP广播,在此广播包中,声明自己的MAC地址并且请求任何收到此请求的RARP服务器分配一个IP地址

  2. 本地网段上的RARP服务器收到此请求后,检查其RARP列表,查找该MAC地址对应的IP地址

  3. 如果存在,RARP服务器就给源主机发送一个响应数据包并将此IP地址提供给对方主机使用

  4. 如果不存在,RARP服务器对此不做任何的响应

  5. 源主机收到从RARP服务器的响应信息,就利用得到的IP地址进行通讯;如果一直没有收到RARP服务器的响应信息,表示初始化失败。

ip层转发分组的流程

下面是一个路由表举例

分组转发算法归纳:


路由选择协议(内部网关协议)

RIP协议

RIP协议 :底层是贝尔曼福特算法,它选择路由的度量标准(metric)是跳数,最大跳数是15跳,如果大于15跳,它就会丢弃数据包。

OSPF协议

定义

OSPF协议 :Open Shortest Path First开放式最短路径优先,底层是迪杰斯特拉算法,是链路状态路由选择协议,它选择路由的度量标准是带宽,延迟。
它只是一个协议名字,并不表示其他的路由选择协议不是“最短路径优先”。

主要特征

OSPF最主要的特征就是使用分布式的链路状态协议(link state protocol),OSPF有三个要点:

  • 向本自治系统中所有路由器发送信息。使用洪泛法(flooding),路由器通过所有输出端口向所有相邻的路由器发送信息。
  • 发送的信息就是与本路由器相邻的所有路由器的链路状态,但这只是路由器所知道的部分信息。链路状态就是说明本路由器都和那些路由器相邻,以及该链路的“度量”(metric)。用来表示费用、距离、时延、带宽、等等。
  • 只有当链路状态发生变化时,路由器才向所有路由器用洪泛法发送信息。

OSPF特点:
(1)OSPF允许管理员给每条路由指派不同的代价。OSPF对于不同类型的业务可计算出不同的路由。

(2)若果到同一个目的网络有多条相同代价的路径,那么可以将同信量分配给这几条路径,这叫做路径间的负载均衡

(3)所有在OSPF路由器之间交换的分组,都具有鉴别的功能。

(4)OSPF支持可变长度的子网划分和无分类的编址CIDR.

(5)由于网络中的链路状态可能经常发生变化,因此OSPF让每一个链路状态都带上一个32位的序号,序号越大状态就越新

TML

划分子网

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网络号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的用户群使用。

这里主要是为了在网络分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网络位界限中扩展或压缩子网掩码,用来创建某类地址的更多子网。但创建更多的子网时,在每个子网上的可用主机地址数目会比原先减少。

什么是子网掩码

子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进制地址,其每一个为1代表该位是网络位,为0代表主机位。它和IP地址一样也是使用<stron>来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。</stron>

子网掩码的计算

对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 10.12.3.0,无须再分割子网,则该IP地址的子网掩码255.255.0.0。如果它是一个C类地址,则其子网掩码为 255.255.255.0。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网络号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。

下面总结一下有关子网掩码和网络划分常见的面试考题:

利用子网数来计算

如果想把B类地址168.195.0.0划分成27个子网,则子网掩码为:
1,把数目转化为二进制:27个子网,二进制为11011,
2,取的该二进制位数:5
3,将B类地址168.195.0.0的主机位前5位置1,得到255.255.248.0

利用主机数来计算

如欲将B类IP地址168.195.0.0划分成若干子网,每个子网内有主机700台:
1,700台主机转为二进制
700 = 10 10111100
2,如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进制位数,为N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位;
占据10位二进制位
3,则子网掩码为255.255.11111100,00000000,也就是255.255.252.0

已知掩码求主机数

例题:把网络202.112.78.0划分为多个子网(子网掩码是255.255.255.192),则各子网中可用的主机地址总数是:因为192占用2位且是C类地址,所以子网数为2^2-2 = 2每个子网的主机数是2^6-2 = 62,所以总的主机数是124。

和下层的对接

继续讲那个小例子,现在包裹(ip数据报)在不同的网络里流动,但不同的站点人员只是知道上边的地址,并不知道怎么到那个地址,所以需要解析为具体路径,例如,前行500m右拐之类的(ARP协议解析为MAC地址)这样就可以知道怎么到那了。但具体怎么走(依赖下两层,数据链路层和物理层)

这样包裹又套上了一个导航(数据帧)包括:前导+包裹(IP数据报)+后导
数据链路层通过解析好的MAC地址层层送