计算机网络【IP协议与以太网】

news2024/11/16 13:25:27

计算机网络【IP协议与核心协议】

  • 🍎一.IP协议
    • 🍒1.1IPv4协议格式
    • 🍒1.2 IP协议地址
    • 🍒1.3IPv4协议的解决方案
    • 🍒1.4路由选择(了解)
  • 🍎二.以太网协议
    • 🍒2.1以太网协议格式
    • 🍒2.2认识MTU(了解)
  • 🍎三.DNS协议(应用层)

🍎一.IP协议

🍒1.1IPv4协议格式

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

如果整个IP协议数据太长超过了64k的大小,IP协议就会将数据分成多分进行传输(大小不超过64k),通过标识来标识判断来这个是那一份的IP协议里的数据报,通过片偏移来判断在这个IP报文里是那个层(进行排序),通过标志位来辨别出是否后面还有没有有需要传输的分层数据,如果是0就代表还有,如果是1就代表这个分层数据就已经传输完毕了
在这里插入图片描述
在这里插入图片描述

🍒1.2 IP协议地址

IP地址是一个点分十进制构成的数据
IP地址分成两个部分分别是,网络号+主机号

在这里插入图片描述
上面说了那么多有关IP协议格式,但IP地址究竟是什么呢?对于IPv4,IP地址本质上就是一串32位的序号而已,以点分十进制的方式呈现出来,即平均将这32位平分为4份,每份8位,使用.分割,每份数据的范围为0-255,比如192.168.31.70就是一个IP地址。

IP地址分为两个部分,即网络号+主机号,网络号能够描述当前的网段信息(局域网标识),主机号区分了局域网中的主机。

要求在同一个局域网内,网络号必须相同,主机号不能相同,两个相邻的局域网(同一台路由器连接),网络号是不同的。

比如上面的192.168.31.70,192.168.31表示网络号,70表示主机号。但是网络号的位数与主机号的位数是固定的吗?当然不是,在计算机网络,有一个专有名词叫做子网掩码 ,它也是一个32位的数,对应IP地址的每一位,如果为1就表示这一位是网络号,为0就表示主机号,子网掩码不会混着排列,左边为1表示网络号,右边为0表示主机号。

打开电脑的命令行,输入ipconfig,就能获取到本机的IP地址:
在这里插入图片描述

网络号:描述当前的网段信息(局域网的标识)
●主机号:用来区分局域网的主机

为什么这样设计,是因为在同一个局域网会采用同一个网络号,所以要辨别出 不用设备对别的设备进行访问,我们就需要来辨别出具体是那个设备进行的访问
同理不在同一个路由器里网络号也是不相同的,这就是我们之前学过的LAN口(局域网)与WAN口(广域网)

在这里插入图片描述

🍒1.3IPv4协议的解决方案

当前我们使用的IP协议是IPv4协议(32位),也就是说我们可以使用链接的设备为42亿9千万,随着我们世界当今的飞速发张意味着终会有一天42亿9千万就不会满足我们来使用,所以我们应该怎样来解决未来将要面都的问题呢?

动态分配IP地址:就是让每个设备链接到网络的时候,才会有IP,不联网的时候就没有IP,但是这个方案不能从根本上来解决

●.NAT机制:让多个设备公用一个IP,就像我们上面画的图演示时一样的,我们将内网(局域网)与外网(广域网)进行了区分,也就是只有在使用外网的时候才会占有IP地址,这个时候就有可能会带有成千上万个设备,这样就能解决IP数量不够的问题
NAT机制虽然将IP分成了外网和内网,但是也隐含了一个重要的结论:对于一个外网,可以在互联网任意一个位置来进行访问,但是对于一个内网,只能在当时局域网内部访问,局域网1不能访问局域网2的设备,所以就像QQ一样,QQ是带有外网的IP,我通过我的手机来访问QQ,你也通过QQ来访问QQ,我们来进行短息的交流,这样我们其实最终还是需要用到外网才可以进行访问,所以NAT机制也是有极限的,它的极限就是源端口号

IPv6:IPv6是由16个字节来构成的比IPv4多了12个字节,IPv6可以带有2*128次幂的IP,也就是可以说将我们全球的沙子赋予他们属于自己的IP,之所以IPv6没有在当前世界流行,是因为IPv4与IPv6是不兼容的!

🍒1.4路由选择(了解)

路由选择就是规划路径->问路
两个设备之间,要想找到一条通路能够完成传输的过程,找到的前提就是得先认识路

什么叫做路由器"认识"这个IP地址?
在路由器里有一个数据结构->路由表,路由表就在里面记录的一些网段信息~~(网络号),也就是我们从源IP到目的IP中就是要通过每个网络号对应的网络接口来找到目的IP地址

🍎二.以太网协议

🍒2.1以太网协议格式

数据经过网络层的封装后,会进入数据链路层进一步封装,数据链路层最常用的协议就是“以太网”,协议格式如下:
在这里插入图片描述
目的地址,源地址(6字节):数据链路层的地址是MAC地址,表示物理层地址,每一个设备只有一个物理层地址,这在硬件出厂时就已经写死的(大部分),它的地址长度比IPv4长了6w多倍,如80-30-49-26-8E-D9就是一个物理地址,在命令行输入ipconfig /all就能够查看自己设备的物理地址

帧尾(4字节):帧尾的功能一般是校验,它是一个叫做FCS(Frame Check Sequence,帧检验序列)或CRC算法实现的校验和

以太网数据帧的最大数据载荷称为MTU,这个范围一般取决于硬件设备,不同硬件设备的MTU也不同。数据链路层考虑的是相邻设备,或者说是直接连接设备的数据传输,考虑到这个细节的时候,就需要关注传输的硬件设备,不同的硬件,搭载的数据量也不同

除了MTU还有一个类似的概念,那就是MSS,表示在不分包的情况下,除去IP与TCP首部能够搭载的最大容量
在这里插入图片描述
ARP报文,并不是用来传输数据的,而是一个辅助信息,就是将IP地址与MAC地址一一对应起来,建立成一个类似哈希表的映射关系,MAC地址每传输一次都会发生改变。当设备启动的时候,就会在所处的局域网发起一个广播,获取局域网内设备的IP与MAC地址,根据各个设备响应的信息就能建立一个IP与MAC对应的映射表

🍒2.2认识MTU(了解)

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

●以太网帧中的数据长度规定最小46字节,最大1500字节,ARP数据包的长度不够46字节,要在后面补填充位;
●最大值1500称为以太网的最大传输单元(MTU),不同的网络类型有不同的MTU
●如果一个数据包从以太网路由到拨号链路上,数据包长度大于拨号链路的MTU了,则需要对数据包进行分片(fragmentation)
●不同的数据链路层标准的MTU是不同的

MTU对IP协议的影响
由于数据链路层MTU的限制,对于较大的IP数据包要进行分包
●将较大的IP包分成多个小包,并给每个小包打上标签
●每个小包IP协议头的 16位标识(id) 都是相同的
●每个小包的IP协议头的3位标志字段中,第2位置为0,表示允许分片,第3位来表示结束标记(当前是否是最后一个小包,是的话置为1,否则置为0)
●到达对端时再将这些小包,会按顺序重组,拼装到一起返回给传输层
●一旦这些小包中任意一个小包丢失,接收端的重组就会失败。但是IP层不会负责重新传输数据

🍎三.DNS协议(应用层)

对于我们人类来书说,IP地址并不好记,为了方便人类的记忆,就将IP地址用一个域名(比如www.baidu.com)来指代,而DNS能够将IP与域名对应起来,形成映射关系

DNS最开始的时候就是一个hosts文件,不过随着发展,现在就有一个机构专门在服务器上维护hosts文件,如果你需要域名解析,就可以访问它们的网站获取

在这里插入图片描述
我们可以将文件拖到记事本来查看一些信息,例如IP地址
在这里插入图片描述

当然,就一个根服务器是满足不了全球用户的访问的,于是运营商就就近架设了镜像的服务器,镜像服务器会定时同步根服务器上的数据

在这里插入图片描述

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

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

相关文章

聊一聊JAVA中的缓存规范 —— 虽迟但到的JCache API与天生不俗的Spring Cache

为何需要规范 上一章中构建的最简化版本的缓存框架,虽然可以使用,但是也存在一个问题,就是它对外提供的实现接口都是框架根据自己的需要而自定义的。这样一来,项目集成了此缓存框架,后续如果想要更换缓存框架的时候&a…

哈希的应用

文章目录前言一、位图1.1位图概念1.2位图的实现1.3 位图的应用二、 布隆过滤器2.1 布隆过滤器提出2.2 布隆过滤器概念2.3 布隆过滤器的插入2.4 布隆过滤器的哈希函数2.5 布隆过滤器的查找2.6 布隆过滤器删除2.7 布隆过滤器的优点2.8 布隆过滤器的缺陷2.9 布隆过滤器的应用场景前…

散射辐射变送器的优势体现在哪些方面?

散射辐射是经过大气分子、水蒸气、灰尘等质点的散射,改变了方向的太阳辐射,也称天空散射辐射。太阳散射辐射强弱程度与太阳辐射的入射角、大气条件(云量、水汽、砂粒、烟尘等粒子的多少)和地面反射率有关。当天空的浑浊程度加大&a…

链路状态路由协议 OSPF (三)

作者简介:一名在校云计算网络运维学生、每天分享网络运维的学习经验、和学习笔记。 座右铭:低头赶路,敬事如仪 个人主页:网络豆的主页​​​​​​ 目录 前言 一.OSPF领接关系的建立 1.OSPF领接关系的建立概述 &#xff0…

彻底理解Java并发:乐观锁与CAS

本篇内容包括:悲观锁与乐观锁的概述、CAS(Compare And Swap)比较并交换的介绍、非阻塞算法与ABA问题,以及对 Java 中 CAS 的实现解读(AtomicInteger 对 CAS 的实现,Unsafe 类简介)。 一、悲观锁…

【树莓派不吃灰】Raspberry Pi上搭建NodeJS运行环境

目录1. 前言2. 安装NodeJS环境2.1 安装npm2.2 安装nodejs2.3 配置NPM国内镜像源3. 总结❤️ 博客主页 单片机菜鸟哥,一个野生非专业硬件IOT爱好者 ❤️❤️ 本篇创建记录 2022-10-28 ❤️❤️ 本篇更新记录 2022-10-28 ❤️🎉 欢迎关注 🔎点赞…

嵌入式C语言编程中经验教训总结(八)变量、指针和指针数组的内存管理

目录嵌入式C语言编程中经验教训总结(八)变量、指针和指针数组的内存管理变量、指针和指针数组的内存占用指针、指针数组的空间验证指针数组的元素数据访问方法嵌入式C语言编程中经验教训总结(八)变量、指针和指针数组的内存管理 …

【趣学算法】第一章读书笔记

14天阅读挑战赛 *努力是为了不平庸~ 算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法! 文章目录1.1打开算法之门1.2 妙不可言——算法复杂性算法的特性好算法的标准时间复杂度和空间复杂度时间复杂度空间复杂度宕机1.4算…

62. 如何通过增强(Enhancement) 的方式给 SAP ABAP 标准程序增添新功能

文章目录 如何找到可以创建增强实现的增强点位置如何创建增强实现如何在 SE80 里找到增强实现本身如何调试 ABAP 增强实现总结ABAP 系统有比较完善的修改控制权限管控,比如笔者试图修改一个 SAP ABAP 系统里标准的函数,就会遇到如下的警告消息,然后修改的尝试会被阻止: You…

Winform和ASP.NET、Web API详解

Winform和ASP.NET、Web API 一、winform基础 1.1 基础学习 1、 winform应用程序是一种智能客户端技术,我们可以使用winform应用程序帮助我们获得信息或者传输信息等。 2、属性 Name:在后台要获得前台的控件对象,需要使用Name属性。 visible:指示一…

认识运营商机房

文章目录走线设备机房走线数据机房走线传输机房列头柜【供电】网络架构ONU设备OLT设备汇聚层交换机BARS设备核心路由器运营商网络架构【必看】铁塔基站核心机房ODF:光纤配线架MME光纤SGWPGWHSS交换机拓扑核心机房拓扑接入层基站(BaseStation)…

山西大同大学技术会,大同大学的家!

大家好,我是康来个程,山西大同大学技术会的创建者。 低谷时代 近几年校内的竞赛氛围越来越浓厚,随着自身参与并了解的赛事越来越多,随之而来的也是发现了我们学校竞赛方面的问题。疫情原因,我们的比赛取消的取消&…

Gitee在大数据中心的使用

在本地主机或者可以VSCode直接连接可视化的服务器上 1. 首先在gitee新建一个带有develop分支的仓库 2. 在自己的主机(e.g., server 1~3)上git clone下来,例如 git clone gitgitee.com:PeterBishop0/TransT-based.git 3. 切换成develop分支&…

深度学习入门(十) 模型选择、过拟合和欠拟合

深度学习入门(十) 模型选择、过拟合和欠拟合前言模型选择例子:预测谁会偿还贷款?训练误差和泛化误差验证数据集和测试数据集K-则交叉验证总结过拟合和欠拟合模型容量模型容量的影响估计模型容量VC维线性分类器的VC维VC维的用处数据…

[云原生之k8s] Kubernetes原理

引言 单机容器编排:docker-compose 容器集群编排:docker swarm、mesosmarathon、kubernetes 应用编排:ansible 一、Kubernetes是什么? Kubernetes的缩写为:K8S,这个缩写是因为k和s之间有八个字符的关系…

线段树模板

好文分享:【数据结构】线段树(Segment Tree) - 小仙女本仙 - 博客园 线段树和树状数组的基本功能都是在某一满足结合律的操作(比如加法,乘法,最大值,最小值)下,O(logn)的时间复杂度内修改单个元…

Python回归预测建模实战-支持向量机预测房价(附源码和实现效果)

机器学习在预测方面的应用,根据预测值变量的类型可以分为分类问题(预测值是离散型)和回归问题(预测值是连续型),前面我们介绍了机器学习建模处理了分类问题(具体见之前的文章)&#…

x86 --- 任务隔离特权级保护

程序是记录在载体上的数据和指令。 程序正在执行时的一个副本叫做任务 所有段描述符都放在GDT --> 不做区分。 内核程序(任务)所占段在GDT中,用户程序(任务)所占段在LDT中 --> 做区分。 每个任务都有自己独立的…

【无标题】

第1章 概述 本章主要内容: 互联网的概念(标准化)、组成、发展历程;电路交换的基本概念、分组交换的原理;计算机网络的分类、性能指标及两种体系结构。 重点掌握: 在计算机网络分层模型中,网…

7、GC日志详解

目录如何分析GC日志参数配置程序运行GC日志打印解析GC日志数据分析指定其他垃圾收集器CMSG1GC分析工具JVM参数汇总查看命令如何分析GC日志 参数配置 对于java应用我们可以通过一些配置把程序运行过程中的gc日志全部打印出来,然后分析gc日志得到关键性指标&#xff…