计算机网络与通信复习
- 因特网的核心部分(电路交换与分组交换的不同点,分组交换的优点)
核心部分:路由器、交换机
我们假如数据就是一个货物,比如说一千公斤的大米,电路交换要有专用通道,不管从起点到终点经过多少个中转站(中间设备),这个实体的链路要搭建并预留起来,然后所有的数据都沿着这一条链路传输,传输之后再把链路逐段拆除掉供其他的传输使用
分组交换是把数据分成若干等分,每一份数据都有着自己的目的地址,自己走自己的路,在接收端再进行拼接
不同点:
1.连接方式:电路交换是建立起一条专用通路,分组交换则是分组的存储转发
2.传输效率:电路交换传输速率稳定但可能会造成资源浪费,分组交换线路利用率高,但会有一定的存储和处理开销
3.数据延迟:电路交换数据传输延迟小,分组交换会产生一定的延迟,尤其是当网络堵塞,延迟加大
4.可靠性:电路交换比分组交换的数据传输更加可靠,但分组交换具有较好的容错性
- 几种不同类别的网络
计算机网络是计算机的集合,网络按照不同的分类标准可以划分为不同的网络
根据覆盖范围来分,可以分为广域网(WAN)、城域网(MAN)、局域网(LAN)和个人区域网(PAN)
按照传输介质可以分为有线网、无线网 按照网络的使用权限可以分为公用网和专用网
- 计算机网络的性能指标(速率kb,mb,gb,时延—发送时延—传播时延)
网络的速率有2种,发送速率(发送速率的最大值即网络带宽)和传播速率,所以传输的时间也分为两种:发送t(把数据从计算机传到网络上,计算方法是发送的总数据量/发送速率)和传播t(计算方法是距离/传播速率)
我们说,一个建立好的网络,通常它的传播时间就是相对固定的了 拿光纤举例,光纤有多长除以无线电波在介质中传播的速率 ,
需要注意的问题是计算时量纲的转换,速率中的1k是1000,数据量中的1k指1024
- 具有五层协议的体系结构
每一层做什么,他起到的是什么作用?体系结构也是我们考察的重点
物理层(解决的是通信最基本的问题-->传输介质,即信号的电气/电压特性怎么变成的0/1)、数据链路层(0/1组合比特串在局域网内部传输)、网络层(跨局域网上的数据传输)、运输层(一个主机到另一个主机两个程序之间的通信)、应用层(在网络上的各种的程序共用的协议:超文本传输协议、电子邮件协议、域名解析协议、远程登录协议等)
第二章 物理层
- 有关信道的几个基本概念
数据通信的基本概念:
通信的模型:发送方(信源)-->信道-->信宿(接收方)
通信的方式分为单工、半双工、全双工(要理解其概念)
传输媒介分为导向传输(有线)和非导向传输(无线)
- 为什么要使用信道复用技术?常用的信道复用技术有哪些?
多个用户在一个信道上传输数据,共用一个信道,这个时候我们就提到了信道复用技术,每一个用户占用不同的频率叫做频分复用,不同的用户占用不同的时间叫做时分复用,根据用户使用时间的多少动态的调整用户分配的时间叫做统计时分复用
- 码分复用(CDMA)重点
如果是采用光纤进行传输的话,那么光的频分复用我们叫做波分复用,每一个站点分配独立的码片,在接收端进行拆分叫做码分复用,每一个终端分配的一个码片就是一个向量,A B C D 这么多站点,它要是想发送1就发送这个向量本身,想发送0就发送这个向量的反码(每个分量负一变正一、正一变负一)
接收端收到的一定是一个线性叠加的结果,首先在收到一个序列之后,我们要用收到的这个序列和相应的站点作内积运算:把两个向量按位相乘然后结果相加,最后做一个归一化处理(除以分量的个数) 如果结果是正一说明该站点发送的是1,如果结果是负一,说明他发送的是0,如果结果是0,说明该站点没发送数据
第三章 数据链路层
任何两个传播设备之间没有其他的结点就叫做链路 传输的最基本单元是数据帧
把0/1用首部和尾部封装起来,中间部分可以包含任何字符在传输的过程中在尾部放上校验序列
- 三个基本问题((1) 封装成帧--首部和尾部(2) 透明传输—字节和字符填充(3) 差错校验--循环冗余检验)
分别解决的是传输什么?怎么传输?传错了怎么办?的问题
链路层的协议很多,有以太网的碰撞检测协议(点对点pp协议)
- 局域网的数据链路层(适配器的作用)
局域网传输的一个重要设备网卡(适配器)的作用
进行计算机的并行和网络传输串行的转换,对数据进行发送端和接收端对数据进行缓存,并且实现链路层的局域保护协议
每一个网卡都有四十八位的物理地址 在链路层通信使的就是物理地址,网络层使用的是ip地址 可以通过ARP协议将IP地址转为MAC地址
- 扩展的以太网( 在物理层扩展以太网(集线器)在数据链路层扩展以太网(网桥))
局域网的规模拓展有两种方式,一种是物理层的集线器(hub),一种是链路层的交换机(最简单的就是网桥)
集线器交换机和二者的区别?一个是物理层设备,一个是链路层设备
集线器只是把信号集中在一起,所以它会产生广播风暴,多用户放一起会进行信道的征用,出现碰撞传输,连接在集线器上的多个站点共享带宽,而交换机不会,它工作在链路层,支持多端口,可以进行无碰撞传输,它是所有的站点都独享所有的带宽
- 链路层 差错检验冗余校验 CRC(核心思想是多项式除法(模2除法操作,即异或操作(相同为0,不同为1)),得到一个较短的校验值,接收方利用这个校验值来检查数据是否完整或被篡改)
给你一个序列和生成多项式,如何进行校验呢?首先看多项式有多少位?(生成多项式的位数-1)
自学习算法 形成转发表 考察重点
第四章 网络层(重点、超一半的习题都出自本章)
- 网络层提供的两种服务(数据报服务是重点—分组交换)
一种是虚电路服务,另一种是数据报服务(类似于我们的分组交换),它的优点是什么?和虚电路有什么区别?
- 分类的 IP 地址(网络部分与主机部分,辨认IP 地址的网络类别)
网络层知道对方的ip地址之后如何根据ip地址获得对应的对方的物理地址,然后在链路层上使用物理地址经局域网通信
A类ip地址的范围是1.0.0.0至127.255.255.255 B类ip地址的范围是128.0.0.0至191.255.255.255
C类ip地址的范围是192.0.0.0至223.255.255.255
- 地址解析协议 ARP(将IP地址解析为物理地址)
- IP 层转发分组的流程?
- 利用ip地址划分子网构造超网(IP地址 ::= {网络号>, 子网号>, 主机号>} )ip地址和子网掩码作与运算,得到的就是网络地址
- 使用子网时分组转发 拿着ip地址和对应的子网掩码作与运算,看能不能得到目标ip,转发给下一跳的路由器地址(例4.20必考)
- 无分类编址 CIDR(构造超网) 网络前缀表示法 不给子网掩码 给的是网络前缀的数量 前面是网络部分、后面是主机部分 /8代表的子网掩码是255.0.0.0 代表网络地址前8位都是1
有了前缀之后进行分组转发 路由器中很多网络前缀都符合 谁的前缀长,路由器就交给谁 最长前缀表示法
常用的网络命令
网络可查性命令故障诊断用的是icp协议,就是ping命令 查看ip地址用的是ipconfig
查看一个ip地址的物理地址用的是ARP协议地址解析
- 网际控制报文协议 ICMP
- 内部网关协议 RIP 路由向量协议 OSPF(开放式最短路径协议) rip(是一个简化的协议,它的优缺点分别是什么?)
- 虚拟专用网 VPN 和网络地址转换 NAT(了解其作用)
VPN解决的是公网上的私密数据传输(虚拟加密)
网络地址转换 利用一个公网地址如何实现多个内网地址的通信
一个网络 共享网络前缀
第五章 运输层
- 运输层协议概述(运输层的作用)
发送窗口大小取值取决于接收窗口大小和拥塞窗口大小的最小值
- 运输层的两个主要协议(TCP和UDP协议的主要区别)
UDP协议首部有8个字节 固定首部有20个
- 可靠传输的工作原理 停止等待、滑动窗口
- 连续 ARQ 协议
- TCP 可靠传输的实现
- 以字节为单位的滑动窗口
- TCP的流量控制
- TCP 的拥塞控制
TCP流量控制和拥塞控制的基本原理 满开始快重传快恢复 拥塞情况下的信号传输是一个不均匀的数据传输
TCP三次握手 四次挥手 为什么采用这种机制?
网络空间安全
数据加密(对称加密和非对称加密(公钥加密)) 数据的完整性(MD5 3列算法 一个数据小的改变会导致摘要发生巨大的改变 )
利用公钥加密实现数字签名 数字签名得作用是什么?
数字签名的作用:验证数据来源、确保数据完整性、不可否认性
使用数字签名和加密传输可以实现安全套接字协议(SSL)
应用层
域名解析 ens 作用是什么 电子邮件服务 哪些协议 什么端口
电子邮件服务涉及多个协议,每个协议有不同的作用和端口:
- SMTP (Simple Mail Transfer Protocol):
-
- 作用:负责发送电子邮件。
- 端口:25(默认端口,现代网络中为了防止滥用,通常会使用 587 或 465)。
- POP3 (Post Office Protocol 3):
-
- 作用:用于从邮件服务器下载邮件到本地。
- 端口:110(默认端口)。
- IMAP (Internet Message Access Protocol):
-
- 作用:允许客户端访问和管理服务器上的邮件,支持邮件的多端同步。
- 端口:143(默认端口)。
问答题
- 适配器的重要功能:
网络接口板又称为通信适配器(adapter)或网络接口卡 NIC (Network Interface Card),或“网卡”。
功能包括进行串行/并行转换、对数据进行缓存、在计算机的操作系统安装设备驱动程序以及实现以太网协议。
- 以太网交换机有何特点?它与集线器有何区别?
答:以太网交换机实质上是一个多端口网桥。工作在数据链路层。
以太网交换机的每个端口都直接与一个单个主机或另一个集线器相连,并且一般工作在全双工方式。
交换机能同时连通许多对的端口,使每一对相互通信的主机都能像独占通信媒体一样,进行无碰撞地传输数据。通信完成后就断开连接。
区别:以太网交换机工作数据链路层,集线器工作在物理层。集线器只对端口上进来的比特流进行复制转发,不能支持多端口的并发连接。
- 数据链路层的三个基本问题(帧定界、透明传输和差错检测)为什么都必须加以解决?
答: 帧定界使收方能从收到的比特流中准确地区分出一个帧的开始和结束在什么地方;
透明传输使得不管所传数据是什么样的比特组合,都应当能够在链路上传送,因此很重
要;差错控制主要包括差错检测和差错纠正,旨在降低传输的比特差错率,因此也必须解决
- IP地址 ::= {网络前缀>, 主机号>}
128.14.32.0/20表示的地址块共有 212 个地址(因为斜线后面的 20 是网络前缀的位数,所以这个地址的主机号是 12 位) CIDR:网络前缀+主机号
CIDR记法:即在 IP 地址面加上一个斜线“/”,然后写上网络前缀所占的位数(128.14.32.0/20 )
给出一个CIDR地址,可以知道什么? 分组转发的最长前缀匹配原则
- 仅和相邻路由器交换信息 交换的信息是当前本路由器所知道的全部信息,即自己的路由表。
按固定的时间间隔交换路由信息,例如,每隔 30 秒。 距离向量算法
- 几种拥塞控制方法(1. 慢开始和拥塞避免 作业)
在TCP 的拥塞控制中,什么是慢开始、拥塞避免、快重传和快恢复算法?这里每一种算法各起什么作用? “乘法减小”和“加法增大”各用在什么情况下?
- 试说明运输层在协议栈中的地位和作用,运输层的通信和网络层的通信有什么重要区别?为什么运输层是必不可少的?
答:运输层处于面向通信部分的最高层,同时也是用户功能中的最低层,向它上面的应用层提供服务
运输层为应用进程之间提供端到端的逻辑通信,但网络层是为主机之间提供逻辑通信(面向主机,承担路由功能,即主机寻址及有效的分组交换)。各种应用进程之间通信需要“可靠或尽力而为”的两类服务质量,必须由运输层以复用和分用的形式加载到网络层。
- 简述TCP和UDP协议的主要区别
答:UDP 在传送数据之前不需要先建立连接。对方的运输层在收到 UDP 报文后,不需要给出任何确认。虽然 UDP 不提供可靠交付,但在某些情况下 UDP 是一种最有效的工作方式。
TCP 则提供面向连接的服务。TCP 不提供广播或多播服务。由于 TCP 要提供可靠的、面向连接的运输服务,因此不可避免地增加了许多的开销。这不仅使协议数据单元的首部增大很多,还要占用许多的处理机资源。
- 试用具体例子说明为什么在运输连接建立时要使用三次握手。说明如不这样做可能会出现什么情况
答:3 次握手完成两个重要的功能,既要双方做好发送数据的准备工作(双方都知道彼此已准备好),也要允许双方就初始序列号进行协商,这个序列号在握手过程中被发送和确认。假定B 给A 发送一个连接请求分组,A 收到了这个分组,并发送了确认应答分组。按照两次握手的协定,A 认为连接已经成功地建立了,可以开始发送数据分组。可是,B 在A 的应答分组在传输中被丢失的情况下,将不知道A 是否已准备好,不知道A 建议什么样的序列号,B 甚至怀疑A 是否收到自己的连接请求分组,在这种情况下,B 认为连接还未建立成功,将忽略A 发来的任何数据分组,只等待连接确认应答分组。而A 发出的分组超时后,重复发送同样的分组。这样就形成了死锁。
相关文章:
计算机网络与通信复习
因特网的核心部分(电路交换与分组交换的不同点,分组交换的优点) 核心部分:路由器、交换机 我们假如数据就是一个货物,比如说一千公斤的大米,电路交换要有专用通道,不管从起点到终点经过多少个…...

【Scala】图书项目系统代码演练3.1/BookService
package org.app package serviceimport models.{BookModel, BorrowRecordModel}import org.app.dao.{BookDAO, BorrowRecordDAO}import java.time.LocalDateTime import scala.collection.mutable.ListBuffer// 图书业务逻辑层 class BookService {private val bookDAO new B…...

人工智能基础软件-Jupyter Notebook
简介: Jupyter Notebook是基于网页的用于交互计算的应用程序。其可被应用于全过程计算:开发、文档编写、运行代码和展示结果。 Jupyter Notebook是以网页的形式打开,可以在网页页面中直接编写代码和运行代码,代码的运行结果也会直…...
C++ 设计模式:模板方法(Template Method)
链接:C 设计模式 链接:C 设计模式 - 策略模式 链接:C 设计模式 - 观察者模式 模板方法(Template Method)是一种行为设计模式,它定义了一个操作中的算法的骨架,而将一些步骤延迟到子类中。通过这…...
GDPU Vue前端框架开发 跨年大礼包
目录 选择题 填空题 简答题 记住,年底陪你跨年的不会仅是方便面跟你的闺蜜,还有孑的笔记。 选择题 1.下列选项用于设置Vue.js页面视图的元素是()。 A. Template B. script C. style D. title 2.下列选项中能够定义Vuejs根…...
搭建一个高效且安全的APP分发平台
搭建一个高效且安全的APP分发平台需要经历一系列精心规划和实施的步骤。以下是一个详细的指南,涵盖从准备阶段到后续维护阶段的各个环节: 一、准备阶段 明确目标与需求 确定平台的目标用户群体,了解他们的需求和偏好。分析竞争对手的分发平台…...

Leetcode打卡:二叉树中的链表
执行结果:通过 题目 1367 二叉树中的链表 给你一棵以 root 为根的二叉树和一个 head 为第一个节点的链表。 如果在二叉树中,存在一条一直向下的路径,且每个点的数值恰好一一对应以 head 为首的链表中每个节点的值,那么请你返回 …...

大数据技术-Hadoop(四)Yarn的介绍与使用
目录 一、Yarn 基本结构 1、Yarn基本结构 2、Yarn的工作机制 二、Yarn常用的命令 三、调度器 1、Capacity Scheduler(容量调度器) 1.1、特点 1.2、配置 1.2.1、yarn-site.xml 1.2.2、capacity-scheduler.xml 1.3、重启yarn、刷新队列 测试 向hi…...

算法 class 004(选择,冒泡,插入)
选择排序: 刚进入 j 循环的样子 j 跳出循环后,b 指向最小值的坐标 然后交换 i 和 b 位置的 值 随后 i , b i , i j1; 开始新一轮的排序, void SelectAQort(int* arr,int size)//选择排序 {for (int i 0; i < size-1; i){ //i 的位置就是…...
linux---awk命令详细教程
awk是一种强大的编程语言,用于在Linux/Unix系统下对文本和数据进行处理。以下是对awk的详细教程: 一、awk简介 awk由Alfred Aho、Brian Kernighan和Peter Weinberger三人开发,其名称分别代表这三位作者姓氏的第一个字母。awk支持用户自定义…...

一个通用的居于 OAuth2的API集成方案
在现代 web 应用程序中,OAuth 协议是授权和认证的主流选择。为了与多个授权提供商进行无缝对接,我们需要一个易于扩展和维护的 OAuth 解决方案。本文将介绍如何构建一个灵活的、支持多提供商的 OAuth 系统,包括动态 API 调用、路径参数替换、…...

STM32配合可编程加密芯片SMEC88ST的防抄板加密方案设计
SMEC88ST SDK开发包下载 目前市场上很多嵌入式产品方案都是可以破解复制的,主要是因为方案主芯片不具备防破解的功能,这就导致开发者投入大量精力、财力开发的新产品一上市就被别人复制,到市场上的只能以价格竞争,最后工厂复制的产…...

QML学习(五) 做出第一个简单的应用程序
通过前面四篇对QML已经有了基本的了解,今天先尝试做出第一个单页面的桌面应用程序。 1.首先打开Qt,创建项目,选择“QtQuick Application - Empty” 空工程。 2.设置项目名称和项目代码存储路径 3.这里要注意选择你的编译器类型,以及输出的程…...
深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制
深入解析Android Framework中的android.location包:架构设计、设计模式与系统定制 目录 引言android.location包概述核心类解析 LocationManagerLocationProviderLocationCriteriaGpsStatusGpsStatus.ListenerLocationListener位置服务的工作原理位置信息的获取与处理GPS状态…...

【C++11】类型分类、引用折叠、完美转发
目录 一、类型分类 二、引用折叠 三、完美转发 一、类型分类 C11以后,进一步对类型进行了划分,右值被划分纯右值(pure value,简称prvalue)和将亡值 (expiring value,简称xvalue)。 纯右值是指那些字面值常量或求值结果相当于…...

mongodb(6.0.15)安装注意事项,重装系统后数据恢复
window10系统 上周重装了系统,环境变量之类的都没有了。现在要恢复。 我电脑里之前的安装包没有删除(虽然之前也没在C盘安装,但是找不到了,所以需要重新下载安装),长下图这样。这个不是最新版本࿰…...
union的实际使用
记录一下,免得忘记: 1、定义一个共用体变量 这里定义一个64位变量 i2creg_rev,然后通过共用体定义两个位变量bits和bits_reverse,通过bit可以访问指定位的值大小,不需要自己再左移右移转换。 bits_reverse是bits的对…...

EKF 自动匹配维度 MATLAB代码
该 M A T L A B MATLAB MATLAB代码实现了扩展卡尔曼滤波( E...
Oracle复合索引规则指南
在Oracle中可以创建组合索引,即同时包含两个或两个以上列的索引。在组合索引的使用方面,Oracle有以下特点: 1、 当使用基于规则的优化器(RBO)时,只有当组合索引的前导列出现在SQL语句的where子句中时&#…...
JS - Array Api
判断一个对象是否为数组 /* 语法: Array.isArray(object); 参数:object 必需,要测试的对象。返回值 如果 object 是数组,则为 true;否则为 false。 如果 object 参数不是对象,则返回 false。 */ 一、改…...

接口测试中缓存处理策略
在接口测试中,缓存处理策略是一个关键环节,直接影响测试结果的准确性和可靠性。合理的缓存处理策略能够确保测试环境的一致性,避免因缓存数据导致的测试偏差。以下是接口测试中常见的缓存处理策略及其详细说明: 一、缓存处理的核…...
Java 8 Stream API 入门到实践详解
一、告别 for 循环! 传统痛点: Java 8 之前,集合操作离不开冗长的 for 循环和匿名类。例如,过滤列表中的偶数: List<Integer> list Arrays.asList(1, 2, 3, 4, 5); List<Integer> evens new ArrayList…...

23-Oracle 23 ai 区块链表(Blockchain Table)
小伙伴有没有在金融强合规的领域中遇见,必须要保持数据不可变,管理员都无法修改和留痕的要求。比如医疗的电子病历中,影像检查检验结果不可篡改行的,药品追溯过程中数据只可插入无法删除的特性需求;登录日志、修改日志…...
c++ 面试题(1)-----深度优先搜索(DFS)实现
操作系统:ubuntu22.04 IDE:Visual Studio Code 编程语言:C11 题目描述 地上有一个 m 行 n 列的方格,从坐标 [0,0] 起始。一个机器人可以从某一格移动到上下左右四个格子,但不能进入行坐标和列坐标的数位之和大于 k 的格子。 例…...
Frozen-Flask :将 Flask 应用“冻结”为静态文件
Frozen-Flask 是一个用于将 Flask 应用“冻结”为静态文件的 Python 扩展。它的核心用途是:将一个 Flask Web 应用生成成纯静态 HTML 文件,从而可以部署到静态网站托管服务上,如 GitHub Pages、Netlify 或任何支持静态文件的网站服务器。 &am…...
linux 错误码总结
1,错误码的概念与作用 在Linux系统中,错误码是系统调用或库函数在执行失败时返回的特定数值,用于指示具体的错误类型。这些错误码通过全局变量errno来存储和传递,errno由操作系统维护,保存最近一次发生的错误信息。值得注意的是,errno的值在每次系统调用或函数调用失败时…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...
实现弹窗随键盘上移居中
实现弹窗随键盘上移的核心思路 在Android中,可以通过监听键盘的显示和隐藏事件,动态调整弹窗的位置。关键点在于获取键盘高度,并计算剩余屏幕空间以重新定位弹窗。 // 在Activity或Fragment中设置键盘监听 val rootView findViewById<V…...

[ACTF2020 新生赛]Include 1(php://filter伪协议)
题目 做法 启动靶机,点进去 点进去 查看URL,有 ?fileflag.php说明存在文件包含,原理是php://filter 协议 当它与包含函数结合时,php://filter流会被当作php文件执行。 用php://filter加编码,能让PHP把文件内容…...

Qemu arm操作系统开发环境
使用qemu虚拟arm硬件比较合适。 步骤如下: 安装qemu apt install qemu-system安装aarch64-none-elf-gcc 需要手动下载,下载地址:https://developer.arm.com/-/media/Files/downloads/gnu/13.2.rel1/binrel/arm-gnu-toolchain-13.2.rel1-x…...