网络安全学习篇18_IP包头分析、路由原理
上一篇博客:物理层、数据链路层
目录
- IP包头分析
- 路由原理
- 直连路由
- 静态路由
- 动态路由
- 交换与路由的对比
开始
一、IP包头分析
- 前面已经简单了解了帧的结构
帧是2层 数据链路层的传输单元,主要工作在该层的设备是网卡、交换机
iP数据包是3层 网络层的传输单元,主要工作在该层的设备是路由器
- IP数据包的格式见下图:
解释:
版本(4):版本字段,目前广泛的是版本号为4的IPv4
首部长度(4):IP包头长度,因为长度可变,因此需要定义(单位是4个字节 )
优先级与服务类型(8):不常用,在使用区分服务是,此字段才起作用
总长度(16):IP数据总长度
标识符(16):上层来到的数据到IP层(网络层)会被切片,相同的表示字段的值,分段后各数据报片最后能正确的重装
标志(3):只有后两位有意义,最后位1表示不是最后的数据报片,中间位0表示分片
段偏移量(13):在较长的分组再分片后,某片在原分组中的相对位置,就是从相对起点的位置
TTL(8):生存时间每经过一个路由,值就减少1,通常值为64、32
协议号(8):指出使用何种协议UDP还是TCP,UDP是17,TCP是6
首部校验和(16):这个字段只检验数据包的首部,每经过一个路由就要重新计算一下
二、路由原理
- 路由的概念
跨越源主机到目标主句的一个互联网络来转发数据包的过程
- 路由器:连接不同的网段
作用:在网段之间为数据包选择路径- 路由器的工作原理
路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程。路由工作在OSI参考模型第三层–网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器通常连接两个或多个由IP子网或点到点协议标识的逻辑端口,至少拥有1个物理端口。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。
- 路由表
路由器中时刻维持着一张路由表,所有报文的发送和转发都通过查找路由表。从相应端口发送。这张路由表可以是静态配置的,也可以是动态路由协议产生的。路由器中维护的路由条目的集合
路由器根据路由表做路径选择
- 路由表的形成
直连网段:配置IP地址,端口UP状态,形成直连路由(直连路由)
非直连网段:需要静态路由或者动态路由,将网段添加到路由表中(静态、动态路由)
路由表示意图
- 静态路由
- 由管理员手工配置,是单向的
- 缺乏灵活性
- 静态路由静态路由是由网络管理员根据网络拓扑,使用命令在路由器上配置的路由,这些静态路由信息指导报文发送,静态路由方式也无需路由器进行计算,但它完全依赖于网络管理员的手动配置。
- 默认路由
- 当路由器在路由表中找不到目标网络的路由条目时,路由器吧请求转发到默认路由接口
- 补充一下,默认路由是一种特殊的静态路由,网络管理管理员手工配置了默认路由后,当路由表中与目的地址之间没有匹配的表项时路由器将把数据包发送给默认网关。
- 动态路由
- 动态路由动态路由是指路由器能够自动地建立自己的路由表,且能根据网络拓扑状态变化进行动态调整。
- 动态路由机制依赖于对路由表的维护以及路由器间动态的路由信息。
- 三者之间的区别
- 直连路由:只能使用于直接相连的路由器端口,非直连的路由器端口是没有直连路由的。
- 静态路由:静态路由静态路由信息在缺省情况下是私有的,不会传递给其他的路由器。当然,网络管理员也可通过对路由器设置使之成为共享的。网络管理员易于清楚地了解网络的拓扑结构,便于设置正确的路由信息。一般适用于简单的环境
- 动态路由当网络规模较大或网络拓扑经常发生改变时,此时宜采用动态路由的方式,路由器能够按照相关路由算法自动计算新的路由信息,适应网络拓扑结构的变化。大型和复杂的网络环境通常不宜采用静态路由。网络管理员难以全面地了解整个网络拓扑,同时当网络拓扑和链路状态发生变化时,路由器中的静态路由信息需要大范围地调整,这一工作的难度和复杂程度非常高,所以宜采用动态路由的方式。
- 交换与路由的区别对比
参考:B站千峰