IP协议(2) 和 数据链路层协议基础

news2025/2/3 20:54:42

IP协议续

1.路由选择

在复杂的网络结构中,我们需要找到一个通往终点的路线,这就是路由选择

举个例子:我们在没有手机导航之前,想去一个地方得是到一个地方问一下路的方式最终找到目的地

路由的过程,其实就是样子问路的过程

1.当IP数据包到达路由器的时候,会查看目的IP

2.路由器决定这个数据包是能直接发送给目标主机还是需要发送给下一个服务器(查询路由表)

3.依次反复,知道到达目的IP地址

如何判定数据包应该发到哪里??

这就依赖路由器存储了一个路由表结构,能找到路线就直接发送,否则按照默认发送

IP地址

IP地址分为网络号和主机号 

教材上经常说分为ABCDE五类地址,实际上现在已经取消了这种叫法了

 

因为这种方案的局限性太大了,A类和B类这样的地址能存放的主机数太多了,实际上根本不可能有这么大的局域网,这么多的主机,这样就浪费了很多IP地址

于是人们提出了新的划分方案,称之为 CLDR

1.引入一个子网掩码来区分网络号和主机号

2.子网掩码也是一个32位的正整数 通常用 0 结尾

3.将IP地址和子网掩码进行按位与得到的就是网络号

4.网络号和主机号的划分和ABC类地址无关

例:子网掩码  255.255.255.0     8位子网掩码

网络号 140.205.20.0  

这里能表示的地址范围就是 140.202.20.0 - 140.202.25.255

;

特殊IP地址

127.0.0.1  常用的测试IP地址,表示本机 (本机环回测试)

其实127.*都可以表示本机IP

每个网段的1 和 255 的地址是不可用的

1代表该网段

255代表广播地址(一对多)

数据链路层

1.以太网数据帧格式

以太网数据帧的数据格式很简单

这里数据链路层也搞了一套地址体系

MAC地址    一个主机只能有一个MAC地址,相当于身份证号,出厂即有

MAC地址和IP地址的区别:

MAC地址侧重于局部的转发(相邻设备)

IP地址侧重于全局的转发

举个例子

我现在想从这个路线走

南京 -> 西安 -> 四川

南京 - > 西安

源IP   南京  目的IP    四川

源mac   南京  目的 mac   西安

西安 -> 四川 

源IP  南京  目的 IP  四川

源mac  西安 目的mac   四川

1.目的地址      需要发送到的MAC地址

2.源地址          发送的源地址

3.类型              分为几种类型     

                         类型 0800 + 数据报(16-1500字节) 可能是syn这样的特殊报文也可能是正常                             的业务数据

                         类型0806   ARP 请求/应答 + PAD

                         类型8035 RARP请求/应答 + PAD

ARP协议和RARP协议是两个横跨数据链路层和网络层的协议

主要进行IP和MAC地址之间的转换

RARP则是转换回IP地址,类似于hash表的结构(转发表不是路由表)

转发表:一个设备和哪些设备是连接的

4.CRC             校验和,和之前的一样,是为了检验数据传输途中有没有发生比特翻转

注:这里载荷的部分有一个特殊的要求:最短是46字节最长是1500字节

原因:受限于物理设备

46字节是因为ARP是46字节

1500字节的上限就取决于以太网的网口,网线等硬件设备 也称之为 MTU

所以IP数据包的拆包往往是因为这个MTU的限制导致的,而不是64KB的上限导致的

以太网是如此,但是还有其他的传输协议,所以MTU并不是固定1500的

DNS(域名解析系统)

通过IP地址来描述网络设备的位置

这里域名就是一个更好记的网址 ,用其来代表IP地址,方便记忆

很久以前是引入的hosts文件,类似于哈希表,每次访问域名就会获取查询

随着互联网发展的越来越快,维护hosts表就很麻烦了,此时就有大佬搭建了一个(DNS服务器),查询到的结果就是域名对应的IP

由于全世界都得上网,对于根域名服务器来说压力太大了,此时我们就在各国搞一个镜像,分别为每个国家的顶级DNS服务器,然后再进行分级管理,每次用户访问就就近访问即可.

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

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

相关文章

HAL库配置PWM模式

一、什么是PWM 脉冲宽度调制(PWM),是英文“Pulse Width Modulation”的缩写,简称脉宽调制。通过控制高低电平在一个周期内的占比从而输出一定的电压。 向上计数原理介绍 ​PWM的一个周期 定时器从0开始向上计数 当0-t1段,定时器计数器TIMx_CNT值小于…

Springboot-前后端分离——第三篇(三层架构与控制反转(IOC)-依赖注入(DI)的学习)

本篇主要对ControllerServiceDAO三层结构以及控制反转(IOC)与DI(依赖注入)进行总结。 目录 一、三层架构: Controller/Service/DAO简介: 二、控制反转(IOC)-依赖注入(DI): 概念介绍: DOC与…

学校如何提升教学效率?这种方法要牢记!

随着教育信息化的发展,学校管理也逐渐借助先进的技术手段实现智能化、高效化。在线巡课系统作为其中的重要组成部分,为学校领导提供了便捷而有效的管理工具。 客户案例 中小学校长办公室 在中小学校长办公室,校长通过在线巡课系统可以实时查…

js 设置、获取、删除标签属性以及H5自定义属性

1. 设置标签属性 使用setAttribute()(‘属性名’, ‘属性值’)方法可以添加、修改、删除属性。   下面的demo是为input添加、修改、删除value属性&#xff1a; 1.1. HTML <input type"text" class"input"> <input type"text" class…

apk反编译修改教程系列---修改apk的默认颜色 布局颜色 手机电脑同步演示【十】

往期教程&#xff1a; apk反编译修改教程系列-----修改apk应用名称 任意修改名称 签名【一】 apk反编译修改教程系列-----任意修改apk版本号 版本名 防止自动更新【二】 apk反编译修改教程系列-----修改apk中的图片 任意更换apk桌面图片【三】 apk反编译修改教程系列---简单…

centos7 安装 java17 安装 idea

删除旧版本的java或者说是自带的&#xff0c;免得干扰 查找java [wanglcentos7 java]$ rpm -qa|grep javajava-1.8.0-openjdk-1.8.0.262.b10-1.el7.x86_64 javapackages-tools-3.4.1-11.el7.noarch tzdata-java-2020a-1.el7.noarch python-javapackages-3.4.1-11.el7.noarch …

获取响应请求头里的信息

如图所示这是一个导出excel的接口&#xff0c;后端响应头部&#xff0c;要获取Content-Disposition里的值&#xff0c; 由于命名问题&#xff0c;没有办法用res.Content-Disposition的方式获取它的值 按理来说使用res[Content-Disposition]就可以获取到&#xff0c;但是咩有&…

MySql主从同步,同步SQL_ERROR 1032解决办法

1.登录从库 mysql -u root -p 2.输入命令查看状态 SHOW SLAVE STATUS\G; 3.找到对应的错误数据位置 Slave_IO_Running: YesSlave_SQL_Running: NoReplicate_Do_DB: app_push_centerReplicate_Ignore_DB: Replicate_Do_Table: Replicate_Ignore_Table: Replicate_Wild_Do_Tabl…

【C++】vector的简单使用和实现

vector就是我们之前数据结构学的顺序表&#xff0c;这篇博客就是说一说它的简单使用和底层实现 文章目录 简单使用模拟实现 简单使用 首先&#xff0c;我们看看它的构造函数 我们比较常用的也就是第二种&#xff0c;就是第一个参数是要存的数据个数&#xff0c;第二个是要填…

Linux系统Shell脚本-----------正则表达式 文本三剑客之---------grep、 sed

一、正则表达式 1.前言 正则表达式(regular expression)描述了一种字符串匹配的模式&#xff08;pattern&#xff09;&#xff0c;可以用来检查一个串是否含有某种子串、将匹配的子串替换或者从某个串中取出符合某个条件的子串等。在Linux中也就是代表我们定义的模式模板&…

HAL库硬件SPI点亮板载LCD屏幕

1、本节内容介绍 1.1、HAL库硬件SPI 在cubemx中的配置及注意事项; 1.2、HAL库SPI详解与结构介绍; 1.3、实现硬件SPI驱动板载ST7789显示屏,240*240像素&#xff1b; 源码地址&#xff1a;https://gitee.com/MR_Wyf/hal-cubemx-rt-thread/tree/hal_rttNano_st7789_menu/ 或者…

多线程互斥量进阶

问题 一个线程多次尝试获取同一个互斥量&#xff0c;会发生什么&#xff1f; 不同类型的互斥量 Linux 上的示例程序 死锁的概念 等待关系 线程所需资源被其他线程所持有&#xff0c;进而必须等待 (无法继续执行) 循环等待 当线程之间出现循环等待关系时&#xff0c;即&…

2024美赛MCM Problem A: Resource Availability and Sex Ratios资源可用性和性别比例 完整代码以及思路分享

虽然一些动物物种存在于通常的雄性或雌性性别之外&#xff0c;但大多数物种实质上是雄性或雌性。虽然许多物种在出生时的性别比例为1&#xff1a;1&#xff0c;但其他物种的性别比例并不均匀。这被称为适应性性别比例的变化。例如&#xff0c;美洲短吻鳄孵化卵的巢穴的温度会影…

RIP——路由信息协议

目录 1 内部网关协议 RIP 1.1 协议 RIP 的工作原理 1.2 RIP“距离”的定义 1.3 RIP 协议的三个特点 1.4 RIP 协议的优缺点 1.5 路由表的建立 路由表主要信息和更新规则 2 距离向量算法 3 RIP2 报文 4 坏消息传播得慢 5 启动RIP 启动RIP: router rip 命令 启用和检…

TCP 连接掉线自动重连

文章目录 TCP 连接掉线自动重连定义使用连接效果 TCP 接收数据时防止掉线。TCP 连接掉线自动重连。多线程环境下TCP掉线自动重连。 欢迎讨论更好的方法&#xff01; TCP 连接掉线自动重连 定义 定义一个类&#xff0c;以编写TCP连接函数Connect()&#xff0c;并且&#xff1a…

vue-3d-loader

vue-3d-loader - npm GitHub - king2088/vue-3d-loader: VueJS and threeJS 3d viewer 是对 vue-3d-model 的改进&#xff0c;降低Threejs使用难度 # 默认安装 "vue-3d-loader": "^1.3.4", 只支持vue2 npm i vue-3d-loader # vue3 需要安装2版本&#xf…

2024美赛 MCMProblem B: Searching for Submersibles 问题B 搜索潜水器 完整思路代码分享

总部位于希腊的小型海上巡航潜艇&#xff08;MCMS&#xff09;公司&#xff0c;制造能够将人类运送到海洋最深处的潜水器。潜水器被移动到该位置&#xff0c;并不受主船的束缚。MCMS现在希望用他们的潜水器带游客在爱奥尼亚海底探险&#xff0c;寻找沉船。然而&#xff0c;在他…

homeword_day1

第一章 命名空间 一&#xff0e;选择题 1、编写C程序一般需经过的几个步骤依次是&#xff08; B &#xff09; A. 编辑、调试、编译、连接 B. 编辑、编译、连接、运行 C. 编译、调试、编辑、连接 D. 编译、编辑、连接、运行 2、所谓数据封装就是将一组数据和与这组数据…

Servlet简述

Servlet是动态web资源开发技术&#xff0c;其实就是一个接口&#xff0c;将来定义Servlet实现类时&#xff0c;都必须实现该接口&#xff0c;并让web服务器运行Servlet 1.快速入门 使用注释配置访问路径在Servlet3.0之后应用&#xff0c;在此之前都是使用xml配置文件来配置的。…

推荐一款Linux、数据库、Redis、MongoDB统一管理平台!

官方演示 状态查看 ssh 终端 文件操作 数据库操作 sql 编辑器 在线增删改查数据 Redis 操作 Mongo 操作 系统管理 账号管理 角色管理 资源管理 一.安装 1.下载安装包 cd /opt wget https://gitee.com/dromara/mayfly-go/releases/download/v1.7.1/mayfly-go-linux-amd64.zi…