JavaEE——网络初识 (简单介绍两种协议以及网络通信的基础概念)

文章目录

  • 一、简单了解网络发展
  • 二、网络通信基础认识
  • 三、利用UDP举例解释网络信息传输

一、简单了解网络发展

总的来讲,网络的发展史就是,先是一小部分的计算机之间连接通信,随着技术发展,逐渐扩大范围,形成了我们当前使用的互联网。在这之中,最主要的改变就是网络组建的方式

  1. 局域网组建
  • 基于集线器组建
    在这里插入图片描述

  • 基于交换机组建
    在这里插入图片描述
    只是组建局域网(不能跨局域网)

  • 以路由器组建
    在这里插入图片描述
    路由器将多个局域网进行联系。

  1. 广域网组建

广域网,即 Wide Area Network ,简称 WAN。

通过路由器,将多个局域网连接起来,在物理层面上组成大范围的网络,就形成了广域网。广域网中的局域网都属于子网。 如图:

在这里插入图片描述

二、网络通信基础认识

  1. IP 地址
    简单来讲就是用来定为主机的网络地址

  2. 端口号
    标识一个具体的应用程序,格式为(0 - 65535)之间的数字。

  3. 认识协议
    概念: 通俗来讲,就是通信双方进行的一种约定。通过这个约定,让双方互相理解对方的含义。

对于网络通信,是一个比较复杂的事情,需求的场景复杂了,实现的功能也就会复杂。因此,在实际情况中,会将这些庞大,繁杂的协议拆分成相对简单较小的协议,再将这些小的协议分层整合进行使用

在当前互联网世界,分层方式大致分为两种:

  1. OSI 七层网络模型
    因为该网络模型既复杂有不实用,所以在这里就简单了解一下即可。
    在这里插入图片描述

  2. TCP/IP 五层网络模型

在这里插入图片描述
如上图所示,越往下层,越接近硬件设备,越往上越接近用户。
在这里我们要明白一点,上层协议要调用下层协议,下层协议要给上层协议提供服务。

解释每层模型的含义

  • 物理层: 约定了网络通信中的基础硬件设备是什么样。
    例如:通信使用的 网口 网线 的规格。

  • 数据链路层: 主要负责两个相邻两个节点之间具体如何传输。(就像是在网上买了一件快递,商家发货)

  • 网络层: 主要负责路径的规划,信息传输走那条路合适。(快递在运输时,快递公司考虑沿着那条路走)

  • 传输层: 只关心起点和终点,不在乎之间的过程。

  • 用户层: 应用程序描述出传递的数据,用户如何进行使用。

三、利用UDP举例解释网络信息传输

发送方

假设编写 hello 字符串,以qq这个引用程序进行发送。

  1. 应用层

在这里插入图片描述
如上图所示,用户在应用层生成了一个数据报,程序通过调用操作系统 api 将应用层数据传递给传输层。

这里的 应用层数据报 本质上就是一个遵守了约定格式的字符串。

  1. 传输层(进入操作系统内核)

在传输层中,需要将上面传输下来的应用层数据报 构造成 传输层数据报

在传输层使用到的协议,最知名的就是 UDP 和 TCP 。假设此处构造 UDP 数据报。
在这里插入图片描述
如上图所示:此处就像是字符串拼接一样,将报头和后面的数据拼接在一起

这里的 “报头” 就是一个标签,通过该标签表示出当前需要将数据怎样传输。

最后,传输层将这个 UDP数据报 传递给网络层。

  1. 网络层

通过知名协议 IP 协议。IP 协议基于上述的数据报,打包成为一个 IP 数据报。

在这里插入图片描述
同样的,这里的 IP报头 也是相当于一个字符串。包含着核心信息:源IP 和 目的 IP

在这里,我们还需要了解一个重点概念
一次通信中,基础的五元组。
在这里插入图片描述
形象的用一句话来解释就是,如下图:
在这里插入图片描述

网络层数据报构建好后,进一步交给 数据链路层。

  1. 数据链路层

这里又有一个知名协议 “以太网” 。基于上述数据,这里要将以太网数据再次打包为 “以太网数据帧”
在这里插入图片描述
如上图所示,之后再将数据往下传输,交给物理层。

  1. 物理层

将上述二进制数据转换成 电/光 信号,此时就真正的将数据发送出去。

接收方

在这里接收方的工作就是将上面发送方产生的数据报,依次按不同协议层进行拆解,最终传递到应用层,显示到用户界面上。(在这里就不进行过多的解释)

总结: “封装分用”
总的来讲,在网络传输中,自上而下,从应用层到物理层,称之为 “封装”
自下而上,从物理层到应用层,称之为“分用”

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

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

相关文章

【unity】Pico VR 开发笔记(视角移动)

【unity】Pico VR 开发笔记(视角移动) 视角移动是简单的基础功能,这里区别于头显定位获得的小范围位移,是长距离不影响安全边界的位移方式。的常见的位移方式有两种,其一是触发后瞬间传送到指定位置,其次是…

TBB库中实现协程(coroutine)的源码说明

源码请见: https://github.com/oneapi-src/oneTBB/blob/master/src/tbb/co_context.h 在windows系统,TBB(也就是intel 的 oneTBB库),通过windwos fiber(纤程)来实现协程(coroutine)。 创建一个协程,代码很简洁: inline void create_coroutine(corouti…

图论-简明导读

计算机图论是计算机科学中的一个重要分支,它主要研究图的性质和结构,以及如何在计算机上有效地存储、处理和操作这些图。本文将总结计算机图论的核心知识点。 一、基本概念 计算机图论中的基本概念包括图、节点、边等。图是由节点和边构成的数据结构&am…

前端技术搭建五子棋游戏(内含源码)

The sand accumulates to form a pagoda ✨ 写在前面✨ 功能介绍✨ 页面搭建✨ 样式设置✨ 逻辑部分 ✨ 写在前面 上周我们实通过前端基础实现了拼图游戏,今天还是继续按照我们原定的节奏来带领大家完成一个五子棋游戏,功能也比较简单简单,也…

MCUXpresso for VS Code -- 基于VSCode开发RT1176

MCUXpresso for VS Code 是nxp推出插件,旗下MCX LPC, Kinetis和i.MX rt等MCU,都能在VS Code平台进行嵌入式开发。功能框图如下: 前期准备: 软件环境: windows(实际可以跨系统,linux和mac没有测试) VS Code ninja CMa…

elementui Cascader 级联选择使用心得

相信大家对于elementui并不陌生,作为适配Vue的优秀UI框架之一,一直被所有的开发者痛并快乐着。今天要记录的就是里边的主角之一Cascader。 首先先介绍一下Cascader ---> 当一个数据集合有清晰的层级结构时,可通过级联选择器逐级查看并选择…

树莓派安装ubuntu

ubuntu包下载 从ubuntu 官网下载镜像:https://cn.ubuntu.com/blog/build-raspberry-pi-desktop-ubuntu 按个人需求下载,可以首先使用 桌面版22.04 LTS版本; 烧录 从树莓派管官网下载image烧录工具:https://www.raspberrypi.c…

任务15、MidJourney视频(Video)参数动态上线,制作惊艳动画短片

15.1 任务概述 本次任务将帮助你掌握Midjourney中的Video参数,并利用这些参数创作出令人惊艳的绘画作品。通过学习Video参数的基本概念和功能,以及案例的实际应用,你将学会如何正确设置和调整这些参数,从而达到你所期望的绘画效果。最终,你将运用所学知识,生成香奈儿模特…

ensp-单臂路由

ensp-单臂路由 日期:6-26 📎单臂路由.zip📎单臂路由.docx

web基础与tomcat环境部署

一. 简述静态网页和动态网页的区别。 请求响应信息,发给客户端进行处理,由浏览器进行解析,显示的页面称为静态页面。处理文件类型如.html、jpg、.gif、.mp4、.swf、.avi、.wmv、.flv等 请求响应信息,发给事务端进行处理&#xff0…

MQTT协议详解「概念、特性、版本及作用」

MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)是ISO标准下基于发布/订阅方式的轻量级消息协议。MQTT通常使用TCP / IP(传输控制协议/Internet协议)作为其传输,但也可以使用其他双向传输。MQ…

【雕爷学编程】MicroPython动手做(33)——物联网之天气预报

天气(自然现象) 是指某一个地区距离地表较近的大气层在短时间内的具体状态。而天气现象则是指发生在大气中的各种自然现象,即某瞬时内大气中各种气象要素(如气温、气压、湿度、风、云、雾、雨、闪、雪、霜、雷、雹、霾等&#xff…

Linux软件安装

软件安装 安装软件的方式 软件的安装方式 二进制发布包安装: 软件已经针对具体平台编译打包发布,只要解压,修改配置即可rpm安装:软件已经按照redhat的包管理规范进行打包,使用rpm命令进行安装,不能自行解决库依赖问题yum安装:一…

uni-app——下拉框多选

一、组件components/my-selectCheckbox.vue <template><view class"uni-stat__select"><span v-if"label" class"uni-label-text">{{label &#xff1a;}}</span><view class"uni-stat-box" :class"…

EventBus 开源库学习(一)

一、概念 EventBus是一款在 Android 开发中使用的发布-订阅事件总线框架&#xff0c;基于观察者模式&#xff0c;将事件的接收者和发送者解耦&#xff0c;简化了组件之间的通信&#xff0c;使用简单、效率高、体积小。 一句话&#xff1a;用于Android组件间通信的。 二、原理…

chrome扩展在popup、background、content之间通信解决传输文件问题

文章目录 背景介绍案例介绍代码示例popup页面&#xff0c;上传文件页面popup页面&#xff0c;js上传代码&#xff0c;file文件转base64background监听消息&#xff0c;base64转file文件&#xff0c;axios上传 附-转base64后直接下载 背景介绍 示例扩展API版本MV2。 以弹…

新增数据自动生成递增排序序号

明确的点 获取序号数组&#xff0c;如果有缺失正整数&#xff0c;则获取最小缺失正整数作为序号 如果没有缺失&#xff0c;则获取序号最大值1作为新的序号 每次生成新序号需要push到序号数组 每次移除数据&#xff0c;需要删除序号数组中对应值的一条记录 1 获取序号数组 //记…

SQL-每日一题【1193. 每月交易 I】

题目 Table: Transactions 编写一个 sql 查询来查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数及其总金额。 以 任意顺序 返回结果表。 查询结果格式如下所示。 示例 1: 解题思路 1.题目要求我们查找每个月和每个国家/地区的事务数及其总金额、已批准的事务数…

Spring Cloud Eureka 和 zookeeper 的区别

CAP理论 在了解eureka和zookeeper区别之前&#xff0c;我们先来了解一下这个知识&#xff0c;cap理论。 1998年的加州大学的计算机科学家 Eric Brewer 提出&#xff0c;分布式有三个指标。Consistency&#xff0c;Availability&#xff0c;Partition tolerance。简称即为CAP。…

【知识图谱】图数据库Neo4jDesktop的安装图文详解(小白适用)

neo4j 的安装需要有jdk环境的支持。因此在安装Neo4j之前&#xff0c;需要安装Java JDK。 一.安装JDK 参考文章https://blog.csdn.net/weixin_41824534/article/details/104147067?spm1001.2014.3001.5502 二.Neo4j下载 进入Neo4j官网 选择下载中心 下滑选择Neo4j Deskto…