【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

这篇具有很好参考价值的文章主要介绍了【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


1 为什么需要分层?

你问我为啥需要分层?那必然是有好处的啊!

我们来回顾一下面向接口编程有什么特点~

  • 对于使用方来说,不必关心提供方是如何实现的, 只需要使用接口即可;
  • 对于提供方来说,只需要利用封装的特性,隐藏内部实现细节,对外开发接口。

【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

而对于协议的分层也是类似,后续比较容易针对某一层协议进行替换~

  • 分层之后,层次之间耦合度降低,上层不必了解下层的细节,同理,下层也不需要了解上层的细节~
  • 方便对某一层的协议进行替换~
  • 分层之后,就可以让程序员在同一时刻只关注某一层上的子问题~

2 TCP/IP 五层网络模型

TCP/IP 通讯协议采用了 5 层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 应用层 : 负责应用程序间的沟通,关注传输过来的数据要干啥用! 我们所聊的网络编程主要就是应用层。 对不同种类的应用程序它们会根据自己的需要来使用应用层的不同协议,邮件传输应用使用了SMTP协议、万维网应用使用了HTTP协议、远程登录服务应用使用了有TELNET协议。
  • 传输层不考虑中间路径,只考虑起点和终点~ 负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机。
  • 网络层 : 主要负责两个遥远的节点之间的路径规划~(地址管理和路由选择) 两个节点之间可能有多种路径可以到达,其作用就是选择一条最适合的。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由)。路由器(Router)工作在网路层。
  • 数据链路层主要关注两个相邻节点的传输~ 负责设备之间的数据帧的传送和识别。网络上相邻的节点,就是通过网线/光纤/无线直接连接的设备。
  • 物理层 :网络通信中的基础设施,网线、光纤、网络接口等。

【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

那么在协议分层的背景下,数据是如何通过网络传输的呢?

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

即就是所谓的 封装与分用~ 听起来很高大上?别急,下面我们具体来盘一盘!
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用


3 数据的封装(发送消息为例)

假如 小黄使用微信发送一条消息给七七:“今天你写代码了吗?”,在网络模型各层会发生什么呢?提炼信息如下:

  • 发送方:小黄,接收方:七七
  • 消息内容:今天你写代码了吗?

注意:以下内容以理解为主,数据内容并不完全准确,比如数据包的结构,实际更复杂,这里作了简化处理~

首先来到 应用层~
微信 App 拿到上述提炼的数据,封装成如下的应用层数据包:

【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: 数据包的封装本质上是字符串拼接,为了区分不同的字段可能还会引入分隔符、长度信息等。即实际的数据包可能更复杂,例如以分号作为分隔符,上述数据包可能为:5477;7745;2023-04-25;今天你写代码了吗?

应用层 -> 传输层
拿到上述数据,应用层要调用传输层提供的 api 来处理这些数据!传输层的协议中最典型的是 TCP 与 UDP,这里以 UDP 为例,针对上述数据包进行封装~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: 一个典型的数据报就是由 数据报头 + 数据载荷 组成的~ 可以将数据载荷理解为包装好的快递~ 该快递是要有寄件人和收件人相应的信息的。而 数据报头,就相当于 快递信息,加上数据报头,就相当于在快递箱子上进行了一个 “贴标签” 的操作~

传输层 -> 网络层
将上述传输层已经有的 UDP 数据报交给网络层的协议,最典型的就是 IP 协议~ 即拿到上述数据报后,需要进行进一步的封装:加上 IP 协议报头~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: IP 是找到主机,而端口号是确定主机上的 进程/程序 ~

网络层 -> 数据链路层
同样对上述数据报,再次进行封装,最典型的协议就是 以太网 ~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: 以太网是最常见的数据链路层的网络,比如我们平时使用的网线上网,就是在用以太网~

物理层
物理层拿到上述的以太网数据帧,则会将这样的 0101 二进制数据 转化成 光信号/电信号/电磁波信号 进行传输~

需要注意的是,以上的过程,操作系统已经帮我们封装好了~ 这就是所谓的 TCP/IP 五层网络模型的封装~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用


4 数据的分用(接收消息为例)

数据的发送过程我们了解了,那么又该如何接收呢?
其实很简单,如果说发送是封装的过程,那么接收就与之相反,则是分用的过程~

  • 发送方,从上层到下层,依次封装,新增报头~
  • 接收方,从下层到上层,依次分用,去掉报头~

在此为了方便理解,我们 不考虑发送方和接收方的中间节点的转发过程~

首先,来到 物理层~
物理层,网卡,接收到高低电平信号,会对信号进行解析,还原成 0101的二进制序列~

物理层 -> 数据链路层
上述拿到的 0101二进制序列,可以当作一个 以太网数据帧 就使用 以太网协议 进行处理:去掉帧头和帧尾,取出中间的数据载荷,上交给网络层~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: 以太网数据帧头有一个消息类型,根据该消息类型可以知道网络层是 IP 协议~

数据链路层 -> 网络层
接收到数据链路层的数据后由网络层的 IP 协议进行进行解析数据报。最主要的就是去掉 IP 报头,取出中间的载荷,上交给传输层~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

补充: IP数据报报头也会有一个字段标识传输层使用的是何种传输协议~

网络层 -> 传输层

由 UDP协议 进行解析数据报,取出数据载荷,上交给应用层~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

传输层 -> 应用层
由对应的应用程序,解析拿到的应用层数据报~ 这里以微信为例,则取出如下的字段,并在程序的界面中显示出来~
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用

以上便是 TCP/IP 五层网络模型的分用 的流程了~


5 实际网络环境上的封装与分用

在真实的网络环境中,并不会这么理想,中间是需要经过许多中间节点进行转发的~ 概述图如下:
【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用
几点说明:

  • IP 协议是一边传输一边规划路径~
  • 重新封装过程中,源 mac 地址 与 目的 mac 地址 也会发生变化~
  • 通常,在该过程中,交换机“二层转发”,路由器称为“三层转发”~

写在最后

 以上便是本文的全部内容啦!创作不易,如果你有任何问题,欢迎私信,感谢您的支持!
本文被 JavaEE编程之路 收录点击订阅专栏 , 持续更新中。
 创作不易,如果你有任何问题,欢迎私信,感谢您的支持!

【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用文章来源地址https://www.toymoban.com/news/detail-436166.html

到了这里,关于【JavaEE】从收发消息的角度理解 TCP/IP 五层网络模型的封装与分用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • 程序猿眼中的协议:TCP / IP 五层网络模型

    程序猿眼中的协议:TCP / IP 五层网络模型

    哈喽,大家好~我是你们的老朋友: 保护小周ღ ,本期为大家带来的是 网络基础原理中的 TCP / IP 五层网络模型,主要从协议的概念,网络模型,数据分层传输的流程,几个方面讲解,看完之后可以轻松的理解数据是如何在网络中传输的,确定不来看看嘛~~ 更多精彩敬请期待

    2023年04月19日
    浏览(8)
  • 计算机网络学习01-TCP/IP 五层模型概述

    计算机网络学习01-TCP/IP 五层模型概述

    谈论计算机网络模型之前,我们先来谈谈,为什么要分层,这样的好处是什么。 当谈到Internet 时,我们总能听到的一个词汇就是 协议 (protocol)。协议定义了发送者、接收者和所有中间设备为了高效通信需要遵循的规则。当通信简单时,我们可能只是需要一个简单的协议:当通

    2024年02月08日
    浏览(21)
  • 【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型

    【计算机网络笔记】TCP/IP参考模型基本概念,包括五层参考模型

    什么是计算机网络? 什么是网络协议? 计算机网络的结构 数据交换之电路交换 数据交换之报文交换和分组交换 分组交换 vs 电路交换 计算机网络性能(1)——速率、带宽、延迟 计算机网络性能(2)——时延带宽积、丢包率、吞吐量/率 计算机网络体系结构概念 OSI参考模型

    2024年02月05日
    浏览(10)
  • 【网络】- 计算机网络体系结构 - OSI七层模型、TCP/IP四层(五层)协议

    【网络】- 计算机网络体系结构 - OSI七层模型、TCP/IP四层(五层)协议

    但凡学习计算机网络知识,肯定绕不过网络协议的,而说的计算机网络协议,总是会听到 OSI七层模型 、 TCP/IP四层协议 ,有些文章又会说成是 TCP/IP五层协议 ,刚入门学这些网络协议时,给我整得一愣一愣的。 这篇文章的目的就是把计算机网络体系的这几个协议给尽可能讲清

    2024年02月03日
    浏览(14)
  • 计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络笔记:计算机网络体系结构(OSI七层模型、TCP/IP五层协议)

    计算机网络是一个复杂的、具有综合性技术的系统,它由计算机系统、通信处理机、通信线路和通信设备、操作系统以及网络协议等组成。为了更好地描述计算机网络结构,使计算机网络系统有条不紊地处理工作,需要定义一种较好的网络体系结构。分层结构就是一种较好地

    2024年02月07日
    浏览(13)
  • 计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

    计算机网络-TCP/IP模型及五层参考模型(OSI与TCP/IP相同点 不同点 5层参考模型及数据封装与解封装)

    OSI:先理论,但没有实践 TCP/IP:先实践,再理论 TCP/IP:基于协议栈而分层 网络接口层:数据链路层与物理层 应用层:包含上三层 异构网络互联:实现不同厂家生产的设备进行相互通信 IP协议面向无连接 传输层是端到端,有实现可靠传输的功能,即有面向连接的功能 传输层

    2024年01月23日
    浏览(29)
  • 计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构

    计算机网络七层体系结构(OSI七层结构)、TCP/IP四层模型、网络五层体系结构 七层体系结构(OSI七层结构) :为了使全世界不同体系结构的计算机能够互联,国际化标准组织ISO提出开放系统互联基本参考模型,简称OSI,即所谓的7层协议体系结构。 TCP/IP四层模型 :是由实际

    2024年02月06日
    浏览(40)
  • TCP/IP(五层)四层模型

    TCP/IP(五层)四层模型

    TCP/IP(Transmission Control Protocol/Internet Protocol,传输控制协议/网际协议)是指能够在多个不同网络间实现信息传输的协议簇。TCP/IP协议不仅仅指的是TCP 和IP两个协议,而是指一个由FTP、SMTP、TCP、UDP、IP等协议构成的协议簇, 只是因为在TCP/IP协议中TCP协议和IP协议最具代表性,所

    2024年04月24日
    浏览(9)
  • 详解TCP/IP五层模型

    详解TCP/IP五层模型

    目录 一、什么是TCP五层模型? 二、TCP五层模型的详细内容 1. 应用层 2. 传输层 3. 网络层 4. 数据链路层 5. 物理层 三、网络设备所在分层   封装和分⽤ 三、Java示例 引言:         在网络通信中,TCP/IP协议是至关重要的。为了更好地理解TCP协议的工作原理,我们需要了解

    2024年04月08日
    浏览(7)
  • TCP/IP 五层协议模型

    TCP/IP 五层协议模型

    转载大佬文章 我们每天使用互联网,本质上是在传输/接收各种数据,具体如何传输则是按照一系列互联网协议进行的。我们常说的网络七层模型,五层模型,四层模型都是对数据传输过程做了细化的分层。 按照五层模型比较好理解,并且理解每一层的功能主要是理解每一层

    2024年02月15日
    浏览(6)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包