网络中数据传输的过程

1. 数据传输的背景

(1) 现在互联网中使用的是基于OSI七层模型的TCP/IP模型。TCP/IP模型包括五层,即物理层,数据链路层,网络层,传输层,应用层;其中数据链路层又可以分为两个子层,即LLC(逻辑链路控制层)和MAC(介质访问控制层)。这些层的分工合作是数据正确传输的基础。

(2) ARP协议(地址解析协议),它的主要功能是将网络层IP地址转化为数据链路层MAC地址。从IP地址到物理地址的映射有两种方式:表格方式和非表格方式。在以太网中或者在同一局域网中,所有对IP地址的访问都转换为对数据链路层网卡MAC地址的寻找。如果主机A的ARP列表中没有主机B的IP地址和对应的MAC地址,那么在传输数据时是不可能到达主机B的。

(3)DNS(域名服务器),它的主要功能是将域名转换为对应的IP地址。在不同网段的数据传输中,主机A要先根据主机B的IP地址与子网掩码做与运算所得的结果——主机B所在的网络号找到主机B所在的网络,再根据MAC地址找到主机B。

2. 同一网段的数据传输

      假设在同一网段中的两台主机A和B想要通信,A如果想给B发送数据,必须先将B的IP地址与它的子网掩码做与运算得出B所在的网络号,A将所得的B的网络号和自己的做比较,以判断B和A是否在同一网段中,如果相同,则在同一网段,如果不同,则不在同一网段。如果A和B在同一网段,但是A没有B的IP地址所对应的MAC地址信息,则利用第二层广播形式发送ARP请求报文,在报文中包含了A(源主机)和B(目标主机)的IP地址信息。同一网段中的所有主机都可以收到并分析ARP报文,如果发现目标主机的IP地址和自己的不同,则丢弃报文,否则,就向A(源主机)发送ARP请求响应报文,报文的内容包括B(目标主机)的MAC地址。

      为了减少广播量,网络设备通过ARP表在缓存中保存IP与MAC地址的映射信息。在一次 ARP的请求与响应过程中,通信双方都把对方的MAC地址与IP地址的对应关系保存在各自的ARP表中,以在后续的通信中使用。ARP表使用老化机制,删除在一段时间内没有使用过的IP与MAC地址的映射关系。

       如果中间要经过交换机,交换机内部有一个数据库专门用来保存所有端口对应的网卡MAC地址。根据交换机的工作原理,它通过分析Ethernet包的包头信息(其中包含原MAC地址,目标MAC地址,信息的长度等),取得目标B的MAC地址后,查找交换机中存储的地址对照表(MAC地址对应的端口),确认具有此MAC地址的网卡连接在哪个端口上,然后将数据包发送到这个对应的端口,也就相应的发送到目标主机B上。

3. 不同网段的数据传输

      在不同网段的数据传输中, 主机A并不需要获取远程主机C的MAC地址,而是将IP分组发给默认网关,由网关网络层完成转发过程。如果A(源主机)没有默认网关MAC地址的缓存记录,则它会通过ARP协议获取默认网关的MAC地址,因此在A的ARP表中只能观察到网关的MAC地址记录,而观察不到远程主机C的 MAC地址。

(1)A要发送数据包到C,如果A没有C的IP地址,则A首先要发出一个DNS请求,路由器B或者DNS域名解析服务器会给A回应PC的IP地址,这样A关于数据包网络层和传输层的IP地址信息就全了:源IP地址:A,目的IP地址:C。

(2)接下来A要知道如何到达C,A会发送一个ARP的地址解析请求,发送这个地址解析请求,不是为了获得目标主机C的MAC地址,而是把请求发送到了路由器B中,然后路由器B会将自己的MAC地址会发送给源主机A,这样A的数据包的数据链路层信息也全了,源MAC地址:A的MAC地址,目的MAC地址:路由器B的MAC地址。

(3)然后数据会到达交换机A,交换机A看到数据包的数据链路层的目的MAC地址,是去往路由器B的,就把数据包发送到路由器B,路由器B收到数据包,首先查看数据包的网络层目的IP地址,根据路由选择算法得到一张路由表,如果在自己的路由表中有去往C的路由,说明这是一个可路由的数据包。

(4)接下来就要进行路由传送了,首先,由路由器B对报文进行IP重组或分组,修改数据链路层的报头——将源MAC地址改为自己的,将目的MAC地址改为下一跳路由器C的MAC地址。将数据报传送给路由器C,路由器C重复路由器B的工作,直至到达目的主机C所在的网络,再利用局域网通信,找到相应的主机C。

(5)从路由器B到路由器C再到主机C的过程在一个庞大的网络系统中,在这个网络中还要封装一系列的协议,以完成数据的正确传输。

(6)如果在传输期间丢包或者到达主机C的数据包有错误,此时就需要发挥传输层TCP协议的作用了,对丢失的数据包进行重传。

总结:数据传输的过程在主机A(源主机)中,就是利用遵循的某种协议逐层为数据添加报头,添加报头是为了找到目的主机并如何将数据安全正确的传输到目的主机。

在目的主机中,就是自下向上逐层解报头过程,根据传输来的报头决定将数据交给上层的哪一个协议,并正确的将报头和数据单元分离开,接收到正确的数据。

在网络中,由路由选择协议完成数据的跋山涉水。

4. 几个关键问题

(1)A和C的MAC地址如果是相同的话,会不会影响正常的通讯呢!答案是不会影响的,因为这两个主机所处的局域网被广域网分隔开了,通过对发包过程的分析可以看出来,不会有任何的问题。而如果在同一个局域网中的话,那么就会产生通讯的混乱。当数据发送到交换机,端口信息会有两个相同的MAC地址,而这时数据会发送到两个主机上,这样信息就会混乱。因此这也是保证MAC地址唯一性的一个理由。

(2)网关的含义:是说这样一种设备:如果主机要发包,就往这个设备发送。也就是说此设备要有路由功能或有去往外部网路的路径。
在实际网络里,网关一般由路由器或server充当。

(3)标识网络中的一台计算机,一般至少有三种方法,最常用的是域名地址、IP地址和MAC地址,分别对应应用层、网络层、物理层。网络管理一般就是在网络层针对IP地址进行管理,但由于一台计算机的IP地址可以由用户自行设定,管理起来相对困难,MAC地址一般不可更改,所以把IP地址同MAC地址组合到一起管理就成为常见的管理方式。

你可能感兴趣的:(网络)