1. 网络层概述 :(Network Layer)(单位:分组packet)
在计算机网络中进行通信的两个计算机之间可能会经过很多个数据链路,也可能还要经过很多通信子网。网络层的任务就是选择合适的网间路由和交换结点, 确保数据及时传送。网络层将数据链路层提供的帧组成数据包,包中封装有网络层包头,其中含有逻辑地址信息- -源站点和目的站点地址的网络地址。如果你在谈论一个IP地址,那么你是在处理第3层的问题,这是“数据包”问题,而不是第2层的“帧”。IP是第3层问题的一部分,此外还有一些路由协议和地址解析协议。有关路由的一切事情都在这第3层处理。地址解析和路由是3层的重要目的。网络层还可以实现拥塞控制、网际互连等功能。在这一层,数据的单位称为数据包/分组(packet)。
网络层定义的规范有:IP、IPX、RIP、OSPF、ICMP、IGMP等。
a. 网络层重要功能
i. 转发:
涉及分组在单一的路由器中从一条入链路到出俩露露的传输。
ii. 路由选择:
涉及一个网络的所有路由器经由路由选择协议共同交互决定的从源到目的地结点所采用的路径。
b. 网络层知识点
因特网中的分组转发
网际协议(IP)
网络层编址和IPv4的数据报格式
网络地址转换(NAT)
数据包分段、因特网控制报文协议(ICMP)
IPv6
路由选择功能: | 路由选择算法类型(链路状态和距离矢量算法) |
| 等级制路由选择方法 |
| 路由选择协议(RIP,OSPF,IS-IS)(BGP) |
2. IP介绍
- IP是TCP/IP协议族中最为核心的协议。所有TCP、UDP、ICMP及IGMP数据都以IP数据报格式传输
- IP提供不可靠,无连接的数据报传送服务
- 不可靠(unreachable)的意思是它不能保证IP数据报能成功地到达目的地。IP仅提供最好的传输服务。如果发生某种错误时,如某个路由器暂时用完了缓冲区,IP有一个简答的错误处理算法:丢弃该数据报,然后发送ICMP消息报给信源端。任何要求的可靠性必须由上层来提供(如TCP)
- 无连接(connectionless)这个术语的意思是IP并不维护任何关于后需数据报的状态信息。每个数据报的处理是相互独立的。IP数据报可以不按发送顺序接收。如果一信源向相同的信宿发送两个连续的数据报(先是A,然后是B),每个数据报都是独立地进行路由选择,可能有不同的路线,因此B可能在A到达之前先到达(有用的命令:ifconfig,netstat)
IP首部
首部字段分析
-
- 4个字节的32bit值以下面的次序传输:首先是0-7bit,其次是8-15bit,然后16-23bit,最后24-31bit。这种传输次序称作big endian字节序。由于TCP/IP首部中所有二进制整数在网络中传输时都要求以这种次序,因此又被称作网络字节序。
- 目前的协议版本号是4,因此称作IPv4
- 首部长度指的是首部占32bit字的数目,包括任何选项。由于它是一个4比特字段,因此首部最长为60个字节
- 服务类型(TOS)字段包括一个3bit的优先权precedence子字段(现在已被忽略),4bit的TOS子字段和1bit未用位但必须置0(DSCP:它在每个数据包IP头部的服务类别TOS标识字节中,利用已使用的6比特和未使用的2比特,通过编码值来区分优先级)
- 4bit的TOS分别代表:最小时延,最大吞吐量,最高可用性和最小费用。4bit只能置其中1bit。如果所有4bit均为0,那么就意味着是一般服务
- 总长度字段是指整个IP数据报的长度 ,以字节为单位。利用首部长度字段和总长度字段,就可以知道IP数据报中数据内容的起始位置和长度。由于该字段长16bit,所以IP数据报最长可达65535字节,当数据报分片时,该字段的值也随着变化
- 标识字段唯一地标识主机发送的每一份数据报。通常每发送一份数据报文它的值就会加1
- TTL(time-to-live)生存时间字段设置了数据报可以经过的最多路由器数
- 协议字段被IP用来对数据报进行分用,根据它可以识别是哪个协议向IP传送数据
- 首部校验和字段是根据IP首部计算的校验和码
- 如果结果不是全1(即校验和错误),那么IP就丢弃收到的数据报。但是不生成差错报文,由上层去发现丢失的数据报并进行重传。
- 由于路由器经常只修改TTL字段(减1),因此当路由器转发一份报文时可以增加它的检验和,而不需要对整个IP首部进行重新计算
IP首部选项
-
- 最后一个字段是任选项,数据报中一个可变长的可选信息。日前。这些选项定义如下:
- 安全和处理限制
- 记录路径(让每个路由器都记下它的IP地址)
- 时间戳(让每个路由器都记下它的IP地址和时间)
- 宽松的源站选路(为数据报指定一系列必须经过的IP地址)
- 严格的源站选路(与宽松的源站选路类似,但是要求只能经过指定的这些地址,不能经过其他的地址)
- 最后一个字段是任选项,数据报中一个可变长的可选信息。日前。这些选项定义如下:
这些选项很少被使用,并非所有的主机和路由器都支持这些选项选项字段一直都是以32bit作为界限,在必要的时候插入值为0的填充字段。这样就保证IP首部始终是32bit的整数倍(首部长度字段的要求)
3. IP路由选择
1)传输过程中源目IP不变,大多数主机和一些路由器可以用默认路由来处理任何目的,除非它能在本地局域网上
2)数据报中的目的IP地址始终不发生任何变化,只有使用源路由选项时,目的IP地址才有可能被修改,但是这种情况很少出现。所有的路由决策都基于这个目的IP地址
3)每个链路层可能具有不同的数据帧首部,而且链路层的目的地址(如果有的话) 始终指的是下一站的链路层地址。一台网地址一般通过ARP获得