网络互联、局域网、广域网的传输流程

首先,我们先了解一些前置知识:

一、五元组与数据封装分用

1)五元组

五元组:源IP+源端口号+目的IP+目的端口号+协议号

  • 源端口是系统指定的启动应用程序之后所在的端口
  • 目的端口是接收端的一个进程
  • 进程可以提供很多种协议,所以需要指定一个协议号来指定我发送的协议到底是什么协议,并且在接收后就能知道用什么协议来解析
  • 目的端口是应用程序指定的
  • 源IP源端口号是发送端的IP和端口号

IP和端口号在上一篇博客中已经详细说明,此处就不一一解释了。
我们都知道: IP+端口号可以定位到某一台主机的某一进程
所以:

  • 发送数据目的IP+目的端口号作为发送数据的接收方;
  • 接收方把发送数据包的源IP+源端口号作为返回数据的目的IP和目的端口号就返回回来了

2)数据封装和分用

什么是数据封装与分用?

  • 数据的封装就类似于打包快递,需要从内向外打包;
  • 数据的分用相当于拆快递,需要从外向内拆包;

不同的协议层对数据包有不同的称谓,在传输层叫做段(segment),在网络层叫做数据报 (datagram),在链路层叫做帧(frame)。 应用层数据通过协议栈发到网络上时,每层协议都要加上一个数据首部(header),称为封(Encapsulation)。数据封装成帧后发到传输介质上,到达目的主机后每层协议再剥掉相应的首部, 根据首部中的 “上层协议字段” 将数据交给对应的上层协议处理。首部信息中包含了一些类似于首部有多长, 载荷(payload)有多长, 上层协议是什么等信息。

数据封装与分用的过程(文件传输为例):
同一个网段内的两台主机进行文件传输。两台主机直连时,发送端的封装,和接收端的分用。
本机封装: 每一层协议都要加上数据首部
在这里插入图片描述
数据封装和分用在客户端和服务端之间的过程:
在这里插入图片描述
从上面图中可以看出:客户端数据封装就是从里向外打包的过程,服务端数据分用就是拆快递从外向里拆包的过程。

二、网络互联(集线器)

网络互联: 多台计算机连接在一起, 完成数据共享;

1)场景:

主机A发送FTP“文件下载数据包”到主机C.
在这里插入图片描述

  • 主机A封装数据包并且发送数据包
  • 主机C解析(分用)数据包并且返回给主机A
2)数据发送过程:

此处也就是主机A查找主机C(目的主机)的MAC地址的过程:
在这里插入图片描述

  • ARP请求数据包: 源MAC+目的MAC(广播形式的FF:FF…)+目的IP;是用来通过IP查找对应主机的目的MAC地址的。通过广播形式发送
  • 发送的数据包: 里边有发送人的源MAC,因为当对方接收到数据包之后需要返回,返回是通过发送来数据包中的原MAC地址进行返回的。
3)网络互联带来的问题:

通过集线器方式产生的网络互联会产生冲突域。
冲突域: 连接在同一导线上的所有工作站的集合,或者说是同一物理网段上所有节点的集合,或者是以太网上竞争同一带宽的节点集合。(简单的理解就是:房间中所有人同时说话, 会让大家互相都听不清)

集线器网络互联存在冲突域,交换机可以解决冲突域。

三、局域网

局域网有两种连接方式:

  • 交换机
  • 交换机+路由器

1、交换机的MAC地址转换表

局域网LAN: 计算机数量更多了, 通过交换机和路由器连接在一起

公司一般使用交换机+路由器实现局域网

交换机处于数据链路层可以直接看到与他连接的主机的MAC地址,而集线器处于物理层,是不能看到主机的MAC地址,所以此时发送数据包的时候与上面集线器的网络互联是有区别的。

现在我们电脑都是通过家里的路由器连接到网络的,没有公网IP;当我们使用了阿里云或者腾讯云服务器的时候,我们的电脑是有公网IP的

1)那么交换机是如何获取MAC地址和端口的映射呢?或者说交换机的MAC地址转换表是如何建立起来的?

如下图所示,一开始没有数据收发过程时,最初MAC地址转换表是空的。
在这里插入图片描述

  • 主机A发送数据帧给主机C。
  • 交换机通过学习数据帧的源MAC地址,记录下主机A的MAC地址对应端口E0,该数据帧转发到除端口E0以外的其它所有端口。
  • 主机D发送数据帧给主机C。
  • 交换机通过学习数据帧的源MAC地址,记录下主机D的MAC地址对应端口E3,该数据帧转发到除端口E3以外的其它所有端口。

经过上述四步操作,交换机就在MAC地址转换表中记录了MAC地址和交换机端口的对应关系。见下图所示:
在这里插入图片描述

2)交换机发送数据
情况一:在发送数据时,如果交换机的MAC地址转换表中没有目的MAC和交换机端口的映射关系

发送数据的主机就需要向其他主机以广播的形式发送一个ARP请求数据包(IP与MAC映射关系)请求到其他主机判断是否为自己的IP,其他主机如果是自己的IP,他就返回将MAC地址发送给发送数据的主机;不是自己的IP则丢弃ARP数据包。
例子:主机A需要给主机B发消息,当主机A没有对方的mac时,会以广播的形式发送一个APR数据包给交换机,交换机将此消息广播出去,然后在本局域网上所有主机收到此广播消息时会对比自己的ip,如果此ip为自己的ip,则他会将自己的ip和mac的映射关系发送给A,此时A就有了B的mac地址;如果此ip不是自己的ip,就直接将ARP数据包丢弃。

mac请求数据包就是ARP请求包

情况二:如果交换机的MAC地址转换表中有目的MAC和交换机端口的映射关系

通过查找交换机的MAC地址转换表就可以查找到目的主机连接在交换机的那个一端口上,然后直接向目的主机发送数据包(此处不是ARP数据包)。见下图所示:
在这里插入图片描述

2、局域网1:交换机连接方式

1)场景:

主机A发送FTP“文件下载数据包”到主机C.
在这里插入图片描述

  • 交换机内部存在MAC地址转换表: 保存MAC地址和交换机端口的映射表
  • 主机内部存在ARP缓存表: IP地址和MAC地址的映射
2)数据发送过程:

在这里插入图片描述

3、局域网2:交换机+路由器连接方式

1)场景:

主机1发送FTP“文件下载数据包”到主机4.
在这里插入图片描述
交换机都是通过路由器上的LAN口(局域网IP)

2)数据发送过程:

在这里插入图片描述

三、广域网

广域网WAN: 将远隔千里的计算机都连在一起;

1)【重点】广域网传输流程:
  • 网络每一跳都要进行数据的封装和解析;
  • 主机涉及到:浏览器发送数据时DNS协议(域名转IP)、本机的ARP缓存表、数据封装出去。通过DNS协议将域名转换为IP之后,通过这个IP和子网掩码计算,看是不是在同一个网络号,是的话应该怎末发(发到交换机直接查找对应主机发送即可),不是有应该怎末发(发到对应路由器)------>第一跳
  • 交换机涉及到:mac地址转换表;通过mac地址转换表将数据发送出去------>第二跳
  • 路由器:NAPT(局域网私网IP+端口转为公网IP+端口)+路由功能+数据分用和重新封装+响应
2>域名转换成IP:DNS协议(属于应用层的协议)

Windows系统电脑进入cmd中:通过ping命令进行域名转IP。如下图所示:
在这里插入图片描述

  • 直接pingIP比ping域名更快,因为域名需要通过DNS协议解析DNS
  • 路由器也有缓存,缓存中有就直接返回,没有就一层一层往上找
  • 在本机是有缓存的,是在hosts(见下图),

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值