考研复试专业问题(网络、编译、数据结构、语言等)

TCP (传输控制协议)与UDP(用户数据报协议)的区别

  1. tcp是面向连接的,UDP是无连接的

  2. TCP 是可靠交付的,UDP是尽最大努力交付的(就是说不可靠交付

  3. TCP 是面向字节流的,UDP 面向报文的

  4. TCP 是点对点传输的,UDP可以点对点、点对多点,进行传输就是说UDP可以进行广播,TCP不可以

  5. TCP 有拥塞控制、UDP没有

  6. TCP 开销大、UDP开销小

五层协议

  1. 应用层:提供用户接口和服务支持,允许用户访问网络资源。(单位报文)

  2. 传输层:提供端点之间可靠、透明的数据传递,提供端到端的差错恢复和流控制

  3. 网络层:为主机间提供数据传输服务,把运输层传递下来的报文段或者用户数据报封装成分组。

  4. 数据链路层:位组成帧,提供节点到节点之间的信息传送,能够进行差错校验,但是不纠错,检测出错误就丢掉该帧。(单位是帧)

  5. 物理层:确定与传输媒体接口有关的特性,主要有机械特性、电气特性、功能特性和过程特性。(单位比特)

服务与协议的区别

  • 服务:下层为紧邻的上层提供的功能调用,垂直的。

  • 协议:控制两个或多个对等实体进行通信的规则的集合,是水平的,(区别于服务是垂直的)不对等实体之间没有协议,网络协议也简称为协议。

    协议组成:

    • 语法:传输数据的格式

    • 语义:所要完成的功能,需要发出何种控制信息、完成何种动作及做出何种应答

    • 同步:规定的执行各种操作的条件、时序关系等,及事件实现顺序的详细说明

数据报虚电路比较

数据报服务 虚电路服务
连接的建立 不需要 必须有
目的地址 每个分组都有完整的目的地址 仅在建立连接使用,之后每个分组使用长度较短的虚电路号
路由选择 每个分组独立进行路由选择和转发 属于同一条虚电路的分组按照同一路由转发
分组顺序 不保证分组的有序到达 保证分组的有序到达
可靠性 不保证可靠通信,由用户主机保证 由网络保证
对网络故障的适用性 出故障的结点丢失分组,其他分组路径选择发生变化时可以正常传输 所有经过故障结点的虚电路均不能正常工作
差错控制和流量控制 用户主机流量控制,不保证数据报可靠性 可由分组交换网负责,也可由主机负责

CSMA/CD与CSMA/CA区别

  • CSMA/CD(载波侦听多路访问/冲突检测)

    原理:先听后发,边发边听,冲突停发,随机延迟后重发

    CSMA/CA(载波侦听多路访问/冲突避免。)

(1)

  • CSMA/CD可以检测冲突,但无法避免;

  • CSMA/CA发送包的同时不能检测到信道上有无冲突,本结点处没有冲突并不意味着在接收结点就没有冲突,只能尽量避免。

(2) 传输介质不同。

  • CSMA/CD用于总线形以太网,
  • CSMA/CA采用无线局域网

(3) 检测方式不同。

  • CSMA/CD通过电缆中的电压变化来检测,
  • CSMA/CA采用能量检测、载波检测和能量载波混合检测三种检测信道空闲的方式

(4) 本结点处有(无)冲突并不意味着在接收结点就有(无)冲突

总结:

CSMA/CA协议是在发送数据时先广播告知其他结点,让其他结点在某段时间内不要发送数据,以免出现碰撞。

CSMA/CD协议发送前侦听,边发送边侦听,一旦出现碰撞马上停止发送

哈弗曼树的应用

哈夫曼树应用于通讯及数据传送中对信息的二进制编码。

哈夫曼树是一类带权路径最短的树。构造这种树的算法最早由哈夫曼提出,这种树在信息检索中很有用。如用于通讯及数据传送中构造传输效率最高的二进制编码(哈夫曼编码),用于编程中构造平均执行时间最短的最佳判断过程。

在计算机数据处理中,哈夫曼编码使用变长编码表对源符号(如文件中的一个字母)进行编码,其中变长编码表是通过一种评估来源符号出现机率的方法得到的,出现机率高的字母使用较短的编码,反之出现机率低的则使用较长的编码,这便使编码之后的字符串的平均长度、期望值降低,从而达到无损压缩数据的目的。

为什么需要流量控制?

双方在通信的时候,发送方的速率与接收方的速率是不一定相等,如果发送方的发送速率太快,会导致接收方处理不过来,这时候接收方只能把处理不过来的数据存在缓存区里(失序的数据包也会被存放在缓存区里)。

如果缓存区满了,接收方只能把收到的数据包丢掉,大量的丢包会极大着浪费网络资源。因此,我们需要控制发送方的发送速率,让接收方与发送方处于一种动态平衡才好。对发送方发送速率的控制,我们称之为流量控制。

接收方每次收到数据包,可以在发送确定报文的时候,同时告诉发送方自己的缓存区还剩余多少是空闲的。发送方收到之后,便会调整自己的发送速率,也就是调整自己发送窗口的大小,当发送方收到接收窗口的大小为0时,发送方就会停止发送数据,防止出现大量丢包情况的发生。并且同时开启一个定时器,每隔一段时间就发个测试报文去询问接收方,打听是否可以继续发送数据了,如果可以,接收方就告诉他此时接受窗口的大小;如果接受窗口大小还是为0,则发送方再次刷新启动定时器。

为何要进行拥塞控制?

两台主机在传输数据包的时候,如果发送方迟迟没有收到接收方反馈的ACK,那么发送方就会认为它发送的数据包丢失了,进而会重新传输这个丢失的数据包。然而实际情况有可能此时有太多主机正在使用信道资源,导致网络拥塞了。重传数据浪费了资源,所以要进行拥塞控制。发送发不知道一次发多少数据合适,所以设置一个拥塞窗口。

拥塞控制

TCP拥塞控制原理:慢启动、拥塞避免、快重传、快启动 原创

确定拥塞窗口:我们也把指数增长阶段称之为慢启动,线性增长阶段称之为拥塞避免

当A连续收到了三个确认的ACK,且超时事件还没发生。A就知道数据可能丢失了,这个时候A就不必等待M3设置的计时器到期了,而是快速重传M3。并且把ssthresh设置为MAX的一半,即ssthresh = MAX/2,但是这个时候并非把控制窗口N设置为1,而是让N = ssthresh,N在一个一个增长。我们也把这种情况称之为快速恢复。

HTTP

HTTP是HyperText Transfer Protocol的缩写,中文翻译为超文本传输协议。他是一种用于分布式、协作式和超媒体信息系统的应用层协议。HTTP是万维网的数据通信的基础。

说的简单点,其实HTTP协议主要就是用来进行客户端和服务器之间进行通信的标准协
HTTP主要规定了客户端如何与服务器建立链接、客户端如何从服务器请求数据、服务器如何响应请求,以及最后连接如何关闭。

HTTPS

HTTPS是Hypertext Transfer Protocol Secure的缩写,翻译为超文本传输安全协议。HTTPS经由HTTP进行通信,但利用SSL/TLS来加密数据包。

HTTP的URL是由“http://”起始与默认使用端口80,而HTTPS的URL则是由“https://”起始与默认使用端口443。

差错控制

差错控制是通信两结点之间约定的特定检错规则,如奇偶校验吗,接收方根据这个规则检查接收到的分组是否出现差错,如果出现了差错,那么能纠错就纠错,不能纠错就丢弃,确保向上层提交的数据都是无误的。

差错控制:用以使发送发确定接收方是否正确收到其发送的数据的方法称为差错控制。这些错误可分为位错和帧错。

位错:帧中某些位出现了差错。通常采用循环冗余校验(CRC),通过自动重传请求(ARQ)方式来重传出错的帧。

帧错:指帧的丢失、重复或失序等错误,在数据链路层引入定时器和编号机制,能保证。

差错控制

传输过程中的差错都是由噪声控制的,两类噪声,一类是信道所固有的、连续存在的随机热噪声,可以通过提高噪声比来减少或避免干扰;另一类是由外界特定的短暂原因所造成的冲击噪声,不能通过提高噪声比来减少或避免干扰,是产生噪声的重要原因。

通常用编码技术进行差错控制,两类,自动重传请求(ARQ)和前向纠错。

另一种分类方式,检错编码和纠错编码。

检错编码

检错编码都采用冗余编码技术,核心思想在有效数据(信息位)被发送前,先按照某种关系附加一定的冗余位,构成一个符合某一规则的码字后再发送,常见的检错编码1有奇偶校验码和循环冗余码

奇偶校验码是奇校验和偶校验的统称,由n-1位信息元和1位校验元组成,如果是奇数验码,那么在附加一个校验元后,码长位n的码字中“1”的个数为奇数;如果是偶数验码,那么在附加一个校验元后,码长位n的码字中“1”的个数为偶数,又分为垂直奇偶校验、水平奇偶校验和水平垂直奇偶校验。

循环冗余校验:循环冗余码又称为多项式码。给定一个m bit的帧或报文,发送器生成一个r bit的序列(FCS),这样生成的帧将由m+r比特组成。

纠错编码:最常见的纠错编码是海明威编码,它能发现双比特错,但只能纠正单比特错。

M个信息位插入r个校验位组成 m+r位码字,他们满足的关系2r≥m+r+1

什么是点对点网络

物理线连接一对计算机,如果没有直接连接,他们之间的分组传输就通过中间结点接受、存储和转发,直至到达目的结点。

是否采用分组存储转发与路由选择机制是点对点式网络与广播式网络的重要区别

奈奎斯特定理

奈氏准则,理想低通(无噪声,带宽有限)的信道中,极限码元传输率为2W波特,其中W是理想低通信道的带宽,单位HZ

(1) 码元传输速率有上限

(2) 信道频带越宽,可用更高速率进行码元的有效传输

(3) 给出码元传输速率的限制,并未对信息传输速率给限制

香农定理

给出了带宽受限且有高斯白噪声干扰的信道的极限数据传输率

(1) 信道的带宽或信道中的信噪比越大,信息的极限传输速率越高

(2) 对一定的传输带宽和信噪比,信息传输速率上限是确定的

(3) 只要信息的传输速率低于信道的极限传输速率,就能找到某种方法来实现无差错传输

(4) 香农定理给的是极限信息传输速率

软件开发过程生命周期

软件开发过程(英语:software development process),或软件过程(英语:software process),是软件开发的开发生命周期

1.问题定义阶段:明确要解决的问题是什么?
2.可性行研究阶段:明确做不做?
用最小的代价在尽可能短的时间内从经济、技术、社会因素等方面论证解决方案
的可行性。
3.需求分析阶段: 明确做什么?
4.概要设计(总体设计)阶段:明确怎么做?
5.详细设计阶段:明确具体做法?
设计出程序的详细规格说明,即详细地设计每个模块,确定实现模块功能所需要
的算法和数据结构。 阶段性成果:详细设计规格说明书和单元测试计划等。
6.编码和单元测试阶段:编码和单元测试
7.综合测试阶段:通过各种类型的测试(及调试)使软件达到预定的要求。
9.软件维护阶段:各种必要的维护活动使系统持久地满足用户的要求。
改正性维护:诊断和改正在使用过程中发现的软件错误
适应性维护:修改软件易适应环境的变化
完善性维护:根据用户的要求改进或扩充软件使它更完善
预防性维护:修改软件为将来的维护活动预先做准备。

二叉树的优势

在实际使用时会根据链表和有序数组等数据结构的不同优势进行选择。

有序数组的优势在于二分查找,链表的优势在于数据项的插入和数据项的删除。但是在有序数组中插入数据就会很慢,同样在链表中查找数据项效率就很低。

二叉树可以利用链表和有序数组的优势,同时可以合并有序数组和链表的优势,二叉树也是一种常用的数据结构。

有序二叉树天然具有对数查找效率;二叉树天然具有链表特征。

高度为n的完全二叉树,节点数可以是

编译器的原理

img

​ 词法分析是识别出句子中的单词

​ 语法分析是分析句子的语法结构

​ 语义分析及中间代码生成是根据句子的含义进行初步分析

​ 代码优化是对译文进行修饰

​ 目标代码生成是写出最后的译文

C++文件压缩

所谓文件压缩,其实就是将对应的字符编码转换为另一种占据字节数较少的编码来进行存储。

参考原文链接:https://blog.csdn.net/qq_33724710/article/details/52201777

编程语言

适用范围

Java

(1) 桌面应用,Web应用

(2) 企业级应用,安卓应用

(3) 软件工具,交易程序

(4) 大数据和科学应用

C++

(1) 游戏引擎,服务器

(2) 图像处理,虚拟现实

(3) 音视频处理,压缩技术

(4) 数据库,安全协议

(5) 图形用户界面,网络

(6) 科学计算,人工智能

(7) 编译器,调试器

(8) 木马,病毒

Python

(1) 网络爬虫,人工智能

(2) 科学计算,Web开发

(3) 大数据,云计算

(4) 量化金融,运维

(5) 图像,音视频处理

(6) 木马,病毒

Swift

(1) IOS及OS X开发

C#

(1) Windows桌面应用,Web 应用

SQL

(1) 数据库

JavaScript

(1) 网站前端,Web应用

(2) 网站后端,插件开发

HTML

(1) 这不是一门编程语言

(2) 网页生成

(3) 电子书制作

PHP

(1) 网站开发,电子商务

(2) Web应用,企业级应用

(3) 微信开发,客户端界面

Go

(1) 服务器,数据库

(2) 分布式大型系统,云平台

R

(1) 数据挖掘,统计分析

(2) 生物医学领域

(3) 自动化报告

Visual Basic .NET

(1) 可视化程序设计

(2) 木马,病毒

MATLAB

(1) 科学计算,仿真模拟

(2) 人工智能

二进制数字

采用二进制代码和二进制数码

网络爬虫怎么应对反爬虫机制

很多网络爬虫在工作的时候发现,很多网站都有反爬虫机制,网络爬虫怎么应对反爬虫机制呢?
一般反爬虫机制都是通过设置访问频率及访问的IP,如果抓取的频率过高,或者一直使用一个IP地址,就容易被禁止访问及封IP。应对反爬虫机制,可以尝试以下方法来解决。
1.首先可以把爬虫的抓取速度减慢,这样目标网站就没有那么大的压力,也不会到达反爬虫机制设置的目标阈值,但是这种方法也会减慢爬虫的工作。
2.可以直接通过换IP的方法,来避免反爬虫机制限制IP的问题,换IP后就可以突破反爬虫机制继续高频率抓取了。

猜你喜欢

转载自blog.csdn.net/dujuancao11/article/details/105307437