网络层概述

本文将一些网络层的知识要点整合,以便回顾

网络层的服务


网络层向上只提供:

  1. 简单灵活的
  2. 无连接的
  3. 尽最大努力交付的
  • 虚电路服务
  • 数据报服务(√)

这么做的好处是:网络造价低,运行方式灵活、且可以适应多种应用

网际协议IP


概述:使用 IP 协议,可以把异构的物理网络连接起来,使得在网络层看起来好像是一个统一的网络。

好处:尽管互连在一起的网络的硬件地址体系各不相同,但IP层抽象的互联网却屏蔽了下层这些很复杂的细节。只要我们在网络层上讨论问题,就能使用统一的、抽象的IP地址研究主机和主机或路由器之间的通信。

问题:能不能让大家都使用相同的网络?这样可使网络互连变得比较简单。

回答:不行,没有一种单一的网络能够适应所有用户的需求。



与IP协议配套使用的协议

  • 地址解析协议 ARP(Address Resolution Protocol)
  • 网际控制报文协议 ICMP(Internet Control Message Protocol) 
  • 网际组管理协议 IGMP(Internet Group Management Protocol)


网络互连的中间设备

  • 物理层:转发器(repeater) 
  • 数据链路层:网桥(bridge)
  • 以太网交换机(switch) 
  • 网络层:路由器(router)
  • 在网络层以上:网关(gateway)



IP地址

关于IP地址需要注意的是:

全0::=“这个”
全1::=“所有的”
  • 网络号全0代表“本网络
  • 网络号为127(即 0111 1111)保留供本地软件做环回测试
  • 主机号全为0代表“本主机所连接到的单个网络地址
  • 主机号全为1代表“本网络上的所有主机


同一个局域网上的主机或路由器的IP地址中的网络号必须是一样的



IP地址的编址方法所经历的三个历史阶段:
  1. 分类的IP地址
  2. 子网的划分
  3. 构成超网

  • 分类的IP地址:

    (ABC类)IP地址 ::= {<网络号>,<主机号>}             //:“::=”表示“定义为”

    • 网络号:它标志主机或路由器所连接到的网络,且网络号在整个互联网范围内必须是唯一的
    • 主机号:它标志该主机或路由器,且主机号在它前面的网络号所指明的网络范围内必须是唯一的

    由上推出:一个IP地址在整个互联网范围内是唯一的

    网络号范围:
    A类:1-126
    B类:128-191
    C类:192-223 

  • 子网划分:

    通过在主机号字段中拿一部分作为子网号,把两级 IP 地址划分为三级 IP 地址。

    //注意:外部网络看不到子网的存在。

    使用子网掩码 将两级IP地址与子网掩码逐位相与,转为三级IP地址

    利弊:划分子网增加了灵活性,但却减少了能够连接在网络上的主机总数
    (因为主机号全为0的是网络地址,不可用,主机号全为1的是广播地址,也不可以分配给主机->每个子网少两个地址,又因为子网号不能全为0或全1(CIDR前)->少2*每个子网的主机数)

    结论:少的主机数 = 子网数*2 + 2*(每个子网的主机数)

  • 构成超网:

    概述:无分类编址 CIDR 消除了传统 A 类、B 类和 C 类地址以及划分子网的概念,使用网络前缀和主机号来对 IP 地址进行编码,网络前缀的长度可以根据需要变化。

    CIDR记法:IP 地址 ::= {< 网络前缀号 >, < 主机号 >}
    //例如 128.14.35.7/20 表示前 20 位为网络前缀。

    注意:CIDR 的地址掩码可以继续称为子网掩码,子网掩码首 1 长度为网络前缀的长度。

    好处:使用网络前缀来减少路由表项(称为路由聚合,也称为 构成超网)。

    最长前缀匹配:在路由表中的项目由“网络前缀”和“下一跳地址”组成,在查找时可能会得到不止一个匹配结果,应当采用最长前缀匹配来确定应该匹配哪一个。


地址解析协议ARP


我们应该知道:

网络层实现主机之间的通信,而链路层实现具体每段链路之间的通信。因此在通信过程中,IP 数据报的源地址和目的地址始终不变,而 MAC 地址随着链路的改变而改变。

在数据链路层,接收端要丢弃原来的MAC帧的首部和尾部,在转发时要重新添加上MAC帧的首部和尾部


那么问题是:


主机或路由器怎样知道应当在MAC帧的首部填入什么样的硬件地址?

答:

ARP 实现由 IP 地址得到 MAC 地址。
(ARP解决的是 同一个局域网上的 主机或路由器的IP地址和硬件地址的映射问题)


ARP地址解析协议

用途:从网络层使用的IP地址,解析出数据链路层使用的硬件地址

实现方法:在主机ARP高速缓存中存放一个IP地址到硬件地址的映射表,并且这个映射表还经常动态更新

问题:如何建立映射表?


答:

主机A要向本局域网上的某台主机B

数据报时,若查不到主机B的IP地址的项目,主机A就自动运行ARP

  1. ARP进程在本局域网上广播发送一个ARP请求分组,其主要内容是:“我的IP地址是xx,硬件地址是XX。我想知道IP地址为yy的主机的硬件地址”
  2. 本局域网上所有主机上运行的ARP进程都收到此ARP请求分组
  3. 主机B的IP地址与ARP请求分组重要查询的IP地址一致,收下这个请求分组,并向主机A发送ARP响应分组,其主要内容是“我的IP地址是yy,我的硬件地址是YY”。其余主机都不理睬这个ARP请求分组。
  4. 主机A收到B的ARP响应分组后,就在其ARP高速缓存中写入主机B的IP地址到硬件地址的映射

//注意:ARP对保存在高速缓存中的每一个映射地址项目都设置生存时间

总结:ARP请求分组是广播发送的,ARP响应分组则是单播


网际控制报文协议ICMP


我们应该知道:

目的:ICMP 是为了更有效地转发 IP 数据报和提高交付成功的机会。

作用:ICMP允许主机或路由器报告差错情况和提供有关异常情况的报告


它封装在 IP 数据报中(作为IP数据报中的数据部分),但是不属于高层协议。




ICMP 报文分为差错报告报文和询问报文。

Ping:


Ping是ICMP的一个重要应用,主要用来测试两台主机之间的连通性
Ping发送的IP数据报封装的是无法交付的UDP用户数据报


Tracert(Tracertroute):

Traceroute 是 ICMP 的另一个应用,用来跟踪一个分组从源点到终点的路径。


  • 源主机向目的主机发送一连串的 IP 数据报。第一个数据报 P1 的生存时间 TTL 设置为 1,当 P1 到达路径上的第一个路由器 R1 时,R1 收下它并把 TTL 减 1,此时 TTL 等于 0,R1 就把 P1 丢弃,并向源主机发送一个 ICMP 时间超过差错报告报文;
  • 源主机接着发送第二个数据报 P2,并把 TTL 设置为 2。P2 先到达 R1,R1 收下后把 TTL 减 1 再转发给 R2,R2 收下后也把 TTL 减 1,由于此时 TTL 等于 0,R2 就丢弃 P2,并向源主机发送一个 ICMP 时间超过差错报文。
  • 不断执行这样的步骤,直到最后一个数据报刚刚到达目的主机,主机不转发数据报,也不把 TTL 值减 1。但是因为数据报封装的是无法交付的 UDP,因此目的主机要向源主机发送 ICMP 终点不可达差错报告报文。
  • 之后源主机知道了到达目的主机所经过的路由器 IP 地址以及到达每个路由器的往返时间。

互联网的路由选择协议


根据路由算法能否随网络的通信量或拓扑自适应地进行调整变化来划分:

  1. 静态路由选择策略
  2. 动态路由选择策略
动态路由算法又可划分为:
  1. 内部网关协议IGP :
    • RIP路由信息协议(距离矢量)
    • OSPF开放最短路径优先协议(链路状态)

  2. 外部网关协议EGP:
    BGP-4边界网关协议(混合型)

虚拟专用网VPN


本地地址:仅在本机构内有效IP地址
全球地址:全球唯一的IP地址

三个专用地址块:

  • 10.0.0.0/8,它又称为24位块
  • 172.16.0.0/12,它又称为20位块
  • 192.168.0.0/16,它又称为16位块
专用IP地址也可叫做可重用地址


采用这样的专用IP地址的互连网络称为:

专用互联网本地互联网
或更简单些,就叫专用网

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

专用指:机构内的主机只与本机构内的其它主机通信;
虚拟指:“好像是”,而实际上并不是,它有经过公用的互联网。

下图中,场所 A 和 B 的通信经过互联网,如果场所 A 的主机 X 要和另一个场所 B 的主机 Y 通信,IP 数据报的源地址是 10.1.0.1,目的地址是 10.2.0.3。数据报先发送到与互联网相连的路由器 R1,R1 对内部数据进行加密,然后重新加上数据报的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到数据报后将数据部分进行解密,恢复原来的数据报,此时目的地址为 10.2.0.3,就交付给 Y。

如图4-59所示,场所A和B的内部网络所构成的虚拟专用网VPN又称为内联网

有时一个机构的VPN需要有些外部机构(通常是合作伙伴)参加进来。这样的VPN称为外联网

//注意:内联网和外联网都采用了互联网技术,即都是基于TCP/IP的


远程接入VPN:在外地工作的员工通过拨号上网,而驻留在员工个人电脑中的VPN软件可以在员工的个人电脑和公司的主机之间建立VPN隧道,因而外地员工与公司通信的内容也是保密的,员工们感到好像就是使用公司内部的本地网络



网络地址转换NAT

专用网内部的主机使用本地 IP 地址又想和互联网上的主机通信时,可以使用 NAT 来将本地 IP 转换为全球 IP。

传统的NAT:NAT 将本地 IP 和全球 IP 一一对应,这种方式下拥有 n 个全球 IP 地址的专用网内最多只可以同时有 n 台主机接入互联网

网络地址与端口号转换NAPT: NAT 转换表把运输层的端口号也用上了,使得多个专用网内部的主机共用一个全球 IP 地址




//注意:专用网内部的主机不能充当服务器用,因为互联网上的客户无法请求专用网内的服务器提供服务


Comments

Popular posts from this blog

抓包工具Wireshark下载及安装教程

HTTP协议特性

Java中Synchronized的用法