计算机网络(四)_网络层

相关博文:

计算机网络入门

计算机网络物理层

计算机网络-数据链路层

与网络层相关的IP地址与子网掩码单独抽出于下

IP地址

计算机网络-域名与IP地址详解

子网掩码与子网划分

计算机网络-子网掩码与子网划分

一些基本概念

网络层提供的服务

网络层应该向上层传输层提供怎样的服务,分为两种形式:

  • 虚电路
    虚电路是分组交换的两种传输方式中的一种。提供面向连接的通信服务。在两个节点或应用进程之间建立起一个逻辑上的连接或虚电路后,就可以在两个节点之间依次发送每一个分组,接收端收到分组的顺序必然与发送端的发送顺序一致,因此接收端无须负责在接收分组后重新进行排序。虚电路协议向高层协议隐藏了将数据分割成段,包或帧的过程。虚电路是建立一条逻辑连接,发送方与接收方不需要预先建立连接。

  • 数据报服务

端系统要发送数据时,网络层给该数据附加上地址、序号等信息,然后作为数据报发送给网络节点(路由器);目的端系统收到数据报可能是不按照顺序到达,也有可能出现数据报丢失。网络层于此只需尽最大努力持续交付即可。数据报服务与OSI的无连接网络服务类似。

现代网络层协议主要使用的是数据报服务。

网络层传输示意图

  • H1 发送给 H2 的分组可能沿着不同路径传送

  • 网络层负责在不同的网络之间(基于数据包的IP地址)尽力转发数据包,不负责丢包重传和接收顺序(这是由传输层负责的)

  • 数据包在Internet中的传输,Internet既有局域网,又有广域网,既有光纤,又有铜线,无线,还有不同的协议

互联网络与虚拟互联网络

虚拟网络把复杂的Internet看成一个网络,化简问题。虚拟互联网络就是逻辑互联网络,他的意思就是互联起来的各种物理网络的异构性本来就是客观存在的, 但是我们利用IP协议就可以使这些性能各异的网络从用户看起来好像是一个统一的网络,而不用考虑具体的网络异构细节

互联网中间设备

又称为中间系统或中继(relay)系统

  • 物理层中继系统:转发器(repeater),有点像集线器
  • 数据链路层中继系统:网桥或桥接器(bridge)
  • 网络层中继系统:路由器(router),上图的蓝色圆都是路由器。
  • 传输层/应用层中继系统:网关(gateway)器,网关就是路由器接口的地址。一般是本网段第一个地址

数据包的路由过程

发送端(封装数据):

(1)应用层准备要传输的数据;
(2)传输层把文件进行分段并编号;(数据段)
(3)网络层把传输层的每一个数据包增加原IP地址和目标IP地址;(数据包)
(4)数据链路层把每个数据加上MAC地址;(数据帧)

  • 使用自己的子网掩码,判断自己和目标地址分别在哪个网段,若在同一个网段(不通过路由器),通过ARP协议广播的方式得到目标IP地址的MAC地址,然后就能封装出一个数据帧进行组播协议发送;

  • 如果子网掩码不是一个网段,通过ARP协议广播的方式得到路由器(网关)的MAC地址,然后把数据通过交换机发送到路由器M2(图中路由器)因为M2和M3是点对点通信,没有别的主机,所以它们之间的MAC地址就是FF

    (5)物理层把数据帧变成数字信号(bit流),交给物理层传输

接收端(解封):

(1)交换机Switch1(图中的交换机)接收bit流,能对数据进行存储转发。它根据数据帧的MAC地址,确定数据是从哪来的(是上一跳不是发送端),要去哪
(2)路由器M2获取交换机的数据包,识别其中的IP地址,根据路由表选择出口,它无法识别数据段内容
(3)路由器M2到M3是点对点通信,遵守PPP协议
(4)PC3收到bit流后,数据链路层发现MAC地址是自己的,去掉MAC地址给它的网络层,网络层去掉IP地址给传输层,传输层把数据给应用层,应用层把各个数据拼接起来

扩展:

路由器/交换机/集线器不会中病毒,病毒是一个完整的应用程序,且在传输过程中因为分段机制可能变得不完整,无法运行

路由器不能识别数据内容,它只负责信息的传递。但是病毒会影响网络设备。因为病毒会占用网络流量

ARP协议与RARP

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

应用于局域网,不过路由

主机发送信息时将包含目标IP地址的ARP请求广播到局域网络上的所有主机,并接收返回消息,以此确定目标的物理地址

不管网络层使用的是什么协议,在实际网络的链路上传送数据帧时,最终还是必须使用硬件地址

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

当主机 A 欲向本局域网上的某个主机 B 发送 IP 数据报时,就先在其 ARP 高速缓存中查看有无主机 B 的 IP 地址。如有,就可查出其对应的硬件地址,再将此硬件地址写入 MAC 帧,然后通过局域网将该 MAC 帧发往此硬件地址

ARP 是解决同一个局域网上的主机或路由器的 IP 地址和硬件地址的映射问题

如果所要找的主机和源主机不在同一个局域网上,那么就要通过 ARP 找到一个位于本局域网上的某个路由器的硬件地址,然后把分组发送给这个路由器,让这个路由器把分组转发给下一个网络。剩下的工作就由下一个网络来做

从IP地址到硬件地址的解析是自动进行的,这种地址解析过程对主机的用户是透明的

只要主机或路由器要和本网络上的另一个已知 IP 地址的主机或路由器进行通信,ARP 协议就会自动地将该 IP 地址解析为链路层所需要的硬件地址

ARP协议存在ARP欺骗的漏洞,本质是利用了主机发送数据需要先组播获取IP地址这个过程。

利用该漏洞可以截获主机将发送到外部的数据

ICMP协议

为了提高 IP 数据报交付成功的机会,在网落层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)

ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告(所以有了ping command)。

ICMP 报文作为 IP 数据报的数据,加上数据报的首部,组成 IP 数据报发送出去。

ping command

PING是网络层命令,用于测试网络连接量的程序

ping发送一段ICMP回声请求消息给目的地并报告主机是否收到所希望的ICMP回声应答

ping中有一个重要参数TTL( Time To Live),数据包每过一个路由,TTL减一

TTL默认初始值如下:
Linux 64
Windows 128
Unix 256

可以根据TTL值+pathping command粗略判定对方是什么系统

pathping

pathping 能跟踪数据包路径

使用ping能够判断网络通还是不通,但是比如请求超时,你就不能判断什么位置出现的网络故障造成的请求超时。使用pathping命令能跟踪数据包的路径,能够查出故障点,并且能够计算路由器转发丢包率和链路丢包率以及延迟,据此能够判断出网络拥塞情况

Internet组播管理协议 IGMP

网络直播的数据发送需求:

使用多播可明显地减少网络中资源的消耗

IP 多播的一些特点

  • 多播使用组地址:即IP 使用 D 类地址支持多播。多播地址只能用于目的地址,而不能用于源地址

  • 永久组地址—由因特网号码指派管理局 IANA 负责指派

  • 动态的组成员

  • 使用硬件进行多播

IGMP 使路由器知道多播组成员信息

IGMP 可分为两个阶段

第一阶段:当某个主机加入新的多播组时,该主机应向多播组的多播地址发送IGMP 报文,声明自己要成为该组的成员。本地的多播路由器收到 IGMP 报文后,将组成员关系转发给因特网上的其他多播路由器

第二阶段:因为组成员关系是动态的,因此本地多播路由器要周期性地探询本地局域网上的主机,以便知道这些主机是否还继续是组的成员,如果不是,则不再向该主机发送信号。

IP数据报

上面多次提到IP数据报,这里正式说下IP数据报

这是IP数据报的模型

首部:固定长度,20字节(5*32位),是所有IP数据包必须具有的。后一部分是可选字段,长度可变

  • 版本:用来表示TCP/IP是哪个版本,ipv4还是ipv6
  • 区分服务:确定更高的传输优先级(如聊天信息优先级高于大文件传输)
  • 总长度:确定数据部分长度。一共是16位,最多有2^16-1=65535字节

注意,网络层,数据包最大65535字节;而数据链路层数据最大是1500字节,是不一样的。所以说,一旦超过数据链路层的最大要求时(网络层数据部分超过1480字节),数据包会分片

数据包分片:把数据分割,分别添加IP地址,通过网络发给目标MAC地址。目标在通过网络层拼接。传送过程中可能会丢包,或者后发的先到(解决方法后面讲(按序分组))

  • 标识:如果出现数据包分片,那么标识用来确定哪些数据包是需要组合的,属于一个包的片标识相同

  • 标志:确定该数据包是完整的还是分片中的一部分。占3位,只有前两位有用,标志字段最低位是MF(More Fragment),MF=1表示后面还有分片,MF=0表示最后一个分片。标志字段中间一位是DF(Don’t Fragment),只有DF=0才允许分片

  • 片偏移:偏移等于当前字节在数据部分的第几个再除以8,依次表达分片后的数据包的先后顺序

  • 生存时间:上面讲的TTL

  • 协议:

    ICMP协议号:1;
    IGMP协议号:2;
    TCP协议号:6;
    UDP协议号:17;域名解析
    IPv6协议号:41;
    OSPF协议号:89;

  • 首部检验和:16位,只检验数据报的首部,不检验数据部分。这里不是采用CRC循环冗余检验码而是采用简单的计算方法。每经过一个路由器就会检验一次

  • 可选字段:用来支持排错、测量以及安全等措施,内容很丰富,选项字段的长度可变,从 1 个字节到 40 个字节不等,取决于所选择的项目,可惜,实际上这些选项很少被使用

  • 13
    点赞
  • 58
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值