【计算机网络】网络层IP包头与路由原理

2024-01-08 06:20

本文主要是介绍【计算机网络】网络层IP包头与路由原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、IP包头

1、版本(4)

区分ipv4和ipv6

0100(ipv4包头)

0110(ipv6包头)

2、首部长度(4)

IP包头的长度是可变的,20-60字节,一般为20字节

首部长度存储ip包头的长度,最常见的是:0101(20字节)

3、优先级与服务类型(8)

前三个比特代表优先级,中间四个比特代表服务类型,最后一个未被启用

服务类型:低延迟、高通道服务类型

QOS,TOS

4、总长度(16)

表明整个IP包(三四五层)的总长度

5、标识符(16)

标识同一个报文的所有分片

发送端随机生成

用于区分不同分片,接收方据此将收到的IP分片先进行分类

6、标志(3)

1)第一个比特

永远为0(未被启用)

2)第二个比特

若为0,则表明进行了分片

若为1,则表明未进行分片

3)第三个比特

表明本分片是否为最后一个分片

1:本分片不是最后一个分片

0:最后一个分片

7、段偏移量(13)

段偏移量:决定IP分片的先后顺序

防火墙拦截IP分片:即防火墙只让标志位的010通过,则此时,不再在网络层分片,将分片任务交给应用层,应用层将其分成1480的分片

8、TTL(8)

TTL(time to life):防止一个数据包在网络上永久的循环下去

TTL由8个比特组成(0-255),这个数字表示路由器个数,每经过一个路由器TTL值减一

通过TTL初始值可以大概判断对方是什么主机:一般100以上为Windows主机,100以下为Linux主机

9、协议号(8)

6:通向TCP协议

17:通向UDP协议

1:通向同层的ICMP协议

10、首部校验和(16)

校验三层的IP包头

11、原ip(32)

12、目标ip(32)

13、可选项目


二、路由原理

1、路由概述

路由:跨越从源主机到目标主机的一个互联网来转发数据包的过程

路由表:是转发的唯一依据,存储目标ip对应的下一调ip,一般不会自动学习,需要人为配上去

一种是自动写的(用C表示),一种是人为配的(用S表示)

直连路由条目,连接在同一路由器上的设备,只写IP和端口就好

静态路由:没有连接在同一路由器上的设备,路由表中手动配置的条目

默认路由:没有配置到的ip会用默认路由的下一跳ip,边缘路由器适合配默认路由

浮动路由:做备份路径,提高稳定性

路由优先级:与管理距离值有关,也叫A值

每一种路由类型都有自己默认固定的管理距离值

C的直连路由类型的默认管理距离值为0

S的默认管理距离值为1

S*的默认管理距离值为无穷大

在一个路由表中,路由条目的优先级与管理距离值成反比,值越小路由条目的优先级越高

2、路由原理

1)一个帧到到达路由,路由器首先检查目标MAC地址是否自己,如果不是自己则丢弃,如果是则解封装,并将IP包送到路由器内部

2)路由器检查IP包头中的目标IP,并匹配路由表,如果匹配失败,则丢弃,并向源IP回馈错误信息,如果匹配成功,则将IP包路由到出接口

3)封装帧,首先将出接口的MAC地址作为源MAC地址封装好,然后检查ARP缓存表,检查是否有下一跳的MAC地址,如有,将提取其并作为目标MAC地址封装到帧中,如没有,则发送ARP广播请求下一跳的MAC地址,并获取对方的MAC地址,再记录缓存,并封装帧,最后将帧发送出去

这篇关于【计算机网络】网络层IP包头与路由原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/582537

相关文章

Spring @Scheduled注解及工作原理

《Spring@Scheduled注解及工作原理》Spring的@Scheduled注解用于标记定时任务,无需额外库,需配置@EnableScheduling,设置fixedRate、fixedDe... 目录1.@Scheduled注解定义2.配置 @Scheduled2.1 开启定时任务支持2.2 创建

Spring Boot 实现 IP 限流的原理、实践与利弊解析

《SpringBoot实现IP限流的原理、实践与利弊解析》在SpringBoot中实现IP限流是一种简单而有效的方式来保障系统的稳定性和可用性,本文给大家介绍SpringBoot实现IP限... 目录一、引言二、IP 限流原理2.1 令牌桶算法2.2 漏桶算法三、使用场景3.1 防止恶意攻击3.2 控制资源

Python中使用uv创建环境及原理举例详解

《Python中使用uv创建环境及原理举例详解》uv是Astral团队开发的高性能Python工具,整合包管理、虚拟环境、Python版本控制等功能,:本文主要介绍Python中使用uv创建环境及... 目录一、uv工具简介核心特点:二、安装uv1. 通过pip安装2. 通过脚本安装验证安装:配置镜像源(可

SpringBoot服务获取Pod当前IP的两种方案

《SpringBoot服务获取Pod当前IP的两种方案》在Kubernetes集群中,SpringBoot服务获取Pod当前IP的方案主要有两种,通过环境变量注入或通过Java代码动态获取网络接口IP... 目录方案一:通过 Kubernetes Downward API 注入环境变量原理步骤方案二:通过

Mysql的主从同步/复制的原理分析

《Mysql的主从同步/复制的原理分析》:本文主要介绍Mysql的主从同步/复制的原理分析,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录为什么要主从同步?mysql主从同步架构有哪些?Mysql主从复制的原理/整体流程级联复制架构为什么好?Mysql主从复制注意

Nacos注册中心和配置中心的底层原理全面解读

《Nacos注册中心和配置中心的底层原理全面解读》:本文主要介绍Nacos注册中心和配置中心的底层原理的全面解读,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录临时实例和永久实例为什么 Nacos 要将服务实例分为临时实例和永久实例?1.x 版本和2.x版本的区别

apache的commons-pool2原理与使用实践记录

《apache的commons-pool2原理与使用实践记录》ApacheCommonsPool2是一个高效的对象池化框架,通过复用昂贵资源(如数据库连接、线程、网络连接)优化系统性能,这篇文章主... 目录一、核心原理与组件二、使用步骤详解(以数据库连接池为例)三、高级配置与优化四、典型应用场景五、注意事

golang实现动态路由的项目实践

《golang实现动态路由的项目实践》本文主要介绍了golang实现动态路由项目实践,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习... 目录一、动态路由1.结构体(数据库的定义)2.预加载preload3.添加关联的方法一、动态路由1

电脑系统Hosts文件原理和应用分享

《电脑系统Hosts文件原理和应用分享》Hosts是一个没有扩展名的系统文件,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对应的IP地址,一旦找到,系统会立即打开对应... Hosts是一个没有扩展名的系统文件,可以用记事本等工具打开,其作用就是将一些常用的网址域名与其对应

Dubbo之SPI机制的实现原理和优势分析

《Dubbo之SPI机制的实现原理和优势分析》:本文主要介绍Dubbo之SPI机制的实现原理和优势,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Dubbo中SPI机制的实现原理和优势JDK 中的 SPI 机制解析Dubbo 中的 SPI 机制解析总结Dubbo中