【网络原理】 (3) (网络层 IP协议 地址管理 路由选择 数据链路层 以太网 MTU 补充:DNS)

news2024/11/9 3:52:19

文章目录

  • 网络层
    • IP协议
      • 地址管理
      • 路由选择
  • 数据链路层
    • 以太网
    • MTU
    • 补充:DNS


网络层

IP协议

网络层的代表,IP协议.
在这里插入图片描述

  1. 4位版本号(version):指定IP协议的版本,对于IPv4来说,就是4。
  2. 4位头部长度(header length):IP头部的长度是多少个32bit,也就是 length * 4 的字节数。4bit表示最大的数字是15,因此IP头部最大长度是60字节。
  3. 8位服务类型(Type Of Service):3位优先权字段(已经弃用),4位TOS字段,和1位保留字段(必须置为0)。4位TOS分别表示:最小延时,最大吞吐量,最高可靠性,最小成本。这四者相互冲突,只能选择一个。对于ssh/telnet这样的应用程序,最小延时比较重要;对于ftp这样的程序,最大吞吐量比较重要。
  4. 16位总长度(total length):IP数据报整体占多少个字节。
  5. 16位标识(id):唯一的标识主机发送的报文。如果IP报文在数据链路层被分片了,那么每一个片里面的这个id都是相同的。
  6. 3位标志字段:第一位保留(保留的意思是现在不用,但是还没想好说不定以后要用到)。第二位置为1表示禁止分片,这时候如果报文长度超过MTU,IP模块就会丢弃报文。第三位表示"更多分片",如果分片了的话,最后一个分片置为1,其他是0。类似于一个结束标记。
  7. 13位分片偏移(framegament offset):是分片相对于原始IP报文开始处的偏移。其实就是在表示当前分片在原报文中处在哪个位置。实际偏移的字节数是这个值 * 8 得到的。因此,除了最后一个报文之外,其他报文的长度必须是8的整数倍(否则报文就不连续了)。
  8. 8位生存时间(Time To Live TTL):数据报到达目的地的最大报文跳数。一般是64。每次经过一个路由,TTL -= 1,一直减到0还没到达,那么就丢弃了。这个字段主要是用来防止出现路由循环。
  9. 8位协议:表示上层协议的类型。
  10. 16位头部校验和:使用CRC进行校验,来鉴别头部是否损坏。
  11. 32位源IP地址和32位目标IP地址:表示发送端和接收端。我们日常见到的IP地址是一串数字,那是用点分十进制来把32位,4个字节的数字给分割成4个部分.每个部分分别使用0-255十进制整数表示.

地址,期望每个设备都不相同,但是32位数字只能表示42亿9千万个数字(期望使用这个表示全世界所有的上网设备是远远不够的).
为了解决IP地址不够用的问题:
(1) 动态分配IP地址,此时就可以剩下一批IP地址,这个方案只是提高了利用率,治标不治本.
(2) NAT网络地址转换,本质是使用一个IP代表一批设备.也能大大提高IP地址的利用率,使用端口号区分.

在这里插入图片描述
NAT要求公网IP必须是唯一的,私网IP可以在不同的局域网中重复出现,如果某个私网里的设备想访问公网的设备,就需要对应NAT设备(路由器),把IP地址进行映射,从而完成网络访问.反之,公网设备无法直接访问私网的设备,.不同局域网的私网设备没法直接相互访问.NAT机制能够有效的解决IP不够用的问题,但是带来的副作用就是网络环境更加复杂了.
(3) IPV6 (根本上解决了IP不够用的问题) 它是使用16字节表示IP地址.它比4字节表示的地址个数多了很多.它表示的地址是42亿的4次方个.IPV6虽然很好,但是目前世界上仍然以IPV4 + NAT + 动态分配的.

地址管理

我们把一个IP地址分成两个部分.一个叫做网络号,一个叫做主机号.网络号用来标识局域网,主机号是作为局域网内部的身份区分.划分网络号和主机号是为了组网.
在这里插入图片描述
通过子网掩码可以区分网络号和主机号.子网掩码32个bit位, 左侧都是1,右侧都是0
1的部分就描述了IP有多少位是网络号.
在这里插入图片描述

特殊的IP地址:

  1. 将IP地址中的主机地址全部设为0,就成为了网络号,代表这个局域网;
  2. 将IP地址中的主机地址全部设为1,就成为了广播地址,用于给同一个链路中相互连接的所有主机发送数据包;
  3. 127.*的IP地址用于本机环回(loop back)测试,通常是127.0.0.1
  4. 本机环回主要用于本机到本机的网络通信(系统内部为了性能,不会走网络的方式传输),对于开发网络通信的程序(即网络编程)而言,常见的开发方式都是本机到本机的网络通信。

路由选择

简单来说,每个路由器都会保存一定的周围设备的信息(路由表),每次有一个IP数据报经过路由器就需要匹配路由表,看看接下来怎么走,如果路由表上有匹配的项,直接按照要求走就行了,如果没有匹配的项,它会提供一个默认路径,大体方向是不会错的,沿着这个方向继续走,继续"问路".

数据链路层

数据链路层考虑相邻两个节点之间的传输,比如:通过网线/光纤/无线直接相连的两个设备.典型的协议很多,比如:“以太网”.

以太网

以太网是一个更广泛的协议,她规定了数据链路层内容,也规定了物理层的内容.咱们日常使用的网线就叫做"以太网线"(遵守以太网协议的网线)
在这里插入图片描述
帧头包括目的地址,源地址和类型.目的地址和源地址不是使用IP地址表示,而是搞了一个MAC地址.MAC是和IP地址完全独立的另一套地址体系.MAC地址是6个字节比IPV4地址大很多,当前每个设备都有唯一的MAC地址,它的地址不是动态分配的,而是网卡在出场的时候就被设置好了.IP和MAC各司其职,IP描述整个传输过程的起点终点,MAC则描述两个相邻节点起点终点.

普通的以太网数据帧载荷部分就是一个完整的IP数据帧.类型0806表示的是载荷部分是一个ARP报文.类型8035表示载荷部分是一个RARP报文,这俩类型就是数据链路层中的另外的协议(ARP协议).通过这个协议可以某个路由器/交换机,能够认识局域网里的其他设备,通过ARP协议会在交换机/路由器里建立出一个表.这个表相当于一个hash表,能够建立出IP和MAC之间的映射关系.

MTU

MTU相当于发快递时对包裹尺寸的限制。这个限制是不同的数据链路对应的物理层,产生的限制。

在这里插入图片描述

MTU是一个数据链路层的数据帧能够承载数据的最大长度(载荷的长度).载荷具体多长和使用的物理介质有很大的关系,当然和数据链路层使用的协议也有很大的关系.比如以太网协议,MTU 1500(字节).正是MTU引起了IP这个协议来进行分包组包.IP的分包组包通常不是根据这个IP最大长度64KB来分的,大概率情况下数据链路层的MTU都比64KB要小.引入MTU和物理层有很大的关系.

补充:DNS

DNS是应用层的一个协议,也是当前互联网的基石.

域名就是网址,在网络上的服务器,要访问它需要的是IP地址,但是IP地址太拗口,于是使用一些简单的单词构成字符串来表示地址,于是就有了域名,每个域名都对应了一个或N个IP地址.

在这里插入图片描述
既然如此,就需要能把域名和IP地址给对应上.最原始的做法是使用hosts文件(像hash表一样,建立了IP和域名的映射).

在这里插入图片描述

早期互联网上的服务器寥寥无几,每个用户手动维护自己的hosts文件就可以了,后来互联网飞速发展,现在网站成千上万,每天都有很多新的网站诞生,也有很多老的网站消亡,此时手工维护就很困难了.于是就有人搞了个DNS服务器.

配置DNS:
在这里插入图片描述

当我们访问某个域名的时候,就自动请求一下DNS服务器,DNS服务器就帮我们进行查询,把得到的结果返回给我们(结果就是具体的IP地址).如果我们电脑的DNS服务器配置的不对或者DNS服务器挂了,此时就会出现一个典型的现象:QQ能用,但是网页打不开.

对于域名:
在这里插入图片描述
域名分级了,DNS服务器也是分级了,有一级域名的DNS服务器,还有二级域名,三级域名.查询DNS服务器就是分级来查询的.

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

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

相关文章

98. Python基础教程:try...except...finally语句

【目录】 文章目录 1. try...except...finally语法介绍2. try...except...finally执行顺序3. 捕获特定类型的异常4. 捕获所有类型的异常5. 实操练习-打开txt文件并输出文件内容 【正文】 在今天的课程中,我们将学习Python中的异常处理语句try...except...finally。 …

excel英语翻译让你的数据更容易被理解

从前有一个名叫小明的办公室职员,他每天都要处理大量的数据和报表。然而,由于工作需要,他经常收到来自不同国家的Excel表格,这些表格上的内容都是用各种各样的语言编写的,让他很难理解其中的意思。这时,小明…

Qt Creator 11 开放源码集成开发环境新增集成终端和 GitHub Copilot 支持

导读Qt 项目今天发布了 Qt Creator 11,这是一款开源、免费、跨平台 IDE(集成开发环境)软件的最新稳定版本,适用于 GNU/Linux、macOS 和 Windows 平台。 Qt Creator 11 的亮点包括支持标签、多外壳、颜色和字体的集成终端模拟器&am…

建模教程:如何利用3ds Max 和 After Effects 实现多通道渲染和后期合成

推荐: NSDT场景编辑器助你快速搭建可二次开发的3D应用场景 1. 创建基本场景 步骤 1 打开 3ds Max。在 透视视口。 打开 3ds Max 步骤 2 做一个茶壶,放在飞机上。 制作茶壶 步骤 3 我在场景中应用了几个灯光。我选择了光线追踪阴影作为阴影。 光线追…

走进人工智能| 智能物联网 AIoT的魅力交织

前言: AIIoT是指人工智能(AI)与物联网(IoT)的结合。智能物联网是一种技术体系,通过连接和集成物理设备、传感器和互联网,实现设备之间的智能交互和数据共享,为人们提供智能化、自动化…

赛车游戏——【极品飞车】(内含源码inscode在线运行)

前言 「作者主页」:雪碧有白泡泡 「个人网站」:雪碧的个人网站 「推荐专栏」: ★java一站式服务 ★ ★前端炫酷代码分享 ★ ★ uniapp-从构建到提升★ ★ 从0到英雄,vue成神之路★ ★ 解决算法,一个专栏就够了★ ★ 架…

IEEE 802.11——无线局域网的重要里程碑

概要 无线局域网(Wireless Local Area Network,WLAN)已经成为现代生活中不可或缺的一部分,它为我们提供了便捷的无线网络连接,让我们能够在家中、办公室、公共场所等地轻松上网。在无线局域网技术的发展过程中&#x…

【C++】模板进阶(模板的特化,非类型模板参数,模板的分离编译)

文章目录 一、模板使用时一定要加typename的情况二、 非类型模板参数三、模板的特化1.函数模板特化2.类模板特化1.全特化:2. 偏特化:1. 部分特化2.参数更一步限制 四、模板的分离编译1.Stack.h2.Stack.cpp(定义)3.test.cpp 一、模板使用时一定要加typena…

【taro react】---- 获取元素的位置和宽高等信息

1. 需求分析 添加节点的布局位置的查询请求。相对于显示区域,以像素为单位。其功能类似于 DOM 的 getBoundingClientRect。返回 NodesRef 对应的 SelectorQuery。区分小程序和H5的环境,调用 getBoundingClientRect 获取对应的信息。 2. H5 实现 判断传…

根据前序和中序遍历序列构造二叉树 (递归+迭代两种方法实现)

给定两个整数数组 preorder 和 inorder ,其中 preorder 是二叉树的先序遍历, inorder 是同一棵树的中序遍历,请构造二叉树并返回其根节点。 输入: preorder [3,9,20,15,7], inorder [9,3,15,20,7] 输出: [3,9,20,null,null,15,7]源代码如下…

113、单例Bean是单例模式吗?

单例Bean是单例模式吗? 通常来说,单例模式是指在一个JVM中,一个类只能构造出来一个对象,有很多方法来实现单例模式,比如懒汉模式,但是我们通常讲的单例模式有一个前提条件就是规定在一个JVM中,那如果要在两个JVM中保证单例呢?那可能就要用分布式锁这些技术,这里的重点…

wangzherongyao yase

17132血量出装,60%物理抗性,57%法扛的亚瑟,打野刀爆裂提高移动#王者荣耀#亚瑟,后期红莲烧664左右打野刀烧254左右,被动天赋回血也非常快 亚瑟打这些纯输出上单跟砍瓜切菜一样

软考 系统分析师和系统架构师 项目管理师

软考整起 https://www.ruankao.org.cn/ 什么是计算机技术与软件(初级、中级、高级)考试(软考)? - 知乎 系统分析师和系统架构师关系 这两年,我先后报考了计算机技术与软件专业技术资格(水平&a…

基于ARM+FPGA的驱控一体机器人控制器设计

目前市场上工业机器人,数控机床等多轴运动控制系统普遍采用运动控制器加 伺服驱动器的分布式控制方式。在这种控制方式中,控制器一方面完成人机交互,另 一方面进行 NC 代码的解释执行,插补运算,继而将计算出来的位…

rsync远程同步+inotify实时同步部署

文章目录 一、rsync简介1.rsync同步方式2、备份的方式3.rsync同步源 二、rsync命令基本用法三、配置源的两种表达方法四、配置服务端与客户端的实验1.将 Master 服务器数据备份到 Slave 服务器2.配置RsyncInotify 实时同步 五、rsync的应用场景总结 一、rsync简介 Rsync&#…

MySQL 储存过程

前言 存储过程(Stored Procedure)是一组预定义的SQL语句集合,它们被保存在数据库中并可供重复调用。存储过程可以接受参数、执行查询和更新操作,并返回结果。使用存储过程,可以实现复杂的业务逻辑和数据操作&#xff0…

浅谈微服务异步解决方案

导言 异步是一种设计思想,不是设计目的,因此不要为了异步而异步,要有所为,有所不为。 异步不是『银弹』, 避免试图套用一个『异步框架』解决所有问题, 需要根据不同的业务特点或要求,选择合适的…

助力青少年科技创新人才培养,猿辅导投资1亿元设立新基金

近日,在日本千叶县举办的2023年第64届国际数学奥林匹克(IMO)竞赛公布比赛结果,中国队连续5年获得团体第一。奖牌榜显示,代表中国参赛的6名队员全部获得金牌。其中,猿辅导学员王淳稷、孙启傲分别以42分、39分…

Ubuntu 离线部署的常见操作

Ubuntu 离线安装的常见操作 **说明:**很多情况下,生产环境都是离线环境,然而开发环境都是互联网的环境,因此部署的过程中需要构建离线安装包; 1. 下载但是不安装 # 例如使用 apt 下载 wireshark 安装包 sudo apt download wireshark # 下载…

gitee修改代码提交操作步骤说明

一,简介 本文主要介绍如何从gitee仓库下载文件,本地修改,本地提交,然后再push到远程服务器的操作步骤。供参考,欢迎一起讨论交流~ 二,操作步骤 总的操作步骤分为以下几步 1,远程服务器下载文…