龙空技术网

数据是怎样通过网络进行传输的

栋哥说架构 424

前言:

此刻朋友们对“ip数据转发原理”可能比较看重,咱们都需要知道一些“ip数据转发原理”的相关知识。那么小编同时在网上汇集了一些有关“ip数据转发原理””的相关文章,希望同学们能喜欢,各位老铁们一起来学习一下吧!

引言

本文借鉴与许世伟老师的<IP 网络: 连接世界的桥梁>一文。

网络连接一切。它连接了人(个人和企业)、服务(由软件系统构建的服务接口)和物(大自然产物和智能终端),构建了多姿多彩的互联网。

在前面的章节,许老师分别介绍了进程、存储、输入、输出以及其背后的原理。这里通过一个单机来描述它的局限性,由此衬托网络对计算机世界的重要地位。

通常来讲,计算机世界里的任何技术,都能从现实的生活里得到映射。网络作为一个数据交换的通道,就自然地与邮寄联系到了一起。

数据封包过程

能够正常被接收的包裹通常包含寄件人信息、收件人信息、收件人地址三个基本信息。有了寄件人的信息,物流公司就可以知道是谁邮寄的。收件人的信息,可以知道邮寄给谁。收件人地址表示要邮到哪里去。所有的这些信息是物流公司所产生的需求,如果专业地进行表示,这些信息叫做物流协议。

同样的网络也是如此,如何将某台主机(寄件人)的数据内容,通过局域网、广域网传输到另外一台主机上(收件人),就成了网络要解决的问题。

技术人员应该都有了解,OSI协议讲网络分为了七层,分别是应用层、表示层、会话层、传输层、网络层、数据链路层、物理层。在这里许老师用了一个很贴切的图片进行展示。

OSI七层模型

让我们设想下,传输一部电影,应该怎么来传?

第一步:分批次

网络传输对数据包的大小是有限制的,在数据包过大的情况下,会分批次进行传输(从物理网络视角看,数据是并不是流(stream),而是一个个大小有明确限制的数据包),收到电影(大报文)的时候,应用层负责电影拆成多个固定大小的数据包。

第二步:传输层贴上发出者和接收者

传输层将每个数据包都贴上了一层标签,包含源主机端口(寄件人),目标主机端口(收件人),以及传输的协议(TCP/UDP)以及批次号()。

传输层有两套协议,一套是 TCP 协议,另一套是 UDP 协议。UDP 协议不保证对方一定收到,信封上就没写批次编号。

第三步:网络层贴上从哪儿发出到哪儿去

网络层接收到传输层给的数据后,在报文头部加上源IP地址和目标IP地址。有了IP的信息,就可以知道报文要发往哪里去。网络层主要任务是为网络上的不同主机提供通信,作用是将报文从源主机送达目标主机。

主要功能包括:

转发:报文从源主机的输出端口,转发到目标主机的输入端口。路由选择:通过算法为报文通过网络选择最佳途径。

网络层提供了多种协议,其中IP协议和ICMP协议最为常见。

第四步:数据链路层保证传输

数据链路层是最接近物理层的,主要做了三件事:

进一步的对报文封装,头尾部加上数据链路层的标识,叫做帧。通过加帧的方式,实现透明传输(什么样的报文都可以通过这样的协议进行传输)在尾部加上字符码进行冗余校验(通过某种算法获取一个值放在尾部,每次都通过算法进行校验数据的正确性)网络协议

网络协议是通信计算机双方必须共同遵从的一组约定。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

什么是MAC 地址

MAC 地址的英语是 Media Access Control Address,直译为媒体存取控制位址,也称为局域网地址(LAN Address)、以太网地址(Ethernet Address)或物理地址(Physical Address),它是一个用来确认网络设备位置的位址。

通俗地讲,一台计算机有一个或多个网卡,每个网卡会有自己的唯一标识即 MAC 地址。

什么是IP地址

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

什么是网关

网关(Gateway)就是一个网络连接到另一个网络的关口。网络由多个局域网和广域网组成,每个网络互相的通道就是网关。

什么是域名

互联网上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置)。

域名就是对IP的另外一种表示。例如:给李长顺起了个外号叫做铁蛋,就是用来加深对这个人的记忆。

DNS协议

这个协议记录了IP与域名的配对,每次通过域名访问,都能解析到对应的IP上。

DHCP 协议

动态主机配置协议,第一次接入网络的计算机,只有网卡自带的MAC地址,通过DHCP协议给它分配IP地址和默认网关。

ARP 协议

DNS协议是将域名解析为IP,ARP协议(地址解析协议)就是将IP转换为MAC地址。原因是在网络通讯中,最终需要的是MAC地址。

RARP 协议

RARP 全称叫反向地址转换协议,顾名思义就是将MAC地址转换为IP。

ICMP 协议

互联网控制报文协议,用来检测网路的连线状况,以保证连线的有效性,提供常用的ping、Telnet命令。

数据传输过程

数据传输过程

在网络内,源主机跟目标主机之间是通过多个路由器和交换机相连的。

同一个局域网内的主机通信

局域网内部,源主机与目标主机只经过了交换机。

同一个局域网数据交换

源主机只有目标主机的IP地址,没有MAC地址,因此采用ARP请求,获取MAC地址。交换机在收到ARP请求时候,有两种状态:交换机有目标主机的IP和MAC地址映射关系,此时直接返回其MAC地址。交换机没有对应的IP和MAC地址关系,此时交换机会向局域网内所有的主机转发数据包(泛洪),当目标主机判断IP跟自身IP一致的时候,返回其MAC地址。

3. 交换机有了IP跟MAC地址之后,进行自身缓存,之后的主机通讯不需要再次进行泛洪。

两个局域网内的数据传输

两个局域网内的主机之间经过若干个路由器和交换机(可选)。

跨局域网的数据传输

主机1与主机4进行通信步骤:

主机1发送数据包,通过交换机(可选),到达局域网的网关。网关根据自身的路由映射表,选取最佳的路径,发送数据包。路由器遵循着自身的路由表,将数据包层层转发到对应的目标网关上。目标网关进行数据的拆包和重组,形成新的数据包。新的数据包经过交换机(可选),再转发到对应的主机4上去。总结

这里只是从抽象上介绍了整个网关协议以及数据转发过程,数据在传输过程中会经过层层的封包和拆包过程,在这里不再过多的介绍。

整个网络的构建是一个非常复杂而且庞大的工程,通过对整个过程的了解,可以发现其设计的精妙之处。

通过OSI七层模型将数据的传输过程进行拆解,每个模型负责一部分的工作。每一次的数据交换都有对应的协议进行支持。网络从域上拆分成为多个子网,每个子网又管理多个子网或者多个主机。

整体来说,分而治之的思想,在整个网络结构里,随处可见。

标签: #ip数据转发原理