网络初识

网络

局域网 

一个区域的网

广域网

相对概念,没有绝对的界限,全世界现在最大的广域网,就教做TheInternet,万维网

 路由器   

交换机和路由器,都是用来组建网络的重要设备

交换机   

上网的设备(电脑/手机/其他设备)

路由器虽然有很多的网口,可以让你插网线,组网,但是实际上,路由器上的口可能不够用.此时就可以使用交换机,对接口进行拓展,(类似于电脑的扩展坞)

连接到交换机上的这几个设备,彼此之间的通信不会相互影响和干扰.

缺点: 下面这些设备,同一时刻总的上传下载带宽,不能超过最顶层路由器wan口的带宽确实真的超过了,就卡了,如果这个情况下不够用,就可以多办一个宽带

集线器

连在集线器上的设备之间,会打架同一时刻,只有一个设备,能访问到路由器,其他设备就得等待

交换机集线器现在都属于是“自动完成数据转发的

IP地址

标识网络上的一个设备的位置通过位置找到这个设备,进行进一步的通信。

IP地址,其实是32位的整数(IPv4)IP地址,就是4个字节的数字。

使用3个.把上述ip地址分成4个部分.每个部分1个字节每个部分表示的范围[0-255

端口号

标识一个主机上不同的应用程序.要求,每个程序在启动的时候,就需要关联上之个和别人不重复的端口号。

有的时候,可能会谈到,有的程序,是有固定的端口号的,这个说法源自于一个概念“知名端口号”上古时期,大佬们,为了避免当时的一些程序,端口之间发生冲突就给这些知名的程序,分配了不同的端口,

协议

是一种约定,通信双方,对于通信规则的约定一定是通信双方都得认可的。

进行网络通信的时候,一定是需要通信协议的主要是,两个用来通信的主机设备,不同的硬件,不同的操作系统,不同的应用程序

协议分层

网络通信,是一个非常复杂的事情.这个过程中涉及到很多的细节问题如果你使用一个协议来约定上述所有的细节,这个协议就会非常庞大,非常复杂

拆分为多个协议

某个方法,非常复杂了.就可以拆成多个方法某个类,非常复杂了,拆分成多个类某个文件,非常复杂了,拆分成多个文件.拆分,是为了管理复杂程度,不要让这个东西太复杂,每个部分负责一个功能

分层,不乱的前提是,不能“越级”汇报工作~不能出现,员工直接找老板汇报这样的情况(以后咱们在工作中,也是职场上比较忌讳的事情)

协议分层,也就是上述类似的效果,把很多协议,按照功能分成不同的层级,每个层级都有对应的主线任务(目标/要解决的问题)上层协议会调用下层协议的功能,下层协议会给上层协议提供服务.(不能够"越级调用").

分层之后,

好处一:封装的效果某一层协议,不必知道其他层协议的细节.降低学习使用成本只要会说汉语,不需要理解电话的工作原理,就能打电话设计电话的人,可能是老外,不必懂汉语,也不妨碍他设计开发电话~

好处二:任意层次的协议,都是可以灵活替换的解耦合.

OSI七层模型

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

可以认为是OSI的简化版本

就是真实世界采取的网络分层模型

咱们目前接触到的网络,大部分都是TCP/IP模型的(电脑上网)

当然,也有不是的.4G/5G通信,就是一套专门的模型协议(手机流量上网)

五层协议,具体是哪五层

1)物理层硬件层面上的相关约定

2)数据链路层 关注的是,通信过程中,两个相邻节点之间的通信

3)网络层  关注的是通信中,,通信路径的规划规划出的路径,就决定了,数据要经过哪些节点点到点的传输

4)传输层 关注的是通信双方的“起点"和"终点端到端的传输endpoint

5)应用层 和具体应用程序直接相关传输的数据是干啥用的~~如何使用,有何意义~~

举个例子

就像快递一样

1.是快递的基本信息(名称、用途、作用等)

2.快递⚪具体走的位置,

3.快递的规划路线,快递要走哪些地点。

4.快递的起点位置和终点位置

5.我在下单的时候就需要填写收件人信息地址+电话,快递上买家和卖家的双方信息。

七层

就是将应用层分为了三层

路由器就是工作在网络层(三层转发)交换机就是工作在数据链路层(二层转发)。

重点关注的是就是应用层+传输层

协议的层和层之间,是如何配合工作的?

协议的层和层之间

上层协议调用下层协议

下层协议给上层提供服务

封装(Java面相对象的封装,不是一个封装)

封装的步骤

1.序列化

.A通过QQ发送hello给BA在聊天窗口里,输入hello,点击发送

.QQ应用程序,首先就会把上述要传递的内容,组织成“应用层数据包”.

1.为了组织成字符串,就通过,来分割各个部分,使用\n结束标志

发送人的qq号,接收人的qq号,发送时间,消息正文\n

2.应用层数据包

已经有了,QQ程序,就要调用系统的api来进行传输

应用层接下来要把数据交给,传输层通过调用传输层的api,将应用层的数据交给传输层

报头里放的是一些UDP相关的属性(比如发件人和收件人的端口号就在UDP报头中)

3.网络层

典型的协议IP协议

IP数据包

 又进一步的调用数据链路层的api把上述IP数据包,交给数据链路层的协议

这里的api往往是网卡的驱动程序提供的

4.数据链路层

典型协议 以太网

以太网,也有自己的数据包格式,就会拿到上述IP数据包,进一步的封装

5.物理层

上述的以太网数据帧,本质上还是0101二进制数据硬件设备,要把上述二进制数据,转成光信号/电信号/电磁波才会真正进行发射,

上述数据,并非是直接到达B,而是要先到和A连接的交换机/路由器数据经过交换机/路由器一系列转发之后,最终会到达B当数据到了B之后,又要做哪些事情呢?就是上述过程的“逆过程(拆快递)

 上述的以太网数据帧,本质上还是0101

二进制数据硬件设备,要把上述二进制数据,转成光信号/电信号/电磁波才会真正进行发射.

上述数据,并非是直接到达B,而是要先到和A连接的交换机/路由器数据经过交换机/路由器一系列转发之后,最终会到达B

而接受数据就睡打开包装正好相反

5.物理层

收到一系列光电信号,把这些信号转成0101二进制数据,交给数据链路层

4.数据链路层

按照以太网协议,对数据进行解析(解析报头中的关键信息,为后续的传输/转发打下基础,还需要拿到载荷数据)

3.网络层

IP协议拿到了IP数据包,按照协议格式进一步解析.解析报头中的关键信息,取出载荷

2.应用层数据包

拿着UDP数据包,按照UDP格式进一步解析,解析出关键的信息(要交给哪个端口号对应的进程),以及解析出载荷数据

1.序列化

1.QQ应用程序,首先就会把上述要传递的内容,组织成“应用层数据包”.

QQ按照自己的协议格式,进行解析,拿到这里的结构化数据,显示到界面上,反序列化

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Jupyter Notebook更改默认打开的浏览器和工作目录

Jupyter Notebook更改工作目录 打开cmd,输入:jupyter notebook --generate-config,可以得到Jupyter Notebook配置文件的路径,找到路径下的jupyter_notebook_config.py文件,用记事本或者Sublime打开文件 找到&#xff…

Linux下:gcc/g++调试工具gdb

gdb 程序的发布方式有两种,debug模式和release模式 Linux gcc/g出来的二进制程序,默认是release模式 gdb mybin debug和release debug debug模式下生成的可执行程序会添加调试信息,所以生成的可执行程序会较大 在使用gcc/g进行编译的时…

日期类的实现

目录 Date.h Test.cpp 测试代码Test.cpp 日期类的实现 代码分享 Date.h #pragma once #include<iostream> using namespace std; #include<assert.h>class Date {//友元函数声明friend ostream& operator<<(ostream& out, Date& d);friend…

LWIP开发之静态IP为什么接收和发送不了数据

使用的硬件开发板是探索者F4 V3版本 这里用的LWIP的lwIP例程7 lwIP_NETCONN_UDP实验 问了开发板的官方和其他人都说不清楚&#xff1b;搞了两天&#xff0c;浪费了两天时间&#xff1b; 最奇葩的问题还在于只能单片机发送&#xff0c;上位机能接收。而上位机发送单片机不能接…

国产信创办公软件(流版式软件)厂家汇总以及国产信创外设汇总

国产信创办公软件&#xff08;流版式软件&#xff09;厂家汇总以及国产信创外设汇总。 国产信创办公软件&#xff08;流版式软件&#xff09;厂家汇总 在信创背景下&#xff0c;国内流版式软件的发展呈现出蓬勃的态势。信创&#xff0c;即信息技术应用创新产业&#xff0c;旨在…

通过WSL在阿里云上部署Django项目MySQL

前端用Vue&#xff0c;后端用Django&#xff0c; nginx&#xff0c;Mysql 参照&#xff1a; 通过WSL在阿里云上部署Vue项目_阿里云 wsl-CSDN博客 阿里云重登录 采用Ubuntu系统&#xff0c; apt update #检查是否已经安装 mysql --version #检查是否已经安装mysql systemct…

List的介绍

前言~&#x1f973;&#x1f389;&#x1f389;&#x1f389; hellohello~&#xff0c;大家好&#x1f495;&#x1f495;&#xff0c;这里是E绵绵呀✋✋ &#xff0c;如果觉得这篇文章还不错的话还请点赞❤️❤️收藏&#x1f49e; &#x1f49e; 关注&#x1f4a5;&#x1…

MySQL慢查询怎么办?需要关注Explain的哪些关键字?

目录 1-引言&#xff1a;什么是慢查询1-1 慢查询定义1-2 为什么排查慢查询 2-核心&#xff1a;慢查询排查2-1 慢查询定位2-2 慢查询解决2-2-1 Explain 排查慢查询2-2-2 Explain 重点关键字 3-总结&#xff1a;慢查询知识点小结 1-引言&#xff1a;什么是慢查询 1-1 慢查询定义…

配置静态路由实现全网互通

1、实验环境 如图下所示&#xff0c;三台路由器R1&#xff0e;R2&#xff0c;R3两两互连&#xff0c;每台路由器上都配置了Loopback地址模拟网络环境。 2、需求描述 需要在三台路由器上配置静态路由&#xff0c;以实现各网段之间的互通。 若要实现全网互通,必须明确如下两个问…

kaggle 泰坦尼克使用xgboost 得分0.73684

流程 导入所要使用的包引入kaggle的数据集csv文件查看数据集有无空值填充这些空值提取特征分离训练集和测试集调用模型 导入需要的包 import pandas as pd import numpy as np import matplotlib.pyplot as plt import seaborn as sns import warnings warnings.filterwarni…

Hive基础5

一、窗口函数 聚合&#xff0c;取值函数 排序函数 over(partition by 分组字段 order by 字段 row between 起始行 and 结束行) /*创建部门表*/ CREATE TABLE dept (deptno INT PRIMARY KEY,dname VARCHAR(50) comment 部门名称,loc VARCHAR(50) comment 工作地点 ); ​ /*…

2024团体程序设计天梯赛L1-101 别再来这么多猫娘了!

题目链接L1-101 别再来这么多猫娘了&#xff01; #include<iostream> #include<stdio.h> #include<string.h> #include<string> #include<algorithm> using namespace std; string s[105], text; int n, k, ans, a[5005];int main() { // ios::s…

【项目】基于JDBC+MySQL的Java教务管理系统(附源码+论文说明)

摘要 随着信息技术的不断发展&#xff0c;教育管理也在向数字化、智能化方向迈进。Java作为一种广泛应用于企业级应用开发的编程语言&#xff0c;与数据库技术的结合更是为教务管理系统的开发提供了强大的支持。 本文将介绍基于JDBC&#xff08;Java Database Connectivity&a…

短视频不够500有效粉丝怎么涨?如何涨有效粉丝?巨量千川投流怎么涨粉的?

近期&#xff0c;一些使用抖音橱窗功能的用户遇到了一个问题&#xff0c;他们在挂橱窗时会出现“有效粉丝不足500”无法正常挂橱窗的提示。这个问题是由于抖音平台改变了规则所致。现在&#xff0c;只有通过观看视频而非刷关注的粉丝才被算作有效粉丝&#xff0c;其他的粉丝都将…

39. UE5 RPG角色释放技能时转向目标方向

在上一篇&#xff0c;我们实现了火球术可以向目标方向发射&#xff0c;并且还可以按住Shift选择方向进行攻击。技能的问题解决&#xff0c;现在人物释放技能时&#xff0c;无法朝向目标方向&#xff0c;接下来我们解决人物的问题。 实现思路&#xff1a; 我们将使用一个官方的…

(CVPR,2023)SAN:用于开放词汇语义分割的边缘适配网络

文章目录 相关论文相关资料摘要引言方法对视觉 token 的特征融合使用注意力偏差进行掩码识别分割图像生成 实验 相关论文 &#xff08;CVPR&#xff0c;2024&#xff09;SED&#xff1a;一个用于开放词汇语义分割的简单编解码器 &#xff08;CVPR&#xff0c;2024&#xff09;…

python int占几个字节

《深入理解计算机系统》这本书上面提到了在32位机器和64机器中int类型都占用4个字节。《The C Programming language》这本书&#xff0c;里面有一句话是这样的&#xff1a;Each compiler is free to choose appropriate sizes for its own hardware, subject only to the rest…

https协议的加密方式详解

各位大佬能多多点赞关注评论收藏&#xff0c;球球各位大佬们了&#xff01;&#xff01; &#xff01; 目录 1.为什么要加密&#xff1f; 2.如何加密 1.密钥&#xff08;yue,第四声&#xff09; 2.对称加密 3.非对称加密 4.公证机构 3.总结 1.为什么要加密&#xff1f;…

systemverilog中位的选择

常用的变量类型就是 reg 和 wire &#xff0c;这两种类型可以定义 一位的变量&#xff0c;也可以定义多位&#xff0c;其中 1 bit 的变量称为 标量(scalar)&#xff0c;多 bit 的变量称为 向量(vector)&#xff0c;如下所示&#xff1a; wire o_nor; // singl…

【树莓派】如何刷个系统给树莓派4B,如何ssh登陆到树莓派

文章目录 下载树莓派镜像下载烧写软件烧写编辑设置连接树莓派4B重启ssh查看树莓派IPssh远程连接问询、帮助 下载树莓派镜像 https://www.raspberrypi.com/software/operating-systems/#raspberry-pi-os-64-bit 下载烧写软件 https://www.raspberrypi.com/software/ 烧写 编辑…