网络层概述
底层协议
- 物理层:可以认为是最底层,就是用了哪些线材、设备把你的设备与电脑接在了一起
- 链路层:设备与设备之间如何收发每一个信号,如何校验发送的信号被目标设备正确接收,如果发现接收的信号存在问题如何通知来源设备重新发送。设备与设备之间如何约定信号的格式、长短等等
- 网络层:确定每一组信号由谁发出的,最终要传达到哪个设备,应该经由线路里的那一些设备才能正确的转发过去
网络层要做什么?
封装源数据+识别目的机+找到一根好的路径(路由)= 将源端数据包(分组)一路送到接收方
达成网络层目标的过程中可能会遭遇的问题
网络层主要内容
源和目的之间的网络有哪些类?
- 数据报网络:提供无连接的服务
- 虚电路网络:提供面向连接的服务
虚电路网络:
很简答的话来讲就是:先确定路线,再将信息送出
虚电路是分组交换的两种传输方式中的一种。在通信和网络中,虚电路是由分组交换通信所提供的面向连接的通信服务。在两个节点或应用进程之间建立起一个逻辑上的连接或虚电路后,就可以在两个节点之间依次发送每一个分组,接收端收到分组的顺序必然与发送端的发送顺序一致,因此接收端无须负责在接收分组后重新进行排序。虚电路协议向高层协议隐藏了将数据分割成段,包或帧的过程
如上图:
- H1要把信息送给H2,那么它们会在发送数据之前协商出一条路径(图中粉色部分)
- 这样下来A路由器就会记录一个信息:H1 1 → C 1 表示信息从H1来,要发送给C,标号为1,C路由器和E路由器同理
- 每个路由器都会这样转发,信息最终会到达H2,这样的话H1封装时不需要携带目的机地址,只需要携带标号
---------------------------------------------------------------------------------------------------
- 但是H3也要把信息发给H2,那么它们也会协商出一条路径(图中绿色部分)
- A路由器非常清楚标号1的路径已经用过了,所以他记录新的路径(H3 1 → C 2)并且标号为2,其它过程依旧
- 交换方式也叫作标签交换
数据报网络
很简答的话来讲就是:把信息送出时确定路线,对于同一个对端系统的数据包可能走不同的路径
- 数据报是通过网络传输的数据的基本单元,包含一个报头和数据本身,其中报头描述了数据的目的地以及和其它数据之间的关系
- 数据报是完备的、独立的数据实体,该实体携带要从源计算机传递到目的计算机的信息,该信息不依赖以前在源计算机和目的计算机以及传输网络间交换
- 数据报网络中,端系统没发送一个分组,就会为该分组加上目的端系统的地址,然后将该分组推进网络,它不会维护连接状态信息,但是有转发状态信息,每个路由器使用一个分组的目的地址来进行转发,路由器使用最大前缀匹配规则匹配目的地址
如上图:
路由表解释:
- A路由表第四行(D B):想要到达D点,那么你需要先去相邻的B点(当然这个不唯一)
- A路由表第五行(E C):同理,想要到达E点,那么你需要先去相邻的C点
- A路由表第一行(B B):B点已经和A点相邻,你直接去B点就行了
- A路由表第六行(F B):原本为(F C),因为C点发送了拥塞,A感知到后就将C更变为B,现在你想到达F就要先走B点了