网络中的数据是如何传输的?

本文详细介绍了TCP/IP协议族,特别是TCP和IP的作用,以及数据在网络中的传输过程,包括应用层至物理层的七层模型和ARP协议在IP地址与MAC地址映射中的关键角色。
摘要由CSDN通过智能技术生成

基本认知

社会==法律,网络==协议

社会的正常运行需要法律约束,那网络的运行就需要协议去规定。

TCP/IP(Transmission Control Protocol/Internet Protocol)协议是一种被广泛应用于计算机网络之间的通信的标准协议集,它是现代互联网(Internet)的基础。TCP/IP不是一个单一的协议,而是一个协议族,包含了多种协议,共同构成了网络通信的核心规则。

在TCP/IP协议族中,最重要的两个协议是:

  1. TCP(传输控制协议):这是一种面向连接的、可靠的协议,提供了数据包的顺序传输、错误检测和纠正机制,确保数据的完整性和可靠性。TCP在应用程序之间建立逻辑连接,通过三次握手建立连接,并通过确认和重传机制保证数据正确无误地到达目的地。

  2. IP(网际协议):这是无连接的协议,负责将数据包从源主机传送到目标主机。IP协议主要关注数据包的路由和寻址,为每一份数据包加上源IP地址和目标IP地址,但它不保证数据的顺序传递或者是否成功送达。

除了TCP和IP,TCP/IP协议族还包括其他关键协议,例如:

  • UDP(用户数据报协议):与TCP相比,UDP是非连接的,不保证数据包的顺序到达或完整性,但因其传输速度快,常用于实时性要求高的应用,如在线音频和视频流。

  • ICMP(Internet控制消息协议):用于网络诊断和错误报告,如发送“ping”请求和回应。

  • DNS(域名系统):用于将易于记忆的域名转换为IP地址。

  • DHCP(动态主机配置协议):自动分配IP地址和相关网络配置参数给主机。

  • ARP(地址解析协议):用于在局域网中将IP地址转换成硬件(MAC)地址。

  • RIP、OSPF等路由协议:用于网络中的路由器之间交换路由信息,以便确定数据包最佳传输路径。

在TCP/IP协议模型中,通常将整个协议栈划分为四层或五层(包括应用层、传输层、网络层、数据链路层和物理层),每一层都有特定的功能和相关的协议,共同协作完成数据在网络中的传输任务。(如下图所示)

举个例子

数据在网络中究竟是如何传输的?

步骤1 - 应用层(Application Layer)
  • 假设用户在Web浏览器中输入网址(例如www.example.com)并请求一个网页。
  • 浏览器作为应用层的一个实体,会生成HTTP请求数据,并将目标地址(URL)交给传输层。
步骤2 - 传输层(Transport Layer)
  • 使用TCP协议为例,传输层为数据附加上源端口号(如浏览器进程的随机端口)和目标端口号(如HTTP服务的80端口)。
  • TCP会对数据进行分割(如果必要的话)并为每个数据段加上TCP头部,包含序号、确认号、窗口大小等字段,确保数据可靠传输。
步骤3 - 网络层(Network Layer)
  • IP协议在此阶段发挥作用,为每个TCP数据段加上IP头部,其中包括源IP地址(用户的公网IP)和目标IP地址(web服务器的IP地址)。
  • 如果目标IP地址不在同一子网内,还需通过路由表找到下一跳路由器IP。
步骤4 - 数据链路层(Data Link Layer)
  • 当数据到达本地网络,数据链路层(以以太网为例)会封装一个以太网帧,添加源MAC地址(用户的设备MAC地址)和目标MAC地址(下一跳设备的MAC地址,可能是路由器的接口MAC地址)。
  • ARP协议用于获取同子网设备的MAC地址。
步骤5 - 物理层(Physical Layer)
  • 物理层将数据转换为电信号、光信号或无线电波等形式,通过物理介质(如网线、光纤、无线信道)实际传输。
步骤6 - 路由和转发
  • 数据包在路由器之间不断跳跃,每个路由器查看IP头部信息来决定如何转发数据包,直到抵达目标网络。
步骤7 - 接收与解封装
  • 当数据包到达目标服务器所在子网,继续经历上述逆向过程:
    • 物理层将信号转换回数据。
    • 数据链路层去除帧头和帧尾,提取出IP数据包。
    • 网络层剥离IP头部,确定数据来自哪个源并交付给正确的上层协议。
    • 传输层TCP解封装并重组数据段,确保数据按序无误送达。
    • 应用层HTTP服务器接收完整的请求数据,处理后生成响应数据并通过同样过程返回给用户。

下面是一些图示,根据上面描述结合一下,方便你更好的去理解:

发送数据:

接受数据:

深入探究

终端主机-----------------在第五层---------------------为应用层

交换机--------------------在第二层---------------------为数据链路层

路由器--------------------在第三层---------------------为网络层

层级可以向下兼容,路由器在第三层,同时可以兼容第二层。

第二层--------数据链路层----------------路由器----------------------mac、IP、 目的端口和源端口、数据  

第三层--------网络层----------------------路由器(会拆mac) ------------IP、 目的端口和源端口、数据 

第二层--------数据链路层--------------- 交换机 ---------------------mac、IP、 目的端口和源端口、数据

首先,计算机会判断目的设备的 IP 地址是否与自身在同一网段。如果在同一网段,则可以直接通信;如果不在同一网段,则需要通过网关进行中转。

如果目的设备与自身在不同网段,主机需要将数据发送给网关。在发送数据之前,主机需要通过 ARP 协议获取网关的 MAC 地址。

由终端主机发从ARP报文,ARP首先会携带mac地址和目的IP地址,ARP 第一次携带的 MAC 地址是网关出口的 MAC 地址。当 ARP 首次请求时,它的目标 MAC 地址是全 F(广播地址),交换机收到全 F 的地址会将其广播到所有接口,而路由器会隔离该广播,因此只有路由器网关会响应 ARP 请求,并返回其 MAC 地址。

具体的说:当路由器收到主机第一次发来的 ARP 请求时,它会通过 ARP 响应将自己的 MAC 地址返回给主机。ARP 响应是一种单播数据包,其中包含了路由器的 MAC 地址。在 ARP 响应中,路由器不会直接修改主机传来的数据包中的 MAC 地址,而是创建一个新的 ARP 响应数据包,并将自己的 MAC 地址作为响应数据发送给主机。主机接收到 ARP 响应后,会将路由器的 MAC 地址与目标 IP 地址关联起来,并将其存储在自己的 ARP 缓存表中。
 
这样,在后续的数据通信中,主机就可以使用路由器的 MAC 地址将数据包发送给路由器,路由器再将数据包转发给目标主机或下一跳路由器,从而实现网络通信的目的。
 
需要注意的是,ARP 请求和响应是基于以太网协议的,它们使用的是以太网帧格式,其中包括了源 MAC 地址、目标 MAC 地址、类型字段和数据字段等。在 ARP 请求和响应中,源 MAC 地址和目标 MAC 地址分别是发送方和接收方的 MAC 地址,而数据字段中则包含了请求或响应的信息。

具体的说:终端主机收到后,使用这个 MAC 地址将数据封装成以太网帧,并通过物理网络将其发送到路由器。路由器接收到数据帧后,会解封装,然后会在同个局域网中查找路由表,看看目的IP地址的网段怎么走,找到后继续把数据包传到下一个路由器的网关,接着下一个路由器再去查找路由表,发现目的IP地址在自己同一个网段后,会交给交换机,交换机会查ARP缓存表,如果有直接发数据,如果没有,会广播,这时候目的主机会收到广播,然后转给交换机自己的mac地址,交换机根据mac地址传送数据。

所以整个过程中数据帧中目的IP地址不会变,变得是mac地址。并且数据在整个过程中是靠mac地址进行的传输数据的。

在这个过程中,主机通过 ARP 协议获取到了路由器的 MAC 地址,从而实现了将数据发送到网络中的目标设备。ARP 协议在以太网中起到了重要的作用,它帮助设备之间建立了 IP 地址到 MAC 地址的映射关系,确保了网络通信的正常进行。
 
需要注意的是,ARP 缓存表中的条目会在一定时间后过期,因此如果主机长时间没有与目标设备通信,可能需要再次发送 ARP 请求来获取目标设备的 MAC 地址。此外,如果网络中存在 ARP 欺骗等攻击行为,可能会导致主机获取到错误的 MAC 地址,从而影响网络通信的正常进行。为了保障网络安全,通常需要采取一些安全措施,如 ARP 防护、MAC 地址绑定等。

新的尝试

接下来,你可以尝试着解释这张图,PC1向PC4发从数据的整个过程是怎样进行的?

  • 10
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值