网络基础和网络设备传输流程(广域网数据传输流程)

目录

一、IP网络基础

1、IP地址和MAC地址

【1】IP地址

【2】MAC地址

【3】一跳一跳的网络数据传输

【4】IP地址和MAC地址的区别

2、子网掩码

3、网络设备及相关技术

【1】集线器:转发所有端口

【2】交换机:MAC地址转换表

【3】主机:网络分层从上到下封装

【4】主机&路由器:ARP缓存表+ARP寻址

【5】路由器:路由+NAPT

4、冲突域和广播域

【1】冲突域

【2】广播域

二、网络数据传输流程

1、局域网传输流程:集线器

 2、局域网传输流程:交换机

 3、局域网(不同网段)传输流程:交换机+路由器

4、广域网数据传输流程


一、IP网络基础

1、IP地址和MAC地址

【1】IP地址

作用:IP地址是IP协议提供的一种统一的地址格式。为互联网上每一个网络和每一台主机分配一个逻辑地址,以此来屏蔽物理地址的差异。

格式:

IP地址是一个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节),如:
01100100.00000100.00000101.00000110。
通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。如:100.4.5.6。

IP协议有两个版本,IPV4和IPV6。IP地址默认指IPV4。IPV4的数量为2^32,IPV6的数量是2^128(长度是IPV4的四倍)。

组成:

  • 网络号:标识网段,一个大型网络是由多个小型网络组成的,不同的网络有不同的编号;
  • 主机号:标识主机。

一个IP地址,包含网络号和主机号,整个用于标识主机,先通过网络号找到网络,然后再找网络内的主机。

分类:

网络基础和网络设备传输流程(广域网数据传输流程)_第1张图片

【2】MAC地址

MAC地址,用来标识网络设备的硬件物理设备。

  • 主机具有一个或多个网卡,路由器具有两个或两个以上网卡,每一个网卡都有唯一的IP地址;
  • 网络数据传输,本质上是网络硬件设备,将数据发送到网卡上,或从网卡上接收数据;
  • MAC地址长度为48位,一般用16进制的数字加上冒号的形式来表示。

特殊的MAC地址(广播数据报的MAC地址):对同网段的所有主机发送数据报。FF:FF:FF;FF:FF:FF

【3】一跳一跳的网络数据传输

以下为主机B传输数据到主机C经过的网络设备:

网络基础和网络设备传输流程(广域网数据传输流程)_第2张图片

 主机:具有IP地址,但是不进行路由控制;

路由器:配有IP地址,也能进行路由的控制;

网络节点:主机和路由器的统称。(主机和路由器由IP地址,交换机和路由器没有IP地址)

对于数据传输,数据不是直接从源主机到目的主机,而是需要在如图的路径中,一步一步的前进。

【4】IP地址和MAC地址的区别

  • IP地址是网络逻辑地址,MAC地址是物理地址;
  • IP地址是整个路途的起点和终点,MAC地址描述的是路途上每一个区间的起点和终点。

2、子网掩码

解决IP地址浪费的问题。

作用:

  • 划分子网:将A~C类IP地址再次划分为更小的网络(划分的方式是将主机号的一部分作为内部的一个网络号);
  • 子网掩码可以基于IP地址计算出网络号和主机号:

子网掩码计算网络号和主机号:

  • IP地址与子网掩码进行按位与操作,得到网络号;
  • 子网掩码进行按位取反操作后,再与IP地址就行按位与,得到的就是主机号。

3、网络设备及相关技术

【1】集线器:转发所有端口

工作在物理层的网络设备,发送到集线器的任何数据,都只是简单的将数据复制并转发到其他所有端口。

【2】交换机:MAC地址转换表

交换机工作在数据链路层,内部会记录并维护一张MAC地址转换表

  • MAC地址转换表:记录MAC地址与端口之间的映射关系;
  • 主机连接交换机,及发送数据的时候,交换机会记录该主机的MAC地址与端口信息;
  • 交换机接收到数据报后,通过目的MAC在MAC地址交换表中找到对应端口,将数据报转发到对应端口即可;
  • 如果MAC地址转换表中没有找到对应端口的信息,交换机发送广播到其它所有的端口,等到目的主机返回响应后,再转发数据报到对应端口,同时记录该主机MAC地址和端口之间的映射关系。

【3】主机:网络分层从上到下封装

网络基础和网络设备传输流程(广域网数据传输流程)_第3张图片

 根据源主机和目的主机是否在同一个网段,来设置不同的下一跳设备:

  • 同一个网段,下一跳设备就是目的主机;
  • 不同网段,设置下一跳设备为网关设备。

【4】主机&路由器:ARP缓存表+ARP寻址

APR协议:通过IP地址找MAC地址(介于数据链路层和网络层之间的一个协议)

ARP缓存表:主机或路由器,内部维护的一组数据(类似hash表,通过IP找MAC)

ARP寻址:(在数据链路层封装数据报时,需要设置目的主机的MAC地址,寻址就是查找下一跳MAC地址的过程)

  • 主机和路由器都保存了一张ARP缓存表,根据下一跳设备的IP地址,如果在ARP缓存表中可能找到MAC地址,则直接设置并发送数据报;
  • 如果找不到,发送ARP广播数据报(目的IP为广播地址)。

【5】路由器:路由+NAPT

网关:

路由器作为网关,可以划分公网和局域网,还可以将局域网划分为多个子网(不同网段)

  • 公网端口即WAN口,为单独的网卡,具有公网IP地址和MAC地址;
  • 划分的多个子网,有局域网端口即LAN口划分,每个端口都有独立的网卡,具有该网段的IP地址和MAC地址。

NAPT协议:将子网的IP地址和MAC地址转换为公网的IP地址和MAC地址。

局域网从主机发送数据报到公网的主机时:

  • 先从主机发送到路由器(此时需要基于NAPT协议将子网的主机IP地址和MAC地址转换为公网的IP地址和MAC地址【由于目的主机需要返回响应数据,此时目的IP和MAC需要设置为公网的IP和MAC】);
  • 然后再从路由器发送数据报到下一跳的设备。

路由

在复杂的网络结构中找到一条通往终点的路线。网络通信路由器中的路由功能,就是进行路线规划,找到通往目的地的最佳路径。

路由器中存在一个路由表,保存有IP地址的信息(类似于地图中的坐标点)

4、冲突域和广播域

【1】冲突域

主机之间通过网络设备的物理端口、网线相连时,两个主机同时发送数据报,如果存在冲突,该网络范围为一个冲突域(冲突与在物理层)。

  • 集线器:所有端口为一个冲突域;
  • 交换机:交换机可以分割冲突域,及一个端口为一个冲突域;

【2】广播域

某个网络中的主机向网络中其他所有的主机发送数据,这个数据所能传输到的范围为广播域。

  • 集线器:所有端口为一个广播域;
  • 交换机:接收到广播数据报时,会转发到其它所有的端口;
  • 路由器:可以隔离广播域,广播的范围是同网段。

二、网络数据传输流程

1、局域网传输流程:集线器

使用集线器网络互联的情况下,发送数据报时,需要先从上到下封装数据报。封装时,目的MAC可能不知道,需要先进行ARP寻址:

  • 发送端在本机ARP缓存表中,根据目的IP查找对应的MAC地址;
  • 如果找到,在数据链路层以太网帧头中设置目的MAC并发送数据包;
  • 如果没有找到,先发送ARP广播,让目的主机回复自己的MAC地址;
  • 发送端更新本机的ARP缓存表(保存目的IP和MAC的映射);
  • 然后发送数据报。

本机缓存表可以找到目的MAC的流程:

网络基础和网络设备传输流程(广域网数据传输流程)_第4张图片

如果本机ARP缓存表中找不到目的MAC,需要先发送广播,流程如下:

网络基础和网络设备传输流程(广域网数据传输流程)_第5张图片

 2、局域网传输流程:交换机

交换机MAC地址转换表

网络基础和网络设备传输流程(广域网数据传输流程)_第6张图片

 3、局域网(不同网段)传输流程:交换机+路由器

子网掩码和网关。

网络基础和网络设备传输流程(广域网数据传输流程)_第7张图片

 具体流程如下:

从主机一发送数据到主机六:

  1. 先在主机一对数据进行封装,封装到数据链路层时,需要目的MAC;
  2. 通过子网掩码的按位与运算计算出源主机和目的主机的网段,判断是否为同一个网段。如果是,则和之前交换机的流程一样;
  3. 如果不是同一个网段,交给网关处理,即找到路由器的IP地址,再根据ARP寻址找到其MAC地址,发送数据报到网关设备;
  4. 发送的数据经过交换机,交换机在MAC地址转换表中,根据目的MAC找到其对应端口,并发送数据到相连的设备;
  5. 此时数据报发送到路由器中,路由器对数据进行分用,进行ARP寻址后找到目的MAC,此时修改源MAC为路由器的MAC地址,目的MAC为目的主机主机六的MAC地址,封装后将数据发送到目的主机;
  6. 此时数据报再次经过交换机,交换机通过MAC地址转换表找到其对应的端口,并发送数据报到目的主机;
  7. 目的主机接收到数据报后,进行分用;同时返回响应数据报,源IP和目的IP、源MAC和目的MAC交换即可。

4、广域网数据传输流程

DNS(域名系统)一整套从域名映射到IP的系统:

使用IP地址来确定一个网络中的主机,但IP地址不方便记忆,且不能方便的表达地址组织信息,于是有了域名,通过域名系统来映射域名和IP地址。

可以通过域名查找该网站的IP地址(以百度网站为例):

网络基础和网络设备传输流程(广域网数据传输流程)_第8张图片

网络通信发送数据时,如果使用目的主机的域名,需要先通过域名解析找到其IP地址;

  • 域名解析:可以简单地理解为发送端主机作为域名系统树形结构的一个子结点,通过域名信息,自下而上查找对应IP地址的过程。
  • 域名解析使用DNS协议来传输数据。(DNS协议是应用层的协议,基于传输层UDP和TCP协议来实现)。

网络基础和网络设备传输流程(广域网数据传输流程)_第9张图片

 具体流程如下:

以访问百度网站为例:

发送http请求到百度服务器:http://www.baidu.com,根据DNS协议将域名转换为IP地址。http协议不带端口默认端口值为80.

  • 首先对数据进行封装,封装到数据链路层时需要设置目的MAC,根据子网掩码计算源IP和目的IP的网段,如果相等,和交换机的流程一样;
  • 如果不相等,需要交给网关处理,也就是交给路由器处理,通过ARP寻址,查找路由器IP地址对应的MAC地址;
  • 接下来到交换机,交换机保存有MAC地址转换表,读取数据后,通过mudiMAC查找对应的端口:如果找到,直接将数据报转发到对应的端口;如果没有找到,进行广播,目的主机进行响应,记录目的主机MAC和端口,将数据转发到相应端口;
  • 此时数据报传输到路由器,分用解析数据报:
    【1】基于NAPT协议,转换源IP为路由器公网的IP,源MAC为路由器公网的MAC;
    【2】基于路由技术,通过路由表计算路线,找到下一个设备的IP;
    【3】通过ARP寻址,找到下一个设备的MAC,封装数据报发送给下一个设备;
  • 重复上面的步骤,直到将数据发送到百度服务器,此时服务器对数据报进行接收分用:
    【1】数据链路层:目的MAC和我一样,进行接收;
    【2】网络层:目的IP和我一样,进行处理;
    【3】传输层:根据端口找对应的进程;
    【4】应用层:将数据交给应用层,有应用程序根据应用层协议进行解析。
  • 最后,百度服务器返回响应数据报,和请求流程一样,知识交换目的IP和源IP、目的端口和源端口。

你可能感兴趣的:(javaee,tcp/ip,网络,linux)