【网络基础】网络层基本协议介绍

目录

一、IP数据包

1.1 网络层的功能

1.2 IP数据包格式

二、ICMP协议介绍

2.1 作用

2.2 常用命令

2.2.1 Ping命令

2.2.2 tracert命令

2.3 广播域

三、ARP协议介绍

3.1 作用

3.2 原理


一、IP数据包

1.1 网络层的功能

  • 定义了基于IP协议的逻辑地址,就是IP地址
  • 连接不同的媒介类型
  • 选择数据通过网络的最佳路径,完成逻辑地址寻址

1.2 IP数据包格式

分为20字节的固定部分,表示每个IP数据包必须包含的部分和40字节的可变长度部分

  • 版本号(4bit):指IP协议版本。并且通信双方使用的版本必须一致,目前我们使用的是IPv4,表示为0100 十进制 是4
  • 首部长度(4):IP数据包的包头长度(不包括数据)
  • 优先级与服务类型(8):该字段用于表示数据包的优先级和服务类型。通过在数据包中划分一定的优先级,服务类型定义了如何处理数据一般没有使用
  • 总长度(16):IP数据包的总长度,最长为 65535 字节,包括包头和数据。
  • 标识符(16):该字段用于表示IP数据包的标识符。当IP对上层数据进行分片时,它将给所有的分片数据分配一组编号,然后将这些编号放入标识符字段中,保证分片不会被错误地重组。标识符字段用于标志一个数据包,以便接收节点可以重组被分片的数据包
  • 标志(3):和标识符一起传递,指示不可以被分片或者最后一个分片是否发出(完整)
  • 段偏移量(13):一个数据包需要分片,指明这个分片举例原始数据开始的位置,作用重组数据
  • TTL(time to live)生命周期(8):可以防止一个数据包在网络中无限循环的转发下去,每经过一个三层路由器 -1,当TTL的值为0时,该数据包将被丢弃 0-255
    tips:通过TTL的返回值可以确定你的系统类型,win 128左右,Linux 64左右。
  • 协议号(8):封装的上层哪个协议,ICMP:1 TCP:6 UDP:17
  • 首部校验和(16):这个字段只检验数据报的首部,不包括数据部分。这是因为数据报每经过一次路由器,都要重新计算一下首部校验和(因为,一些字段如生存时间、标志、片偏移等可能发生变化)
  • 源地址(32):源ip地址,表示发送端的IP地址
  • 目标地址(32):目标ip地址,表示接收端的IP地址
  • 可选项:选项字段根据实际情况可变长,可以和IP一起使用的选项有多个。例如,可以输入创建该数据包的时间等。在可选项之后,就是上层数据。

二、ICMP协议介绍

ICMP协议是IP协议的辅助协议

2.1 作用

监测网络中两台主机的双向连通性

2.2 常用命令

2.2.1 Ping命令

基本格式:

ping [选项] IP地址

ping -t 127.0.0.1  #长ping,ctrl+c停止否则无限ping

ping -l 1600 IP地址#表示指定每个数据包的大小为1600字节,默认为32字节

ping -w 5 IP地址 #指定等待时间为5秒

ping -n 2 IP地址 #指定ping的次数

在ICMP协议中,Ping使用的是ICMP报文,其中包含了一个类型字段(type)和代码字段(code)

TypeCode描述
00Echo Reply
30网络不可达
31主机不可达
32协议不可达
33端口不可达
110超时
80Echo Request

若出现Ping不通的情况可能是ICMP协议被禁用

2.2.2 tracert命令

基本格式:

tracert IP地址 #wintraceroute IP地址 #Linux

tracert也是ICMP协议,用于追踪经过了几个路由器设备。

2.3 广播域

广播域:一台机器发送广播,能收到消息的机器,都是在同一广播域。

交换机所有端口默认在同一个广播域里,

路由器每一个端口都是一个独立的广播域

三、ARP协议介绍

ARP协议是地址解析协议

3.1 作用

将IP地址转换成mac地址,

检测IP地址冲突,当一台设备获取一个ip地址时,会自动发送一个无故arp(免费arp),检测是否有设备已经使用此ip地址。

3.2 原理

  1. 1. 当PC1想发送数据给PC2,首先在自己的本地ARP缓存表中检查主机PC2的MAC地址是否存在?

  2. 2. 如果PC1缓存中没有找到响应的条目,它将询问主机PC2的MAC地址,从而将ARP请求帧广播到本地网络的所有主机。 该帧中包括源主机PC1的IP、MAC地址,本地网络中的所有主机都接收到ARP请求,并且检查是否与自己的IP地址相匹配。如果发现请求中IP地址与自己IP不匹配,则丢弃ARP请求。

  3. 3. 主机PC2确定ARP请求中得IP地址与自己的IP地址匹配,则将主机PC1的地址和MAC地址添加到本地缓存表中。

  4. 4. 主机PC2将包含其MAC地址的ARP回复消息直接发送回主机PC1(数据帧为单播)。

  5. 5. 主机PC1收到PC2发的ARP回复消息,将PC2的IP和MAC地址添加至自己ARP缓存表中,本机缓存是有生存期的,默认ARP缓存表有效期120s。当超过该有效期后,则将重复上面过程。主机PC2的MAC地址一旦确定,主机PC1就能向主机PC2发送IP信息

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

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

相关文章

数据结构应用——哈夫曼树

哈夫曼树 哈夫曼树的相关概念构造哈夫曼树基础算法 哈夫曼编码 哈夫曼树的相关概念 结点的权:有某种现实含义的数值。结点的带权路径长度:从树的根结点到该结点的路径长度(经过的边数)与该结点上权值的乘积。树的带权路径长度&am…

XiBe希贝奶瓶好用吗?2名宝宝的宝爸深度测评分享!

几乎每个新手宝爸宝妈都会有一段时间对孩子的很多东西都是不懂的,一边摸索一边学习。列如关于奶瓶这个问题就困扰不少新手爸妈,特别是面对这么多的品牌的奶瓶完全不知道怎么选。 相信很多新手爸妈都十分担心奶瓶材质安全问题,所以我作为一名…

OpenCV+OpenCV-Contrib源码编译

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、OpenCV是什么?二、OpenCV 源码编译1.前期准备1.1 源码下载1.2 cmake安装1.3 vscode 安装1.4 git 安装1.5 mingw安装 2.源码编译2.1 打开cmake2.…

python(django)之流程接口管理后台开发

1、在models.py中加入流程接口表和单一接口表 代码如下: from django.db import models from product.models import Product# Create your models here.class Apitest(models.Model):apitestname models.CharField(流程接口名称, max_length64)apitester model…

详细分析Python中的enumerate()函数(附多个Demo)

目录 前言1. 基本知识2. Demo 前言 对于Python的基本函数,从实战中获取确切知识 1. 基本知识 enumerate() 接受一个可迭代对象作为输入,并返回一个枚举对象这个枚举对象包含了原始可迭代对象中的每个元素以及对应的索引它允许在循环中同时获取索引和值…

uboot - pinctrl - FPGA回片前测试阶段 - 设置GPIO引脚复用失败

问题描述 pinctrl设置引脚复用失败,没有调用到controller中的set_groups_function函数。 问题定位 pinctrl如何注册dm节点如何进行设备树中各个设备节点下的复用配置为什么没调用到控制器实现的set_groups_function函数 &gpio0 {status "okay";p…

VMware Workstation Pro 17虚拟机超级详细搭建(含redis,nacos,docker)(一)

今天从零搭建一下虚拟机的环境,把nacos,redis等微服务组件还有数据库搭建到里面,首先看到的是我们最开始下载VMware Workstation Pro 17 之后的样子,总共一起应该有三部分因为篇幅太长了 下载地址 : VMware - Delivering a Digit…

Vue动态设置控制表格列表展现列

最近遇到一个需求,表格列表默认不展示某一列,当我设置后可以展示该列,也可以展示和隐藏别的列,起到可以对整个表格列展示隐藏控制的效果,如下示例,默认不展示“单位名称”这一列,在我点击设置齿轮后可以看到,有“单位名称”这一列,但未打钩: 当我勾中“单位名称”,…

第2讲-Memory(5)外存

磁盘存储器 组成 记录原理 性能指标 (磁盘存取时间的计算) 磁盘地址 工作过程 优点 ①存储容量大,位价格低; ②记录介质可重复使用; ③记录信息可长期保存而不丢失,甚至可脱机存档; ④非破坏性读出,读出时不需要再生。 缺点 存取速度慢,机械结构复杂,对工作环境…

在wps的word中如何引用正确引用参考文献

目录 插入参考文献编号把插入的编号置于右上角最终效果 插入参考文献编号 把插入的编号置于右上角 最终效果

面试算法-88-反转链表

题目 给你单链表的头节点 head ,请你反转链表,并返回反转后的链表。 示例 1: 输入:head [1,2,3,4,5] 输出:[5,4,3,2,1] 解 class Solution {public ListNode reverseList(ListNode head) {if(head null || hea…

大数据技术在工厂生产数字转型中的应用与价值

hello宝子们...我们是艾斯视觉擅长ui设计和前端开发10年经验!希望我的分享能帮助到您!如需帮助可以评论关注私信我们一起探讨!致敬感谢感恩! 随着大数据技术的快速发展,越来越多的企业开始关注并应用大数据技术&#x…

HCIP-Datacom(H12-821)新题

最新 HCIP-Datacom(H12-821)完整题库请扫描上方二维码访问,持续更新中。 以下关于OSPF的描述,哪些项是正确的? A. 第二类外部路由的开销值只是AS外部开销值,忽略AS内部开销值 B. AS-External-LSA描述的是…

prettier + eslint 配置

vue-cli 新建项目选择 ESLint Prettier 会自动下载相关包 settings.json {"editor.formatOnSave": true, // 开启保存文件自动格式化代码"editor.defaultFormatter": "esbenp.prettier-vscode", // 默认的代码格式化工具// "prettier.r…

【C++航海王:追寻罗杰的编程之路】stack

目录 1 -> stack的介绍和使用 1.1 -> stack的介绍 1.2 -> stack的使用 1.3 -> stack的模拟实现 1 -> stack的介绍和使用 1.1 -> stack的介绍 stack的文档介绍 1. stack是一种容器适配器,专门用在具有后进先出操作的上下文环境中&#xff0c…

力扣---零钱兑换---动态规划

思路: 这是一道典型的动态规划问题(希望下次不用提示,能直接认出来):我将g[i]定义为总金币为i所需的最少硬币个数。所以递推公式可以表示为:g[i]min(g[i-1],g[i-2],g[i-5])1,也就是g[i]min(g[i-…

【Python音视频技术】玩AI视频创作引发写Python音视频技术系列文章1---视频添加字幕

最近对视频创作感兴趣, 详情见之前写的几篇文章。 【AI应用】模仿爆款视频二次创作短视频操作步骤 【人工智能】AI数字人视频演示 【人工智能】AI视频二次创作演示 作为程序员出身的我,看到一些功能, 我都有猎奇的习惯, 想着自己用什么技…

js数据流详细讲解

文章目录 单向数据流单向数据流示例: 双向数据流双向数据流示例: 延伸和扩展状态管理Redux 示例: 异步数据流异步操作示例(使用 async/await): 数据转换和处理数据处理示例(使用 lodash): 实时数…

【软件测试】探索和学习在模型中的软件测试

🌈个人主页: Aileen_0v0 🔥热门专栏: 华为鸿蒙系统学习|计算机网络|数据结构与算法|MySQL| ​💫个人格言:“没有罗马,那就自己创造罗马~” #mermaid-svg-JIGESSc1ecUpVUnH {font-family:"trebuchet ms",verdana,arial,sans-serif;f…

七种查找方式(Java)

一、基本查找 也叫做顺序查找 说明:顺序查找适合于存储结构为数组或者链表。 基本思想:顺序查找也称为线形查找,属于无序查找算法。从数据结构线的一端开始,顺序扫描,依次将遍历到的结点与要查找的值相比较&#xff…