【JavaEE初阶】深入理解TCP协议中的封装分用以及UDP和TCP在网络编程的区别

前言

🌟🌟本期讲解关于TCP/UDP协议的原理理解~~~

🌈上期博客在这里:【JavaEE初阶】入门视角-网络原理的基础理论的了解-CSDN博客

🌈感兴趣的小伙伴看一看小编主页:GGBondlctrl-CSDN博客

🔥 你的点赞就是小编不断更新的最大动力                                       

🎆那么废话不多说直接开整吧~~~

目录

一.封装与分用

1.封装

1.1应用层封装

1.2传输层封装

1.3网络层封装

1.4数据链路层封装

1.5物理层发送

2.分用

2.1物理层分用

2.2数据链路层分用

2.3网络层分用

2.4传输层分用

2.5应用层显示

3.路由器与交换机分用

3.1交换机的分用

3.2路由器的分用

二.网络编程重要概念

1.客户端与服务器

1.1客户端与服务器的理解

1.1客户端与服务器之间的交互

2.TCP与UDP的区别

三.总结

 

一.封装与分用

1.封装

所谓的封装是数据传输中一个重要的过程,即添加报头的过程就是封装,但是这里显得很是抽闲,那么就按照一下来进行解释吧;

假如我们要进行一次聊天,我们就会发送一个“你好吗朋友?”,那么此时每一层的操作是怎样的呢???

1.1应用层封装

这里在应用层就会把这个字符串构造成一个应用层数据包,这里的数据包就是按照应用层的协议进行构造的,我们假如这里的数据包是按照应用层协议进行构造

如图所示:

实现数据包的传输:这里就是通过传输层提供的API,进行调用过后,将应用层数据包传给传输层;

1.2传输层封装

那么这里的传输层就会将上述的数据作为一个整体,然后将这个整体封装成为传输层数据包,由于传输层使用的协议是TCP或者是UDP那么这里就会将这的传输层数据包成为TCP数据包,即添加TCP的报头

如图所示:

 此时就将这里的应用层数据包进行了封装,其中TCP部分为报头,后面部分为“载荷”,并且这里的TCP报头承载这关键的传输信息

实现TCP数据包的转送:这里就是通过调用网络层提供的API,进行调用过后,将TCP数据包传给网络层;

1.3网络层封装

这里就会将从传输层传输过来的数据又当做是一个整体,然后将这个整体封装成网络层数据包,由于这里的协议是IP协议,那么就会在这个整体之上又拼上一个IP报头;

图示如下:

此时黄色部分就是IP数据包的报头,红色和和黑色部分即是IP数据包的载荷;并且这里的IP报头承载了重要的源IP和目的IP

实现IP数据包的转送:这里就是通过调用数据链路层提供的API,进行调用过后,将IP数据包传给数据链路层;

1.4数据链路层封装

此时这里的封装和上述是一样的,这里使用的协议是“以太网”,那么就会将上述的IP数据包进行封装成为以太网数据帧;

如图所示:

那么此时整个就是一个以太网数据帧,一个帧头,一个帧尾,然后中间部分就是以太网数据帧的载荷

实现以太网数据帧的转送:这里就是通过调用数据链路层提供的API,进行调用过后,传到物理层

1.5物理层发送

这里就要将从数据链路层中的以太网数据帧的二进制数据转化成以光纤、电磁破、电信号的方式进行传播出去;

2.分用

2.1物理层分用

此时当接收方的物理层受到后,将其转化为二进制的以太网数据帧,传给数据链路层

2.2数据链路层分用

就是按照以太网数据帧的方式进行解析,取出以太网数据帧的载荷部分,传给上层的协议;

2.3网络层分用

就是按照IP协议的格式进行解析,将IP数据包的载荷取出来传给上层协议;

 

2.4传输层分用

就是按照TCP协议进行解析,取出TCP数据包的载荷部分,然后将这部分传给上层协议;

2.5应用层显示

 最后使用应用层协议,解析数据,将其中的内容信息解析出来,然后显示在另一方的手机上

注意:分用就是封装的逆向过程

3.路由器与交换机分用

接着上满的讲述,这里用于网络直通的情况下完成的工作,但是现实情况不是,在这之间,存在很多的路由器和交换机的连接,所以真正的情况并不是一直分用到五层;

3.1交换机的分用

经典的交换机,分用到数据链路层;

实际上的过程就是,交换机物理层将光电信号等转化为二进制的以太网数据帧,传给交换机数据链路层;然后就会解析以太网数据帧,取出载荷,另一方面解析帧头帧尾决定下一步数据往哪里进行发送;

如图所示:

此时解析完后进行新的以太网数据帧的插入:

 此时就完成的交换机的分用过程了~~~

3.2路由器的分用

这里的路由器分用比交换机分用要复杂一点,这里是分用到网络层;

具体过程如下:

1.首先在路由器的物理层上将物理信号转化为二进制的以太网数据帧,然后传送给数据链路层;

如下图所示:

2.然后将这的数据链路层进行解析,拿出载荷,传给网络层;

3.在网络层,IP协议就会对这个IP数据包进行解析,取出载荷,拿到数据后进行新的IP报头的封装,即如下:

4.然后继续传给是数据链路层, 继续新的以太网数据帧的封装:

封装完成后,传输给下一层的物理层,进行物理信号的转化,传输给下一个组件;

二.网络编程重要概念

1.客户端与服务器

1.1客户端与服务器的理解

概念:在网络中主动发起信息的是客户端,被动接收信息的一端是服务器;

同一个程序在不同的场景中扮演的客户端还是服务器是不确定的;

如下图:

例如此时:这里的的入口服务器在绿色方框内,就代表的是服务器,但是在黄色方框内就是发起请求的一方,那么他就是客户端

客户端给服务器发送数据就是“请求”

服务器给客户端返回数据就是“响应” 

1.1客户端与服务器之间的交互

1.一问一答

即一个请求对应的是一个响应,后序的网站开发就是如此;

2.一问多答

即一个请求对应的是多个响应,即这里的场景多为“下载”;

3.多问一答

即多个请求对应的是一个响应,这里的使用场景多为“上传”;

4.多问多答

即多个请求对应的是多个响应,这里使用的场景一般就是“远程桌面、远程控制”

2.TCP与UDP的区别

TCP:有连接,可靠传输,面向字节流,全双工

UDP:无连接,不可靠传输,面向数据报,全双工

1.有连接&无连接

这里的连接不是物理意义上的连接,而是虚拟的连接,有连接就是像打电话一样,双发接通才能通话消息;而无连接就是发短信,微信一样,只要发送了无论对方是否同意,那么都能受到消息

2.可靠传输&不可靠传输

这里的可靠传输是尽可能完成数据传输,虽然无法确保能否传输给对方,但是知道这个数据对方是否收到了,而不可靠传输,就并不知道数据是否对方收到了

3.面向字节流&面相数据报

和文件IO一致,面向字节流表示的是以字节来进行传输,而面向数据报,表示的是按照数据报的方式进行传输(数据报是由一系列字节组成的特定结构)

4.全双工&半双工

一个通道可以双向通信就是全双工,如只能一方进行通信就是半双工;

三.总结

💬💬本期小编注重讲解了关于TCP/UDP协议的内部实现数据的传输转化的原理,包括如何进行封装,如何进行分用,以及存在路由器和交换机的情况;最后在网络编程小编提出了客户端与服务器的概念,以及TCP与UDP的区别~~~

🌅🌅🌅~~~~最后希望与诸君共勉,共同进步!!


💪💪💪以上就是本期内容了, 感兴趣的话,就关注小编吧。

                             😊😊  期待你的关注~~~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/450541.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android Framework AMS(09)service组件分析-3(bindService和unbindService关键流程分析)

该系列文章总纲链接:专题总纲目录 Android Framework 总纲 本章关键点总结 & 说明: 说明:上上一章节主要解读应用层service组件启动的2种方式startService和bindService,以及从APP层到AMS调用之间的打通。上一章节我们关注了s…

K-means 算法、层次聚类、密度聚类对鸢尾花(Iris)数据进行聚类

目录 1.基础知识 1.1 K-Means 算法 1.2 层次聚类(Hierarchical Clustering) 1.3 密度聚类(DBSCAN) 1.4 距离和相似度度量方法 1.5 总结: 2.K-means 算法对鸢尾花(Iris)数据进行聚类 2.1…

【动手学电机驱动】TI InstaSPIN-FOC(5)Lab04 电机力矩闭环控制

TI InstaSPIN-FOC(1)电机驱动和控制测试平台 TI InstaSPIN-FOC(2)Lab01 闪灯实验 TI InstaSPIN-FOC(3)Lab03a 测量电压电流漂移量 TI InstaSPIN-FOC(4)Lab02b 电机参数辨识 TI Insta…

智慧供排水管网在线监测为城市安全保驾护航

一、方案背景 随着城市化进程的不断推进,城市供排水管网作为城市基础设施的关键组成部分,其安全稳定的运行对于确保城市居民的日常生活、工业生产活动以及整个生态环境的健康具有至关重要的作用。近年来,由于各种原因,城市供排水管…

Mycat 详细介绍及入门实战,解决数据库性能问题

一、基本原理 1、数据分片 (1)、水平分片 Mycat 将一个大表的数据按照一定的规则拆分成多个小表,分布在不同的数据库节点上。例如,可以根据某个字段的值进行哈希取模,将数据均匀的分布到不同的节点上。 这样做的好处…

安卓开发中轮播图和其指示器的设置

在安卓开发中,轮播图(Carousel)是一种常见的UI组件,用于展示一系列图片或内容,用户可以左右滑动来切换不同的视图。轮播图通常用于展示广告、新闻、产品图片等。 轮播图的指示器(Indicator)则是…

k3s安装指定版本以及离线安装(docker)

首先下载你所需要版本的k3s安装包,目录结构如下所示,我这里是v1.19.15k3s2。 1.首先赋予可执行权限后进行安装。 # k3s 需要赋予可执行权限 sudo chmod x k3s sudo chmod x k3s-install.sh2.然后将k3s的二进制文件复制到/usr/local/bin/ cp k3s /us…

【Kafka】Kafka源码解析之producer过程解读

从本篇开始 打算用三篇文章 分别介绍下Producer生产消费,Consumer消费消息 以及Spring是如何集成Kafka 三部分,致于对于Broker的源码解析,因为是scala语言写的,暂时不打算进行学习分享。 总体介绍 clients : 保存的是Kafka客户端…

华为携手竹云发布海外一网通办解决方案,助力海外政务数智化发展

10月14日,第44届GITEX GLOBAL展会(GITEX GLOBAL 2024)在迪拜世界贸易中心盛大开幕。作为全球最具影响力的科技和创业盛会之一,本届活动吸引180多个国家的6500余家全球知名企业集聚迪拜,展示涵盖人工智能、网络安全、移…

【Linux】解答:为什么创建目录文件,硬链接数是2;创建普通文件时,硬链接数是1?(超详细图文)

前言 大家好吖,欢迎来到 YY 滴Linux系列 ,热烈欢迎! 本章主要内容面向接触过C的老铁 主要内容含: 欢迎订阅 YY滴C专栏!更多干货持续更新!以下是传送门! YY的《C》专栏YY的《C11》专栏YY的《Lin…

spring boot热部署

使用热部署解决了每次都需要重新启动的问题&#xff0c;但不过热部署的在对于改动比较小时速度可能快一些&#xff0c;改动大的话尽量停止 1.使用热部署之前需要在pom.xml文件中导入依赖 <dependency><groupId>org.springframework.boot</groupId><artifa…

DS链式二叉树的遍历(11)

文章目录 前言一、链式二叉树的结构结构定义手动搭建 二、二叉树的遍历三种常见遍历(前序、中序、后序)层序遍历 总结 前言 堆是特殊的二叉树&#xff0c;可二叉树本身也很值得研究~   正文开始&#xff01; 一、链式二叉树的结构 前文也提到了二叉树一共有两种&#xff0c;空…

人工智能创造出大量新型蛋白质

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

【线性回归分析】:基于实验数据的模型构建与可视化

目录 线性回归分析&#xff1a;基于实验数据的模型构建与可视化 1. 数据准备 2. 构建线性回归模型 3. 可视化 数据分析的核心 构建预测模型 应用场景 预测模型中的挑战 结论 线性回归分析&#xff1a;基于实验数据的模型构建与可视化 在数据分析领域&#xff0c;线性…

《拿下奇怪的前端报错》:1比特丢失导致的音视频播放时长无限增长-浅析http分片传输核心和一个坑点

问题背景 在一个使用MongoDB GridFS实现文件存储和分片读取的项目中&#xff0c;同事遇到了一个令人困惑的问题&#xff1a;音频文件总是丢失最后几秒&#xff0c;视频文件也出现类似情况。更奇怪的是&#xff0c;播放器显示的总时长为无限大。这个问题困扰了团队成员几天&…

wps安装教程

WPS office完整版是一款由金山推出的免费办公软件&#xff0c;软件小巧安装快&#xff0c;占用内存极小&#xff0c;启动速度快。WPS office完整版包含WPS文字、WPS表格、WPS演示三大功能模块&#xff0c;让我们轻松办公。WPS的功能是依据OFFICE用户的使用习惯而设计&#xff0…

Java5.--继承-重写-多态

笔记暂未整理&#xff1a; 一、面向对象的第二大特征&#xff1a;继承 1.分类&#xff1a;业务封装 功能封装 2.作用 封装-->属性的安全&#xff01; 继承-->重用----重用代码&#xff08;属性方法&#xff09; 多态-->扩展 3.实现继承的步骤 ①从多个相似的类中…

OpenShift 4 - 云原生备份容灾 - Velero 和 OADP 基础篇

《OpenShift 4.x HOL教程汇总》 说明&#xff1a; 本文主要说明能够云原生备份容灾的开源项目 Velero 及其红帽扩展项目 OADP 的概念和架构篇。操作篇见《OpenShift 4 - 使用 OADP 对容器应用进行备份和恢复&#xff08;附视频&#xff09; 》 Velero 和 OADP 包含的功能和模…

精品!“缠论分笔预测”,缠论分笔波段空间预测指标!

精品&#xff01;“缠论分笔预测”&#xff0c;缠论分笔波段空间预测指标&#xff01; 使用技巧该指标属于缠论相关指标&#xff0c;可结合缠论使用。使用缠论分笔方法来确定波段的高低点&#xff0c;相比使用“ZIG”算法&#xff0c;似乎更为准确。它能有效减少某些股票高点和…

大模型生图安全疫苗注入赛题解析(DataWhale组队学习)

引言 大家好&#xff0c;我是GISer Liu&#x1f601;&#xff0c;一名热爱AI技术的GIS开发者。本系列文章是我跟随DataWhale 2024年10月实践赛的大模型生图安全疫苗注入赛道&#xff1b;本文主要整理本次赛事的基本流程和优化方法。&#x1f495;&#x1f495;&#x1f60a; 一…