计算机网络 网络层(上)

Posted My heart will go ~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了计算机网络 网络层(上)相关的知识,希望对你有一定的参考价值。

网络层(上)

1.网络层提供的两种服务

对于网络层面向连接与否,可靠交付与否,存在着较多的争论。
而最后互联网的设计思路是:网络层向上只提供简单灵活的、无连接的、尽最大努力交付的数据报服务。

2.网际协议IP

网际协议IP是TCP/IP体系中最主要的协议之一。与IP协议配套使用的还有三个协议:地址解析协议(ARP),网际控制报文协议(ICMP),网际组管理协议(IGMP)

中间系统:将网络互相连接起来的中间设备。五种不同的中间设备:

  1. 物理层中继系统:转发器 (repeater)。
  2. 数据链路层中继系统:网桥 或 桥接器 (bridge)。
  3. 网络层中继系统:路由器 (router)。
  4. 网桥和路由器的混合物:桥路器 (brouter)。
  5. 网络层以上的中继系统:网关 (gateway)。
    网络互连:用路由器进行网络互连和路由选择。
    虚拟互连网络(逻辑互连网络):虽然各种物理网络的异构性本来是客观存在的,但是利用 IP 协议就可以使这些性能各异的网络看起来好像是统一的网络。

IP地址:给每个在互联网上的主机(或路由器)分配一个在全世界范围是唯一的32位的标识符。
分类的IP地址:是最基本的编址方法。具体如下,
每一类地址由网络号和主机号组成。主机号在其网络号指明的网络范围内是 唯一的。
各类IP地址:

常用的三类IP地址:

一般不适用的特殊IP地址:

IP地址的重要特点:
1.IP地址是一种分等级的地址结构,分级的好处在于:(1).IP管理机构只分配网络号,剩下的主机号由单位自行分配。(2).路由器仅根据网络号进行转发,使得路由表项目大幅减少。
2.IP地址是标志一个主机和一条链路的接口。一个主机接到两个网络时,主机必须同时有两个IP,主机称为多归属主机。一个路由器至少连接两个网络,所以一个路由器至少有两个不同的IP地址。
3.用转发器或者网桥连接起来的网络是一个网络,有相同的网络号。
4.所有分配到网络号的网络,无论大小,都是平等的。

IP地址与硬件地址:硬件地址(物理地址)是数据链路层和物理层使用的地址。IP地址是网络层以上各层使用的地址,是一种逻辑地址。

地址解析协议:ARP。通信时使用两个地址:IP地址,MAC地址。
ARP协议的作用:从IP地址解析出硬件地址。
工作流程:主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,先在ARP 高速缓存中查看有无主机 B 的 IP 地址。

  1. 如有,就可查出其对应的硬件地址并写入 MAC 帧,然后通过将该 MAC 帧发往此硬件地址。
  2. 如没有, ARP 进程在本局域网上广播发送一个 ARP 请求分组。收到 ARP 响应分组后,将得到的 IP 地址到硬件地址的映射写入 ARP 高速缓存。
    ARP请求分组包含:发送方MAC、IP地址,目标方MAC、IP地址。
    ARP响应分组包含:发送方MAC、IP地址,目标方MAC、IP地址。
    ARP 分组封装在物理网络的帧中传输。
    ARP高速缓存的作用:存放最近获得的 IP 地址到 MAC 地址的绑定,以减少 ARP 广播的数量。例:1.主机 A 在发送其 ARP 请求分组时,就将自己的 IP 地址到硬件地址的映射写入 ARP 请求分组。2.当主机 B 收到 A 的 ARP 请求分组时,就将主机 A 的这一地址映射写入主机 B的 ARP 高速缓存中。
    注意:
    1.ARP 用于解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题。如果目的主机和源主机不在同一个局域网上,就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做。
    2.从 IP 地址到硬件地址的解析是自动进行的。
    使用ARP的四种典型情况:
  3. 发送方是主机,要把 IP 数据报发送到本网络上的另一个主机。这时用 ARP 找到目的主机的硬件地址。
  4. 发送方是主机,要把 IP 数据报发送到另一个网络上的一个主机。这时用 ARP 找到本网络上的一个路由器的硬件地址。剩下的工作由这个路由器来完成。
  5. 发送方是路由器,要把 IP 数据报转发到本网络上的一个主机。这时用 ARP 找到目的主机的硬件地址。
  6. 发送方是路由器,要把 IP 数据报转发到另一个网络上的一个主机。这时用 ARP 找到本网络上另一个路由器的硬件地址。剩下的工作由这个路由器来完成。

思考:问什么不能直接使用硬件地址进行通信?
答:全世界存在各式样的网络,使用不同的硬件地址。异构网络间互相通信需要硬件地址转换工作,这几乎是不可能的事。IP编址解决了这一问题。

IP数据报的格式:由首部和数据两部分组成。首部中固定部分20字节,是IP数据报必须有的。

注释:

  1. 版本:IP协议的版本,(目前的俄日IPv4
  2. 首部长度:4位可表示15个单位,所以IP首部长度最大为60字节
  3. 区分服务:用来获得更好的服务
  4. 总长度:首部和数据之和的长度(不得超过最大传输单元MTU
  5. 标识:计数器,用于产生IP数据报的标识
  6. 标志:MF=0,最后一个分片,=1,后面还有分片;DF=0时才允许分片。
  7. 片偏移:较场分组分片后某片在元分组中的相对位置。
  8. 生存时间:TTL,数据报在网络中可通过路由器数的最大值
  9. 协议:数据使用何种协议,以便目的主机IP层将数据上交处理
  10. 首部检验和:检验数据报的首部
  11. 源地址和目的地址各占4字节,不做过多解释
  12. 可变部分是为了增加IP数据报的功能。(实际上很少被使用

IP数据报分片实例:


(原始数据报的首部被复制为各数据报的首部,但必须修改有关字段的值)

特定主机路由:为特定的目的主机指明一个路由,使网络管理人员更方便控制、测试网络。
默认路由:减少路由表所占用的空间和搜索路由表所用的时间。(一般在网络很少对外连接时有用,

路由器收到待转发的数据报后,送交下层的网络接口软件,使用ARP将下一跳路由器的IP地址转换成MAC地址,并放在链路层的MAC帧的首部,根据这一MAC地址找到下一跳路由器。

路由表分组转发算法的顺序如下:
获取目的主机的IP地址,网络地址—>直接交付—>特定主机路由—>路由表中查目的网络—>选择默认路由—>报告出错。

以上是关于计算机网络 网络层(上)的主要内容,如果未能解决你的问题,请参考以下文章

计算机网络—— 网络层(789):IPv4数据报的首部格式网际控制报文协议ICMP虚拟专用网VPN与网络地址转换NAT

计算机网络—— 网络层(789):IPv4数据报的首部格式网际控制报文协议ICMP虚拟专用网VPN与网络地址转换NAT

linux网络协议栈源码分析 - 网络层IP网际协议

linux网络协议栈源码分析 - 网络层IP网际协议

linux网络协议栈源码分析 - 网络层IP网际协议

网际协议版本4(IPv4)