互联网是如何实现数据传送的

68 阅读6分钟

相关名词

DHCP:动态主机配置协议,允许DHCP服务器给主机动态分配一个IP地址,网络之间的通信需要根据IP地址查找目标主机。

数据包

  • 源IP地址、端口号
  • 目标IP地址、端口号
  • 源MAC地址
  • 下一个传输设备的MAC地址,不一定是目标主机的MAC地址(这个是变化的)
  • 净载数据

网卡:一块被设计用来允许计算机在网络上进行通讯的计算机硬件,网卡和局域网之间的通信是通过电缆或双绞线以串行传输方式进行的。而网卡和计算机之间的通信则是通过计算机主板上的I/O总线以并行传输方式进行,网卡属于网络接口层,将上一层传过来的数据加上头部和尾部生成以太网帧传输出去,收到数据时会去掉头部和尾部。

MAC地址:网络中每台设备都有一个唯一的网络标识,这个地址叫MAC地址或网卡地址,由网络设备制造商生产时写在硬件内部。

image.png

集线器:多端口的转发器,作为中心设备,连接其他设备实现传输。集线器在收到信号时,会向所有端口无差别的广播出去,所有接口都能收到信息。而且,所有端口共享带宽,如果其中一条线路占了带宽,其他端口只能使用剩下的带宽。 集线器内每一个节点都能收到所有被发送的帧,这种表现被称为冲突域。

交换机:是一种电信号转发的设备,它可以为接入交换机的任意两个网络节点提供独享的电信号通路,交换机中有一张MAC与交换机端口对应的关系表。

交换机相比于集线器,实现了只向目标端口发送数据,前提是交换表中有目标端口的映射,而且每个端口独享带宽;如果在交换表中检索不到与目的Mac地址匹配的端口,就需要进行泛洪,即向所有端口转发数据。这样就会形成广播域(接收同样广播消息的节点的集合)

路由器:连接两个或者多个网络硬件设备,在设备间传送数据。会根据选定的路由算法把各数据包按最佳路线传送到指定位置。

路由器中有一张路由表,是IP地址与路由器端口的映射表,它们不是一一对应的关系,一个路由器端口可能对应多个IP,但是,一个IP只能对应一个路由器端口。路由器的每个端口都有一个MAC地址。

路由器通过IP地址将连接到其端口的设备划分为不同的网络( 子网 ),每个端口下连接的网络即为一个广播域,广播数据不会扩散到该端口以外,因此我们说路由器隔离了广播域

实际上我们家庭使用的路由器是包含路由器和交换机两部分的!WAN口就是路由器部分负责互联网路由器,交换机就是LAN口部分,负责在LAN口之间转发数据

ARP协议:地址解析协议,是根据IP地址获取网络设备物理地址的一个TCP/IP协议。通过这个协议,每台网络设备都会有一张ARP表,记录IP地址与MAC地址的对应关系。

互联网工作流程

如图,电脑A,B实现数据传输: image.png

判断设备是否在同一子网中:

在电脑中可以查到设备的子网掩码和默认网关信息。 IP地址与子网掩码通过位“&”运算,得出的结果若相同,则在同一子网中,不同就是在不同子网中。

与运算 (&) (二进制算法)

只有两个数的二进制同时为1,结果才为1,否则为0。 如: 0&1 = 0 0&0=0 1&1=1 1&0 = 0

255转为二进制是11111111; 192转为二进制11000000; 168二进制为10101000; 1的二进制为00000001

电脑A:192.168.1.0 & 255.255.255.0 = 192.168.1.0

电脑B:192.168.1.2 & 255.255.255.0 = 192.168.1.0 所以,电脑A和电脑B在同一子网中

同一子网

在同一子网中,他们可以通过交换机实现网络通信。交换机中有MAC地址与端口的映射关系表,步骤如下:

1、电脑A将自己MAC地址(源MAC地址)与B电脑的MAC地址(目标MAC地址)以及传输的内容发送给交换机

2、交换机拿到目标MAC地址后,根据内部的MAC与端口的映射表查找相应的端口传输数据

3、电脑B获取数据包,发现目标MAC与自己的MAC地址一样,就接收数据。

电脑中的ARP表记录了IP地址与MAC的对应关系,A电脑根据目标主机的IP可以获取到目标主机的MAC地址

非同一子网

设备不在同一子网中,如电脑A向服务器发送数据,这个时候就需要通过路由器了

image.png

步骤如下:

1、电脑A将包含有A电脑MAC地址(源MAC地址),路由器的MAC地址(目标MAC地址);A电脑IP地址(源IP地址),服务器的IP地址(目标主机IP地址)打包成数据包发送给交换机;

2、交换机拿到数据包后,根据目标MAC地址,将数据包发送给路由器1

3、路由器1拿到数据包后,根据目标IP地址,通过算法会找出最适合的路径,指向了路由2的IP地址(这一步查找,有可能查找出对应的端口号,有可能查出的是下一个路由的IP地址),

4、路由器1根据路由表,通过路由2的IP地址找出端口号,然后将打包数据包从端口号发送出去;

5、路由2拿到数据包后,根据目标IP地址,查看其路由表,找出端口号,并且根据目标IP地址查ARP表,找出目标MAC地址,修改数据包的目标MAC地址并打包,从端口发送出去;

6、交换机收到数据包后,查找出目标MAC地址对应的端口号,然后发送数据包

7、服务器接收到数据包后,查看MAC地址与自己的一样,接收数据