网络如何发送一个数据包

server/2024/9/21 11:17:21/

网络如何发送一个数据包

网络消息发送就是点一点屏幕。 骚瑞,这一点都不好笑。(小品就是我的本质惹) 之前我就是会被这个问题搞的不安宁。是怎么知道对方的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.ppmy.cn/server/100138.html

相关文章

Element UI左侧导航栏写法(递归组件实现)

1、左侧导航栏组件使用的是Element Ui的导航栏组件,思路:首先判断导航栏数据是否存在children,以此来实现一级菜单与多级菜单的渲染,然后使用递归组件实现多级菜单的子菜单渲染,注意使用递归组件需将菜单栏数据在父组件…

ES环境搭建、ES安装

文章目录 简介与环境搭建全文检索倒排索引ElasticSearchWindows安装ES下载配置JDK环境启动ES服务 centos7安装ES下载ElasticSearch创建es用户配置JDK环境配置ElasticSearch配置JVM参数启动ElasticSearch服务常见启动报错 客户端Kibana安装下载修改Kibana.yml运行Kibana访问 ES安…

CSS

注释 /*单行*/ /* 多行 */样式选择器&#xff0c;属性名&#xff0c;属性值关键字全部使用小写字母 <head> <style> p { color: red; } </style> </head>字体属性 用于定义字体系列、大小、粗细、和文字样式 字体系列 font-family属性定义文本的…

Excel周报制作

学习视频&#xff1a; 【课程2.0】Excel基础操作|大厂周报制作|常用函数_哔哩哔哩_bilibili 作品介绍&#xff1a; 做一个联动性非常强的Excel周报&#xff0c;如图所示&#xff0c;每个数据之间都有关联&#xff0c;改动起来非常方便&#xff0c;对基本函数也有了很深入的认…

QTableWidget 如何设置自动列宽?

在 Qt 的 QTableWidget 中&#xff0c;设置自动列宽通常意味着让列宽根据列内容自动调整&#xff0c;以确保内容不会被截断且表格看起来更加整洁。Qt 提供了几种方式来实现这一点&#xff0c;但需要注意的是&#xff0c;QTableWidget 本身并没有直接提供一个“一键设置所有列自…

C语言学习——函数

目录 八、函数 8.1概述 8.2函数定义的一般形式 无参函数 有参函数 空函数 8.3函数参数和函数的值 形式参数和实际参数 函数的返回值 8.4函数的调用 函数调用的一般形式 函数调用的方式 1.函数语句 2.函数表达式 3.函数参数 对被调用函数的声明和函数原型 8.5函…

记录一次.gitignore 失效问题

前言 今天使用git同步同事的代码时&#xff0c;出现一个问题&#xff0c;.gitignore限制失效&#xff0c;导致我本地生成的临时缓存文件被跟踪到了commit中&#xff0c;执行 git rm --cache .后再add commit也不行&#xff0c;很奇怪就研究了一下&#xff0c;下面将我的解决方…

基于Spring Boot的社区团购系统

目录 前言 功能设计 系统实现 获取源码 博主主页&#xff1a;百成Java 往期系列&#xff1a;Spring Boot、SSM、JavaWeb、python、小程序 前言 随着社会进步和科技发展&#xff0c;信息化时代为各行各业带来了巨大的变革。计算机技术的先进性和普及性使得信息系统的开发变…