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

第一章:网络参考模型

一、专业术语

ISO---(International Organization for Standardization)国际标准化组织

OSI---(Open System Interconnection Reference Model)开放式系统互联通信参考模型

IEEE---(Institute of Electrical and Electronics Engineers)电气与电子工程师协会

IETF---(Internet Engineering Task Force)互联网工程师任务组

Telnet---远程登录

FTP---(file transfer protocol)文件传输协议

TFTP---(trivial file transfer protocol)简单文件传输协议

SNMP---(simple network management protocol)简单网络管理协议

HTTP---(hyper text transfer protocol)超文本传输协议 HTTP:明文传输 HTTPS:加密功能

SMTP---(simple network management protocol)简单邮件传输协议

DNS---(domain name system)域名系统

DHCP---(dynamic host configuration protocol)动态主机配置协议

TCP---(transmission control protocol)传输控制协议

UDP---(user datagram protoclo)用户数据包协议

PDU---(protocol data unit)协议数据单元

TCP/IP---(transmission control protocol/Internet protocol)传输控制协议/网际协议

华为HCIA-Datacom全套学习视频课(理论+试验全配套)-学习视频教程-腾讯课堂

二、为什么要有OSI

没有OSI:1.是一个整体 2.不兼容3.不利于开发和排错

ISO推出了OSI:1.不是一个整体(分层)2.兼容3.有利于开发和排错

三、OSI模型与TCP/IP模型

1. OSI参考模型

ISO国际标准组织所定义的开放系统互连七层模型的定义和各层功能。

优点:将服务、接口和协议这三个概念明确地区分开来

注意:可以通过All People Seems To  need Data Process来记忆这7层的位置

2.TCP/IP参考模型

因为OSI协议栈比较复杂,且TCP和IP两大协议在业界被广泛使用,所以TCP/IP参考模型成为了互联网的主流参考模型。

华为HCIA-Datacom全套学习视频课(理论+试验全配套)-学习视频教程-腾讯课堂

1应用层

应用层为应用软件提供接口,使应用程序能够使用网络服务。应用层协议会指定使用相应的传输层协议,以及传输层所使用的端口等。

应用层的PDU被称为Data(数据)。

端口号 - 23是端口号,服务器端是有很多端口的,每个应用程序对应一个端口号,通过类似门牌号的端口号,客户端才能真正的访问到该服务器。为了对端口进行区分,将每个端口进行了编号,这就是端口号。

常见应用层协议 - Telnet:数据网络中提供远程登录服务的标准协议。

常见应用层协议 - FTPFile Transfer Protocol):一个用于从一台主机传送文件到另一台主机的协议,用于文件的“下载”和“上传”,它采用C/S(Client/Server)结构。

FTP客户端:提供本地设备对远程服务器的文件进行操作的命令。用户在PC上通过应用程序作为FTP Client,并与FTP服务器建立连接后,可以对FTP Server上的文件进行操作。

FTP服务器:运行FTP服务的设备。提供远程客户端访问和操作的功能,用户可以通过FTP客户端程序登录到服务器上,访问设备上的文件。

常见应用层协议 - HTTPHyperText Transfer Protocol)互联网上应用最为广泛的一种网络协议。

2)传输层

传输层协议接收来自应用层协议的数据,封装上相应的传输层头部,帮助其建立“端到端”(Port to Port)的连接。

传输层的PDU被称为Segment(段)。

TCPUDP – 报文格式

Source Port:源端口,标识哪个应用程序发送。长度为16比特。

Destination Port:目的端口,标识哪个应用程序接收。长度为16比特。

Sequence Number:序号字段。TCP链接中传输的数据流每个字节都编上一个序号。序号字段的值指的是本报文段所发送数据的第一个字节的序号。长度为32比特。

Acknowledgment Number:确认序列号,是期望收到对方下一个报文段数据的第1个字节的序号,即上次已成功接收到的数据段的最后一个字节数据的序号加1。只有Ack标识为1,此字段有效。长度为32比特。

Header Length:头部长度,指出TCP报文头部长度,以32比特(4字节)为计算单位。若无选项内容,则该字段为5,即头部为20字节。

Reserved:保留,必须填0。长度为6比特。

Control bits:控制位,包含FIN、ACK、SYN等标志位,代表不同状态下的TCP数据段。

Window:窗口TCP的流量控制,这个值表明当前接收端可接受的最大的数据总数(以字节为单位)。窗口最大为65535字节。长度为16比特。

Checksum:校验字段,是一个强制性的字段,由发端计算和存储,并由收端进行验证。在计算检验和时,要包括TCP头部和TCP数据,同时在TCP报文段的前面加上12字节的伪头部。长度为16比特。

TCP的建立 - 三次握手:任何基于TCP的应用,在发送数据之前,都需要由TCP进行“三次握手”建立连接。

TCP连接建立的详细过程如下:

由TCP连接发起方(图中PC1),发送第一个SYN位置1的TCP报文。初始序列号a为一个随机生成的数字,因为没收到过来自PC2的任何报文,所以确认序列号为0 ;

接收方(图中PC2)接收到合法的SYN报文之后,回复一个SYN和ACK置1的TCP报文。初始序列号b为一个随机生成的数字,同时因为此报文是回复给PC1的报文,所以确认序列号为a+1;

PC1接收到PC2发送的SYN和ACK置位的TCP报文后,回复一个ACK置位的报文,此时序列号为a+1,确认序列号为b+1。PC2收到之后,TCP双向连接建立。

TCP的序列号与确认序列号:TCP使用序列号和确认序列号字段实现数据的可靠和有序传输。

假设PC1要给PC2发送一段数据,传输过程如下:

1. PC1将全部待TCP发送的数据按照字节为单位编上号。假设第一个字节的编号为“a+1”,第二个字节的序号为“a+2”,依次类推。

2. PC1会把每一段数据的第一个字节的编号作为序列号(Sequence  number),然后将TCP报文发送出去。

3. PC2在收到PC1发送来的TCP报文后,需要给予确认同时请求下一段数据,如何确定下一段数据呢?序列号( a+1 )+载荷长度=下一段数据的第一个字节的序号(a+1+12)

4. PC1在收到PC2发送的TCP报文之后,发现确认序列号为“a+1+12” ,说明“a+1”到“a+12”这一段的数据已经被接受,需要从“a+1+12”开始发送。

为了提升发送效率,也可以一次性发送多段数据,由接收方统一确认。

TCP的窗口滑动机制:TCP通过滑动窗口机制来控制数据的传输速率。

1. 在TCP三次握手建立连接时,双方都会通过Window字段告诉对方本端最大能够接受的字节数(也就是缓冲区大小)。

2. 连接建立成功之后,发送方会根据接受方宣告的Window大小发送相应字节数的数据。

3. 接受方接受到数据之后会放在缓冲区内,等待上层应用来取走缓冲的数据。若数据被上层取走,则相应的缓冲空间将被释放。

4. 接收方根据自身的缓存空间大小通告当前的可以接受的数据大小( Window )。

5. 发送方根据接收方当前的Window大小发送相应数量的数据。

TCP的关闭 - 四次挥手:当数据传输完成,TCP需要通过“四次挥手”机制断开TCP连接,释放系统资源。

TCP支持全双工模式传输数据,这意味着同一时刻两个方向都可以进行数据的传输。在传输数据之前,TCP通过三次握手建立的实际上是两个方向的连接,因此在传输完毕后,两个方向的连接必须都关闭。

1. 由PC1发出一个FIN字段置”1 ”的不带数据的TCP段;

2. PC2收到PC1发来的FIN置位的TCP报文后,会回复一个ACK置位的TCP报文。

3. 若PC2也没有需要发送的数据,则直接发送FIN置位的TCP报文。假设此时PC2还有数据要发送,那么当PC2发送完这些数据之后会发送一个

FIN置位的TCP报文去关闭连接。

4. PC1收到FIN置位的TCP报文,回复ACK报文,TCP双向连接断开。

注意:TCPUDP的比较

总结语音流 视频流对时延要求高 用UDP 

          要传输可靠的 HTTP 邮件用 TCP

3)网络层

传输层负责建立主机之间进程与进程之间的连接,而网络层则负责数据从一台主机到另外一台主机之间的传递。

网络层的PDU被称为Packet(包)。

网络层协议工作过程:

1.网络层收到上层(如传输层)协议传来的数据时候,会封装一个IP报文头部,并且把源和目的IP地址都添加到该头部中。

2.中间经过的网络设备(如路由器),会维护一张指导IP报文转发的“地图”——路由表,通过读取IP数据包的目的地址,查找本地路由表后转发IP数据包。

3.IP数据包最终到达目的主机,目的主机通过读取目的IP地址确定是否接受并做下一步处理。

IP协议工作时,需要如OSPF、IS-IS、BGP等各种路由协议帮助路由器建立路由表,ICMP帮忙进行网络的控制和状态诊断。

4)数据链路层

数据链路层位于网络层和物理层之间,可以向网络层的IP、IPv6等协议提供服务。数据链路层的PDU被称为Frame(帧)。以太网(Ethernet)是最常见的数据链路层协议。

以太网与MAC地址

MAC地址由48比特(6个字节)长,12位的16进制数字组成。例如:48-A4-72-1C-8F-4F

ARPAddress Resolution Protocol)地址解析协议:

根据IP地址获取数据链路层地址的一个TCP/IP协议。

 华为HCIA-Datacom全套学习视频课(理论+试验全配套)-学习视频教程-腾讯课堂

主要功能:

将IP地址解析为MAC地址;

维护IP地址与MAC地址的映射关系的缓存,即ARP表项;

实现网段内重复IP地址的检测。

ARP的工作原理 :

Step 1在发送数据前,设备会先查找ARP缓存表。如果缓存表中存在对方设备的MAC地址,则直接采用该MAC地址来封装帧,然后将帧发送出去。如果缓存表中不存在相应信息,则通过ARP来获取。

Step 2主机1通过发送ARP Request报文来获取主机2的MAC地址。由于不知道目的MAC地址,因此ARP Request报文内的目的端MAC地址为0。

Step 3ARP Request是广播数据帧,因此交换机收到后,会对该帧执行泛洪操作。

Step 4所有的主机接收到该ARP Request报文后,都会检查它的目的端IP地址字段与自身的IP地址是否匹配。主机2发现IP地址匹配,则会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

Step 5主机2通过发送ARP Reply报文来响应主机1的请求。此时主机2已知主机1的MAC地址,因此ARP Reply是单播数据帧。

Step 6交换机收到该单播数据帧后,会对该帧执行转发操作。

Step 7主机1收到ARP Reply以后,会检查ARP报文中目的端IP地址字段是否与自己的IP地址匹配。如果匹配,会将ARP报文中的发送端MAC地址和发送端IP地址信息记录到自己的ARP缓存表中。

5)物理层

数据到达物理层之后,物理层会根据物理介质的不同,将数字信号转换成光信号、电信号或者是电磁波信号。

物理层的PDU被称为比特流(Bitstream)。

华为HCIA-Datacom全套学习视频课(理论+试验全配套)-学习视频教程-腾讯课堂

常见传输介质

双绞线:当今以太网最常见的传输介质,按照抗电磁干扰能力还可以分为:

STP-屏蔽双绞线  UTP-非屏蔽双绞线

光纤传输按照功能部件可分为:

光纤:光传输介质,简单的说,就是一根玻璃纤维,用于约束光传输的通道。

光模块:将电信号与光信号互转的器件,产生光信号。

串口电缆在WANWide Area Network,广域网)中大规模使用,根据WAN线路类型不同,串口电缆在设备上连接的接口类型也不同:异/同步串口、ATM接口、POS接口、CE1/PRI接口等。

无线信号的传输可以通过电磁波进行,例如:无线路由器将数据通过调制以电磁波发送出去,移动终端的无线网卡将电磁波解调,得到数据,完成从无线路由器到移动终端的数据传输。

四、封装与解封装

1.PDUProtocol Data Unit协议数据单元:指对等层次之间传递的数据单位。

2.各层的设备

重点掌握:

路由器(Router):是连接两个或多个网络的硬件设备,在网络间起网关的作用。

交换机(Switch)意为“开关”是一种用于电(光)信号转发的网络设备。它可以为接入交换机的任意两个网络节点提供独享的电信号通路。最常见的交换机是以太网交换机。

3.数据通信过程

华为HCIA-Datacom全套学习视频课(理论+试验全配套)-学习视频教程-腾讯课堂

1)发送方数据封装

2)中间网络数据传输

一般情况下:

网络中的二层设备(如以太网交换机)只会解封装数据的二层头部,根据二层头部的信息进行相应的“交换”操作。

网络中的三层设备(如路由器)只会解封装到三层头部,并且根据三层头部的信息进行相应的“路由”操作。

3)接收方数据解封装

 

五、真题

1.OSI参考模型从高层到底层分别为()

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

B、应用层 会话层 表示层 传输层 网络层 数据链路层 物理层

C、应用层 表示层 会话层 网络层 传输层 数据链路层 物理层

D、应用层 表示层 会话层 传输层 网络层 数据链路层 物理层

试题答案:D

试题解析:考察OSI七层模型:应用层 表示层 会话层 传输层 网络层 数据链路层 物理层,本题选D。

2.DNS协议的主要作用是()

A、域名解析

B、文件传输

C、远程接入

D、邮件传输协议

试题答案:A

试题解析:答案A为DNS的主要作用、答案B为FTP和TFTP的作用、答案C为telnet的作用、答案C为SMTP的作用。

 

3.关于OSI参考模型中网络层的功能说法正确的是?

A、在设备之间传输比特流规定了电平、速度和电缆针脚

B、OSI参考模型中最靠近用户的那一层,为应用程序提供网络服务

C、提供面向连接或非面向连接的数据传递以及进行重传前的差错检测

D、将比特组合成字节,再将字节组合成帧,使用链路层地址(以太网使用MAC地址)来访问介质,并进行差错检测

E、提供逻辑寻址,实现数据从源到目的地的转发

4.应用层数据经过数据链路层处理后称为?

A、segment

B、PDU

C、Frame

D、Packet

试题答案:[[‘C']]

试题解析:物理层的PDU为bit,数据链路层为frame,传输层为segment

传输层:segment 段 网络层 packet 包 数据链路层:帧 物理层:位Bit

5.Telnet基于TCP协议。

A、对

B、错

试题答案:A

试题解析:telnet是基于传输层的TCP协议工作的,其端口号为23,答案选对。

 

相关文章:

第一章:网络参考模型

一、专业术语 ISO---(International Organization for Standardization)国际标准化组织 OSI---(Open System Interconnection Reference Model)开放式系统互联通信参考模型 IEEE---(Institute of Electrical and Electronics Engi…...

extends in typescript

困惑 初学 ts 时,extends 让我很困惑:有时它代表 扩大 ,有时代表 缩小 。举几个例子说明: 例1: class Animal {} class Dog extends Animal {}这是 js 本身就有的 class 继承语法,很熟悉了。 Dog 是 An…...

如何找回回收站删除的文件

回收站作为删除文件后的临时存放点,只要我们是右键删除或者按delete删除的文件都会存放到这里,所以我们每次清理电脑后,都会清空回收站,这样可以让电脑保持流畅运行。但删除这个操作是很容易出错,很容易把某些重要的文…...

Git系列——Git部署及应用

下面从如下几个方面介绍下其部署及应用:Git服务器搭建Git客户端搭建Git常用命令Git服务器搭建Linux服务器搭建(Centos7.5):一、安装配置SSH(参考XXX)二、检查OS是否自带Git1、git-version //查询版本2、rpm -qa git //查询git详细信息3、yum -y remove x…...

Java多线程(二)--线程相关内容

1.创建线程的几种方式继承 Thread 类;public class MyThread extends Thread { Override public void run() {System.out.println(Thread.currentThread().getName() " run()方法正在执行..."); }实现 Runnable 接口;public class MyRunnable…...

CF1692E Binary Deque 题解

CF1692E Binary Deque 题解题目链接字面描述题面翻译题目描述输入格式输出格式样例 #1样例输入 #1样例输出 #1提示思路代码实现题目 链接 https://www.luogu.com.cn/problem/CF1692E 字面描述 题面翻译 有多组数据。 每组数据给出 nnn 个数,每个数为 000 或 1…...

rust方法和关联函数

Rust方法 在大多数面向对象的语言中都存在方法,方法一般和类关联在一起。在Rust中也是类似的,方法和对象总是一起出现。Rust的方法和结构体,枚举,特征一起使用。 定义方法 Rust使用关键字impl来定义方法,例如&#…...

深度学习如何训练出好的模型

深度学习在近年来得到了广泛的应用,从图像识别、语音识别到自然语言处理等领域都有了卓越的表现。但是,要训练出一个高效准确的深度学习模型并不容易。不仅需要有高质量的数据、合适的模型和足够的计算资源,还需要根据任务和数据的特点进行合…...

智慧教室系统--重点设备监控系统

随着教育信息化的不断发展,智慧教室已成为现代教育的重要组成部分。而智慧教室的设备管理和维护也变得越来越重要。一旦智慧教室的重要设备出现故障或异常,将会对教学活动产生不利影响,因此建立智慧教室重点设备监控系统是必要的。一、智慧教…...

Linux中断处理

目录 一、什么是中断 二、中断处理原理 三、中断接口 3.1 中断申请 3.2 中断释放 3.3 中断处理函数原型 四、按键驱动 一、什么是中断 一种硬件上的通知机制,用来通知CPU发生了某种需要立即处理的事件 分为: 1. 内部中断 CPU执行程序的过程中&am…...

python中安装gurobi和pycharm没有语法提示问题解决

安装gurobi第一步 :下载gurobi ( http://www.gurobi.com ) ,需要注册账号第二步、申请License注册如果可以通过校园网, 则直接生成。不能的话,通过网站,发邮件申请 http://www.gurobi.cn/NewsView1.Asp?id4第三、邮件…...

滤波算法:经典卡尔曼滤波

卡尔曼滤波实质上就是基于观测值以及估计值二者的数据对真实值进行估计的过程。预测步骤如图1所示: ​图1 卡尔曼滤波原理流程图 假设我们能够得到被测物体的位置和速度的测量值 ​,在已知上一时刻的最优估计值 ​以及它的协方差矩阵 的条件下&#xff…...

flask框架(下)

文章目录flask框架(下)werkzeug简介请求上下文flask 处理方案回到 wsgi_app 方法中push 源码总结补充flask框架(下) werkzeug简介 Werkzeug是一个WSGI工具包,他可以作为一个Web框架的底层库。这里稍微说一下, werkzeug 不是一个web服务器,也…...

Airbyte架构

作为一款技术复杂的数据集成管道,Airbyte的架构模式非常清晰明了。Airbyte应用模式Airbyte管道架构UI:一个易于使用的图形界面,用于与Airbyte API进行交互。WebApp Server:处理 UI 和 API 之间的连接。Config Store:存…...

anchor box只是先验知识,bounding box是一种过程,ground truth才是标准答案,

anchor boxes是一组提前预定义的边框,这些框的宽高和数据集中目标物体的宽高大体是一致的,换句话说,数据集中的绝大多数物体都能找到与其大小一致的anchor box。 举例来说,如果数据集中包含苹果、猫,那么这组anchor bo…...

带你轻松实现通讯录(C语言版)

文章目录前言通讯录初始化通讯录运行的基本框架和菜单增添联系人删除联系人查找联系人修改联系人信息展示通讯录通讯录联系人个数排序通讯录文件操作储存通讯录信息销毁通讯录整体代码Contacts.hContacts.ctest.c写在最后前言 学习C语言的小伙伴,相信都要经历实现通…...

渗透测试之交换式网络嗅探实验

渗透测试之交换式网络嗅探实验实验目的一、实验原理1.1 网络嗅探器Sniffer的工作原理1.2 网络嗅探器的分类1.3 网络嗅探器Sniffer的作用二、实验环境2.1 操作机器2.2 实验工具Sniffer2.3 安装工具Sniffer三、实验步骤1. 熟悉Sniffer工具的启动2. 进行监听3. 熟悉Sniffer工具的介…...

rust 安装

rust 安装一、需要一个c的环境二、配置环境变量三、开始安装一、需要一个c的环境 安装Visual Studio 二、配置环境变量 Rust需要安装两个东西,一个是rustup,一个是cargo。所以你需要设置两个环境变量来分别指定他们的安装目录。 通过RUSTUP_HOME指定…...

机器学习和深度学习综述

机器学习和深度学习综述 1. 人工智能、机器学习、深度学习的关系 近些年人工智能、机器学习和深度学习的概念十分火热,但很多从业者却很难说清它们之间的关系,外行人更是雾里看花。在研究深度学习之前,先从三个概念的正本清源开始。概括来说…...

SQL零基础入门学习(八)

SQL零基础入门学习(七) SQL 连接(JOIN) SQL join 用于把来自两个或多个表的行结合起来。 下图展示了 LEFT JOIN、RIGHT JOIN、INNER JOIN、OUTER JOIN 相关的 7 种用法。 SQL JOIN SQL JOIN 子句用于把来自两个或多个表的行结合起来,基…...

若依系统如何集成qq邮件发送【超详细,建议收藏】

若依系统的部署博主就不在这儿阐述了,默认大家的电脑已经部署好了若依系统,这里直接开始集成邮件系统,首先我们得需要对qq邮箱进行配置;一套学不会你来打我😀; 一、开启我们的qq邮箱发送邮件的配置 1、先进…...

前端-CSS-zxst

CSS 层叠样式表,为了定义HTML标签的样式 内联样式 在标签内部通过 style 属性设置样式值样式名:样式值;样式名:样式值; 内部样式 在 head 标签内通过 style 标签选择器设置样式,供这个网页上的元素使用 外部样式 在 head 标签内通过 link 标签引入外部…...

合宙Air105|fonts库|mcu.ticks()|LuatOS-SOC接口|官方demo|学习(19):fonts库

基础资料 基于Air105开发板:Air105 - LuatOS 文档 上手:开发上手 - LuatOS 文档 探讨重点 官方fonts库函数介绍以及利用mcu.ticks()计算程序运行周期相关内容的学习及探讨。 软件版本 AIR105:LuatOSAIR105 base 22.12 bsp V0014 32bit …...

成都欢蓬电商:抖音直播卖药灰度测试通告

据报道,近日有MCN机构透露,目前抖音直播卖药为“测试项目,谨慎试跑中”; “仍处于灰度测试,至于测试多久,抖音官方确实没有答复,需要看第一阶段数据,然后定夺,预计4月份会纳入更多机…...

1.1计算机和编成语言

一、C 语言简介历史C 语言最初是作为 Unix 系统的开发工具而发明的。1969年,美国贝尔实验室的肯汤普森(Ken Thompson)与丹尼斯里奇(Dennis Ritchie)一起开发了Unix 操作系统。Unix 是用汇编语言写的,无法移…...

解析 xml 文件 - xml.etree ElementTree

目录1、导入模块 →\rightarrow→ 读取文件 →\rightarrow→ 获取根节点 →\rightarrow→ 获取根节点的标签与属性2、遍历一级子节点、获取子节点的标签 与 属性3、通过索引 获取数据4、Element.findall()、Element.find() - 按照 tag 值查找 子节点5、Element.iter() - 循环迭…...

LeetCode Cookbook 哈希表(collections.Counter()和collections.defaultdict())

好久不更了,这次一鼓作气,学完它! 文章目录LeetCode Cookbook 哈希表30. 串联所有单词的子串36. 有效的数独(很不错的循环题目)49. 字母异位词分组290. 单词规律447. 回旋镖的数量575. 分糖果594. 最长和谐子序列599. …...

spring boot项目中i18n和META-INF.spring下的文件的作用

目录标题一、resource下的文件二、i18n下messages_zh_CN.properties三、spring.factories文件四、org.springframework.boot.autoconfigure.AutoConfiguration.imports一、resource下的文件 org.springframework.boot.autoconfigure.AutoConfiguration.imports ; - …...

3年自动化测试经验,面试连20K都拿不到,现在都这么卷了吗····

我的情况 大概介绍一下个人情况,女,本科,三年多测试工作经验,懂python,会写脚本,会selenium,会性能,会自动化,然而到今天都没有收到一份offer!从2022年11月1…...

Python数据结构与算法篇(四)-- 链表的实现

实现线性表的另一种常用方式就是基于链接结构,用链接关系显式表示元素之间的顺序关联。基于链接技术实现的线性表称为链接表或者链表。 采用链接方式实现线性表的基本想法如下: 把表中的元素分别存储在一批独立的存储块(称为表的结点)里。保…...