网络如何发送一个数据包

news2024/9/20 1:07:29

网络如何发送一个数据包

网络消息发送就是点一点屏幕。 骚瑞,这一点都不好笑。(小品就是我的本质惹) 之前我就是会被这个问题搞的不安宁。是怎么知道对方的IP地址的呢?怎么知道对方的MAC呢?世界上计算机有那么多,怎么知道这个IP地址就代表这台计算机呢?如果你也有一样的困惑,就来一起看一下噜。
在这里插入图片描述


文章目录

  • 网络如何发送一个数据包
    • 一、如何知道对方的IP地址
    • 二、如何知道对方的MAC地址?
    • 三、如何根据目标的IP地址锁定目标的位置?
      • 1、数据包发送到局域路由
      • 2、获取目标唯一IP地址
      • 3、路由发送给下一个路由
      • 4、找到目标


一、如何知道对方的IP地址

因为网络发送消息是一定要知道目标的IP地址的惹。之前我纯纯被我的颜值占满了脑子才会有这个疑问。
即使是发送一个网址,例如:http://1234.com。也会被DNS解析为一个IP地址发送嘟,DNS是互联网的基础服务之一,它使得人们不需要记住复杂的数字IP地址。
在这里插入图片描述

二、如何知道对方的MAC地址?

实际上,并不能通过ARP解析得到目标的MAC地址。
例如,需要将一个数据包从a发送给b。首先这个数据包会从计算机a发送到a的局域网的路由,此时通过ARP解析得到的是路由的MAC地址。然后路由会通过解析得到下一个路由的IP地址,得到这个IP地址之后,路由会使用ARP得到下一个路由的MAC地址。通过这样一级一级的发送,最终就会发送到目标b计算机上。

三、如何根据目标的IP地址锁定目标的位置?

总所周知,我们计算机的IP地址是由网络管理员或者DHCP机制管理的。那么同一个IP地址在全世界计算机上坑定有重复的,但是,有一个重要的前提是:在局域网内,我们计算机的IP地址是唯一的。

当数据包从计算机a发送到主机b时,全部的步骤如下:

1、数据包发送到局域路由

已知a的IP地址,目标b的IP地址,路由器的IP地址。此时计算机a会在局域网内广播一个ARP请求,里面有路由器的IP地址。当前局域网内的所有计算机以及路由器都会扫描到这个广播,并解析广播数据,当发现广播的IP地址信息和自己的相同时,就会将自己的MAC信息响应给计算机a。a获取了路由器的MAC时就知道路由的位置,就将数据包发送给路由。

2、获取目标唯一IP地址

路由收到数据包后,获取了目标的IP地址,私有IP地址仅在它们各自的局域网内是唯一的。当数据包离开局域网并进入互联网时,路由器会使用网络地址转换(NAT)将私有IP地址转换为公网IP地址。这意味着即使在局域网内使用相同的私有IP地址,一旦数据包通过NAT,它们就会有唯一的公网IP地址。

3、路由发送给下一个路由

路由器有一个叫路由表的数据包。路由表包含目的b的IP地址以及如何到达它们的信息。当数据包到达路由器时,路由器会检查目的IP地址,每个路由条目通常包含一个指向下一跳路由器的IP地址,以此查找路由表以确定下一跳的方向。路由知道了下一个路由的IP地址后,同样的会广播一个ARP请求,与广播携带的IP数据一样的路由会响应这个广播,并携带上自己的MAC地址。这样路由就知道了下一个路由的具体方向,并将数据包发送给下一个路由。

4、找到目标

每一级路由就像这样一级一级的发送,直到发送到目标的路由上,目标路由检测到目标就在和它连接的同一个局域网上时,就将数据包发送给目标b。

点个赞赞,么么哒~~
在这里插入图片描述

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

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

相关文章

top250的电影

本次的电影排行来源于豆瓣。材料仅用于自身学习和记录自己学习过程 使用python中的requests、BeautifulSoup、xlwt,三者需要提前下载好。。 预处理: url:反应网页变化 其中start后面的数字变化每次加25,对应一页,故…

用exceljs和file-saver插件实现纯前端表格导出Excel(支持样式配置,多级表头)

exceljs在Jquery(HTML)和vue项目中实现导出功能 前言Jquery(HTML)中实现导出第一步,先在项目本地中导入exceljs和file-saver包第二步,封装导出Excel方法(可直接复制粘贴使用)第三步&…

JJ音乐,听歌自由!

林俊杰,这位才华横溢的音乐才子,用他的音符编织了一个又一个令人陶醉的梦幻世界。作为他的音乐爱好者,每一次倾听都是一次心灵的旅程。 他的歌声仿佛有一种魔力,能够穿透灵魂。从《江南》的诗意浪漫,到《不为谁而作的歌…

探索树莓派Pico 2:新一代RP2350芯片引领的微型开发革命

Raspberry Pi Pico 2 是由树莓派基金会推出的微处理器开发板,作为Pico系列的最新成员,它在原有的基础上进行了多项改进和扩展。这款开发板搭载了全新的RP2350芯片,具有更强大的处理能力和更多的功能特性。 1. Raspberry Pi Pico 2的特性和规格…

使用CUbeMX配置STM32F103C8T6 CRC校验

一、CubeMX配置 1.配置RCC 2.配置SYS 3.启用CRC校验 二、Keil添加程序 1.main.c /* USER CODE BEGIN Header */ /********************************************************************************* file : main.c* brief : Main program body*******…

LVGL——(4)标签控件

文章目录 一、介绍二、用法1、创建2、显示文本2.1 直接设置要显示的文本2.2 格式化给定要显示的文本2.3 在 label 中进行换行 3、改变字体大小4、长模式5、文本选择6、文本对齐方式7、非常长的文本8、显示内置图标字体9、事件处理 三、拓展1、修改文本颜色1.1 Palette&#xff…

研0 冲刺算法竞赛 day30 P1102 A-B 数对

P1102 A-B 数对 - 洛谷 | 计算机科学教育新生态 (luogu.com.cn) 思路&#xff1a; ①map&#xff0c;键值对计数&#xff0c;将A-B->A-C ②先排序&#xff0c;找对应差值为C的第一个和最后一个计数 代码&#xff1a; #include<iostream> #include <map> #i…

Typora绿色版

1、下载安装 Typora 官网地址&#xff1a;https://typora.io/ 中文站地址&#xff1a;Typora 2、击活 Typora 鼠标右击文件所在位置查询 resources\page-dist\static\js\LicenseIndex.180dd4c7.4da8909c.chunk.chunk.js e.hasActivated"true"e.hasActivated, 替…

使用nvm切换Node.js版本

一、安装nvm nvm&#xff08;Node Version Manager&#xff09;是一个用于管理Node.js版本的工具&#xff0c;它允许你在同一台机器上安装和切换多个Node.js版本。 1.安装nvm https://github.com/coreybutler/nvm-windows 访问以上链接到github去下载 点击releases 下载下图…

优化if-else的几种方式

优化if-else的几种方式 策略模式1、创建支付策略接口2、书写不同的支付方式逻辑代码微信支付QQ支付 3、service层的实现类使用4、controller层的调用说明 枚举与策略模式结合1、创建枚举2、service层书写处理方法3、controller层调用4、说明 Lambda表达式与函数接口说明 策略模…

用于理解视频的基础视觉编码器VideoPrism

人工智能咨询培训老师叶梓 转载标明出处 如何让机器有效地理解和处理视频内容&#xff0c;一直是计算机视觉领域的一个挑战。最近&#xff0c;Google Research的研究人员提出了一种名为VideoPrism的新型视频编码器&#xff0c;旨在通过单一的冻结模型处理多样化的视频理解任务。…

风云崛起之拉氏变换和拉式逆变换

图像的分割写出来了&#xff0c;但是写的不好&#xff0c;暂时先不发了。这两天小y想在把拉式变换的内容写出来&#xff0c;小y最近再看信号和电路&#xff0c;需要复习数学&#xff0c;所以把这点写出来。 首先要推出分布积分的公式&#xff0c;我们知道积分和微分为逆运算&am…

纯css实现多行文本右下角最后一行展示全部按钮

未展开全部&#xff1a; 展开全部&#xff1a; 综上演示按钮始终保持在最下方 css代码如下&#xff1a; <div class"info-content"><div class"info-text" :class"!showAll ? mle-hidden : "><span class"show-all"…

STM32-定时器-定时器中断-PWM调光

1、TIM 定时器 定时器是一种电子设备或软件组件&#xff0c;用于在预定时间后触发一个事件或操作。它可以基于时钟信号或其他周期性信号来工作&#xff0c;并且可以用来测量时间间隔、生成延时、触发中断等。 时钟信号 时钟信号是一种周期性的电信号&#xff0c;用于同步电路中…

如何检查端口占用:netstat和lsof指令

在网络故障排查和系统管理中&#xff0c;检查端口占用情况是一项常见且重要的任务。本文将详细介绍如何使用 netstat 和 lsof 这两个强大的工具来检查端口占用和相关服务。 1. 使用 netstat 查看端口占用 netstat (network statistics) 是一个用于显示网络连接、路由表、接口…

Flutter 学习 一部分注意点记录

使用AndroidStudio进行开发 假设你已经配置好Flutter和dart的SDK. 创建一个可执行dart文件 如果需要直接新建一个dart文件来运行&#xff0c;可以点击 File->New->New Flutter Project &#xff0c;下面是接下来弹出的新建项目弹窗&#xff0c;选中左边的Dart&#xff…

SpringBoot 整合 RabbitMQ 实现延迟消息

一、业务场景说明 用于解决用户下单以后&#xff0c;订单超时如何取消订单的问题。 用户进行下单操作&#xff08;会有锁定商品库存、使用优惠券、积分一系列的操作&#xff09;&#xff1b;生成订单&#xff0c;获取订单的id&#xff1b;获取到设置的订单超时时间&#xff0…

python语言day5 MD5 json

md5&#xff1a; python提供了内置的md5加密功能&#xff0c;使用md5模拟一个小项目&#xff1a; 注册&#xff1a; 启动py程序&#xff0c;在控制台界面提示用户输入用户名及密码&#xff1b; 使用md5加密 密码&#xff1b; 创建txt文件记录输入的用户名 和密文。 登录&…

访问网站显示不安全打不开怎么办如何处理

当访问网站时浏览器提示“不安全”&#xff0c;这通常是由于多种原因造成的。下面是一些常见的原因及其解决办法&#xff1a; 未启用HTTPS协议 如果网站仅使用HTTP协议&#xff0c;数据传输没有加密&#xff0c;会被浏览器标记为“不安全”。解决办法是启用HTTPS协议&#xff…

vue3-02-vue3中的组件通信

目录 组件通信一、vue3组件通信和vue2的区别二、父子通信2.1 props通信1&#xff09;父→子传递数据&#xff08;父组件向子组件传递数据&#xff09;2&#xff09;子→父传递数据 2.2 v-model1&#xff09;v-model的本质2&#xff09;给modelValue起别名3&#xff09;$event 2…