查缺补漏----IP通信过程

news2024/11/24 1:57:23

1.DHCP协议

H3刚接入网络时,只知道自己的MAC地址,所以需要通过DHCP协议请求自己的IP地址。

通过DHCP协议,得到IP地址、子网掩码、网关与DNS服务器IP地址。

DHCP协议是应用层协议(传输层为UDP),请求报文是广播(H3不知道DHCP服务器的IP地址),响应报文是广播(因为H3此时还没有IP地址)。一台主机得到IP地址、子网掩码、网关后,才认为它正确的接入了该网络。

2.DNS协议

若主机想要访问一个网站,只知道对方的域名,那么需要通过DNS协议请求目的IP地址。此时要通过ARP协议将本地DNS服务器的IP地址解析为对应的MAC地址,这样才能进行数据传输。

①若主机已知对方IP地址,那不需要进行DNS查询。

②只知道对方的域名,通过DNS协议请求目的IP地址。

DNS协议是应用层协议(传输层为UDP),分为递归查询和递归迭代查询,一般采用递归迭代查询(主机向本地DNS服务器发出请求为递归,本地DNS服务器向其他域名服务器发请求,为迭代)。

有几级域名,本地DNS服务器就需要查找几次其他域名服务器(四级域名需要查询1次根、1次顶级、2次权限)

答案:C

3.ARP协议

接下来需要知道目的MAC地址(下一跳的MAC地址),首先根据自己与对方的网络号判断是否在同一个网段。

网络号=子网掩码和IP地址进行与操作,判断(目的IP 与 本主机子网掩码)和(源IP与本主机子网掩码)是否相等情况

①:两者相同,说明在同一个子网;此时两主机的通信是在同一个子网内的,下一跳就是目的主机。

情况②:两者不同,说明不在同一个子网;每一个网段需要一次ARP请求,故需要多次ARP协议。在第一轮,源主机会发送链路层广播,请求网关MAC地址(源主机会将这个MAC地址存入ARP表中,之后与网关的通信就不需要发送ARP请求了),之后每个网段都是如此。

当目的主机收到了离他最近的网关的链路层广播,就会单播回应,这时网关就可以将源主机发给目的主机的帧转发给目的主机了。

以数据帧从H3发送到H1为例:

它跨越了路由器,所以可以分为两段:H3->R1和R1->H1

① 如果在同一子网则下一跳就是目的主机,ARP请求的是目的主机的MAC地址;

② 如果不在同一子网则下一跳是网关,ARP请求的是网关的MAC地址

如果没有NAT路由器,源,目的IP地址在传输过程中不变,而针对MAC地址,只要跨越了网段就需要改变源和目的MAC地址。

4.NAT路由器

对于跨网段的通信,发送方发出的报文,源址是自己的IP地址,目的地址填对方的外部IP地址(即通过NAT转换的地址)

经过NAT路由器时,如果是内一>外:则改变源IP地址;如果是外一>内:则改变目的IP地址。

:在改变NAT地址的同时,也会改变端口号,这个端口号是NAT服务器分配的,这说明NAT路由器是网络层之上的设备,而普通的路由器是网络层的设备。

例题:

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

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

相关文章

深入了解Python:那些常被忽略的知识点

作为现代编程语言的典范,Python以其简洁、高效和广泛的应用领域赢得了无数开发者的青睐。然而,即使是经验丰富的Python程序员,也可能不了解Python的一些特性或最佳实践。这篇文章将介绍Python中常被忽略的一些知识点,通过全面的分…

图文深入理解Oracle DB Scheduler

值此国庆佳节,深宅家中,闲来无事,就多写几篇博文。今天继续宅继续写。本篇图文深入介绍Oracle DB Scheduler。 Oracle为什么要使Scheduler? 答案就是6个字:简化管理任务。 • Scheduler(调度程序&#x…

代码随想录训练营Day26 | 669. 修剪二叉搜索树 | 108.将有序数组转换为二叉搜索树 | 538.把二叉搜索树转换为累加树

学习文档:代码随想录 (programmercarl.com) Leetcode 669. 修剪二叉搜索树 题目描述 给你二叉搜索树的根节点 root ,同时给定最小边界low 和最大边界 high。通过修剪二叉搜索树,使得所有节点的值在[low, high]中。修剪树 不应该 改变保留…

o1-preview 在 IMO 2024 第一题的实测表现

相关博客:Learning to Reason with LLMs 以及 Introducing OpenAI o1-preview 测试了 IMO 2024 的第一题,OpenAI-o1-preview 的解题过程包括两部分:思考和推理。 正确答案是全体偶数,o1-preview 的 **思考方向正确,推…

计算机网络——email

pop3拉出来 超出ASCII码范围就不让传了 这样就可以传更大的文件

Linux命令大全及小例子

撰写一份关于Linux命令大全的详尽报道和分析是一项重要的任务,旨在让读者全面了解Linux命令的用途和应用场景。Linux系统因其强大的命令行工具而闻名,无论是系统管理、文件操作还是网络配置,Linux命令行都提供了灵活且强大的解决方案。以下是…

【模板进阶】std::void_t

一、 s t d : : v o i d _ t std::void\_t std::void_t的源码分析和常规范例 1. s t d : : v o i d _ t 1.std::void\_t 1.std::void_t的源码分析 C 17 C17 C17引入了 s t d : : v o i d _ t std::void\_t std::void_t,它其实是一个别名模板,源码非常简…

如何为树莓派安装操作系统,以及远程操控树莓派的两种方法,无线操控和插网线操控

文章目录 一、下载树莓派的系统二、将文件下载到SD卡中1.使用官方软件2.其他选择 三、远程连接电脑安装vnc-viewer1.无线操作(配置树莓派,开启VNC)电脑远程配置2.有线连接(需要一根网线) 总结 一、下载树莓派的系统 下…

github学生认证(Github Copilot)

今天想配置一下Github Copilot,认证学生可以免费使用一年,认证过程中因为各种原因折腾了好久,记录一下解决方法供大家参考。 p.s.本文章只针对Github学生认证部分遇到的问题及解决方法,不包括配置copilot的全部流程~ 1、准备工作…

【python实操】python小程序之定义类

引言 python小程序之定义类 文章目录 引言一、定义类1.1 题目1.2 代码1.3 代码解释 二、思考2.1 面向对象编程(OOP)原则2.2 self 参数2.3 内存地址2.4 代码的可读性和可维护性 一、定义类 1.1 题目 小猫爱吃鱼,小猫要喝水,定义不…

Vue (快速上手)

Vue 初识Vue 在Vscode中创建html文件&#xff0c;然后打开该文件&#xff0c;输入英文!即可显示出提示框&#xff0c;选定第一个即可出现默认的html模板。 案例一&#xff1a;值的传递 使用大括号{{}}声明 一个将要被Vue所控制的 DOM 区域&#xff0c;其值可以在<script&…

构建数字化生态平台,开启企业新未来

随着数字化时代的到来&#xff0c;构建数字化生态平台已成为企业获取竞争优势、实现可持续发展的重要途径。数字化生态平台是指利用数字技术构建的&#xff0c;能够整合多方资源&#xff0c;为用户提供一站式服务和价值的开放平台。 数字化生态平台的特点 1.开放性&#xff1a…

Vue/组件的生命周期

这篇文章借鉴了coderwhy大佬的Vue生命周期 在Vue实例化或者创建组件的过程中 内部涉及到一系列复杂的阶段 每一个阶段的前后时机都可能对应一个钩子函数 以下是我根据coderwhy大佬文章对于每一个阶段的一些看法 1.过程一 首先实例化Vue或者组件 在实例化之前 会对应一个钩子函…

Android 组件化利器:WMRouter 与 DRouter 的选择与实践

在移动端开发中&#xff0c;组件化 和 模块化 是常见的开发策略。随着项目的规模增大&#xff0c;不同功能之间的依赖、耦合度会变得越来越复杂&#xff0c;模块间的解耦成为不可避免的需求。路由框架正是在这种需求背景下应运而生。本文我们将讨论两款在Android开发中比较流行…

PyEcharts教程(002):上手PyEcharts

2、上手PyEcharts&#xff08;以jupyter notebook编译&#xff09; 2.1 如何查看pyecharts版本 import pyecharts print(pyecharts.__version__)2.2 上手Pyecharts 首先绘制第一个图表 from pyecharts.charts import Bar # 创建柱形图对象 bar Bar() # 添加x轴 bar.add_xa…

51单片机的红外感应洗手器【proteus仿真+程序+报告+原理图+演示视频】

1、主要功能 该系统由AT89C51/STC89C52单片机红外感应传感器继电器LED等模块构成。适用于智能红外感应自动洗手器等相似项目。 可实现功能: 1、红外感应传感器实时检测是否有人体接近&#xff08;距离小于20cm&#xff09; 2、如果有人靠近&#xff0c;继电器自动闭合&#…

ZJYYC2360. 圆球的最大得分

思路&#xff1a;这是一道区间dp的题目。最大的数放在最远处会更优&#xff0c;所以每个小孩可以放在 l 处或 r 处&#xff0c;即这段区间的最左边或最右边。这题可以用记忆化搜索来写&#xff0c;用dp[l][r]来记录 i ~ j 之间调整位置后的最大得分。 #include <bits/stdc.…

学校周赛(3)

​ A: 题目&#xff1a; ​​​​​​​ 解题&#xff1a; 本道题木只需要找到一个*的位置&#xff0c;并且查看这个*是否满足四种情况即可&#xff0c;对与判断的体哦见是四周不出现任何的*,由于每次搜索我们首先搜索到的的最左上角的*,因此我们以左上角的为中心进行讨论…

在VSCode中使用Excalidraw

概述 Excalidraw是一款非常不错的示意图绘制软件&#xff0c;没想到在VSCode中有其扩展&#xff0c;可以在VScode中直接使用。 安装扩展 使用 需要创建.excalidraw.svg、.excalidraw或.excalidraw.png等名称的文件。 搭配手写版使用 自由画笔工具可以配合手写板&#xff0c…

【算法】DFS 系列之 穷举/暴搜/深搜/回溯/剪枝(下篇)

【ps】本篇有 8 道 leetcode OJ。 目录 一、算法简介 二、相关例题 1&#xff09;字母大小写全排列 .1- 题目解析 .2- 代码编写 2&#xff09;优美的排列 .1- 题目解析 .2- 代码编写 3&#xff09;N 皇后 .1- 题目解析 .2- 代码编写 4&#xff09;有效的数独 .1-…