当前位置: 首页 > news >正文

网络模型及协议介绍

一.OSI七层模型

OSI  Open System Interconnect 开放系统互连模型

以前不同厂家所生产的网络设备的标准是不同的,所以为了统一生产规范就制定了OSI这个生产模型。

作用:降低网络进行数据通信复杂度

这个模型的作用第一降低数据通信的复杂度,第二方便故障排查。

但凡是联网的设备其内部都有这七个车间,在数据传输的时候负责不同的事情。

应用层

作用:提供应用程序/软件,人与网络间的接口,提供数据

表示层

作用:负责数据格式的转换,比如压缩/解压缩,加密,解密

会话层

作用:建立会话,维持会话,断开会话,

会话:识别客户端的登录身份(是否登录)

比如登录邮箱是建立会话,在邮箱上进行对邮件的一系列操作是维持会话,退出邮箱是断开会话。

再比如说,一台服务器在同一时刻收到了n多条信息,怎么判断这个信息是不是已经登录的用户发送过来的信息,这就要依赖会话,

传输层

作用:用来在计算机之间提供端到端的通信的。识别不同的应用程序,

端口号1--65535

也就是说将某一端的数据传输到某一段的数据。

什么样的程序才会产生端口号,这个应用程序必须要能够联网。

windows查看端口的命令 > netstat -an

如上图所示,在windows中端口号为139和445的这两个端口,负责共享文件夹的功能,

网络层

典型设备:路由器

作用:提供网络到网络的通信,网络---网络

提供选路,根据IP地址进行选路,(选路的意思是两个机器之间通信的路径。)

数据链路层

典型设备:交换机

作用:提供点到点的通信,依靠MAC地址,物理地址

windows查看MAC地址:ipconfig/all

Linux查看MAC地址:ifconfig,ip addr show

机器上的每一块网卡(虚拟网卡,物理网卡)都有其自己的MAC地址,这个地址独一无二。

可以尝试将家里的联网设备的MAC地址都计入到路由器中,这样陌生设备就不能随便访问家里的网络了。

物理层

作用:提供物理链路

第几层的问题从下往上数。

二.TCP/IP五层模型

应用层,传输层,网络层,数据链路层,物理层

在五层模型中,会话层和表示层的功能被合并到了应用层。

三.典型协议

应用层:

1.http协议的作用是用来实现web数据传输的,明文传输。

2.https协议的作用也是实现web数据传输的,密文传输。

3.ftp协议文件传输协议,用来实现数据共享,

4.DNS协议用来实现IP地址,主机名的解析,

5.ntp协议网络时间协议,用来实现时间同步,

6.snmp协议(简单网络管理协议,实现监控)

7.ssh协议设备远程连接,密文传输,适用于连接服务器。

8.telnet协议设备远程连接,明文传输,适用于在局域网连接网络设备。

传输层:

1.TCP  传输控制协议

面向连接的协议,

主机间相互发送数据前,需要建立TCP连接,连接完毕后才会开始发送真实的数据,数据发送完毕后,主机间会断开连接。

TCP连接是双向的。

如上图所示,基于TCP协议开发的软件,都是在发送数据之前建立连接,然后在发送数据的操作完成后断开连接。

2.三次握手,建立连接。

a)主机A向主机B发送带有SYN标志的数据,表示请求建立连接。

b)主机B向主机A发送带有ACK,SYN标志的数据,表示同意建立连接,向A发送建立连接的请求。

c)主机A向主机B发送带有ACK标志的数据,表示同意与B建立连接。

TCP协议是一个可靠的协议。

原因:1.重传计时器:也就是说一个完整的数据包会被分成多份,先发送一份数据,如果在规定的时间内没有收到回复,就会重新发送这一份数据,直到收到对方接收到数据的回复时,才继续发送这个数据包的第二份数据。

原因:2.滑动窗口机制,流量控制,避免网络堵塞。

传送数据的双方,在建立连接的基础上,进行协商你这一次最多能传送多少数据,我一次最多能接收多少数据.然后经过协商,一次传送的数据大小取双方的中间值。

2.UDP  用户数据报协议

1.无连接的协议

2.不可靠的协议

查看TCP协议相关的端口

这个命令的主要用途是查看TCP协议相关的端口信息,

  1. -a (all)

    • 显示所有连接,包括监听中的和未完成三次握手的连接
  2. -n (numeric)

    • 以数字形式显示 IP 地址和端口号,而不是尝试解析为主机名
  3. -t (TCP)

    • 显示 TCP 协议的连接信息。
  4. -p (program)

    • 显示与每个连接关联的进程 ID 和名称。

查看UDP协议相关的端口

网络层

一.IP协议 inter

作用:能够根据IP地址将数据发送到那个网段。

二.ICMP协议

熟悉的ping 命令就是基于ICMP协议开发的一个命令。

互联网控制消息协议,测试网络的连通性。

ping工具

如果ping一个IP地址速度达到了几百上千毫秒,那么就代表网络堵塞。

ping工具的使用:

  1. -c count

    • 发送指定数量的回声请求报文。默认情况下,ping 命令会一直发送直到被终止。
    • 例如:ping -c 4 example.com 将向 example.com 发送4个回声请求报文。
  2. -s size

    • 设置发送的回声请求报文的数据部分大小(字节)。
    • 例如:ping -s 1000 example.com 将发送1000字节数据的回声请求报文。

-c指定ping的次数

-s指定ping的数据包大小

三.IGMP协议

实现组播

四.ARP协议

地址解析协议

作用:根据IP地址获取MAC地址

四.数据封装

TCP/UDP报头中包含源端口号和目的端口号。

源端口号用来标识我这份数据是拿哪个软件发送出去的,源端口号>大于1024的随机端口,用来标识发送数据的软件。

如果A发送的数据访问的是B的web服务,那么目的端口号是80,如果A发送的数据访问的是B的w邮件服务,那么目的端口号是25,

数据在传输过程中IP地址只能决定这个数据传送到那个网段,但是要传送到具体的机器上,还是要取决于IP地址背后的MAC地址。

这串数据如果到物理层是网线,就会把这段数据转换成一段电信号,

如果是光纤,光信号,

如果是无线,无线电信号。

五.静态路由

路由器的作用主要是解决不同网段之间的通信需要用到路由器,

路由表是在配置好路由器的各个端口之后出现在路由器中的,路由表中有网段和路由器接口的对应关系。

在路由表中一条信息叫做一条路由,路由表中的路由有两个来源,第一个是直连路由,第二个是非直连路由,直连路由是就是这个路由器直接连接的网段信息,从配置好路由器的接口IP那一刻开始,直连路由的信息就自动出现在路由表上。

非直连路由:

如上图所示,需要手动往路由表中填写相关的信息,也就是没有相关的接口,使得网段与路由器直接相连,

如上图所示,机器A想要跟右边的路由器进行通信,不通过静态路由的方式去补写路由表中非直连路由的信息是不可以的。

如果机器A想要向路由器发送数据,需要将数据先发送到左边的路由器中的下一跳地址1中,然后经过路由器将数据发送到下一跳地址2中,然后将数据发送到192.168.3.0/24这个网段中,这样这个数据就可以被IP地址为192.168.3.2的这个路由器接收了,请注意这个数据的源IP地址是192.168.1.1,目的IP地址是192.168.3.2,但是关于数据的回复却是不能直接就回复,需要通过静态路由的方式将这个数据回复的目的IP地址网段填写到路由表中,

路由器不需要网关,在路由器中查看路由表实际上就是查网关的命令,就是route -n

如上图所示的echo重定向修改文件内容是临时的,等再次重启机器后,就需要重新修改这个文件中的内容,

相关文章:

网络模型及协议介绍

一.OSI七层模型 OSI Open System Interconnect 开放系统互连模型 以前不同厂家所生产的网络设备的标准是不同的,所以为了统一生产规范就制定了OSI这个生产模型。 作用:降低网络进行数据通信复杂度 这个模型的作用第一降低数据通信的复杂度&#xff…...

手撕HashMap源码

终于通过不屑努力,把源码中的重要部分全都看完了,每一行代码都看明白了,还写了注释 import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.util.*; import java.util.function.Consumer; import java.ut…...

OceanBase block_file与log过大 的问题

一、说明 block_file 是存放sstable的数据文件,由datafile_disk_percentage 参数与datafile_size参数决定,两个参数同时配置,以datafile_size为主。 datafile_disk_percentage 默认值是90 datafile_size 默认值是0M到正无穷 因为block_file 的…...

【Focal Loss 本质】

Focal Loss 示例 Focal Loss公式: 在后面的例子中,我们假定 y 1 的样本中,有两个预测值分别为(0.8, 0.4)。显然,0.8 很容易分类,0.4 很难分类。 可以看出,Focal Loss 降低了容易分类(prt 0…...

端口安全老化细节

我们都知道port-security aging-time命令用来配置端口安全动态MAC地址的老化时间,但是后面还可以加上类型: [SW1-GigabitEthernet0/0/1]port-security aging-time 5 type absolute Absolute time 绝对老化 inactivity Inactivity time相对老化 …...

【C++】—— string 模拟实现

【C】—— string模拟实现 0 前言1 string的底层结构2 默认成员函数的实现2.1 构造函数2.1.1 无参构造2.1.2 带参构造2.1.2 合并 2.2 析构函数2.3 拷贝构造函数2.3.1 传统写法2.3.2 现代写法 2.3 赋值重载2.3.1 传统写法2.3.2 现代写法2.3.3 传统写法与现代写法的优劣 3 size、…...

详解TensorRT的C++高性能部署以及C++部署Yolo实践

详解TensorRT的C高性能部署 一. ONNX1. ONNX的定位2. ONNX模型格式3. ONNX代码使用实例 二、TensorRT1 引言 三、C部署Yolo模型实例 一. ONNX 1. ONNX的定位 ONNX是一种中间文件格式,用于解决部署的硬件与不同的训练框架特定的模型格式的兼容性问题。 ONNX本身其…...

手机如何切换网络IP地址:‌方法详解与操作指南‌

在当今的数字化时代,‌网络IP地址作为设备在网络中的唯一标识,‌扮演着至关重要的角色。‌对于手机用户而言,‌了解如何切换网络IP地址不仅有助于提升网络体验,‌还能在一定程度上保护个人隐私。‌本文将详细介绍手机切换网络IP地…...

南通网站建设手机版网页

随着移动互联网的迅猛发展,越来越多的人通过手机浏览网页,进行在线购物、信息查询和社交互动。因此,建立一个适合移动端访问的网站已成为企业和个人不可忽视的重要任务。在南通,网站建设手机版网页的需求逐渐增加,如何…...

macos系统内置php文件列表 系统自带php卸载方法

在macos系统中, 自带已经安装了php, 根据不同的macos版本php的版本号可能不同, 我们可以通过 which php 命令来查看mac自带的默认php安装路径, 不过注意这个只是php的执行文件路径. 系统自带php文件列表 一下就是macos默认安装的php文件列表. macos 10.15内置PHP文件列表配置…...

微信小程序认证和备案

小程序备案的流程一般包括以下步骤‌: 准备备案所需材料‌:通常需要提供‌营业执照、法人的‌身份证、两个‌手机号和一个邮箱等资料。 ‌1 ‌登录‌微信公众平台‌:作为第一次开发微信小程序的服务商,需要通过微信公众平台申请…...

C++复习day05

类和对象 1. 面向对象和面向过程的区别是什么?(开放性问题) 1. **抽象级别**:- **面向对象**:以对象(数据和方法的集合)为中心,强调的是数据和行为的封装。- **面向过程**&#xf…...

python数值误差

最近在用fenics框架跑有限元代码,其中有一个部分是把在矩阵里定义的初始值,赋值到有限元空间里,这就涉及到了初始矩阵和有限元空间坐标的转化,部分代码如下 for i in range(len(dof_coordinates)):# x, y dof_coordinates[i…...

基于FPGA的OV5640摄像头图像采集

1.OV5640简介 OV5640是OV(OmniVision)公司推出的一款CMOS图像传感器,实际感光阵列为:2592 x 1944(即500w像素),该传感器内部集成了图像出炉的电路,包括自动曝光控制(AEC…...

CDN ❀ Http协议标准缓存字段梳理

文章目录 1. 背景介绍2. 测试环境搭建3. 缓存字段3.1 Expires3.2 Cache-Control3.3 协商缓存 1. 背景介绍 Http协议标准有RFC定义好的请求和响应头部字段用于进行缓存设置,本文主要进行介绍缓存功能相关的头部字段及其使用方法。在使用CDN功能是,协议标…...

浅谈NODE的NPM命令和合约测试开发工具HARDHAT

$ npm install yarn -g # 将模块yarn全局安装 $ npm install moduleName # 安装模块到项目目录下 默认跟加参数 --save 一样 会在package文件的dependencies节点写入依赖。 $ npm install -g moduleName # -g 的意思是将模块安装到全局,具体安装到磁盘哪个位置&…...

k8s-pod 实战六 (如何在不同的部署环境中调整startupprobe的参数?)

在不同的部署环境中(如开发、测试、生产环境),你可能希望对 startupProbe 的参数进行调整,以适应不同的需求和条件。以下是几种常见的方法和实践: 方法一:使用 Kustomize 1. 目录结构 假设你的项目目录结构如下: my-app/ ├── base/ │ └── deployment.yaml …...

和服务端系统的通信

首先web网站 前端浏览器 和 后端系统 是通过HTTP协议进行通信的 同步请求&异步请求: 同步请求:可以从浏览器中直接获取的(HTML/CSS/JS这样的静态文件资源),这种获取请求的http称为同步请求 异步请求:js代码需要到服…...

python 实现perfect square完全平方数算法

python 实现perfect square完全平方数算法介绍 完全平方数(Perfect Square)是一个整数,它可以表示为某个整数的平方。例如,1,4,9,16,25,… 都是完全平方数,因为 1 1 2 , 4 2 2 , 9 3 2 11^2,42^2,93^2 112,422,93…...

【漏洞复现】某客圈子社区小程序审计(0day)

0x00 前言 █ 纸上得来终觉浅,绝知此事要躬行 █ Fofa:"/static/index/js/jweixin-1.2.0.js"该程序使用ThinkPHP 6.0.12作为框架,所以直接审计控制器即可.其Thinkphp版本较高,SQL注入不太可能,所以直接寻找其他洞. 0x01 前台任意文件读取+SSRF 在 /app/api/c…...

Go 语言接口详解

Go 语言接口详解 核心概念 接口定义 在 Go 语言中,接口是一种抽象类型,它定义了一组方法的集合: // 定义接口 type Shape interface {Area() float64Perimeter() float64 } 接口实现 Go 接口的实现是隐式的: // 矩形结构体…...

【SQL学习笔记1】增删改查+多表连接全解析(内附SQL免费在线练习工具)

可以使用Sqliteviz这个网站免费编写sql语句,它能够让用户直接在浏览器内练习SQL的语法,不需要安装任何软件。 链接如下: sqliteviz 注意: 在转写SQL语法时,关键字之间有一个特定的顺序,这个顺序会影响到…...

汇编常见指令

汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机(Finite Automaton, FA)到正规文法(Regular Grammar)转换器,它配备了一个直观且完整的图形用户界面,使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

【Android】Android 开发 ADB 常用指令

查看当前连接的设备 adb devices 连接设备 adb connect 设备IP 断开已连接的设备 adb disconnect 设备IP 安装应用 adb install 安装包的路径 卸载应用 adb uninstall 应用包名 查看已安装的应用包名 adb shell pm list packages 查看已安装的第三方应用包名 adb shell pm list…...

提升移动端网页调试效率:WebDebugX 与常见工具组合实践

在日常移动端开发中,网页调试始终是一个高频但又极具挑战的环节。尤其在面对 iOS 与 Android 的混合技术栈、各种设备差异化行为时,开发者迫切需要一套高效、可靠且跨平台的调试方案。过去,我们或多或少使用过 Chrome DevTools、Remote Debug…...

uniapp 集成腾讯云 IM 富媒体消息(地理位置/文件)

UniApp 集成腾讯云 IM 富媒体消息全攻略(地理位置/文件) 一、功能实现原理 腾讯云 IM 通过 消息扩展机制 支持富媒体类型,核心实现方式: 标准消息类型:直接使用 SDK 内置类型(文件、图片等)自…...

9-Oracle 23 ai Vector Search 特性 知识准备

很多小伙伴是不是参加了 免费认证课程(限时至2025/5/15) Oracle AI Vector Search 1Z0-184-25考试,都顺利拿到certified了没。 各行各业的AI 大模型的到来,传统的数据库中的SQL还能不能打,结构化和非结构的话数据如何和…...

ubuntu系统文件误删(/lib/x86_64-linux-gnu/libc.so.6)修复方案 [成功解决]

报错信息:libc.so.6: cannot open shared object file: No such file or directory: #ls, ln, sudo...命令都不能用 error while loading shared libraries: libc.so.6: cannot open shared object file: No such file or directory重启后报错信息&…...

0x-3-Oracle 23 ai-sqlcl 25.1 集成安装-配置和优化

是不是受够了安装了oracle database之后sqlplus的简陋,无法删除无法上下翻页的苦恼。 可以安装readline和rlwrap插件的话,配置.bahs_profile后也能解决上下翻页这些,但是很多生产环境无法安装rpm包。 oracle提供了sqlcl免费许可&#xff0c…...