数据在网络中是怎么传输的?

news2024/11/24 3:12:07

计算机通信场景大致如下所示:

1.同一个子网中两台计算机通信

2.不属于同一个子网,两台计算机进行通信


以下内容,将围绕这两种场景进行阐述,在阐述之前,先举个场景示例,帮助大家理解一些名词

场景一:

秦岭中学开学,高三一班来了一大批新同学,由于老师不认识,于是他按照班级名称找到教室,然后按照花名册进行点名。

现在老师想要认识一下【张三】同学,于是他先吼了一嗓子【张三】,整个高三一班都听到了,于是,不叫【张三】的不作回应,叫【张三】的回复了一声【到】

这下老师知道谁是张三了,下次有事情就可以直接到张三的位置找他了,不用再在整个班级里吼那一嗓子了。

同理,如果老师想找别人,也可以先吼一声,直到对方应答。这种方式就称为**广播。**广播后会记住对方的位置方便日后找人。

场景二:

高三一班的李四想找素未谋面的高三二班王麻子商议日后如何一统高三,该怎么办呢?

于是他通过对比,自己是高三一班,王麻子是高三二班的,发现不是一个班的。

所以他先出门,找到王麻子所在的高三二班。

但他也不认识王麻子是谁,所以他也大吼一声【王麻子】,【王麻子】听到后回复【到】,于是李四就知道了王麻子的位置,日后就可以直接到高三二班找王麻子了。

接下来,我们拿上述的例子,解释下述名词

  • 主机:学生

    在网络技术中是用于发送与接收信息的终端设备。

  • 子网:班级就对应的是互联网中的子网要与计算机通信,必须要先找到计算机所在的子网

    一定范围内的局域网,不同局域网的IP可以重复

  • 网络地址:【高三一班】【高三二班】这些班级编号,就是网络地址。相当于子网的编号,主要是用来判断互相通信的设备是否在同一个子网

    在计算机领域中,网络就是用物理链路将各个孤立的工作站或主机相连在一起,组成数据链路,从而达到资源共享和通信的目的。网络地址则是互联网上的节点在网络中具有的逻辑地址,可对节点进行寻址。IP地址是在互联网上给主机编址的方式,为每个计算机分配一个逻辑地址,这样不但能够对计算机进行识别,还能进行信息共享。

  • 主机地址:【张三】【李四】这些学生姓名就相当于主机地址,确认好班级后,就可以分配学生

    IP地址是TCP/IP网络中用来唯一标识每台主机或设备的地址,IP地址由32位(共四个八位组)的二进制组成。IP地址分为两部分,左边网络编号部分用来标识主机所在的网络;右边部分用来标识主机本身,这部分称为主机地址。连接到同一网络的主机必须拥有相同的网络编号。

  • IP地址:IP地址等于网络地址+主机地址,即【高三一班张三】

    IP地址(Internet Protocol Address)是指互联网协议地址,又译为网际协议地址。IP地址是IP协议提供的一种统一的地址格式,它为互联网上的每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽的差异。IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节)。IP地址通常用“点分十进制”表示成(a.b.c.d)的形式,其中,a,b,c,d都是0~255之间的十进制整数。例:点分十进IP地址(100.4.5.6),实际上是32位二进制数(01100100.00000100.00000101.00000110)。

  • 子网掩码:但只知道IP地址是无法反推出网络地址(班级名称)的,所以必须指定哪几位为网络地址。用【高三一班张三】这个ip来举例,前4个字表示网络地址,我们就可以写为高三一班张三/4,用于表示前4位为网络地址。在计算机中我们一般用前24位表示网络地址,例如:192.168.1.1/24。

    子网掩码(subnet mask)又叫网络掩码、地址掩码、子网络遮罩,它用来指明一个IP地址的哪些位标识的是主机所在的子网,以及哪些位标识的是主机的位掩码。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分

  • mac地址:一个班级里有可能有多个重名的人,所以需要身份证(唯一标识)来确定具体的学生,身份证就相当于计算机的mac地址,即网卡地址

    MAC地址(**英语:Media Access Control Address)**网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,是一个用来确认网络设备位置的位址。在OSI模型中,工作在第二层数据链路层

  • 网关:如果不在一个班级,就需要出门寻找,这个门就是网关

    网关(Gateway)又称网间连接器、协议转换器。网关在网络层以上实现网络互连,是复杂的网络互连备,仅用于两个高层协议不同的网络互连。网关既可以用于广域网互连,也可以用于局域网互连。 网关是一种充当转换重任的计算机系统或设备。使用在不同的通信协议、数据格式或语言,甚至体系结构完全不同的两种系统之间,网关是一个翻译器。与网桥只是简单地传达信息不同,网关对收到的信息要重新打包,以适应目的系统的需求。

  • 交换机

    交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。交换机工作于OSI参考模型的第二层,即数据链路层。交换机内部的CPU会在每个端口成功连接时,通过将MAC地址和端口对应,形成一张MAC表。在今后的通讯中,发往该MAC地址的数据包将仅送往其对应的端口,而不是所有的端口。因此,交换机可用于划分数据链路层广播,即冲突域;但它不能划分网络层广播,即广播域

  • 路由

    路由(routing)是指分组从源到目的地时,决定端到端路径的网络范围的进程,路由工作在OSI参考模型第三层——网络层的数据包转发设备。路由器通过转发数据包来实现网络互连。虽然路由器可以支持多种协议(如TCP/IP、IPX/SPX、AppleTalk等协议),但是在我国绝大多数路由器运行TCP/IP协议。路由器根据收到数据包中的网络层地址以及路由器内部维护的路由表决定输出端口以及下一跳地址,并且重写链路层数据包头实现转发数据包。路由器通过动态维护路由表来反映当前的网络拓扑,并通过网络上其他路由器交换路由和链路信息来维护路由表。

1.同一个子网中两台计算机通信

进入正题之前,我们先思考几个问题

怎么判断两台设备是否属于同一个子网?

只要网络地址相同,就可以认为是在同一个子网

怎么计算网络地址呢?

假如以 IP 为192.168.102.3 ,子网掩码为:255.255.255.0为例

第一步:先将ip和子网掩码都转换成二进制(除2取余,逆序排列),即如下所示

192.168.1.10 =

11000000.10101000.01100110.00000011

255.255.255.0 =

11111111.11111111.11111111.00000000

第二步:进行“”运算

11000000.10101000.01100110.00000011 &

11111111.11111111.11111111.00000000 =

11000000.10101000.01100110.00000000

第三步:将结果转化成十进制,即得出网络地址为:192.168.102.0

在这里插入图片描述

回归正题,此时两台设备(A和D)想要通信。

首先,需要判断A和D的网络地址是否相同

A(192.168.1.10/24)和 D(192.168.1.13/24)的网络地址是一样的(都是192.168.1.0),代表它们是同一个子网

第二步,已知A和D处于同一个子网,A知道D的IP,但是不知道这个IP具体是哪一台设备,所以A在子网里发了一个广播包:IP地址为192.168.1.13的机器是谁的啊?

由于是一个广播消息,所以B,C,D都收到了这个广播包,拿到这个包之后,会将包中的IP与自身的IP做一个对比,B,C发现与自身不同,所以就不响应,但是在自己的机器中默默更新192.168.1.10对应的mac地址为macA(A的mac地址)。

但D发现与自己的IP相同,于是它使用单播的方式,把自己的IP和mac地址发给A,同时在自己的机器中更新192.168.1.10对应的mac地址为macA(A的mac地址)。

A收到后,就在自己的机器中更新192.168.1.13对应的mac地址为macd(D的mac地址)

这个过程也被称为ARP(Address Resolution Protocol),即根据 IP 获取 mac 地址的一个协议

另外在此过程中,如果交换机是中间设备,发现A的数据流经端口1,D的响应数据时从端口4流出,经过此次ARP,所以它就在“交换表”中记录下

端口mac地址
1macA
4macD

由于此时A和D都已经知道了IP所对应的mac地址,所以A再次发给D数据时,此数据包会带上四项内容:源IP(A的IP)和源mac(A的mac),目标IP(D的IP)和目标mac(D的mac)。

交换机收到数据后,看到上面附带的“目标mac”,发现自己的“交换表”里有存储对应的端口信息,就直接把数据包从端口4丢给D。

以此可以看出,交换机是工作在“数据链路层”的,因为它记录了mac地址和端口的关系,不涉及到IP

2.不属于同一个子网,两台计算机进行通信

2.1不属于同一个子网,但是属于同一片私网

回顾一下,上面环节所说,判断两台设备是否属于同一片子网,是通过判断网络地址是否相同,若是相同,则是属于同一子网。反之,则属于不同子网

涉及两个不同子网之间的设备想要通信,必须要先通过网关,然后再进行寻址。(示例:两个班级的同学想要通信,必须要先走出教室门,这个门在网络中被称为网关。一般是由路由器充当,网关地址是子网的第一个主机地址,假设网络地址为 192.168.1.0/24,则默认网关 IP 为 192.168.1.1,子网中的每台主机都会有一个默认网关)

在这里插入图片描述

继续拿A和D来举例:

1.首先计算A和D是否属于同一子网,A所在的子网是192.168.1.1/24,即它的网络地址为 192.168.1.0,子网掩码为 255.255.255.0,将 D的子网掩码与 D 的 IP 地址 192.168.2.13 相与得到 192.168.2.0,说明A 与 D 不在同一个子网

2.于是 A 要把包发到网关,即 192.168.1.1,一开始 A 也不知道网关的 mac 地址,于是 A 首先发了个 ARP 包获取网关的 mac 地址(即mac网关),然后将以下包发给网关

源mac:macA源ip:192.168.1.10
目标mac:mac网关r1目标IP:192.168.2.13

注意:此时发给网关的包,目标mac是网关的mac,但目标IP是D的IP,并不是网关的IP。例如,送一件快递,虽然快递会在各个网点来回流转,但是起始地点和目标地点不会变。

3.路由器收到上面这个包后,会取出它的目标IP,然后查一下路由表。

目的网络IP地址子网掩码下一跳IP地址接口
192.168.2.0255.255.255.0directE1
192.168.1.0255.255.255.0directL0
122.122.2.0255.255.255.128122.122.3.1L1

路由表大致有四项基本数据,【目的网络IP地址】【子网掩码】【下一跳IP地址】【接口】。

处理逻辑如下所示:

①因为目标IP(D的IP:192.168.2.13)的前三位是192,查一下路由表,所以我们将该IP与子网掩码255.255.255.0(路由表中的符合条件的子网掩码)进行“与”计算,得出目的网络IP地址为192.168.2.0

②通过路由表中数据对比,即可确认下一跳是通过E1接口直接前往

4.此时路由器不知道192.168.2.13的mac地址,于是它也用ARP先获取此IP对应的mac地址,得到macD

5.然后将数据包的目标mac地址改为D的mac地址进行发送,此时源mac地址也要修改为路由器接口对应的mac地址。

源mac:mac网关r2源ip:192.168.1.10
目标mac:macD目标IP:192.168.2.13

在转发过程中可以看到:源 IP,目标 IP 不会变,而源 mac和目标 mac 地址会不断变化

6.最终交换机再把上述的包转发给D即完成完成

所以,大家也就明白了路由器为啥属于三层设备,三层是网络层,负责根据 IP 寻址。
路由器的一个端口就是一个广播域,同一台路由器不同端口对应的网段(网络地址)是不同的

总结:整体来看,上述的传输过程就是,A先把包给到子网网关子网网关再通过路由器找到D所在的子网网关D的子网网关再把包给D。

2.2不属于同一个子网,涉及公网间的通信

说完上面的不属于同一个子网,却属于同一片私网,接下来我们唠唠不属于同一个子网,也不属于同一片私网,即涉及公网之间的通信。

在此之前,再给大家先解释几个概念:

私网

私网也称内网,也叫局域网,企业或者家庭用户搭建的网络为私网,比如公司里的很多台计算机就组成了一个子网,它们内部之间是可以互相通信的,而且它们组成的子网地址是私有地址,不同的子网私有地址是可以相同的,但如果你要访问“百度”那就要出这个子网,到公网上去找,公网才是我们所说的广义上的的互联网。

NAT协议

私网中的主机如果想要访问公网,必须将私网中的 IP 转为公网上的 IP,我们把这个过程称为 NAT(Network Address Translation,网络地址转换

此时肯定就有人问了,为什么要将私网IP转为公网IP?

我们来举个例子,在陕西秦岭中学一班,有张三、李四、隔壁老王几位同学。

但此时隔壁老王要给日本的尾田荣一郎发信息催更,尾田收到信息后,看到发送人是隔壁老王,一脸懵逼,世界上隔壁老王太多了,他不晓得该回给哪个隔壁老王。

所以,为了杜绝这种情况,隔壁老王发信息后,学校就自动把隔壁老王转换成”陕西秦岭中学“,同时把这个信息转换先记录下来。

然后把信息再转给尾田,尾田一看,陕西秦岭中学世界上就一个,他就可以回信息给学校了。

收到回复的信息后,学校再把这个信息转给隔壁老王。

这个例子中,隔壁老王就是私网IP,学校就是NAT网关,陕西秦岭中学就是公网IP(具备唯一性),尾田荣一郎就是外网IP。由此可见NAT的重要性。

特别注意:学校只负责地址转换,并不负责寻址等操作。

NAT网络地址转换主要分两种:SNAT和DNAT

snat是源地址转换(把隔壁老王变成秦岭中学),dnat是目标地址转换(把秦岭中学变为隔壁老王)。都是地址转换的功能,将私有地址转换为公网地址。

基础流程了解后,我们再稍微深入一些。

刚才我们说,隔壁老王发信息在学校是由记录的,后续尾田回信后,学校也是根据这个记录,给到了隔壁老王。

学校这块的记录,到底记了啥?

上面也说了,学校只负责地址转换,但是单纯的把名字和学校名称做一个映射关系,这样肯定是不够的。

例如张三也给尾田发消息了、隔壁老王给女朋友也发信息了、隔壁老王预约洗脚城……

上述的事项,如果在学校的记录为:

隔壁老王-----陕西秦岭中学

张三-----陕西秦岭中学

隔壁老王-----陕西秦岭中学

隔壁老王-----陕西秦岭中学

此时,尾田回消息到学校,学校一查表,直接懵逼。所以我们就会发现只有名称映射是无法满足要求的。

在网络世界,进程是通过IP地址+端口号来表示的,

于是,学校将记录调整为:

隔壁老王:10000-----陕西秦岭中学:20001

张三:10000-----陕西秦岭中学:20002

隔壁老王:10001-----陕西秦岭中学:20003

隔壁老王:10002-----陕西秦岭中学:20004

这样的话,尾田回消息的对象是“陕西秦岭中学:20001”,通过这个进程,就知道回信要给隔壁老王。

在这里插入图片描述

回归整体,我们拿上面的例子来看下实际场景的数据访问(隔壁老王是A、秦岭中学是nat、尾田就是D)

我们分别在1、2和3、4环节,看看IP变化。

SNAT:源地址转换

节点1:192.168.2.10:1234——>6.6.6.6:80

节点2:4.4.4.4:345——>6.6.6.6:80

DNAT:目标地址转换

节点3:6.6.6.6:80——>4.4.4.4:345

节点4:6.6.6.6:80——>192.168.2.10:1234

通俗的说,snat是作为客户端向外访问外网服务器,dnat是作为服务器端为外网提供访问服务;也可以理解为snat是修改网络包源ip地址的。而dnat是修改网络包目的ip地址的。

3.总结:

同一子网,使用ARP协议(IP获取mac)寻址,在数据链路层进行通信

同一公网,不同子网,通过网关进入网络层,找到另一个子网的网关,然后再下沉至数据链路层进行通信

不同公网,私网地址先通过nat转换成公网地址,然后再通过公网地址,访问另一公网

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

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

相关文章

【Linux环境搭建】Ubuntu 22 安装 InfluxDB 1.8

这里写目录标题 一、下载安装二、启动 一、下载安装 查看安装包 apt-cache search influxdbwget -qO- https://repos.influxdata.com/influxdata-archive_compat.key | sudo apt-key add -source /etc/lsb-releaseecho "deb https://repos.influxdata.com/${DISTRIB_ID,…

华为OD机试真题B卷 Java 实现【统计大写字母个数】,附详细解题思路

一、题目描述 找出给定字符串中大写字符(即’A’-‘Z’)的个数。 数据范围:字符串长度:1≤∣s∣≤250 字符串中可能包含空格或其他字符 二、输入描述 对于每组样例,输入一行,代表待统计的字符串。 三、输出描述 输出一个整…

蓝牙在物联网中的应用,相比WIFI和NFC的优势?

蓝牙在物联网中有着广泛的应用,主要包括以下几个方面: 1、智能家居:蓝牙Mesh技术可以用于智能家居设备之间的连接和通信,实现设备的远程控制和管理。例如,通过蓝牙技术可以将智能音箱、智能电视、智能家电等设备连接起…

ue4 解决角度万向锁的问题 蓝图节点

问题:当角度值从359-1变化的时候,数值会经历358、357… 解决方法:勾上Shortest Path,角度值的会从359-1

智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于帝国主义竞争算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.帝国主义竞争算法4.实验参数设定…

Geotrust中的dv ssl证书

DV SSL数字证书是入门级的数字证书,Geotrust的子品牌RapidSSL旗下的SSL数字证书产品都是入门级的SSL数字证书——DV基础型单域名SSL证书和DV基础型通配符SSL证书。今天就随SSL盾小编了解Geotrust旗下的DV SSL证书。 1.Geotrust旗下的DV基础型单域名SSL证书能够保护…

阿里云服务器ECS安全组开启端口教程

阿里云服务器安全组开启端口教程 云服务器 ECS(Elastic Compute Service) 云服务器 ECS(Elastic Compute Service)是一种安全可靠、弹性可伸缩的云计算服务,助您降低 IT 成本,提升运维效率,使您…

[AutoSar]状态管理(二)单核 ECUM wakeup 流程——Can唤醒流程(TJA1043)

目录 关键词平台说明一 、前言二、wakeup2.1 wakeup source和Check-Wakeup Validation2.2Can唤醒流程(TJA1043)2.2.1 相关配置2.2.1.1 EcuM2.2.1.2 CanIF 2.2.2 序列图2.2.3流程和code 关键词 嵌入式、C语言、autosar、EcuM、wakeup、flex 平台说明 项…

配置android sudio出现的错误

导入demo工程,配置过程参考: AndroidStudio导入项目的正确方式,修改gradle配置 错误:Namespace not specified. Specify a namespace in the module’s build file. 并定位在下图位置: 原因:Android 大括号…

数据挖掘目标(Kaggle Titanic 生存测试)

import numpy as np import pandas as pd import matplotlib.pyplot as plt import seaborn as sns1.数据导入 In [2]: train_data pd.read_csv(r../老师文件/train.csv) test_data pd.read_csv(r../老师文件/test.csv) labels pd.read_csv(r../老师文件/label.csv)[Su…

OpenAI Q* (Q Star)简单介绍

一、Q Star 名称由来 Q* 的两个可能来源如下: 1)Q 可能是指 "Q-learning",这是一种用于强化学习的机器学习算法。 Q 名称的由来*:把 "Q*"想象成超级智能机器人的昵称。 Q 的意思是这个机器人非常善于做决定…

安装Anaconda和pytorch

首先看下自己电脑是否有英伟达的显卡,如果有的话可以安装GPU版本,没有的话可以安装CPU版本。 CPU版本 1.安装Anaconda 首先去官网下载Anaconda。 点击download,下载的就是最新版本的。 下载完成后,直接运行下步就行 注意到路径…

HTML---列表.表格.媒体元素

文章目录 前言一、pandas是什么&#xff1f;二、使用步骤 1.引入库2.读入数据总结 一.列表 无序列表 HTML中的无序列表&#xff08;Unordered List&#xff09;用于显示一组项目&#xff0c;每个项目之前没有特定的顺序或编号。无序列表使用<ul>标签来定义&#xff0c;每…

自定义日志打印功能--C++

一、介绍 日志是计算机程序中用于记录运行时事件和状态的重要工具。通过记录关键信息和错误情况&#xff0c;日志可以帮助程序开发人员和维护人员追踪程序的执行过程&#xff0c;排查问题和改进性能。 在软件开发中&#xff0c;日志通常记录如下类型的信息&#xff1a; 事件信…

二蛋赠书十一期:《TypeScript入门与区块链项目实战》

前言 大家好&#xff01;我是二蛋&#xff0c;一个热爱技术、乐于分享的工程师。在过去的几年里&#xff0c;我一直通过各种渠道与大家分享技术知识和经验。我深知&#xff0c;每一位技术人员都对自己的技能提升和职业发展有着热切的期待。因此&#xff0c;我非常感激大家一直…

【EI会议征稿】2024年人工智能与大模型国际学术会议(AIFM 2024)

2024年人工智能与大模型国际学术会议(AIFM 2024) 2024 International Conference on Artificial Intelligence and Foundation Model 2024年人工智能与大模型国际学术会议(AIFM 2024)将于2024年1月19-21日在南昌召开。本次会议围绕人工智能与大模型的发展应用&#xff0c;聚集…

静态路由原理与配置

文章目录 静态路由原理与配置一、路由器的工作原理1、路由概述2、路由器的工作原理 二、路由表的形成1、路由表2、路由表的形成 三、静态路由和默认路由1、静态路由的缺点2、默认路由&#xff08;是特殊的静态路由&#xff09;3、查看路由表 四、路由器转发数据包的封装过程五、…

【产品经理】产品的实现,需要做好战略规划

产品的实现需要做好产品规划&#xff0c;而产品的规划决定了产品的方向。本文从战略规划的重要性、产品定位、设计产品架构图三个方向&#xff0c;详细地为大家梳理了产品实现的前期准备。 我们知晓了如何去发掘问题&#xff0c;并找到解决方案。 可对于问题的处理&#xff0c…

2023全国职业院校技能大赛信息安全管理与评估赛项正式赛(模块二)

全国职业院校技能大赛高等职业教育组信息安全管理与评估 任务书 极安云科专注技能竞赛&#xff0c;包含网络建设与运维和信息安全管理与评估两大赛项&#xff0c;及各大CTF&#xff0c;基于两大赛项提供全面的系统性培训&#xff0c;拥有完整的培训体系。团队拥有国赛选手、大厂…

《PySpark大数据分析实战》-05.PySpark库介绍

&#x1f4cb; 博主简介 &#x1f496; 作者简介&#xff1a;大家好&#xff0c;我是wux_labs。&#x1f61c; 热衷于各种主流技术&#xff0c;热爱数据科学、机器学习、云计算、人工智能。 通过了TiDB数据库专员&#xff08;PCTA&#xff09;、TiDB数据库专家&#xff08;PCTP…