【Java EE 初阶】网络初识

news2024/11/28 16:53:32

目录

1.网络互连

1.局域网:

2.广域网WAN

2.网络通信基础

3.IP地址:端口号

4.协议

1.五元组

2.协议分层

1.为什么要用网络分层?

3.OSI七层模型

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

5.封装和分用

1.应用层

2.传输层API

3.网络层

4.数据链路层

 5.物理层

6.物理层

7.数据链路层

8.网络层

9.传输层

10.应用层

 ​编辑

注意:


1.网络互连

将多台计算机连接在一起,完成数据共享
数据共享本质是网络数据传输,即计算机之间通过网络来传输数据,也称为网络通信
根据网络互连的规模不同,可以划分为局域网和广域网。

1.局域网:

局域网内的主机之间能方便的进行网络通信,又称为内网;局域网和局域网之间在没有连接的情况下,是无法通信的

2.广域网WAN

通过路由器,将多个局域网连接起来,在物理上组成很大范围的网络,就形成了广域网。广域网内部的局域网都属于其子网。

2.网络通信基础

网络互连的目的是进行网络通信,也即是网络数据传输,更具体一点,是网络主机中的不同进程间,基 于网络传输数据。
那么,在组建的网络中,如何判断到底是从哪台主机,将数据传输到那台主机呢?这就需要使用IP地址 来标识。

3.IP地址:端口号

  • IP地址表示了主机在网络上的地址,类似于收件人与发件人地址
  • 端口号表示了主机中的某一个进程,使用网络的进程在启动时都会分配一个端口号
  • 两个不同的进程,不能绑定同一个端口号,但一个进程可以绑定多个端口号。

作为服务端:主动申请

作为客户端:被动分配

IP地址本质上是一个32位的整型,每8位做了分割

表示的最大范围是255.255.255.255

以目前IPv4协议,IP地址总共有42亿个

IPv4的地址个数不够用,所以现在大力推行IPv6

基于网络数据传输,需要使用协议来规定双方的数据格式。

4.协议

1.五元组

1. IP:标识源主机
2. 源端口号:标识源主机中该次通信发送数据的进程
3. 目的IP:标识目的主机
4. 目的端口号:标识目的主机中该次通信接收数据的进程
5. 协议号:标识发送进程和接收进程双方约定的数据格式
通过五元组就可以明确知道网络中,那台主机向哪台主机发送了什么类型的数据

 

2.协议分层

1.为什么要用网络分层?

 

分层最大的好处,类似于面向接口编程:定义好两层间的接口规范,让双方遵循这个规范来对接
  • 对于使用方来说,并不关心提供方是如何实现的,只需要使用接口即可
  • 对于提供方来说,利用封装的特性,隐藏了实现的细节,只需要开放接口即可

3.OSI七层模型

不用

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

  • 应用层:程序员关心的层,我们的工作主要在这一层,数据的编码解码方式
  • 传输层:操作系统工作在这一层,主要是确定程序的端口号,负责两台主机之间的数据传输。如传输控制协议 (TCP),能够确保数据可靠的从源主机发送到目标主机
  • 网络层:规划出一条端到端的路径,包括其中要经过的其他网络设备,五元组到这一层就确定下来了
  • 数据链路层:负责设备之间的数据帧的传送和识别,解决的是路径之间的传输
  • 物理层:负责光/电信号的传递方式,比如网线或者其他网络设备

TCP/IP四层不包含物理层

5.封装和分用

 以QQ发送消息为例,模拟一下消息在网络中的封装与分用过程

1.应用层

对于应用层,双方要按照相同的编码规则去组织与解析数据

应用层会消息组织好,统一发给操作系统的API(传输层)socket api

2.传输层API

在传输层有几个非常著名的协议,TCP,UDP

 系统操作可以确定下来端口号

3.网络层

 确定下来源IP和目标IP

4.数据链路层

 

 

 5.物理层

6.物理层

 把光信号和电信号还原成数据链路层可以解析的格式

7.数据链路层

用帧头找到 对应的主机,用帧尾校验数据的有效性

脱掉帧头与帧尾把载荷交给网络层

8.网络层

 脱掉IP协议头,把数据交给传输层

9.传输层

10.应用层

 

 应用程序按照规定好的编目规则来解析消息体,完成通信

注意:

 

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

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

相关文章

Oracle数据库中了locked1勒索病毒攻击后怎么办,什么是locked1勒索病毒

Oracle数据库是一种被集团企业广泛使用的关系型数据库管理系统,但是随着科学技术的不断发展,在现代互联网环境中数据库安全性成为了一个非常重要的问题。而其中主要的威胁就是勒索病毒攻击。一旦数据库被勒索病毒攻击入侵,许多重要的数据就会…

【JVM】3. 运行时数据区及程序计数器

文章目录 3.1. 🍹运行时数据区3.1.1. 🥂概述3.1.2. 🥂线程3.1.3. 🥂JVM系统线程 3.2. 🍹程序计数器(PC寄存器) 3.1. 🍹运行时数据区 3.1.1. 🥂概述 本节主要讲的是运行时数据区,也就…

跟我一起使用 compose 做一个跨平台的黑白棋游戏(2)界面布局

前言 在上一篇文章中,我们讲解了实现这个游戏的总体思路,这篇文章我们将讲解如何实现游戏界面。 本文将涉及到 compose 的自定义绘制与触摸处理,这些内容都可以在我往期的文章中找到对应的教程,如果对这部分内容不太熟悉的话&am…

论文阅读_语音合成_VALL-E

论文阅读 number headings: auto, first-level 2, max 4, _.1.1 name_en: Neural Codec Language Models are Zero-Shot Text to Speech Synthesizers name_ch: 神经网络编解码器语言模型实现零样本TTS paper_addr: http://arxiv.org/abs/2301.02111 date_read: 2023-04-25 da…

Docker代码环境打包进阶 - DockerHub分享镜像

1. Docker Hub介绍 Docker Hub是一个广泛使用的容器镜像注册中心,为开发人员提供了方便的平台来存储、共享和分发Docker容器镜像。它支持版本控制、访问控制和自动化构建,并提供了丰富的公共镜像库,方便开发人员快速获取和使用各种开源应用和…

Redis+Lua脚本防止超卖

超卖就是因为查询库存和扣减库存两个操作不是原子性操作,通过rua脚本执行这两个操作可以保证这两个操作原子性 判断库存量是不是大于等于1,如果大于等于1对库存减1,否则就不去减库存 StringBuilder sb new StringBuilder();sb.append("…

【数据分享】我国地级市绿地利用现状数据(9个指标\Shp格式)

绿地是城市生态的重要组成部分,在很多分析中都会用到绿地数据!之前我们分享过Shp和Excel格式的全国地级市2003-2020年绿地面积数据(可查看之前文章获悉详情),以及中国31个主要城市的绿地空间分布的栅格数据&#xff08…

vue中使用colorthief获取图片的主色调成分

colorthief官网 https://lokeshdhakar.com/projects/color-thief/#examples 安装 npm i --save colorthief yarn add colorthief 使用案例 <template><div class"box app" :style"{ background: bodyBgColor }"><div class"img-item&…

NSS LitCTF Web 部分wp

目录 1、PHP是世界上最好的语言&#xff01;&#xff01; 2、这是什么&#xff1f;SQL &#xff01;注一下 &#xff01; 3、Ping 4、作业管理系统 5、我Flag呢&#xff1f; 6、1zjs 7、Vim yyds 8、Http pro max plus 1、PHP是世界上最好的语言&#xff01;&#xff01…

C++中vector的用法

博主简介&#xff1a;Hello大家好呀&#xff0c;我是陈童学&#xff0c;一个与你一样正在慢慢前行的人。 博主主页&#xff1a;陈童学哦 所属专栏&#xff1a;CSTL 前言&#xff1a;Hello各位小伙伴们好&#xff01;欢迎来到本专栏CSTL的学习&#xff0c;本专栏旨在帮助大家了解…

Compose太香了,不想再写传统 xml View?教你如何在已有View项目中混合使用Compose

前言 在我的文章 记一次 kotlin 在 MutableList 中使用 remove 引发的问题 中&#xff0c;我提到有一个功能是将多张动图以N宫格的形式拼接&#xff0c;并且每个动图的宽保证一致&#xff0c;但是高不保证一致。 在原本项目中我使用的是传统 view 配合 RecyclerView 和 GridL…

jenkins入门与安装

一、实验环境 selinux iptables off 主机名IP系统版本gitlab10.10.10.200rhel7.5jenkins10.10.10.10rhel7.5tomcat10.10.10.11rhel7.5 二、安装jenkins 1、解压安装包 下载地址&#xff1a;https://download.docker.com/linux/static/stable/x86_64/ [rootjenkins ~]# tar xf …

C语言指针初级

目录 一、什么是指针 二、指针和指针类型 三、野指针 1.野指针的成因&#xff1a; 2.如何规避野指针 四、指针运算 1.指针-整数 2. 指针之间的加减 五、二级指针 六、指针数组 一个男人&#xff0c;到底要走多少的路&#xff0c;才能成为一个真正的男人 本专栏适用于…

【Linux】ubuntu设置ssh密钥登录详细教程,附Mobaxterm和pycharm ssh python解释器配置教程

0、写在前面 我们通常使用SSH 客户端来远程使用 Linux 服务器。但是&#xff0c;一般的密码方式登录&#xff0c;容易有密码被暴力破解的问题。所以&#xff0c;一般我们会将 SSH 的端口设置为默认的 22 以外的端口&#xff0c;或者禁用 root 账户登录。但是即使是将端口设置为…

复杂数据集,召回、精度等突破方法记录【以电科院过检识别模型为参考】

目录 一、数据分析与数据集构建 二、所有相关的脚本 三、模型效果 一、数据分析与数据集构建 由于电科院数据集有17w-18w张&#xff0c;标签错误的非常多&#xff0c;且漏标非常多&#xff0c;但是所有有效时间只有半个月左右&#xff0c;显卡是M60&#xff0c;训练速度特别…

linux防火墙之iptables

一、iptables概述 Linux 系统的防火墙 &#xff1a;IP信息包过滤系统&#xff0c;它实际上由两个组件netfilter 和 iptables组成。 主要工作在网络层&#xff0c;针对IP数据包。体现在对包内的IP地址、端口、协议等信息的处理上。 netfilter&#xff1a; 属于“内核态”&…

Java基础重温巩固

方法 方法与方法之间是平级关系&#xff0c;不能嵌套return表示结束当前方法 基本数据类型和引用数据类型 基本数据类型&#xff1a;数据存储在自己的空间中 引用数据类型&#xff1a;数据存储在其他空间中&#xff0c;自己空间存储的是地址值 值传递 传递基本数据类型时&…

详解Windows系统安装TensorRT

目录 下载TensorRT安装TensorRT测试 TensorRT 是 NVIDIA 推出的一款高性能神经网络部署引擎.Windows系统下TensorRT目前不能简单直接通过pip指令自动下载安装, 安装之前还需要提前安装好 CUDA 和 CUDNN. CUDA和CUDNN安装可参考: 详解 Windows系统下安装 CUDA 与 CUDNN. &…

ES6之Module:export、import

文章目录 前言一、export命令1.export2.export default&#xff08;默认暴露&#xff09; 二、import命令1.通用导入方式2.解析赋值导入方式 三、结果总结 前言 ES6之前&#xff0c;JavaScript语言一直没有模块&#xff08;Module&#xff09;体系&#xff0c;无法将一个大型程…

《计算机网络——自顶向下方法》精炼——3.5.1-3.5.4

人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定、冷静,学习如何从慌乱中找到生机。——席慕蓉 文章目录 TCPTCP协议概述报文段结构序号、确认号 超时问题计算RTT计算重传时间 可靠数据传输 TCP TCP协议概述 TCP是面向连接的协议&#xff0c;在…