网络协议(六):网络层

news2024/9/21 0:30:10

网络协议系列文章

网络协议(一):基本概念、计算机之间的连接方式

网络协议(二):MAC地址、IP地址、子网掩码、子网和超网

网络协议(三):路由器原理及数据包传输过程

网络协议(四):网络分类、ISP、上网方式、公网私网、NAT

网络协议(五):网络互联模型、物理层、数据链路层

网络协议(六):网络层


目录

  • 一、网络层组成
  • 二、网络层首部
    • 1、版本、首部长度、区分服务
    • 2、首部长度(Header Length)
    • 3、区分服务(Differentiated Services Field)
    • 4、总长度
    • 5、标识
    • 6、标志
    • 7、片偏移
    • 8、生存时间
    • 9、协议
    • 10、首部校验和

网络分层对应的通信协议和数据名称

在这里插入图片描述

一、网络层组成

  • 网络层数据包(IP数据包,Packet)由 首部、数据 两部分组成
  • 数据:很多时候是由传输层传递下来的数据段(Segment)

在这里插入图片描述

二、网络层首部

1、版本、首部长度、区分服务

  • 版本(Version)
    • 占4位
    • 0b0100:二进制4表示IPv4
    • 0b0110:二进制6表示IPv6
  • 首部长度(Header Length)
  • 区分服务(Differentiated Services Field)

2、首部长度(Header Length)

  • 占4位,二进制乘以4才是最终长度
  • 0b0101:二进制5*4 = 20(最小值)
  • 0b1111:二进制15*4 = 60(最大值)

3、区分服务(Differentiated Services Field)

  • 占8位
  • 可以用于提高网络的服务质量(QoS,Quality of Service)

4、总长度

  • 占16位
  • 首部 + 数据的长度之和,最大值是 65535(2^16 - 1)

在这里插入图片描述

  • 由于帧的数据不能超过1500字节,所以过大的IP数据包,需要分成片(fragments)传输给数据链路层
  • 每一片都有自己的网络层首部(IP首部)

5、标识

  • 占16位
  • 数据包的ID,当数据包过大进行分片时,同一个数据包的所有片的标识都是一样的
  • 有一个计数器专门管理数据包的ID,每发出一个数据包,ID就加1

6、标志

  • 占3位
  • 第1位(Reserved Bit):保留
  • 第2位(Don’t Fragment):1代表不允许分片,0代表允许分片
  • 第3位(More Fragments):1代表不是最后一片,0代表是最后一片

ping 的几个用法、wireshark抓包

  • ping /?:查看ping的用法
  • ping ip地址 -l 数据包大小:发送指定大小的数据包(ping www.baidu.com -l 1400)
  • ping ip地址 -f:不允许网络层分块 (ping www.baidu.com -l 2000 -f)

通过 Wireshark 抓包查看 ping www.baidu.com 发送的包

  • 通过 ping 命令,实际上发送了4次 ICMP数据包:

在这里插入图片描述

  • 通过 Wireshark 可以证实:

在这里插入图片描述
- 通过 Wireshark 可以证实:

7、片偏移

  • 占13位
  • 片偏移乘以8:字节偏移(wireshark显示的是字节偏移)
  • 每一片的长度一定是8的整数倍

在这里插入图片描述

  • ping ke.qq.com -l 4000 (往腾讯课程发长度为4000的数据包)

在这里插入图片描述

8、生存时间

  • 占8位
  • 每个路由器在转发之前会将TTL减1,一旦发现TTL减为0,路由器会返回错误报告
  • 观察使用 ping 命令后的TTL,能够推测出对方的操作系统、中间经过了多少个路由器

在这里插入图片描述

根据TTL追踪经过路由器

  • ping ip地址 -i TTL 设置TTL的值
  • 通过 tracert、pathping 命令,可以跟踪数据包经过了哪些路由器
  • ping baidu.com -i 1 经过1次就消亡,显然由网关回复

在这里插入图片描述

  • 通过 ping baidu.com -i 1、ping baidu.com - i 2、ping baidu.com -i 3 … 可以追踪发包到百度经过的路由器

在这里插入图片描述

  • tracert 和 pathping 命令实际上更简单也可以追踪路由器

在这里插入图片描述

  • pathping baidu.com

在这里插入图片描述

9、协议

  • 占8位
  • 表明所封装的数据是使用了什么协议

在这里插入图片描述

10、首部校验和

  • 用于检查首部是否有错误

Wireshark:
在这里插入图片描述

  • Wireshark 完整网络层首部

在这里插入图片描述

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

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

相关文章

【Spark分布式内存计算框架——Spark Core】10. Spark 内核调度(中)

8.3 Spark Shuffle 首先回顾MapReduce框架中Shuffle过程,整体流程图如下 Spark在DAG调度阶段会将一个Job划分为多个Stage,上游Stage做map工作,下游Stage做reduce工作,其本质上还是MapReduce计算框架。Shuffle是连接map和reduce之…

全国空气质量排行,云贵川和西藏新疆等地空气质量更好

哈喽,大家好,春节刚刚过去,不知道大家是不是都开始进入工作状态了呢?春节期间,允许燃放烟花爆竹的地区的朋友们不知道都去欣赏烟花表演没有?其他地区的朋友们相比烟花表演可能更关心燃放烟花爆竹造成的环境…

浅谈前端设计模式:策略模式和状态模式的异同点

一、策略模式 策略模式是定义一系列的算法,把它们一个个封装起来, 并且使它们可相互替换。 而且策略模式是重构小能力,特别适合拆分“胖逻辑”。 这个定义乍一看会有点懵,不过通过下面的例子就能慢慢理解它的意思。 先来看一个真实场景 某次活动要做…

测试2年还拿实习生的薪资打发我,你后悔去吧····

20年7月大学毕业,学的计算机科学专业。因为考研之后,秋招结束了。没什么更多的岗位选择,就想找个工作先干着,然后亲戚在一家大厂公司上班说要招测试,所以就来做测试了。 虽然都是属于计算机大类,但自己专业…

记一次 .NET 某游戏网站 CPU爆高分析

一:背景 1. 讲故事 这段时间经常有朋友微信上问我这个真实案例分析连载怎么不往下续了,关注我的朋友应该知道,我近二个月在研究 SQLSERVER,也写了十多篇文章,为什么要研究这东西呢? 是因为在 dump 中发现…

零入门kubernetes网络实战-13->同一宿主机上的两个网络命名空间通信方案

《零入门kubernetes网络实战》视频专栏地址 https://www.ixigua.com/7193641905282875942 本篇文章视频地址(稍后上传) 本篇文章主要是想模拟一下,在同一个宿主机上,多个网络命名空间之间如何通信? 有哪些可以采取的方案。 可能存在的方案…

【GD32F427开发板试用】6. 定时器运用之精确定时1s

本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站。作者:hehung 之前发帖 【GD32F427开发板试用】1. 串口实现scanf输入控制LED 【GD32F427开发板试用】2. RT-Thread标准版移植 【GD32F427开发板试用…

MySQL:连explain的type类型都没搞清楚,怎敢说精通SQL优化?

我们在使用SQL语句查询表数据时,提前用explain进行语句分析是一个非常好的习惯。通过explain输出sql的详细执行信息,就可以针对性的进行sql优化。 今天我们来分析一下,在explain中11种不同type代表的含义以及其应用场景。 1,sys…

如何在dom节点上使用fixed定位?实现基于父节点而不是浏览器的滚动定位?一眼看懂,简单明了。

文章目录一、想要实现的功能场景二、父相子绝方式实现dom节点内元素滚动定位2.1、父相子绝代码2.2、实现效果三、iframe中使用fixed方式实现3.1、fixed代码3.2、实现效果四、总结一、想要实现的功能场景 想在一个node节点中实现滚动,但是我的文本要基于这个元素在滚…

云计算关键技术

在云计算数据中心的构建过程中,离不开一些关键的技术,比如,虚拟化技术,分布式数据存储技术,云计算平台管理软件以及其它诸如HBase,Hadoop等相关技术。目录 虚拟化技术 计算虚拟化技术-KVM 分布式数据存储技…

基于 YAML 接口自动化测试框架设计

在设计自动化测试框架的时候,我们会经常将测试数据保存在外部的文件(如Excel、YAML、CSV),或者数据库中,实现脚本与数据解耦,方便后期维护。目前非常多的自动化测试框架采用通过Excel或者YAML文件直接编写测…

Allegro如何设置自动保存和自动保存的时间操作指导

Allegro如何设置自动保存和自动保存的时间操作指导 做PCB设计的时候,自动保存软件是一个必要的功能,Allegro同样支持设置自动保存,而且可以设置自动保存的时间。 如下图 具体操作如下 点击Setup点击User Preferences

都说高速信号过孔尽量少,高速先生却说有时候多点反而好?

作者:一博科技高速先生成员 黄刚过孔在高速领域可谓让硬件工程师,PCB设计工程师甚至仿真工程师都闻风丧胆,首先是因为它的阻抗没法像传输线一样,通过一些阻抗计算软件来得到,一般来说只能通过3D仿真来确定,…

二叉树的性质与推导及常见习题整理

目录 一、性质推导 二、常见的二叉树性质习题 1. 某二叉树共有 399 个结点,其中有 199 个度为 2 的结点,则该二叉树中的叶子结点数为()。 2.在具有 2n 个结点的完全二叉树中,叶子结点个数为(&#xff…

字母板上的路径[提取公共代码,提高复用率]

提取公共代码前言一、字母版上的路径二、贪心1、idea2、go3、代码不断拆分复用的过程总结参考文献前言 写代码,在提高效率的同时,要方便人看,这个人包括自己。大函数要拆分成一些小函数,让每个函数的宏观目的和步骤都显得清晰&am…

分享微信点餐小程序搭建步骤_微信点餐功能怎么做

线下餐饮实体店都开始摸索发展网上订餐服务。最多人选择的是入驻外卖平台,但抽成高,推广还要另买流量等问题,也让不少商家入不敷出。在这种情况下,建立自己的微信订餐小程序,做自己的私域流量是另一种捷径。那么&#…

分类模型评估:混淆矩阵、准确率、召回率、ROC

1. 混淆矩阵 在二分类问题中,混淆矩阵被用来度量模型的准确率。因为在二分类问题中单一样本的预测结果只有Yes or No,即:真或者假两种结果,所以全体样本的经二分类模型处理后,处理结果不外乎四种情况,每种…

反应-扩散方程(Reaction-diffusion system)

文章目录单组分反应-扩散方程双组分反应-扩散方程三组分和更多组分的反应-扩散方程Fishers equationKPP方程Belousov–Zhabotinsky reaction历史化学机理变体Noise-induced order数学背景Briggs–Rauscher reactionZFK equation行波解渐近解外部区域内部区域KPP-ZFK 转变Clavin…

13-PHP使用过的函数 121-130

121、bindColumn 将字段绑定到变量上 // while,foreach,list()进行结果数组的解构,解构到变量中; //!要在预处理对象上调用bindColumn函数 $stmt->bindColumn(id,$id); $stmt->bindColumn(name,$name); $stmt->bindColumn(sex,$sex); $stmt->bindColumn…

flink solt概念详解

ask是flink中的一个逻辑概念,一个任务由一个或者多个算子组合而成(多个算子构成一个任务是需要满足一定的条件才可以,有兴趣的老铁可以来了解一下 Operator Chain),为了提升任务执行的效率,可以对任务配置并行度,使任务在实际运行…