IP协议的相关特性、数据链路层相关内容讲解

news2024/11/17 22:24:02

文章目录

  • IP协议相关特性
    • 地址管理
      • NAT机制
      • IP地址的组成
      • 特殊的IP地址
    • 路由选择
  • 数据链路层相关内容
    • 以太网
    • MTU

IP协议相关特性

在这里插入图片描述
首先我们来认识一下IP协议的报头:
4位版本号:指定IP协议的版本,对于IPv4就是4.

4位头部长度:IP头部的长度是多少个32bit,也就length*4的字节数,4bit表示的最大数据是15,因此IP头部最大长度是60个字节。

8位服务类型:用于分配优先级、延迟、吞吐量以及可靠性;前3位是优先级,后面4位成为服务类型,最后1位没有定义。

16位总长度:IP数据报整体占多少个字节。

16位标识:唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每个片里面1这个id都是相同的。

3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。

13位分片偏移:是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。用于重组源数据。

8位生存时间:数据报到达目的地的最大报文跳数,一般为64,每次经过一个路由,TTL -= 1,一直减到0还没有到达,那么就丢弃了,可以防止出现路由循环。

8位协议:表示上层协议的类型。

16位头部校验和:使用CRC进行校验,用来甄别头部是否损坏。

32位源地址和32位目的地址:表示发送端和接收端。

地址管理

从上述的IP数据报头可以看出来,IP地址是一个4字节,32位的整数。但是我们通常会把这个32位的整数转换成点分10进制的表示方法
在这里插入图片描述
这样一串东西就是我的IP地址,三个点把整数分成了4个部分,每一个部分就是一个字节,每个部分的取值范围位0-255。

我们可以尝试着计算一下一个32位的整数可以产生多少不同的地址呢?42亿9千万个,在过去的互联网环境下,42亿9千万个IP地址绝对够我们使用,可是互联网飞速发展,这个地址数量已经不够用了,如何解决这个问题呢?

有两个解决方法:
一个是动态分配IP地址:只给正在上网的设备分配地址,没有上网的设备不给分配地址。

另一个就是NAT机制

NAT机制

NAT机制将IP地址分为了两大类,一类我们称为内网,一类称为外网。

内网IP:10.* 172.16.* - 172.32.1.*192.168.* 内网IP可以重复出现。

外网IP:剩下的所有IP 外网IP必须唯一

在这里插入图片描述
类似于上面这样的结构,当我要在哔哩哔哩上搜索IP协议讲解,此时我的电脑就会找到路由器,告诉路由器我要干什么,路由器此时就会针对源IP进行替换,替换成路由器自己的IP之后将数据报发送给哔哩哔哩服务器,此时哔哩哔哩的服务器接认为收到的这是数据来自于1.2.3.4这个IP,而不是192.168.0.79这个IP。因为外网设备是无法直接访问内网的设备的

此时我的舍友也在哔哩哔哩上搜索小姐姐跳舞,同样要经过路由器进行IP替换后发送给哔哩哔哩的服务器。那么问题来了服务器返回数据时,目的IP都是路由器的IP,如何区分那个数据报是给哪一个主机的呢?路由器做了IP替换,他也会记得是谁替换了谁。

NAT背景下如何通信:
1、外网设备 >> 外网设备,可以直接通信
2、内网设备 >> 其他内网设备, 不允许
3、外网设备 >> 内网设备, 不允许
4、内网设备 >> 外网设备,对应的内网设备的路由器,触发NAT机制进行IP替换,此时就会给这个网络数据报的源IP替换成路由器自己的IP。

IP地址的组成

IP地址分为了两个部分,网络号主机号

网络号:标识网段,保证相互连接的两个网段具有不同的标识。
主机号: 标识主机,同一网段内,主机之间具有相同的网络号,但是必须有不同的主机号。

下面我来通过画图说明一下网络号和主机号的规则,一般家里的局域网由路由器连接,路由器一般都会有两个口一个Wan口用于连接广域网,一个Lan扣用于连接局域网,有时候Wan口并非真正意义的广域网。

在这里插入图片描述
此时路由器就连接了两个相邻的局域网,在我的电脑所在的局域网中,网络号为192.168.0.,同时在这个局域网中的各个设备的主机号不能重复。家用电视所在的局域网中网络号为192.168.1.,同样这个局域网中的各个设备的主机号也不能重复,同时因为这个路由器将两个局域网连接在一起了,这两个局域网就被成为相邻的局域网,这个时候两个局域网的网络号也不能重复

那么问题又来了,如何区分网络号和主机号呢?是不是前三个字节一定是主机号而后一个字节一定是网络号呢?不是的,对于网络号主机号的划分是有两种分类方法的:1、IP地址类型(ABCDE)2、子网掩码

IP地址类型(ABCDE)
在这里插入图片描述
用前缀来区分类别,每个类别有固定的网络号位和主机号位。

子网掩码
在这里插入图片描述
子网掩码站在二进制的角度看,左侧都为1右侧都为0,为1的部分有几位,就有几位网络号,剩下的就是主机号了。

特殊的IP地址

主机号全部为0的
例如:192.169.0.0 这个就是一个网络号,局域网中不存在某个主机的主机号为0。

主机号全部为1的
192.168.0.255 这是一个广播地址。

ip为127.*开头的我们成为环回IP

主机号为1的,一般作为网关IP,这个不是绝对的。

路由选择

传输层关注的端到端,而网络层关注的是究竟选择哪一条路实现端到端,因为互联网中的设备非常之多,所以这条路存在了大量的冗余,如何筛选路径,这个就是路由选择需要做的事情了。

类似于高德地图导航,当我们知道出发地和目的地后,有很多条路都可以到达目的地,但是高德地图会选择一条最近的路,网络上也是一样,区别在于,高德地图可以记住所有的路,而在网络中路由器的能力有限,他只能记住自己周围的设备并且生成一个路由表来记录,我们进行路由选择时没到达一个路由器就会“问路”,但是有可能该路由器的路由表中没有这个目的IP,此时路由器会指出一条默认的路径(路由表中的“吓一跳表项”),这个路由器更高一级,所以更见多识广,反复这样问路最后找到目的IP,规划出来了一条路径,这就是路由选择

数据链路层相关内容

以太网

首先我们先来认识一下以太网帧
在这里插入图片描述
数据链路层关注的是相邻节点的传输,所以有mac地址,占6个字节,相比于IPv4的4字节大了很多,所以当前的每个设备都有唯一的mac地址。

类型为0800的是用来传输数据的以太网帧,类型为0806和8035的是特殊的以太网帧。

值得注意的是,以太网帧的最大载荷为1500,那么如果IP数据报内容大于这个最大载荷怎么办呢?

MTU

一般我们把数据链路层的数据帧的最大载荷成为MTU,如果承载的数据长度超过这个MTU,那么就会在IP层进行分包,是每个数据帧都在MTU的范围之内。

在之前的IP协议的报头我们需要关注三个内容:

1、16位标识:一个大的IP数据报,拆成对各小的报之后,这个标识都是一样的。

2、3位标志位:有1位不用,1位表示是否分包了,还有1位表示当前这个分包是否是最后一个(结束标志)。

3、13位片偏移:简单来说就是表示了每个小的数据报的先后顺序,用来组包的。

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

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

相关文章

每日一题158—— 图片平滑器

图像平滑器 是大小为 3 x 3 的过滤器,用于对图像的每个单元格平滑处理,平滑处理后单元格的值为该单元格的平均灰度。 每个单元格的 平均灰度 定义为:该单元格自身及其周围的 8 个单元格的平均值,结果需向下取整。(即…

常用中外文献检索网站大盘点

一、常用中文文献检索权威网站: 1、知网:是全球最大的中文数据库。提供中国学术文献、外文文献、学位论文、报纸、会议、年鉴、工具书等各类资源,并提供在线阅读和下载服务。涵盖领域包括:基础科学、文史哲、工程科技、社会科学、…

世界博物馆日:一起来看看这些“不太正经”的文物!

今天是5月18日,世界博物馆日。 这两年喜欢逛博物馆的年轻人越来越多了。和爬山、露营一样,博物馆打卡已经是这一届年轻人最受欢迎的娱乐方式之一了。 今天我们要和大家分享的是:全国各地博物馆里收藏的那些萌的、凶的、神秘的、搞笑的…精品…

从零开始 Spring Boot 31:Spring 表达式语言

从零开始 Spring Boot 31:Spring 表达式语言 图源:简书 (jianshu.com) Spring表达式语言(Spring Expression Language,简称 “SpEL”)是一种强大的表达式语言,支持在运行时查询和操作对象图。该语言的语法…

2024王道数据结构考研丨第一章:绪论

2024王道数据结构考研笔记专栏将持续更新,欢迎 点此 收藏,共同交流学习… 文章目录 第一章:绪论1.1数据结构的基本概念1.2数据结构的三要素1.3算法的基本概念1.4算法的时间复杂度1.5算法的空间复杂度 第一章:绪论 1.1数据结构的基…

Vue - vxe-table 表格合并行应用

Vue - vxe-table 表格合并行应用 一. 将相同的列数据合并为一行实现效果实现方法 二. 拓展合并:根据某个字段合并后的数据 进行合并其他字段列实现效果实现方法 vxe-table 地址:https://vxetable.cn/v2/#/table/start/install 一. 将相同的列数据合并为一…

亚马逊云科技作为中国出海力量之一,为中国企业提供技术桥梁

这是一个真实的故事:一家出海企业的项目交付需要在非洲吉布提部署上云,企业负责人在地图上找了半天才找到吉布提,而亚马逊云科技仅用了3天的时间就为企业在当地的业务开展,交付了IT基础设施。对于出海企业来说,这种效率…

前端学习--Vue(2)常见指令

一、Vue简介 1.1 概念 Vue是一套用于构建用户界面的前端框架 框架:现成解决方案,遵守规范去编写业务功能 指令、组件、路由、Vuex、vue组件库 1.2 特性 数据驱动视图 vue连接页面结构和数据,监听数据变化,自动渲染页面结构…

【遗传算法】【处理图像类问题】

文章目录 一、前言二、问题描述三、算法介绍四、其他知识点Reference 一、前言 近期感兴趣的算法,以前没这么好奇过一个算法。时间没想象的焦虑,认真做一些事情算法入门篇 二、问题描述 从前,一群扇贝在海岸边悠哉游哉地生活着。它们衣食不…

亚马逊云科技宣布推出一个新的开源示例应用程序

5月5日,亚马逊云科技宣布推出一个新的开源示例应用程序,这是一个虚构的二手书电子商务商店,被称之为Bob’s Used Books,可供使用亚马逊云科技的.NET开发人员使用。“亚马逊云科技的.NET宣传和开发团队定期与客户交谈,在…

如何科学地利用高光谱图像合成真彩色RGB图像?

如何科学地利用高光谱图像合成真彩色RGB图像? 1. 前言 参考链接: 色匹配函数是什么? - 知乎 (zhihu.com) 23. 颜色知识1-人类的视觉系统与颜色 - 知乎 (zhihu.com) 色彩空间基础 - 知乎 (zhihu.com) 色彩空间表示与转换 - 知乎 (zhihu.com) CIE XYZ - fresh…

Golang笔记:使用melody包进行WebSocket通讯

文章目录 目的使用示例与说明总结 目的 WebSocket是Web开发应用中非常常用的功能,用于客户端和服务器间长时间的实时双向数据通讯。Golang中官方并没有实现这个功能,需要借助第三方的包来实现。 目前被最广泛使用的包是 gorilla/websocket https://pkg…

Host头攻击

转载与:https://blog.csdn.net/weixin_47723270/article/details/129472716 01 HOST头部攻击漏洞知识 Host首部字段是HTTP/1.1新增的,旨在告诉服务器,客户端请求的主机名和端口号,主要用来实现虚拟主机技术。 运用虚拟主机技术&a…

第八章:C语言的简单指针

谈起指针,简直就是谈虎色变,学习C语言的人都知道,指针的难度,就好像高中的导数一样,难道离谱,但是但是,别慌呀,咱们慢慢来,空杯心态,一步一个脚印&#xff0c…

【STM32】STM32使用继电器

STM32使用继电器 其实继电器简单来说就是一个开关,VCC表示电源正极、GND表示电源负极、IN表示信号输入脚,COM表示公共端,NC(normal close)表示常闭端,NO(normal open)表示常开端。一般情况下是常闭状态。 …

为数字人充值AI情商 小冰“克隆人”要卖给谁?

近日,小冰公司启动“GPT克隆人计划”,据悉最短只要采集三分钟数据,就能帮助用户创造源于本人性格、技能、声音、外貌的AI克隆人,如同拥有“平行世界的第二人生”。 这不免让人想起了《流浪地球2》里华仔为剧中女儿“数字续命”的…

chatgpt赋能Python-python3_2__1

Python3-2<<1&#xff1a; 了解运算符的使用和优先级 Python是一种优雅而高效的编程语言&#xff0c;而Python3-2<<1是一个关于运算符优先级的例子&#xff0c;值得我们深入探讨。 在这篇文章中&#xff0c;我们将介绍Python3中运算符的优先级&#xff0c;并对其中…

chatgpt赋能Python-python3_6怎么用

Python3.6是什么&#xff1f; Python是一种非常流行的编程语言&#xff0c;旨在提供简洁、易读且易于维护的代码。Python3.6是该语言的下一个主要版本&#xff0c;带来了一些改进并改进了现有功能&#xff0c; Python3.6有哪些新特性&#xff1f; 字典内置方法&#xff0c;支…

chatgpt赋能Python-python3_53怎么安装

Python3.5.3安装方法及注意事项 Python是一种高级编程语言&#xff0c;被广泛应用于科学&#xff0c;数学&#xff0c;机器学习等领域。在本文中&#xff0c;我们将介绍如何安装Python 3.5.3版本&#xff0c;并提供注意事项以确保安装过程顺利进行。 步骤1&#xff1a;下载Py…

生态碳汇涡度通量数据分析

生态碳汇涡度相关监测与通量数据分析 朱老师&#xff08;副教授&#xff09;&#xff1a;来自国内重点高校&#xff0c;长期从事涡度通量观测与分析研究&#xff0c;发表SCI论文多篇&#xff0c;主持国家与地方科研项目多个&#xff0c;在生态环境数据处理与分析中具有丰富的实…