计算机网络之网络层

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

  网络层中涉及众多的协议,其中包括最重要的协议,也是TCP/IP的核心协议——IP协议。IP协议非常简单,仅仅提供不可靠、无连接的传送服务。IP协议的主要功能有:无连接数据报传输、数据报路由选择和差错控制。与IP协议配套使用实现其功能的还有地址解析协议ARP、逆地址解析协议RARP、因特网报文协议ICMP、因特网组管理协议IGMP。

IP协议详解 虚拟互连网络

  实际的计算机网络是错综复杂的,物理设备通过使用IP协议,屏蔽了物理网络之间的差异,当网络中的主机使用IP协议连接时,则无需关注网络细节。IP协议使得复杂的实际网络变为一个虚拟互连的网络,还使得网络层可以屏蔽底层细节而专注网络层的数据转发,IP协议解决了在虚拟网络中数据报传输路径的问题。

  IP地址长度为32位,常分成4个8位,IP地址常使用点分十进制来表示(0~255.0~255.0~255.0~255),也就是共有\(2^{32} = 4294961296\)个IP地址。下图是IP协议的格式:

计算机网络之网络层


我们来看看IP协议的首部:

4位版本   4位首部长度   8位服务类型(TOS)   16位总长度(字节)  
16位标识   3位标志   13位片偏移  
8位生存时间(TTL)   8位协议   16位首部校验和  
32位源IP地址  
32位目的IP地址  
选项options(若有)  
IP数据  

版本:占4位,指的是IP协议的版本,通信双方的版本必须一致,当前主流版本是4,即IPv4,也有IPv6
首部位长度:占4位,最大数值为15,表示的是IP首部长度,单位是“32位字”(4个字节),也即是IP首部最大长度为60字节
总长度:占16位,最大数值为65535,表示的是IP数据报总长度(IP首部+IP数据)
TTL:占8位,表明IP数据报文在网络中的寿命,每经过一个设备,TTL减1,当TTL=0时,网络设备必须丢弃该报文。作用:避免数据在网络中无限传输,当这个网络报文找不到目的机器时,而进行无限传输,来浪费带宽资源
协议:占8位,表明IP数据所携带的具体数据是什么协议的(如:TCP、UDP等)

协议名 ICMP IGMP IP TCP UDP OSPF …
字段值   1   2   4   6   17   89    

首部校验和:占16位,校验IP首部是否有出错

IP协议的转发流程

  在数据链路层的学习中我们知道了MAC地址表,由于IP协议的转发是通过逐跳(hop-by-hop)来实现的,所以在网络层中,存在一个类似于MAC地址表的路由表,路由表是存储的目的IP地址和下一跳IP地址的映射,计算机或者路由器都拥有路由表。路由表如下:

目的IP地址 下一跳IP地址
IP1   IP4  
IP2   IP5  
IP3   IP6  
   

计算机网络之网络层


A设备向C设备在网络层中传输数据的过程如下:

A发出目的地为C的IP数据报,查询路由表发现下一跳为E

A将数据报发送给E

E查询路由表发现下一跳为F,将数据报发送给F

F查询路由表发现目的地C直接连接,将数据报发送给C

现在结合数据链路层和网络层,再来看一下跨设备传输数据的过程:

A发出目的地为C的IP数据报,查询路由表发现下一跳为E

A将IP数据报交给数据链路层,并告知目的MAC地址是E

数据链路层填充源MAC地址A和目的MAC地址E

数据链路层通过物理层将数据发送给E

E的数据链路层接收到数据帧,把帧数据交给网络层

E查询路由表,发现下一跳为F

E把数据报交给数据链路层,并告知目的MAC地址为F

E的数据链路层封装数据帧并发送

F的数据链路层接收到数据帧,把帧数据交给网络层

F查询路由表,发现下一跳为C

F把数据报交给数据链路层,并告知目的MAC地址为C

F的数据链路层F封装数据帧并发送

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zyddxy.html