第四章:网络层

网际协议 IP 是 TCP/IP 体系中两个最主要的协议之一。

与 IP 协议配套使用的还有三个协议:

地址解析协议 ARP (Address Resolution Protocol)

网际控制报文协议 ICMP (Internet Control Message Protocol)

网际组管理协议 IGMP (Internet Group Management Protocol)

使用转发器或网桥不称为网络互连:

转发器、网桥或交换机(数据链路层)仅把一个网络扩大了,仍然是一个网络

网络互连使用路由器(网络层)

IP 地址: 给每个连接在互联网上的主机(或路由器)分配一个唯一的32位的标识符。

每一类地址都由两个固定长度的字段组成

网络号 net-id,它标志主机(或路由器)所连接到的网络,

主机号 host-id,它标志该主机(或路由器)。

点分十进制:

把32 位二进制代码每8位为一组, 每8位的二进制数转换为十进制数,再用点隔开.

例:10000000000010110000001100011111->128.11.3.31

ABCDE五类IP地址:

其中ABC三类最常用:

       A类: 1.0.0.1—126.255.255.254

其中10.X.X.X(10.0.0.1—10.255.255.254)私有地址(只有一个网络)

127.X.X.X保留地址,用做循环测试

最大可指派的网络数: 126 (2^7 – 2)

每个网络中最大主机数: 16777214(2^24-2)

       B类: 128.0.0.1—191.255.255.254

              其中172.16.0.0—172.31.255.254私有地址(有16个网络)

169.254.X.X保留地址,191.255.255.255是广播地址

最大可指派的网络数: 16383 (2^14 – 1)

每个网络中最大主机数: 65534 (2^16-2)

       C类: 192.0.0.1—223.255.255.254

              其中192.168.X.X(192.168.0.1—192.168.255.255)私有地址(有255个网络)

最大可指派的网络数: 2097151 (2^21 – 1)

每个网络中最大主机数: 254 (2^8-2)

特殊地址:

       全0网络地址:只在系统启动时有效,用于启动时临时通信,又叫主机地址

       127.0.0.0:指本地节点(一般为127.0.0.1),用于测试网卡及TCP/IP软件

全0主机地址:用于指定网络本身,称之为网络地址或者网络号

全1主机地址:用于广播,也称定向广播,需要指定目标网络

0.0.0.0:指任意地址

255.255.255.255:用于本地广播,也称有限/受限广播,无须知道本地网络地址

划分子网(属于一个单位内部的事情,对外不表现划分了子网)

       子网或子网络是网络内部的网络。子网使网络更高效。

通过子网划分,网络流量传播距离更短,无需通过不必要的路由器即可到达目的地。

变成了三级结构:

     

子网掩码:

       子网掩码长度 = 32 位

某位 = 1:IP地址中的对应位为网络号和子网号

某位 = 0:IP地址中的对应位为主机号 

IP 地址子网掩码按位与运算得到网络地址.

例:地址141.14.72.24,子网掩码255.255.192.0,网络地址:141.14.64.0

A类IP地址: 默认子网掩码255.0.0.0

B类IP地址: 默认子网掩码255.255.0.0

C类IP地址: 默认子网掩码255.255.255.0

所以路由器的路由表中的每一个项目,要给出目的网络地址以及该网络的子网掩码

无分类编址CIDR(2级结构)

网络前缀+主机号

    

CIDR 记法:斜线记法 (slash notation)

a.b.c.d / n:二进制 IP 地址的前 n 位网络前缀

例如:128.14.35.7/20:前 20 位是网络前缀, 共有 2^12 个地址。

       128.14.32.0/20 地址块的最小地址128.14.32.0

128.14.32.0/20 地址块的最大地址128.14.47.255

(10000000 00001110 00101111 11111111)

              10.0.0.0/10 可简写为 10/10,也就是把点分十进制中低位连续的 0 省略

                     掩码(注意不是子网掩码)是 255.192.0.0

              00001010 00*(网络前缀的后面加一个星号 *)

星号表示IP地址中的主机号,可以是任意值

路由聚合(也称构成超网): 一个 CIDR 地址块可以表示很多地址。

       有利于减少路由器之间的路由选择信息的交换(减小了转发表所占的存储空间,以及查找转发表的时间),从而提高了整个互联网的性能。

主机H1主机H2的通信过程中,可能经过多个路由器,这时IP数据报源地址和目的地址不发生变化,MAC帧源地址和目的地址发生变化。

IP 层抽象的互联网屏蔽了下层这些很复杂的细节。

地址解析协议 ARP: (IP地址->MAC地址)

       通信时使用了两个地址:

IP地址(网络层地址)

MAC地址(数据链路层地址)

       每一个主机都设有一个 ARP 高速缓存 (ARP cache),里面有所在的局域网上的各主机和路由器的 IP 地址到硬件地址的映射表

      

       过程:

主机A向本局域网上的某个主机B发送IP数据报

先在其ARP高速缓存中查看有无主机B的 IP 地址

,查出其对应的硬件地址并写入 MAC 帧, 然后通过局域网发往此硬件地址.

没有, ARP进程在本局域网上广播发送一个ARP请求分组

收到ARP响应分组后,将得到的IP地址到硬件地址的映射写入ARP高速缓存。

       ARP请求分组:

发送方硬件地址             发送方 IP 地址

目标方硬件地址(未知时填0) 目标方 IP 地址

       ARP 响应分组:

发送方硬件地址           发送方 IP地址

目标方硬件地址           目标方 IP 地址

ARP请求本地广播,路由器不会转发ARP请求. ARP 分组封装在物理网络的帧传输。

ARP欺骗攻击——仿冒网关:

       攻击者发送伪造的网关ARP报文,欺骗同网段内的其它主机。

主机访问网关会被重定向到一个错误的MAC地址,导致该用户无法正常访问外网。

       ARP欺骗攻击——欺骗网关:

              攻击者伪造虚假的ARP报文,欺骗网关

网关发给该用户的所有数据全部重定向到一个错误的MAC地址

       ARP欺骗攻击——欺骗终端用户:

              攻击者伪造虚假的ARP报文,欺骗相同网段内的其他主机。

网段内的其他主机发给该用户的所有数据都被重定向到错误的MAC地址,同网段内的用户无法正常互访。

       ARP泛洪攻击:

              攻击者伪造大量不同ARP报文在同网段内进行广播,导致网关ARP表项被占满,合法用户的ARP表项无法正常学习,导致合法用户无法正常访问外网。

IP 数据报: 首部和数据两部分组成

       首部:

前一部分是固定长度,共 20 字节,是所有 IP 数据报必须具有的。

固定部分的后面是一些可选字段,其长度是可变的。

       32位->4字节,  4 字节×5 = 20字节(固定部分)

版本->4位,指IP协议的版本,目前的IP协议版本号为4 (即IPv4)。

       首部长度->4位,可表示的最大数值是15个单位(一个单位为4字节),

因此IP的首部长度最大值60字节

       区分服务->8位,用来获得更好的服务。

       总长度->16位,指首部和数据之和的长度,单位为字节,因此数据报最大长度65535字节。总长度必须不超过最大传送单元 MTU

       标识->16位,是一个计数器,用来产生IP数据报的标识。

       标志->3位, 最低位是 MF,MF=1 表示后面“还有分片”。MF=0 表示最后一个分片

                     标志字段中间的一位是 DF,只有当 DF = 0 时才允许分片

       片偏移->13位,指出:较长的分组在分片后某片在原分组中的相对位置

片偏移以 8 个字节为偏移单位

生存时间->8位,记为TTL,指示数据报在网络中可通过的路由器数最大值

       协议->8 位,指出此数据报携带的数据使用何种协议。

       首部检验和->16 位只检验数据报的首部(16位二进制反码求和算法)

                     校验和字段置为0, 首部中每个16位字进行二进制求和,结果再取反码。

       源地址目的地址都各占4字节

       可变部分: 是一个选项字段, 用来支持排错、测量以及安全等措施.

                      长度可变,从1个字节到40个字节不等。(很少被使用)

注意:路由器收到待转发的数据报,不是将下一跳路由器的 IP 地址填入 IP 数据报,而是送交下层的网络接口软件。网络接口软件使用 ARP 负责将下一跳路由器的 IP 地址转换成硬件地址,并将此硬件地址放在链路层的 MAC 帧的首部,然后根据这个硬件地址找到下一跳路由器。 

路由器转发分组的算法:

(1) 从收到的分组的首部提取目的 IP 地址 D

(2) 先用各网络的子网掩码和 D 逐位相“与”,看是否和相应的网络地址匹配。若匹配,则将分组直接交付。否则就是间接交付,执行 (3)

(3) 若路由表中有目的地址为 D 的特定主机路由,则将分组传送给指明的下一跳路由器;否则,执行 (4)

(4) 对路由表中的每一行,将子网掩码和 D 逐位相“与”。若结果与该行的目的网络地址匹配,则将分组传送给该行指明的下一跳路由器;否则,执行 (5)

(5) 若路由表中有一个默认路由,则将分组传送给路由表中所指明的默认路由器;否则,执行 (6)

(6) 报告转发分组出错。

最长前缀匹配(最长匹配或最佳匹配):

      使用 CIDR 时,路由表中的每个项目由“网络前缀”和“下一跳地址”组成。在查找路由表时可能会得到不止一个匹配结果。 应当从匹配结果中选择具有最长网络前缀的路由(网络前缀越长,其地址块就越小,因而路由就越具体)。

网际控制报文协议 ICMP: (更有效地转发IP数据报和提高交付成功的机会)

       两种报文类型:
              ICMP 差错报告报文

ICMP 询问报文

       ICMP 报文前 4 个字节是统一的格式,共有三个字段:即类型、代码和检验和

接着的 4 个字节的内容与 ICMP 的类型有关。

ICMP 的应用举例:

       PING:用来测试两个主机之间的连通性

       Traceroute(Windows中是tracert): 用来跟踪一个分组从源点到终点的路径

IPV6:

       每个地址占 128 位, 使用冒号十六进制记法(每个 16 位的值用十六进制值表示,各值之间用冒号分隔, 允许把数字前面的 0 省略, 一连串连续的零可以为一对冒号所取代)

       FF05:0:0:0:0:0:0:B3    可压缩为:FF05::B3(在任一地址中只能使用一次零压缩)

IP 路由表通常包括三项内容,他们是子网掩码目的网络地址下一跳.

路由选择协议:

       内部网关协议 IGP (Interior Gateway Protocol) 

在一个自治系统内部使用的路由选择协议。目前这类路由选择协议使用得最多,如 RIP 和 OSPF 协议。

路由信息协议 RIP (Routing Information Protocol) 是内部网关协议 IGP 中最先得到广泛使用的协议。

RIP 是一种分布式的基于距离向量的路由选择协议。RIP 协议中的“距离”也称为“跳数”(hop count),因为每经过一个路由器,跳数就加 1。

三个要点:

    仅和相邻路由器交换信息

    交换的信息是当前本路由器所知道的全部信息,即自己的路由表

    按固定的时间间隔交换路由信息

路由表更新:

先修改此 RIP 报文中的所有项目:把“下一跳”字段中的地址都改为 X,并把所有的“距离”字段的值加 1

目的网络不在路由表中,则把该项目加到路由表

否则

     若下一跳字段给出的路由器地址是X,则把收到的项目替换原路由表。

     否则

        若收到项目中的距离小于路由表中的距离,则进行更新

           否则,什么也不做。

RIP特点: 好消息传播得快,而坏消息传播得慢。网络出故障的传播时间往往需要较长的时间(例如数分钟)。限制了网络的规模,它能使用的最大距离为 15(16 表示不可达)但是实现简单,开销较小
 

开放最短路径优先 OSPF(使用了 Dijkstra 提出的最短路径算法 SPF)

    直接用 IP 数据报传送

三个要点:

向本自治系统中所有路由器发送信息, 洪泛法   

发送的信息就是与本路由器相邻的所有路由器的链路状态      

只有当链路状态发生变化时,路由器才用洪泛法向所有路由器发送此信息。

                     所有的路由器最终都能建立一个链路状态数据库.

OSPF 适合于在大型的、动态的互联网上使用,而RIP 适合于在小型的、动态的互联网上使用.

外部网关协议 EGP (External Gateway Protocol)

若源站和目的站处在不同的自治系统中,当数据报传到一个自治系统的边界时,就需要使用一种协议将路由选择信息传递到另一个自治系统中。这样的协议就是外部网关协议 EGP。在外部网关协议中目前使用最多的是 BGP-4。 

边界网关协议 BGP: 不同自治系统的路由器之间交换路由信息的协议.

       寻找一条能够到达目的网络比较好的路由(不兜圈子),而并非要寻找一条最佳路由。 

虚拟专用网 VPN:

       利用公用的互联网作为本机构各专用网之间的通信载体

       是为本机构的主机用于机构内部的通信,而不是用于和网络外非本机构的主机通信。

       隧道技术: 所有通过互联网传送的数据都必须加密

网络地址转换 NAT:

       使用本地地址的主机在和外界通信时,都要在 NAT 路由器上将其本地地址转换成全球 IP 地址,才能和互联网连接。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值