网络模型及协议介绍

一.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重定向修改文件内容是临时的,等再次重启机器后,就需要重新修改这个文件中的内容,

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

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

相关文章

QT cmake vscode 构建流程

采用基于QT creater方式实现: 1. Qt Creator——创建项目——Qt Widgets Application——CMake——Desktop Qt 6.8.0 MSVC2022 64bit——接下来全默认 关键点是选择CMake和构建套件这里用windows的MSVC。 2. 用vscode打开,即可。 可以配置一个调试任务…

【html】编辑器、基础、属性、标题、段落、格式化、 连接、头部、CSS、图像

目录 2.HTML编辑器 3.HTML基础 3.1 HTML标题 3.2 段落 4.HTML元素 4.1 元素语法 4.2 嵌套元素 4.3 HTML空元素 4.4 HTML提示,使用小写标签 5.HTML属性 5.1 属性实例 5.2 HTML 属性常用引用属性值 5.3 使用小写属性 5.4 HTML属性参考手册 6.HTML标题 6.1 HTML水…

JAKA学习2:博途组态配置PROFINET和MODBUS

目录 一、GSD文件安装与设备组态1.1、GSD安装1.2、PROFINET设备组态二、远程启动顺序2.1、启动步骤2.2、安全点配置三、JAKA配置3.1、输入输出点配置一、GSD文件安装与设备组态 1.1、GSD安装 1.2、PROFINET设备组态 二、远程启动顺序 2.1、启动步骤 1、 要保证DO9已开机状态…

驾驭Python与MySQL的桥梁:pymysql的神秘面纱

文章目录 **驾驭Python与MySQL的桥梁:pymysql的神秘面纱**背景:为何选择pymysql?库的简介安装指南简单的库函数使用方法场景应用常见问题与解决方案总结 驾驭Python与MySQL的桥梁:pymysql的神秘面纱 背景:为何选择pym…

赛码网牛客在acm模式下利用node.js处理多行输入方法

赛码网在JS Node的语言下,acm模式的默认标准输入输出代码是这样的: const readline require(readline);const rl readline.createInterface({input: process.stdin,output: process.stdout }); rl.on(line, function (line) {const tokens line.spli…

java重点学习-redis

一.redis 穿透无中生有key,布隆过滤nul隔离 锁与非期解难题。缓存击穿过期key, 雪崩大量过期key,过期时间要随机。 面试必考三兄弟,可用限流来保底。 1.1 Redis的使用场景 根据自己简历上的业务进行回答 缓存穿透、击穿、雪崩、双…

实验报告: lookie-lookie 项目测试与分析

目录 一、实验目的 二、实验环境 三、实验步骤 1. 下载与准备项目 1.1 从 GitHub 获取项目 1.2 查看项目文件结构 2. 运行项目 2.1 启动项目 2.2 浏览器设置 3. 项目体验 3.1 功能测试 3.2 运行截图 4. 文件结构分析 4.1 总体结构 4.2 主要文件和目录说明 5. 数…

重头开始嵌入式第三十二天(TCP多客户端模型)

1.多路IO 1.select #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <string.h> #include <sys/types.h> /* See NOTES */ #include <sys/socket.h> #include <netinet/in.h> #include <netine…

基于人体关节夹角的人体动作识别算法(代码+数据集)

为此本文提出了一个基于人体关节夹角的人体动作识别算法&#xff0c;主要做了以下工作&#xff1a; &#xff08;1&#xff09;提出了一个可解释性强&#xff0c;耗费算力较少且鲁棒性较高的基于人体关节夹角的人体动作序列的特征抽取方法。 &#xff08;2&#xff09;本文所使…

PCL 移动立方体三维重建——RBF算法【2024最新版】

目录 一、算法原理1、算法概述2、参考文献二、代码实现三、结果展示四、相关链接本文由CSDN点云侠原创,原文链接,首发于:2024年9月1日。如果你不是在点云侠的博客中看到该文章,那么此处便是不要脸的爬虫与GPT。 一、算法原理 1、算法概述 该算法实现的是Reconstruction a…

单片机配置导入导出功能设计(一种思路)

背景&#xff1a; 为了方便部分不开放到屏幕的配置进行修改&#xff0c;兼容离线机器&#xff0c;也支持产线大批量配置导入&#xff0c;提高生产效率&#xff0c;特此研发配置导入导出功能。 原理&#xff1a; 上电监测到U盘和文件系统正常后&#xff0c;监测是否存在配置文件…

贸易术语你都不懂,你还做什么外贸

外贸小伙伴们&#xff0c;连贸易术语都不懂&#xff0c;还做啥外贸&#xff1f;别担心&#xff0c;今天我给大家整理了常见的外贸贸易术语&#xff0c;让你轻松入门&#xff0c;快速上手&#xff01; 1、FOB: Free On Board 船上交货价。按离岸价进行的交易&#xff0c;买方…

Java并发线程 共享模型之管程 5

1. 生产者消费者 package cn.itcast.testcopy;import cn.itcast.n2copy.util.Sleeper; import lombok.extern.slf4j.Slf4j;import java.util.LinkedList;/*** ClassName: Test21* Package: cn.itcast.testcopy* Description: 生产者消费者** Author: 1043* Create: 2024/9/4 - …

软件测试之压力测试知识总结

&#x1f345; 点击文末小卡片&#xff0c;免费获取软件测试全套资料&#xff0c;资料在手&#xff0c;涨薪更快 压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&…

Vue 3 的性能提升具体体现在哪些方面?

Vue 3 的性能提升体现在多个方面&#xff0c;以下是一些具体的例子&#xff1a; 基于 Proxy 的响应式系统&#xff1a; Vue 2 使用 Object.defineProperty 来实现响应式数据绑定&#xff0c;这种方式在处理数组或添加新的属性时存在局限性。Vue 3 引入了基于 Proxy 的响应式系统…

Android 获取通话记录

在某些App的开发者&#xff0c;获取通话记录有时候是必要的&#xff08;现在都要申请相对于权限哦&#xff0c;App上架得说明为啥获取此权限&#xff09;。 因为工作风控数据收集经常会用到&#xff0c;在此做个总结。 大致步骤 1.权限声明 2.申请权限 3.获取通话记录 4.…

LNMP环境搭建(Linux+nginx+Mysql+PHP)超详细攻略

目录 一.LNMP简介 1.1LNMP架构的特点 二.详细安装步骤 2.1MySQL安装 2.1-1Yum安装 2.1-2 编译安装 2.1-3二进制安装 2.1-4 RPM安装 2.2Nginx安装 2.2-1编译安装nginx 2.2-2yum安装nginx 2.3验证Nginx安装 2.4PHP安装 2.4-1编译安装PHP 2.4-2yum安装PHP 2.5 Nginx 配…

PMP–一、二、三模、冲刺、必刷–分类–14.敏捷–技巧--累积流图

文章目录 技巧一模二模三模14.敏捷–敏捷团队的衡量结果–累积流图&#xff1a;1、 敏捷项目的项目经理担心团队在最近的迭代中失去了动力。项目经理应该使用哪两种工具来分析团队绩效&#xff1f;&#xff08;选择两个&#xff09; 冲刺必刷7.成本管理--挣值分析燃尽图仅能了解…

Android --- observer和observerForever的区别

observe 和 observeForever 是 LiveData 中的两个方法&#xff0c;用于观察数据的变化&#xff0c;但它们在生命周期管理和适用场景上有区别&#xff1a; ---->observe: 用途: 注册一个观察者&#xff0c;该观察者在 LifecycleOwner&#xff08;如 Activity 或 Fragment&am…

From Man vs Machine to Man + Machine

From Man vs. Machine to Man Machine: The Art and AI of Stock Analyses 论文阅读 文章目录 From Man vs. Machine to Man Machine: The Art and AI of Stock Analyses 论文阅读 AbstractConstruction and Performance of the AI AnalystMethodologyThe Performance of Ana…