JavaWeb语法八:网络原理初识

news2025/1/14 1:21:46

目录

1.局域网与广域网

1.1:局域网

1.2:广域网

2:网络基础知识

3.协议分层

3.1:分层的好处

3.2:TCP/IP五层(或四层)模式

4:封装和分用

4.1:封装

4.2:分用

4.2.1:交换机

4.2.2:路由器


前言:接下来我们将走进计算机网络,初步了解网络知识,掌握基本的网络知识。

1.局域网与广域网

1.1:局域网

 用几根线把几个主机连接起来,或者借助交换机,路由器将多个主机连接起来,这样组成一个局域网。

: 这里的路由器其实有两类端口,WAN口:这里是通过WAN口连接到另外一个局域网,入户宽带一般就是插在wan口上面。 LAN口:其中插在lan口上的设备,是在一个局域网里面)如上图,可以视为A是B的局域网中的一个设备。

一个局域网内部的主机之间就可以相互进行访问。

1.2:广域网

广域网其实和局域网之间,没有明确界限。认为比较大的局域网,就可以称为"广域网",全世界最大的广域网,叫做Internet(因特网)。


2:网络基础知识

1.IP地址

IP地址主要用于标识网络主机,简单来说:IP地址用于定位主机的网络地址。格式:是一个32位的整数,但是由于32位的整数,不方便人来读和记忆~~,一般常见的操作都是把这个32位的整数,按照每个字节,分成四个部分~~,中间用.来进行分割,"点分十进制"。

2.端口号

端口号描述了一个主机上的莫个应用程序,用于定位主机中的进程。端口号是0-65535范围的数字

注意:两个不同的进程,不能绑定同一个端口号,但是一个进程可以绑定多个端口号。

3.协议

协议的本质上就是约定,发出来的数据是啥样的格式,接受方按照对应的格式来进行解析。计算机之间的协议,通常由三要素组成:

1.语法:既数据与控制信息的结构或样式。

2.语义:既需要发出何种控制信息,完成何种动作以及何种响应。

3.时序:既事件实现顺序的详细说明。

协议最终体现为在网络上传输的数据包的格式。


3.协议分层

3.1:分层的好处

好处1:每层协议不需要理解其他层协议的细节(封装)。

好处2:把对应层的协议替换成其他协议(更好的解耦合)。

3.2:TCP/IP五层(或四层)模式

 物理层:网络通信中的硬件设备,网线/网卡....针对硬件设备的约定,就是物理层协议所负责的范畴,需要保证所有的主机和网络设备之间,都是相互匹配的。

数据链路层:负责完成相邻的两个设备之间的通信的,相邻是一根网线相连接的两个设备。

网络层:负责点到点之间的通信,网络中的任意节点到任意节点之间的通信(不一定是相邻了,更多的值不相邻的。)网络层就负责在这两个点之间,规划出一条最合适的路线。

传输层:负责端到端之间(起点和终点)的通信。只是关注结果(数据到没到)不关注过程(不关注数据是走哪条路进行转发的)

应用层:和应用程序密切相关,是取决于程序猿的编写。


4:封装和分用

4.1:封装

这里跟Java中的继承,封装,多态中的封装不是同一个意思。 

1.应用层:

这样的一个应用层的协议报文的格式是虚拟的。应用层的协议是根据程序猿进行编写的。应用层协议来构造一个应用层的数据报文。

应用层协议就调用操作系统提供的API(称为socket API)把应用层的数据交给传输层(这时候就已经操作系统内核了)

2.传输层(操作系统内核)

根据刚才传过来的数据,基于当前使用的传输层协议,来添加出一个传输层的协议报文,传输层最典型的协议,UDP,TCP

 TCP的报头中有很多信息,其中最重要的,就是"源端口"和"目的端口"。

TCP的数据报= TCP报头+数据载荷(也就是一个完整的应用层数据)。

接下来就会把这个传输层的数据报,交给网络层。

3.网络层(操作系统内核)

拿到了完整的传输层数据报,就会再根据当前使用的网络层(例如IP),再次进行封装....把TCP数据报构造成IP数据报,还是添加上一个网络协议报头

 IP的协议报头:这个报头也有很多重要的信息,最重要的就是源IP和目的IP。

IP数据报=IP协议报头+载荷(完整的TCP/UDP的数据报)

紧接着,当前的网络层协议就会把这个IP数据报,交给数据链路层

4.数据链路层(驱动程序)

在刚才的IP数据报基础上,根据当前使用的数据链路层的协议,给构造成一个数据链路层的数据报,典型的数据链路层的协议,叫做"以太网",就会构造一个"以太网数据帧"。

以太网数据帧=帧头+IP数据报+帧尾

帧头:最重要的信息,接下来要传给下一个网络节点设备(相邻节点)的地址是啥

帧尾:校验和(后面会详细的介绍)。

5.物理层(硬件设备)

这里做的工作,就是根据刚才的以太网数据帧(其实就是一组 0 1)把这里的01变成高低电频,通过网线传输出去。


4.2:分用

分用就是封装的逆过程。

1.物理层(硬件设备,网卡)

主机B的网卡感知到一组高低电频,就会把这些电频翻译成0 1的一串数据,然后这一串0 1就是一个完整的以太网数据帧。

物理层就把这个数据交给了数据链路层。

2.数据链路层(驱动)

 数据链路层负责对这个数据进行解析,去掉帧头和帧尾,取出里面的IP数据报然后交给网络层协议。

3.网络层(操作系统)

 网络层协议(IP协议)又会对这个数据进行解析,去掉IP协议报头,取出里面的TCP数据报,然后再交给传输层

4.传输层(操作系统内核)

传输层协议(TCP协议)又会对这个数据进行解析,去掉TCP协议报头,取出里面的TCO数据报,交给应用层。

5.应用层(应用程序)

 应用层就会调用socket API从内核中读取到这个应用层数据报,再按照应用层协议进行解析,根据解析结果给显示到应用窗口中。


上面的封装和分用只考虑了起点和终点的情况,那如果起点和终点有交换机和路由器的话,那该咋办勒?

4.2.1:交换机

交换机先分用数据,解析到数据链路层,更新以太网数据帧的帧头里的地址,然后再重新封装,并进行转发 。


4.2.2:路由器

 路由器先分用数据到网络层,拿到IP地址之后,进行下一个阶段的路径规划,然后重新往下封装并进行转发。

无论网络多么复杂,这里整体的传输过程都是类似的,只是在不停的重复封装和分用的过程。


总结:

以上就是我总结的基本的网络原理知识,若有不对的地方,请各位铁子留言纠错,若感觉不错,请一键三连。

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

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

相关文章

MyBatisPlus入门简介

目录 1. 入门案例 问题导入 1.1 SpringBoot整合MyBatisPlus入门程序 2. MyBatisPlus概述 问题导入 2.1 MyBatis介绍​​​​​​​ 1. 入门案例 问题导入 MyBatisPlus环境搭建的步骤? 1.1 SpringBoot整合MyBatisPlus入门程序 ①:创建新模块&am…

P3368 【模板】树状数组 2

【模板】树状数组 2 题目描述 如题,已知一个数列,你需要进行下面两种操作: 将某区间每一个数加上 xxx; 求出某一个数的值。 输入格式 第一行包含两个整数 NNN、MMM,分别表示该数列数字的个数和操作的总个数。 第…

[Ext JS] Grid Summary(汇总行)特性

Ext.grid.feature.Summary 是 Grid 的feature之一。 这个特性会在表格的最下方多一行汇总。 汇总行主要包含两个部分: 值的计算效果的渲染使用后的效果如下: 定义方式 定义的步骤如下: 在grid的配置中使用features 加入 summary 的特性类型 ftype: summary在columns的每一列…

千峰学习【Ajax】总结

1.同步和异步 2.Ajax状态码 3.创建对象&#xff0c;发送请求 <script>//1.创建XHR&#xff1a; new XMLHttpRequest():var xhr new XMLHttpRequest();// console.log(xhr);//2&#xff0c;配置open(请求方式&#xff0c;请求地址&#xff0c;是否异步(默认为异步)) loc…

ESP32( IDF平台)+MAX30102 配合Pyqt上位机实现PPG波形显示与心率计算

0 引言 年前买了一个MAX30102模块&#xff0c;在家无聊做了这个demo对一些相关的知识进行学习。 主要学习的内容&#xff1a; 光体积变化描记图&#xff08;Photoplethysmogram, PPG&#xff09;测量原理学习。ESP32 IDF平台的MAX30102驱动开发&#xff0c;主要是初始化配置…

8、快捷键的使用

文章目录8、快捷键的使用8.1 常用快捷键第1组&#xff1a;通用型第2组&#xff1a;提高编写速度&#xff08;上&#xff09;第3组&#xff1a;提高编写速度&#xff08;下&#xff09;第4组&#xff1a;类结构、查找和查看源代码第5组&#xff1a;查找、替换与关闭第6组&#x…

理光M340W激光打印机加粉清零

粉盒型号&#xff1a; M340L&#xff08;如图&#xff09;&#xff1a; 加粉及清零&#xff1a; 原装粉盒不用考虑加粉了&#xff0c;原装粉盒墨粉用完后建议更换品牌代用的墨粉盒&#xff0c;品牌代用的墨粉盒直接带加粉口及清零齿轮&#xff1b; 1、加粉&#xff0c;打开加粉…

通信原理简明教程 | 物联网通信技术简介

文章目录1 物联网通信技术概述1.1 物联网通信的产生和发展1.2 物联网通信系统2 RFID技术2.1 RFID系统的组成2.2 RFID系统的工作原理2.3 RFID的典型应用3 ZigBee技术3.1 ZigBee技术的特点及应用3.2 ZigBee协议3.3 ZigBee网络的拓扑结构4 蓝牙通信技术4.1 蓝牙协议4.2 蓝牙网络连…

缓存失效问题和分布式锁引进

缓存失效问题 先来解决大并发读情况下的缓存失效问题&#xff1b; 1、缓存穿透  缓存穿透是指查询一个一定不存在的数据&#xff0c;由于缓存是不命中&#xff0c;将去查询数据库&#xff0c;但是数 据库也无此记录&#xff0c;我们没有将这次查询的 null 写入缓存&#x…

CNN中池化层的作用?池化有哪些操作?

(还没写完~) 一、What is 池化 1. 基本介绍 池化一般接在卷积过程后。池化,也叫Pooling,其本质其实就是采样,池化对于输入的图片,选择某种方式对其进行压缩,以加快神经网络的运算速度。这里说的某种方式,其实就是池化的算法,比如最大池化或平均池化。在卷积神经网络…

Linux常见命令 21 - 网络命令 ping、ifconfig、last、lastlog、traceroute、netstat

目录 1. 测试网络连通性 ping 2. 查看和设置网卡 ifconfig 3. 查看用户登录信息 last 4. 查看所有用户最后一次登录时间 lastlog 5. 查看数据包到主机间路径 traceroute 6. 显示网络相关信息 netstat 1. 测试网络连通性 ping 语法&#xff1a;ping [-c] IP地址&#xff0c…

【计算几何】叉积

叉积 海伦公式求三角形面积 已知三角形三条边分别为a&#xff0c;b&#xff0c;c,设 pabc2p \frac{abc}{2}p2abc​, 那么三角形的面积为&#xff1a; p(p−a)(p−b)(p−c)\sqrt{p(p-a)(p-b)(p-c)}p(p−a)(p−b)(p−c)​ 缺点&#xff1a;在开根号的过程中精度损失 概念 两个…

DFS(深度优先搜索)详解(概念讲解,图片辅助,例题解释)

目录 那年深夏 引入 1.什么是深度优先搜索&#xff08;DFS&#xff09;&#xff1f; 2.什么是栈&#xff1f; 3.什么是递归&#xff1f; 图解过程 问题示例 1、全排列问题 2、迷宫问题 3、棋盘问题&#xff08;N皇后&#xff09; 4、加法分解 模板 剪枝 1.简介 2.剪枝的…

Jupyter notebook折叠隐藏cell代码块 (hidden more than code cell in jupyter notebook)

Nbextensions 中的 hidden input 可以隐藏cell 我们在notebook中嵌入了一段画图的代码&#xff0c;影响代码阅读&#xff0c;搜一下的把这段代码隐藏。 我们使用了 jupyter notebook配置工具 Nbextensions。找到hidden input&#xff0c;这样只会隐藏输入的代码&#xff0c;而…

Tkinter的Radiobutton控件

Tkinter的Radiobutton是一个含有多个选项的控件&#xff0c;但是只能选择其中的一个选项 使用方法 R1tk.Radiobutton(root,textA,variablevar,valueA,commandprintf) R1.pack() R2tk.Radiobutton(root,textB,variablevar,valueB,commandprintf) R2.pack() R3tk.Radiobutton(ro…

【Linux】同步与互斥

目录&#x1f308;前言&#x1f338;1、Linux线程同步&#x1f368;1.1、同步概念与竞态条件&#x1f367;1.2、条件变量&#x1f33a;2、条件变量相关API&#x1f368;2.1、初始化和销毁条件变量&#x1f367;2.2、阻塞等待条件满足&#x1f383;2.3、唤醒阻塞等待的条件变量&…

2023 年第一弹, Flutter 3.7 发布啦,快来看看有什么新特性

核心内容原文链接&#xff1a; https://medium.com/flutter/whats-new-in-flutter-3-7-38cbea71133c 2023 年新春之际&#xff0c; Flutter 喜提了 3.7 的大版本更新&#xff0c;在 Flutter 3.7 中主要有改进框架的性能&#xff0c;增加一些很棒的新功能&#xff0c;例如&#…

初识网络爬虫

爬虫简介 网络爬虫又称网络蜘蛛、网络机器人&#xff0c;它是一种按照一定的规则自动浏览、检索网页信息的程序或者脚本。网络爬虫能够自动请求网页&#xff0c;并将所需要的数据抓取下来。通过对抓取的数据进行处理&#xff0c;从而提取出有价值的信息。 爬虫简单来说就是是通…

Mongodb基础操作

打开Mongodb服务&#xff0c;打开Robo 3T&#xff0c;链接服务并创建数据库&#xff1a; 创建表&#xff08;集合&#xff09;&#xff1a; 双击打开一个界面&#xff1a; 添加数据 查询book表&#xff1a; 添加属性名&#xff08;新数据&#xff09;&#xff1a; 查询&#xf…

推荐算法入门:序列召回(二)

召回&#xff1a;输入一个用户的&#xff08;点击&#xff09;序列&#xff0c;通过某种方法&#xff08;序列建模的方法&#xff09;&#xff0c;把用户输入的序列变为向量&#xff0c;用用户向量&#xff0c;在所有的item的向量进行快速检索&#xff0c;依次达到序列召回的效…