【JavaEE】网络原理:网络中的一些基本概念

news2024/11/27 14:38:29

目录

1. 网络通信基础

1.1 IP地址

1.2 端口号

1.3 认识协议

1.4 五元组

1.5 协议分层

什么是协议分层

分层的作用

OSI七层模型

TCP/IP五层(或四层)模型

网络设备所在分层

网络分层对应

封装和分用


1. 网络通信基础

1.1 IP地址

概念:IP地址主要用于标识网络主机、其他网络设备(如路由器)的网络地址。简单说,IP地址用于定位主机的网络地址。

格式:IP地址是⼀个32位的二进制数,通常被分割为4个“8位二进制数”(也就是4个字节).

如: 01100100.00000100.00000101.00000110。 通常用“点分十进制”的方式来表示,即 a.b.c.d 的形式(a,b,c,d都是0~255之间的十进制整数)。 如:100.4.5.6。

1.2 端口号

概念: 在网络通信中,IP地址用于标识主机的网络地址,而端口号用于标识主机中发送数据、接收数据的进程。

简单说,端口号用于定位主机中的进程。IP地址可以看作是主机的地址,而端口号可以看作是进程的门牌号。通过IP地址可以找到目标主机,通过端口号可以找到目标主机中的具体进程,从而实现数据的发送和接收。

格式: 端口号是0~65535范围的数字,在网络通信中,进程可以通过绑定⼀个端⼝号,来发送及接收网络数据。

问题:
        有了IP地址和端口号,可以定位到网络中唯一的一个进程,但还存在一个问题,网络通信是基于二进制0/1数据来传输,如何告诉对方发送的数据是什么样的呢?
        网络通信传输的数据类型可能有多种:图片,视频,文本等。同一个类型的数据,格式可能也不同,如发送一个文本字符串“你好!”; 如何标识发送的数据是文本类型,及文本的编码格式呢?
        基于网络数据传输,需要使用协议来规定双方的数据格式。

1.3 认识协议

概念

协议,网络协议的简称,网络协议是网络通信(即网络数据传输)经过的所有网络设备都必须共同遵
从的一组约定、规则。如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。

协议(protocol)最终体现为在网络上传输的数据包的格式.

作用

计算机之间的传输媒介是光信号和电信号。通过"频率"和"强弱"来表示0和1这样的信息。要想传递
各种不同的信息,就需要约定好双方的数据格式。

  • 计算机生产厂商有很多;
  • 计算机操作系统,也有很多;
  • 计算机网络硬件设备,还是有很多;

如何让这些不同厂商之间生产的计算机能够相互顺畅的通信?
就需要有人站出来,约定一个共同的标准,大家都来遵守,这就是网络协议;

网络协议是网络通信中的基础,它定义了网络中数据的传输方式和规则,确保数据能够安全、可靠地在网络中传输和交换。

1.4 五元组

在TCP/IP协议中,用五元组来标识一个网络通信:

  1. 源IP: 标识源主机
  2. 源端口号: 标识源主机中该次通信发送数据的进程
  3. 目的IP: 标识目的主机
  4. 目的端口号: 标识目的主机中该次通信接收数据的进程
  5. 协议号: 标识发送进程和接收进程双方约定的数据格式
     

五元组在网络通信中的作用,类似于发送快递:

可以在cmd中,输⼊ netstat -ano 查看网络数据传输中的五元组信息:

1.5 协议分层

对于网络协议来说,往往分成几个层次进行定义。

什么是协议分层

协议分层是将网络协议按照不同的功能和层次进行分组和组织的一种方式。它将复杂的网络通信过程划分为多个层次,每个层次负责特定的功能和任务。每个层次都建立在下一层的基础上,并为上一层提供服务。这种分层的结构使得网络协议的设计、实现和维护更加灵活和可扩展。

分层的作用

为什么需要网络协议的分层?
分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接。
在代码中,类似于定义好一个接口,一方为接口的实现类(提供方,提供服务),一方为接口的使用
类(使用方,使用服务) :
●对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
●对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可
这样能更好的扩展和维护,如下图:

OSI七层模型

OSI(Open Systems Interconnection)七层模型是一种标准的网络协议分层模型,用于描述计算机网络中不同层次的功能和任务,是一个理论上的框架,用于指导和标准化网络协议的设计和实现。

以下是OSI七层模型的各个层次及其功能:

  1. 物理层(Physical Layer):负责传输比特流,将数据从源设备传输到目标设备,包括传输媒介、电压等物理特性。

  2. 数据链路层(Data Link Layer):提供可靠的数据传输,负责将比特流划分为数据帧,进行错误检测和纠正,并控制数据在物理媒介上的访问。

  3. 网络层(Network Layer):负责数据包的路由选择和转发,实现数据在不同网络之间的传输,包括寻址、路由和拥塞控制等功能。

  4. 传输层(Transport Layer):提供端到端的可靠数据传输,负责分段和重组数据,确保数据的完整性和顺序性,包括流量控制和差错恢复等功能。

  5. 会话层(Session Layer):管理和协调应用程序之间的会话,负责建立、维护和终止会话连接,包括对话控制和同步等功能。

  6. 表示层(Presentation Layer):负责数据的格式化和编码,实现不同设备和系统之间的数据转换和兼容性,包括数据加密和压缩等功能。

  7. 应用层(Application Layer):提供网络服务和应用程序的接口,负责处理特定的应用协议和数据,包括电子邮件、文件传输和远程登录等功能。

每个层次都建立在下一层的基础上,并为上一层提供服务。通过这种分层的设计,OSI模型实现了网络协议的模块化和可管理性,使得不同厂商和组织可以根据这个模型进行协议的设计和实现,实现互操作性和可扩展性。

OSI七层模型既复杂又不实用: 所以OSI七层模型没有落地、实现。
实际组建网络时,只是以OSI七层模型设计中的部分分层,也即是以下TCP/IP五层(或四层)模型来实现。
 

TCP/IP五层(或四层)模型

TCP/IP是一组协议的代名词,它还包括许多协议,组成了TCP/IP协议簇。
TCP/IP通讯协议采用了5层的层级结构,每一层都呼叫它的下一层所提供的网络来完成自己的需求。

  • 应用层: 负责应用程序间沟通,如简单电子邮件传输(SMTP) 、文件传输协议(FTP) 、网络远程访问协议(Telnet) 等。我们的网络编程主要就是针对应用层。
  • 传输层: 负责两台主机之间的数据传输。如传输控制协议(TCP), 能够确保数据可靠的从源主机发送到目标主机。
  • 网络层: 负责地址管理和路由选择。例如在IP协议中,通过IP地址来标识一台主机,并通过路由表的方式规划出两台主机之间的数据传输的线路(路由) 。路由器(Router) 工作在网路层。
  • 数据链路层: 负责设备之间的数据帧的传送和识别。例如网卡设备的驱动、帧同步(就是说从网线上检测到什么信号算作新帧的开始)、冲突检测(如果检测到冲突就自动重发)、数据差错校验等工作。有以太网、令牌环网,无线LAN等标准。交换机(Switch) 工作在数据链路层。
  • 物理层: 负责光/电信号的传递方式。比如现在以太网通用的网线(双绞线)、早期以太网采用的的同轴电缆(现在主要用于有线电视)、光纤, 现在的wifi无线网使用电磁波等都属于物理层的概念。物理层的能力决定了最大传输速率、传输距离、抗干扰性等。集线器(Hub) 工作在物理层。
     

物理层我们考虑的比较少。因此很多时候也可以称为 TCP/IP四层模型。

网络设备所在分层

  • 对于一台主机,它的操作系统内核实现了从传输层到物理层的内容,也即是TCP/IP五层模型的下四层;
  • 对于一台路由器,它实现了从网络层到物理层,也即是TCP/IP五层模型的下三层;
  • 对于一台交换机,它实现了从数据链路层到物理层,也即是TCP/IP五层模型的下两层;
  • 对于集线器,它只实现了物理层;
     

        注意我们这里说的是传统意义上的交换机和路由器,也称为二层交换机(工作在TCP/IP五层模型的下两层)、三层路由器(工作在TCP/IP五层模型的下三层)。
        随着现在网络设备技术的不断发展,也出现了很多3层或4层交换机, 4层路由器。我们以下说的网络设备都是传统意义上的交换机和路由器。

网络分层对应

网络数据传输时,经过不同的网络节点(主机、路由器)时,网络分层需要对应。


 

封装和分用

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

下图为数据封装的过程

下图为数据分用的过程

下面示对封装和分用过程的一个举例: 

分用 

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Windows下载并配置Kettle

注意:需要windows配置Java 下载 Kettle 进入官网:https://www.hitachivantara.com/en-us/products/pentaho-plus-platform/data-integration-analytics/pentaho-community-edition.html 下载带有Pentaho Data Integration (Base Install)的文件&#…

Google用AI替代广告销售工作只是开始……

关注卢松松,会经常给你分享一些我的经验和观点。 前几天Google不是裁员3万人吗,其中有一个信息值得关注:就是Google的广告部门的部分员工,也被裁员了。 当然这不新鲜的,主要原因是Google的广告业务正在转向AI驱动了…

C语言从入门到实战——编译和链接

编译和链接 前言一、 翻译环境和运行环境二、 翻译环境2.1 预处理(预编译)2.2 编译2.2.1 词法分析2.2.2 语法分析2.2.3 语义分析 2.3 汇编2.4 链接 三、 运行环境 前言 在C语言中,编译和链接是将源代码转换为可执行文件的两个主要步骤。 编…

使用Element中的input组件如何实现文字和输入框在一行显示

利用 <el-form-item label"商品名称&#xff1a;">标签包裹即可&#xff0c;label写提示文字 <el-form ref"form" label-width"100px"><el-form-item label"商品名称&#xff1a;"><el-input v-model"na…

利用预训练模型SKEP进行情感分析

项目地址&#xff1a;文本情感分析 - 飞桨AI Studio星河社区 (baidu.com) baidu/Senta: Baidus open-source Sentiment Analysis System. (github.com) 本项目将详细全面介绍情感分析任务的两种子任务&#xff0c;句子级情感分析和目标级情感分析。 同时演示如何使用情感分析…

芯片禁售 AIGC爆发 元宇宙蓄能 | 且看思腾合力如何探索多元化发展之路

今年以来&#xff0c;百度、阿里、华为、京东、360、网易等国内互联网厂商&#xff0c;争相推出旗下的大模型解决方案。在众多厂商展开大模型“军备竞赛”&#xff0c;并纷纷落地应用之时&#xff0c;整个行业对算力也有了全新的需求。 不过&#xff0c;今年10月份&#xff0c;…

基于JavaWeb+SSM+Vue停车场微信小程序系统的设计和实现

基于JavaWebSSMVue停车场微信小程序系统的设计和实现 滑到文末获取源码Lun文目录前言主要技术系统设计功能截图订阅经典源码专栏Java项目精品实战案例《500套》 源码获取 滑到文末获取源码 Lun文目录 目录 1系统概述 1 1.1 研究背景 1 1.2研究目的 1 1.3系统设计思想 1 2相关…

DBA技术栈MongoDB: 索引和查询优化

2.1 批量插入数据 单条数据插入db.collection.insertOne()多条数据插入db.collection.insertMany() db.inventory.insertMany( [{ item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },{ item: "notebook"…

数据大咖都在考CDMP,你呢?

&#x1f30d;全球通行证&#xff1a;无论走到哪里&#xff0c;CDMP都是你数据治理领域的“全球绿卡”&#xff0c;让你无惧地域限制&#xff0c;畅游数据世界&#xff01; &#x1f3c6;权威认证&#xff0c;业界标杆&#xff1a;DAMA国际2004年推出的CDMP认证&#xff0…

C++——函数的调用

1&#xff0c;函数功能的调用 功能&#xff1a;使用定义好的函数 语法&#xff1a;函数名&#xff08;参数&#xff09; 示例&#xff1a; #include<bits/stdc.h> using namespace std; //定义加法函数 int add(int num1,int num2){int sumnum1num2;return sum; …

一文2500字Robot Framework自动化测试框架超强教程

&#x1f525; 交流讨论&#xff1a;欢迎加入我们一起学习&#xff01; &#x1f525; 资源分享&#xff1a;耗时200小时精选的「软件测试」资料包 &#x1f525; 教程推荐&#xff1a;火遍全网的《软件测试》教程 &#x1f4e2;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1…

[3D]菜板上的鱼

本来想画条鲨鱼&#xff0c;结果成了条菜板上的鱼。 VS&#xff01; ** VS&#xff01; ** 【扭曲】更像菜板上的鱼了。

【原文链接】Tri-Perspective View for Vision-Based 3D Semantic Occupancy Prediction

原文链接&#xff1a;https://openaccess.thecvf.com/content/CVPR2023/papers/Huang_Tri-Perspective_View_for_Vision-Based_3D_Semantic_Occupancy_Prediction_CVPR_2023_paper.pdf 1. 引言 体素表达需要较大的计算量和特别的技巧&#xff08;如稀疏卷积&#xff09;&…

Docker-数据卷网络

docker数据卷 docker volume ls #查看有哪些数据卷 docker volume inspect mysql-db #查看具体数据卷的元信息 docker container run -d --name mysql1 -e MYSQL_ALLOW_EMPTY_PASSWORDTrue -v mysql-db:/var/lib/mysql mysql #会在docker 的卷下面新建一个mysqldb用于数据持久…

会体言一心文-码代-4202

简明版本 最近感悟就是在“常规赛”中&#xff0c;大部分奇技淫巧远不如官方教程。 我使用大模型工具快一年的时间所积累的经验远不如认真看看官方教程。 官方教程 里面有一点就可以秒99%的工具人&#xff0c;“文心一言7*24小时在线&#xff0c;伴你左右。 ” 结合文心一言…

opencv中初学者必须了解的5个函数-灰度化、模糊、Canny边缘检测、膨胀和侵蚀

opencv中初学者必须了解的5个函数-灰度化、模糊、边缘检测、膨胀和侵蚀 使用OpenCV可以对彩色原始图像进行基本的处理&#xff0c;涉及到5个常用的处理&#xff1a; 灰度化 模糊处理 Canny边缘检测 膨胀 腐蚀 原图test.png如下所示&#xff1a; 可以直接去https://github…

WEB接口测试之Jmeter接口测试自动化 (三)(数据驱动测试)

接口测试与数据驱动 1简介 数据驱动测试&#xff0c;即是分离测试逻辑与测试数据&#xff0c;通过如excel表格的形式来保存测试数据&#xff0c;用测试脚本读取并执行测试的过程。 2 数据驱动与jmeter接口测试 我们已经简单介绍了接口测试参数录入及测试执行的过程&#xff0…

集美大学“第15届蓝桥杯大赛(软件类)“校内选拔赛 H卯酉东海道

dijk spfa思想 然后你需要存一下每个点 * l种颜色&#xff0c;你开个数组存一下 st[i][j] 为到达i点且到达以后是j颜色的最小距离是否已经确定了 #include<bits/stdc.h> using namespace std; using ll long long; const int N 3e510; struct Edge{ll to,col,w;bool …

k8s-ingress一

Comfigmap&#xff1a;存储数据 Date&#xff1a; Key&#xff1a;value 挂载的方式&#xff0c;把配置信息传给容器 生产当中的yml文件很长&#xff1a; 有deployment 容器的探针 资源限制 Configmap 存储卷 Service Ingress K8s的对外服务&#xff0c;ingress Se…

10分钟完成权限系统全流程开发

背景 首先问下chatgpt,权限系统的模型有哪些&#xff1f; 基于上述的结论&#xff0c;我们选择基于角色的访问控制(RBAC)&#xff0c;请从数据库设计、接口文档、代码实现、单元测试四个方面分别详细描述每个部份需要实现的内容。 数据库实现 针对上述的数据库设计部份&#…