[网络通信原理]——TCP/IP模型—网络层

网络层

网络层概述

网络层位于OSI模型的第三层,它定义网络设备的逻辑地址,也就是我们说的IP地址,能够在不同的网段之间选择最佳数据转发路径。在网络层中有许多协议,其中主要的协议是IP协议。
IP数据包格式
在这里插入图片描述
IP数据报是可变长度的,它由两部分组成:首部和数据

  • 首部由两部分组成:固定部分和可变部分
  • 固定部分20字节,可变部分由一些选项组成,最长40字节

版本号:表示IP协议的版本是ipv4 还是ipv6
首部长度:表示IP报头的多大,固定长度:20字节+可选项最多40字节
优先级与服务类型:表示是否有需要优先发送的报文
总长度:表示IP报头+数据的总大小

  • IP数据包最大长度为 65536 字节(2^16次方)
  • 由于MTU(最大传输单元)的限制,长度超过1500字节的数据报都将被分片传输

标识符 :IP数据报的编号,标识主机发送的每一个数据报,同一个数据报的所有分片都具有相同的标识值
标志:表示数据是否进行了分片
段偏移量:表示该IP包在该组分片包中的位置

TTL: time to live 生存时间

  • 每个数据报发出去时,会添加一个生存时间
  • 数据包每经过一台路由器,TTL值会减1,当TTL为0时,数据包被丢弃
  • TTL可以防止数据包陷入路由死循环,预防路由环路,避免数据包在网络中无限循环浪费带宽资源

协议号:表示IP协议上层所使用的协议
协议号 协议名称
1 ICMP
6 TCP
17 UDP
首部校验和:用来做IP头部的正确性检测,但不包含数据部分
源IP地址 :表示发送这个数据包的设备的IP地址
目标IP地址:表示接收这个数据包的设备的IP地址

特别说明:数据每经过一台路由器,TTL值就会减1 TTL的作用:预防路由环路

ICMP协议

1、什么是ICMP?

因特网控制报文协议ICMP(Internet Control Message Protocol)是一个差错报告机制,是TCP/IP协议簇中的一个重要子协议,通常被IP层或更高层协议(TCP或UDP)使用,属于网络层协议,主要用于在IP主机和路由器之间传递控制消息,用于报告主机是否可达、路由是否可用等。这些控制消息虽然并不传输用户数据,但是对于收集各种网络信息、诊断和排除各种网络故障以及用户数据的传递具有至关重要的作用。

作用:测试网络联通性。

2、ICMP的典型应用

IP数据报及其他应用程序通过ICMP报文可以实现多种应用,其中Ping程序和Tracert(Traceroute)程序最为常见。
Ping
Ping程序是最常见的用于检测IPv4和IPv6网络设备是否可达的调试手段,它使用ICMP的echo信息来确定:

  • 远程设备是否可达;
  • 与远程主机通信的来回旅程(round-trip)的延迟;
  • 报文包的丢失情况。

Tracert
Tracert程序主要用于查看数据包从源端到目的端的路径信息,从而检查网络连接是否可用。当网络出现故障时,用户可以使用该命令定位故障点。
Tracert利用ICMP超时信息和目的不可达信息来确定从一个主机到网络上其他主机的路由,并显示IP网络中每一跳的延迟(这里的延迟是指:分组从信息源发送到目的地所需的时间,延迟也分为许多的种类——传播延迟、传输延迟、处理延迟、排队延迟等)。

3、ICMP 消息提示

以下是几种常见的ping反馈结果:
Reply from 目标地址——表示连接建立成功
Destination host unreachable——表示目标主机不可达
此反馈常见原因:

  • 同网段中没有这个IP地址
  • 跨网段通信时,本主机没有填写网关地址

Request timed out——表示请求时间超时
此反馈常见原因:

  • 数据包从主机中发出去了,但是中间传输的网络设备无法找到目标主机
  • 数据包从主机中发出去了,传输的网络设备将数据包发送给目标主机了,但是目标主机没有回复,或者目标主机回复的消息,中间的传输设备没能正常转发给源主机
  • 对方主机没有填写网关地址

Unknown host——未知主机名
此提示常见原因:

  • IP地址是一个不合法的IP地址,或者是一个不存在的主机名

ARP协议

1、ARP协议概述

ARP(Address Resolution Protocol,地址解析协议)是用来将IP地址解析为MAC地址的协议。主机或三层网络设备上会维护一张ARP表,用于存储IP地址和MAC地址的映射关系,一般ARP表项包括动态ARP表项和静态ARP表项。地址解析协议ARP即可实现将IP地址解析为MAC地址。

作用:基于目标IP获取相应目标MAC,完成数据帧的封装,实现数据的快速转发

解析方式:发送arp广播,得到mac地址后,缓存到arp缓存表中

ARP核心工作表

  • ARP表,包含的是IP地址与MAC地址的对应关系条目
  • ARP条目分为静态和动态两种类型
  • 动态ARP条目的存活时间是 1200s (华为的网络设备的arp缓存表的默认老化时间)
  • ARP动态条目存活时间是120s(windows系统的arp缓存表的默认老化时间)

数据发送原理

  • 任何设备在发送数据包之前,必须检查 ARP 表,查看包含去往目标IP地址时所使用的MAC地址
  • 如果ARP表包含目标IP地址对应的条目,则使用目标MAC封装数据
  • 如果ARP表不包含对应的ARP条目信息,则发送ARP请求,获得目标MAC

2、ARP有哪些类型?

动态ARP
动态ARP表项由ARP协议通过ARP报文自动生成和维护,可以被老化,可以被新的ARP报文更新,也可以被静态ARP表项覆盖。
动态ARP适用于拓扑结构复杂、通信实时性要求高的网络。
静态ARP
静态ARP表项是由网络管理员手工建立的IP地址和MAC地址之间固定的映射关系。静态ARP表项不会被老化,不会被动态ARP表项覆盖。
静态ARP表项分为短静态ARP表项和长静态ARP表项。

  • 短静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,未同时指定VLAN和出接口。
  • 长静态ARP表项:手工建立IP地址和MAC地址之间固定的映射关系,并同时指定该ARP表项所在VLAN和出接口。

免费ARP
设备主动使用自己的IP地址作为目的IP地址发送ARP请求,此种方式称免费ARP。
免费ARP有如下作用:

  1. IP地址冲突检测:当设备接口的协议状态变为Up时,设备主动对外发送免费ARP报文。正常情况下不会收到ARP应答,如果收到,则表明本网络中存在与自身IP地址重复的地址。如果检测到IP地址冲突,设备会周期性的广播发送免费ARP应答报文,直到冲突解除。
  2. 用于通告一个新的MAC地址:发送方更换了网卡,MAC地址变化了,为了能够在动态ARP表项老化前通告网络中其他设备,发送方可以发送一个免费ARP。
  3. 在VRRP备份组中用来通告主备发生变换:发生主备变换后,MASTER设备会广播发送一个免费ARP报文来通告发生了主备变换

3、ARP报文格式

ARP报文类型

  • ARP请求报文,源设备以广播的方式发送,向所有设备请求MAC地址
  • ARP回应报文,目标设备以单播的方式回应,直接返回给源设备
    ARP请求和应答的报文格式如下图所示:
    在这里插入图片描述
    报文的长度是42字节。前14字节的内容表示以太网首部,后28字节的内容表示ARP请求或应答报文的内容。
    报文中相关字段的解释如下图所示:
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/385762.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

汽车长翅膀:GPU 是如何加速深度学习模型的训练和推理过程的?

编者按:深度学习的飞速发展离不开硬件技术的突破,而 GPU 的崛起无疑是其中最大的推力之一。但你是否曾好奇过,为何一行简单的“.to(‘cuda’)”代码就能让模型的训练速度突飞猛进?本文正是为解答这个疑问而作。 作者以独特的视角&…

如何使用代理IP进行电子邮件保护?

🎬 鸽芷咕:个人主页 🔥 个人专栏: 《C干货基地》《粉丝福利》 ⛺️生活的理想,就是为了理想的生活! 前言 随着企业信息化的深入发展,电子邮件在私人生活和商业运营中起到越来越重要的作用,随之而来电子邮件…

【编程工具使用技巧】VS如何显示行号

💓 博客主页:倔强的石头的CSDN主页 📝Gitee主页:倔强的石头的gitee主页 ⏩ 文章专栏:《编程工具与技巧探索》 期待您的关注 目录 引言 一、VS编译器行号显示的基本步骤 1.打开VS与项目 2.进入选项设置 3.找到并…

LeetCode 637, 67, 399

文章目录 637. 二叉树的层平均值题目链接标签思路代码 67. 二进制求和题目链接标签思路代码 399. 除法求值题目链接标签思路导入value 属性find() 方法union() 方法query() 方法 代码 637. 二叉树的层平均值 题目链接 637. 二叉树的层平均值 标签 树 深度优先搜索 广度优先…

SQL语句(以MySQL为例)——单表、多表查询

笛卡尔积(或交叉连接): 笛卡尔乘积是一个数学运算。假设我有两个集合 X 和 Y,那么 X 和 Y 的笛卡尔积就是 X 和 Y 的所有可能组合,也就是第一个对象来自于 X,第二个对象来自于 Y 的所有可能。组合的个数即为两个集合中…

开源监控 - 夜莺项目 v7 正式发版了

前言 上周五去参加了第二届 CCF夜莺开发者创新论坛,在会上,夜莺 v7 LTS 版本正式发布,另有多名嘉宾分享了自己公司的可观测性实践经验,挺有收获。 夜莺 v7 新功能 夜莺 v7 版本更多的着眼在提升用户体验,开箱即用方面…

在WPF中使用WebView2详解

Microsoft Edge WebView2 Microsoft Edge WebView2 控件允许在本机应用中嵌入 web 技术(HTML、CSS 以及 JavaScript)。 WebView2 控件使用 Microsoft Edge 作为绘制引擎,以在本机应用中显示 web 内容。 使用 WebView2 可以在本机应用的不同部分嵌入 Web 代码&…

apache2和httpd web服务器

apache2和httpd web服务器 apache2和httpd web服务器是啥apache是软件基金会apache2是一个web服务httpd和apache2是同一个东西,但是不同linux发行版中叫法不一样。就是同一个东西,但是看上去有一些不一样。 apache2和httpd web服务器是啥 apache是软件基…

AI学习记录 -使用react开发一个网页,对接chatgpt接口,附带一些英语的学习prompt

实现了如下功能(使用react实现,原创) 实现功能: 1、对接gpt35模型问答,并实现了流式传输(在java端) 2、在实际使用中,我们的问答历史会经常分享给他人,所以下图的 copy …

Hive多维分析函数——With cube、Grouping sets、With rollup

有些指标涉及【多维度】的聚合,大的汇总维度,小的明细维度,需要精细化的下钻。 grouping sets: 多维度组合,组合维度自定义;with cube: 多维度组合,程序自由组合,组合为…

日拱一卒 | JVM

文章目录 什么是JVM?JVM的组成JVM的大致工作流程JVM的内存模型 什么是JVM? 我们知道Java面试,只要你的简历上写了了解JVM,那么你就必然会被问到以下问题: 什么是JVM?简单说一下JVM的内存模型?…

大疆创新2025校招内推

大疆2025校招-内推 一、我们是谁? 大疆研发软件团队,致力于把大疆的硬件设备和大疆用户紧密连接在一起,我们的使命是“让机器有温度,让数据会说话”。 在消费和手持团队,我们的温度来自于激发用户灵感并助力用户创作…

破局产品同质化:解锁3D交互式营销新纪元!

近年来,随着数字体验经济的蓬勃发展,3D交互式营销作为一种创新手段迅速崛起,它巧妙地解决了传统产品展示中普遍存在的缺乏差异性和互动性的问题,使您的产品在激烈的市场竞争中独树一帜,脱颖而出。 若您正面临产品营销…

基于.NET开源、强大易用的短链生成及监控系统

前言 今天大姚给大家分享一个基于.NET开源(MIT License)、免费、强大易用的短链生成及监控系统:SuperShortLink。 项目介绍 SuperShortLink是一个基于.NET开源(MIT License)、免费、强大易用的短链生成及监控系统&a…

java算法day25

java算法day25 广度优先搜索岛屿数量深搜岛屿数量广搜994 腐烂的橘子 广度优先搜索 核心:从起点出发,以起始点为中心一圈一圈进行搜索,一旦遇到终点,记录之前走过的节点就是一条最短路。搜索的方式是上下左右 一张图说明白模拟…

【目标检测】Yolo5基本使用

前言 默认安装好所有配置,只是基于Yolo5项目文件开始介绍的。基于配置好的PyCharm进行讲解配置。写下的只是些基本内容,方便以后回忆用。避免配置好Yolo5的环境,拉取好Yolo5项目后,不知道该如何下手。如果有时间,我还是…

SeaCMS海洋影视管理系统远程代码执行漏洞复现

SeaCMS海洋影视管理系统远程代码执行漏洞复现 Ⅰ、环境搭建Ⅱ、漏洞复现Ⅲ、漏洞分析 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责&…

2024年7月29日 十二生肖 今日运势

小运播报:2024年7月29日,星期一,农历六月廿四 (甲辰年辛未月甲午日),法定工作日。 红榜生肖:羊、虎、狗 需要注意:兔、牛、鼠 喜神方位:东北方 财神方位:…

扰动观测器DOB设计及其MATLAB/Simulink实现

扰动观测器(Disturbance Observer, DOB)是一种在控制系统中用于估计和补偿未知扰动的重要工具,以增强系统的鲁棒性和稳定性。其设计过程涉及系统建模、观测器结构设计以及控制律的调整。 扰动观测器设计原理 系统建模: 首先,需要建立被控对象的数学模型,明确系统的状态变…

HiveSQL题——炸裂+开窗

一、每个学科的成绩第一名是谁? 0 问题描述 基于学生成绩表输出每个科目的第一名是谁呢? 1 数据准备 with t1 as(selectzs as name,[{"Chinese":80},{"Math":70},{"English"…