学习笔记——IP地址网络协议——网络层(IP)协议

一、网络层(IP)协议

网络层(被称为IP层)但网络层协议并不只是IP协议,还包括ICMP(Internet Control Message Protocol)协议、IPX(Internet Packet Exchange)协议等。

1、IP协议

IP(Internet Protocol)本身是一个协议文件的名称,该协议文件的内容非常少,主要是定义并阐述了IP报文的格式。

经常被提及的IP,一般不是特指IP(Internet Protocol)这个协议文件本身,而是泛指直接或间接与IP协议相关的任何内容。

网络层位于数据链路层与传输层之间。网络层中包含了许多协议,其中最为重要的协议就是IP协议。网络层提供了IP路由功能。理解IP路由除了要熟悉IP协议的工作机制之外,还必须理解IP编址以及如何合理地使用IP地址来设计网络。

IP协议有版本之分,分别是IPv4和IPv6。目前,Internet上的IP报文主要都是IPv4报文,但是逐步在向IPv6过渡。若无特别声明,本章所提及的IP均指IPv4。

Type=0x0800 代表IPV4报头。可变报头,最小是20B ,最大:60B

IPv4(Internet Protocol Version 4)协议族是TCP/IP协议族中最为核心的协议族。它工作在TCP/IP协议栈的网络层,该层与OSI参考模型的网络层相对应。

IPv6(Internet Protocol Version 6)是网络层协议的第二代标准协议,也被称为IPng

(IP Next Generation)。它是Internet工程任务组IETF(Internet Engineering Task Force)设计的一套规范,是IPv4(Internet Protocol Version 4)的升级版本。

总结:

IP协议:[定位地址=寻址转发]

实现部分的QOS功能

实现上层数据的分片功能

实现IP头部的校验

基于TTL实现网络中的防环

2、数据封装

应用数据需要经过TCP/IP每一层处理之后才能通过网络传输到目的端,每一层上都使用该

层的协议数据单元PDU(Protocol Data Unit)彼此交换信息。不同层的PDU中包含有不同的信息,因此PDU在不同层被赋予了不同的名称。

如上层数据在传输层添加TCP报头后得到的PDU被称为Segment(数据段);数据段被传递给网络层,网络层添加IP报头得到的PDU被称为Packet(数据包);数据包被传递到数据链路层,封装数据链路层报头和尾部得到的PDU被称为Frame(数据帧);最后,帧被转换为比特,通过网络介质传输。这种协议栈逐层向下传递数据,并添加报头和报尾的过程称为封装

本章节我们主要讨论数据在网络层的封装,如果封装为IP协议,则被称为IP Packet(IP数据包)。

4、IPV4报头

(1)IPV4报文格式

IP Packet(IP数据包),其包头主要内容如下∶

Version版本∶4 bit,4∶表示为IPv4; 6∶表示为IPv6。

Header Length首部长度∶4 bit,代表IP报头的长度(首部长度),如果不带Option字段,则为20,最长为60。

DS Field:定义优先级

DSCP:区分服务 后期结合QOS使用的 [不在QOS场景下 字段无意义]

Type of Service∶8 bit,服务类型。优先级,越高越先处理。只有在有QoS差分服务要求时,这个字段才起作用。

Total Length∶16 bit,总长度,整个IP数据包的长度(IP报头+上层数据 [总长度-IP报头长度=上层数据] )。

Identification∶ 16 bit,标识,分片重组时会用到该字段。

Flags∶ 3 bit,标志位。

Fragment Offset∶12 bit,片偏移,分片重组时会用到该字段。

TTL(Time to Live)8 bit,生存时间。

Protocol∶8 bit,协议∶下一层协议。指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上交给哪个进程处理。

常见值∶

1: ICMP, Internet Control Message;        2: IGMP, Internet Group Management;

6: TCP, Transmission Control Protocol;     17: UDP, User Datagram Protocol。

Header Checksum16 bit,首部检验和。

Source IP Address32 bit,源IP地址。

Destination IP Address32 bit,目的IP地址。

Options∶可变,选项字段。

Padding∶可变,填充字段,全填0。

(2)数据包分片

当数据包比链路MTU大时,将报文分割成多个片段的过程叫做分片

网络中转发的IP报文的长度可以不同,但如果报文长度超过了数据链路所支持的最大长度,则报文就需要分割成若干个较小的片段才能够在链路上传输。

Identification∶16 bit,发送主机赋予的标识,分片重组时会用到该字段。

Flags∶3 bit,标志位(标识)

DF:Dont’t fragment:不分片位[应用开发,本身制定了]

DF=0  代表该数据可以进行分片。保留段位∶0,保留。

DF=1  代表该数据不可以分片,数据大于MTU 单DF=1,则无法分片,数据丢弃。

不分段位∶1表示"不能分片"; 0表示"能分片"。

MF:更多分片

MF=1,表示"后面还有分片";

MF=0,表示"代表后方没有分片了,接受者可以重组"

Fragment Offset∶12 bit,片偏移,分片重组时会用到该字段。指出较长的分组在分片后,

该片在原分组中的相对位置,与更多段位组合,帮助接收方组合分段的报文。

>分片后,子分片会保留和原始分片相同的IP报头。

>分片后,除原始分片之外,其他的子分片都不会携带上层的协议报头[icmp-传输层][一般指最后一个]

(3)协议号(Protocol)

IP报文头中的协议号字段标识了将会继续处理该报文的协议。即指出此数据包携带的数据使用何种协议,以便目的主机的IP层将数据部分上报给哪个进程处理。

目的端的网络层在接收并处理报文以后,需要决定下一步对报文如何处理。IP报文头中的协议字段标识了将会继续处理报文的协议。

该字段可以标识网络层协议,也可以标识上层协议,

- ICMP(Internet Control Message Protocol,因特网控制报文协议,对应值0x01)1=ICMP

- TCP(Transmission Control Protocol,传输控制协议,对应值0x06)      6=TCP

- UDP(User Datagram Protocol,用户数据包协议,对应值0x11)          17=UDP

- OSPF (Open Shortest Path First,开放式最短路径优先,对应值)          89=OSPF

(4)生存时间(Time to Live , TTL)

TTL字段设置了数据包可以经过的路由器数目(三层设备)[自带防环手断]。

防止IP数据包在网络内无休止的传输,一旦经过一个路由器(三层设备),TTL值就会减1,当该字段值为0时,数据包将被丢弃。

防环:规定特定数值255、128、64[不同的厂商不一样] 当TTL减为1后,数据会丢弃,并且向源端发送一个TTL超时。

破环:无法消除环路 -->结合 工程师在配置时合理化的配置

利用TTL特性,可以实现路由跟踪技术,排错的重要方法之一!

Ping -i   或   Tracert:

Time to Live∶8 bit,生存时间。可经过的最多路由数,即数据包在网络中可通过的路由器数的最大值。

报文在网段间转发时,如果网络设备上的路由规划不合理,就可能会出现环路,导致报文在网络中无限循环,无法到达目的端。环路发生后,所有发往这个目的地的报文都会被循环转发,随着这种报文逐渐增多,网络将会发生拥塞。

为避免环路导致的网络拥塞,IP报文头中包含一个生存时间TTL(Time To Live)字段。报文每经过一台三层设备,TTL值减1。初始TTL值由源端设备设置。当报文中的TTL 降为0时,报文会被丢弃。同时,丢弃报文的设备会根据报文头中的源IP地址向源端发送ICMP错误消息。(注意∶网络设备也可被配置为不向源端发送ICMP错误消息。)

Head checksum头部校验和 [E2=FCS] [类似]

FCS:所有                    Check-sum:校验IP报头的头部


整个华为数通学习笔记系列中,本人是以网络视频与网络文章的方式自学的,并按自己理解的方式总结了学习笔记,某些笔记段落中可能有部分文字或图片与网络中有雷同,并非抄袭。完处于学习态度,觉得这段文字更通俗易懂,融入了自己的学习笔记中。如有相关文字涉及到某个人的版权利益,可以直接联系我,我会把相关文字删除。【VX:czlingyun    暗号:CSDN】

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

使用python统计word文档页数

使用python统计word文档页数 介绍效果代码 介绍 使用python统计word文档的页数 效果 代码 import os import comtypes.clientdef get_word_page_count(docx_path):try:# Initialize the COM objectword comtypes.client.CreateObject(Word.Application)word.Visible False…

【Qt】探索Qt绘图世界:自定义控件与视觉效果的全面指南

文章目录 前言:1. 绘图基本概念2. 绘制各种形状3. 绘制文字(显示文字)、设置画笔4. 画刷5. 绘制图片6. 特殊的绘图设备总结: 前言: 在软件开发中,图形用户界面(GUI)的设计是至关重要…

【面试题】CAP理论、BASE理论及其注册中心选型

1.CAP理论 CAP:指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition Tolerance(分区容错性),三者不可同时获得 一致性(C&#x…

成功解决“IndexError: pop index out of range”错误的全面指南

成功解决“IndexError: pop index out of range”错误的全面指南 引言 在Python编程中,处理列表(list)、双端队列(deque)或其他可迭代对象时,我们经常使用pop()方法来移除并返回指定索引处的元素。然而&am…

图解 Python 编程(10) | 错误与异常处理

🌞欢迎来到Python的世界 🌈博客主页:卿云阁 💌欢迎关注🎉点赞👍收藏⭐️留言📝 🌟本文由卿云阁原创! 📆首发时间:🌹2024年6月2日&…

图解 IPv6 地址范围

1、 IPv6 多播地址范围 2、1 - 接口本地<2 - 链路本地<5 - 站点本地<8 - 组织本地<E - 全局 3、Well-Known Multicast Addresses

TiDB-从0到1-部署篇

TiDB从0到1系列 TiDB-从0到1-体系结构TiDB-从0到1-分布式存储TiDB-从0到1-分布式事务TiDB-从0到1-MVCCTiDB-从0到1-部署篇 一、TiUP TiUP是TiDB4.0版本引入的集群运维工具,通过TiUP可以进行TiDB的日常运维工作,包括部署、启动、关闭、销毁、弹性扩缩容…

U-boot、linux内核、根文件系统移植以及程序

终于这几天把这个移植的流程过了一遍,所以特此回来总结。 U-boot移植 首先是U-boot移植。Linux 系统要启动就必须需要一个 bootloader 程序,也就说芯片上电以后先运行一段bootloader 程序。这段bootloader程序会先初始化DDR等外设,然后将Li…

linux sed命令替换文件端口

1、需求描述&#xff1a;因sed -i ‘s/旧端口/新端口/g’ 文件&#xff0c;替换会直接增加端口导致端口直接追加后面&#xff0c;因此需要修改 要求&#xff1a;2300替换为23003&#xff0c;23001替换为23004 <value>192.168.1.133</value></constructor-arg>…

【学习Day4】计算机基础

✍&#x1f3fb;记录学习过程中的输出&#xff0c;坚持每天学习一点点~ ❤️希望能给大家提供帮助~欢迎点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb;指点&#x1f64f; ❤️学习和复习的过程是愉快嘚。 1.7.3 流水线 流水线&#xff08;pipeline&#xff09;技术…

考研数学考到110+分,到底有多难?

很难&#xff01; 大家平时在网上上看到很多人说自己考了130&#xff0c;其实这些人只占参加考研数学人数的极少部分&#xff0c;有个数据可以展示出来考研数学到底有多难&#xff1a; 在几百万考研大军中&#xff0c;能考到120分以上的考生只有2%。绝大多数人的分数集中在30…

数字经济中的哪些行业或领域最依赖云服务器?

数字经济是互联网发展的产物&#xff0c;近几年随着网络发展&#xff0c;有好些个行业或领域那可真是对云服务器“爱得深沉” 以电子商务为例&#xff0c;典型的如亚马逊、阿里巴巴等电商巨头&#xff0c;它们所面对的是海量且繁杂的商品信息&#xff0c;涵盖从商品的详细规格…

01 - 嵌入式之软件的安装

1 - 首先我们需要安装keil5软件&#xff0c;我们可以在官网找到进行下载~ ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/29f87fa21a4744af9ce288a1bc607c20.png)2 - 下载后就得到如下这个exe文件&#xff1a; 3 - 右击管理员运行 4 - 安装步骤 安装的过程…

浏览器运行原理:网页被解析过程、script元素和页面解析的关系、defer和async使用;V8引擎执行原理(执行js)

一、浏览器渲染页面的流程 1.如何找到服务器 2.找到服务器如何下载对应的静态资源 输入完服务器地址&#xff0c;下载下来的一般是html文件&#xff0c;在解析html文件过程中&#xff0c;遇到link引用了css文件&#xff0c;就下载对应的css文件&#xff0c;js文件同理 3.一个…

飞书API(11):阿里云MaxCompute分区表入库

一、引入 前面入库阿里云 MaxCompute 的数据都是读取之后直接写入&#xff0c;保留数据最新的状态&#xff0c;如果我要保留历史的状态&#xff0c;怎么办呢&#xff1f;MaxCompute 表有一个分区功能&#xff0c;可以自行定义分区。我们可以使用 MaxCompute 表的分区功能&…

01背包变式例题

传送门——P2370 yyy2015c01 的 U 盘 题解&#xff1a;题目意思很好理解&#xff0c;就是说&#xff0c;当能够达到预期的U盘的最小接口&#xff08;接口越大&#xff0c;能传递的文件越大&#xff09;&#xff0c;然后我们就需要先看题目了&#xff0c;有n个文件&#xff0c;每…

Spring 中如何控制 Bean 的加载顺序?

如果你脱口而出说添加 Order 注解或者是实现 Ordered 接口&#xff0c;那么恭喜&#xff0c;你掉坑了。 一 Order 注解和 Ordered 接口 在 Spring 框架中&#xff0c;Order 是一个非常实用的元注解&#xff0c;它位于 spring-core 包下&#xff0c;主要用于控制某些特定上下文…

适合技术小白学习的项目1863java在线视频网站系统 Myeclipse开发mysql数据库web结构java编程计算机网页项目

一、源码特点 java在线视频网站系统 是一套完善的web设计系统&#xff0c;对理解JSP java编程开发语言有帮助采用了java设计&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统采用web模式&#xff0c;系统主要采用B/S模式开发。 开发环境为TOMCAT7.0,Myeclipse8.5开发…

简单、免费、强大的高效率截图工具神器——Snipaste(下载安装+常用快捷键教学)

一、简介 Snipaste是一款功能强大的截图和贴图工具&#xff0c;它允许用户快速截取屏幕上的任意区域&#xff0c;并将截图以浮窗形式显示在屏幕上。用户可以自由调整浮窗的位置和大小&#xff0c;甚至将浮窗设置为半透明&#xff0c;以便在查看屏幕内容时不会遮挡视线。此外&a…

golang map部分原理源码个人走读-附个人理解过程图解

近期再写map的demo时出现了下面一段报错&#xff0c;于是带着疑惑去看了一下源码 目的&#xff1a;主要想知道为啥map不让并发读写 fatal error: concurrent map read and map write 一.map的数据结构 先有个印象&#xff0c;后续会详细介绍 // A header for a Go map. ty…