看文这篇保证你了解掌握【TCP/IP 五层模型】!

1. 协议分层

在网络通信中,需要约定的协议,其实是非常复杂的!面对复杂的环境,就需要复杂的协议,但是太复杂也不好。
协议是拆分很多的,那么就针对有些小的协议,作用或者定位类似的进行分类,同时针对这些不同的类别,进行分层(相当于约定了层级和层级的关系,要求上层协议调用下层,下层给上层提供支持,不能跨层调用)
简单的画个图来描述下,上层调用下层,下层给上层提供支持的含义
在这里插入图片描述
只有两个相邻的层级才可以交互,不可以跨级进行交互。

分层的好处:

  • 分层之后就可以做到,层次之间,耦合程度比较低,上层协议不必了解下层的细节,下层也不必了解上层的细节
  • 方便的对某一层的协议进行替换

2. 具体如何分层

有两种模型:

  • OSI 七层网络模型(仅仅存在教科书上的)在这里插入图片描述

  • TCP/IP 五层网路模型(当下最广泛的网络模型)在这里插入图片描述

本文我们主要介绍 TCP/IP 五层网络模型!

2.1 应用层

关注传输的数据的用途,应用层就是程序猿写的应用层序

2.2 传输层

不考虑中间路径,只关注起点和终点

2.3 网络层

主要负责两个遥远的节点之间,路径规划

2.4 数据链路层

主要关注两个相邻节点之间的传输,是通过网线/光纤/无线哪一种方式连接

2.5 物理层

网络通信的基础设施,网线,光纤,网线接口,类似于网络上的高速公路

3. 在协议分层的背景下,数据如何通过网络传输?

首先需要了解两个概念:封装 & 分用

  • 封装:发送方发送数据,要把数据从上到下,依次交给对应的层次的协议,进行封装
  • 分用:接收方收到数据,要把数据从下到上,依次交给对应的层次的协议,进行解析

为了能够大家可以更加详细了解,整个过程,我们以一个 发送QQ 消息为例子,大概来介绍下这个过程!

在一个月黑风高的夜晚,张三决定向女神表白,此时他打开了QQ,在输入输入的一行文字:我喜欢你!并点击发送按钮
在这里插入图片描述

那么这一句话到底是怎么发送过去的呢? 此处只是模拟,真实的数据包可能更复杂的多

    1. 应用层(QQ应用程序)拿到上述用户数据,进行封装,封装成应用成数据包在这里插入图片描述
    1. 传输层拿到上述数据,应用层通过调用传输层提供的API,来处理这个数据(传输层有很多协议,此处以UDP为例)在这里插入图片描述
      此处,UDP协议再给应用数据包加上一个UDP报头,就是为了再贴一层标签,从而再标签上填写必要的属性。传输层协议,最关键的属性,就是源端口和目的端口
    1. 网络层拿到上述数据后(此处采用IP协议)在这里插入图片描述
    1. 数据链路层(最典型的协议以太网)在这里插入图片描述
      mac 地址是物理地址,也是描述一个主机的位置,但是IP是用来进行路径规划的,而当下的mac是描述数据链路层,两个即将传输的相邻节点。
    1. 物理层接收上述数据,将上述本质上是 0101 的二进制数据转换成光信号/电信号/电磁波信号,进行传输了!

那接收方又如何解析的呢?
接收的过程正好和上述过程相反,
发送,从上到下,依次封装,新增报头
接收,从下到上,依次分用,去掉报头

    1. 物理层,网卡,收到高低电平信号,然后解析还原成二进制数据
    1. 数据链路层,此时就把上述二进制数据 当作一个以太网数据,进行去掉帧头,帧尾,取出中间的载荷,交给上方的网络层在这里插入图片描述
    1. 网络层,去掉IP报头在这里插入图片描述
  • 4.传输层,去掉UDP报头在这里插入图片描述
    1. 应用层,此时由QQ程序来解析应用层数据包,取出字段,放到程序界面在这里插入图片描述

4. 模拟经典真实的转发过程

在这里插入图片描述

  • 中间的交换机:只需要封装分用到 数据链路层(只需要改源mac和目的mac)
  • 中间的路由器:则需要封装分用到 网络层(也需要改mac,同时还需要根据目的ip进行下一阶段的路径规划)
  • 通常来说,交换机是进行“二层转发”,路由器进行“三层转发”

  • 6
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一个想打拳的程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值