一、计算机网络

1、请解释网卡及其作用

网卡也叫“网络适配器”,英文全称为“Network Interface Card”,简称“NIC”,网卡是局域网中最基本的部件之一,它是连接计算机与网络的硬件设备。无论是双绞线连接、同轴电缆连接还是光纤连接,都必须借助于网卡才能实现数据的通信。 网卡的主要工作原理是整理计算机上发往网线上的数据,并将数据分解为适当大小的数据包之后向网络上发送出去。对于网卡而言,每块网卡都有一个唯一的网络节点地址,它是网卡生产厂家在生产时烧入ROM(只读存储芯片)中的,我们把它叫做MAC地址(物理地址),且保证绝对不会重复。 我们日常使用的网卡都是以太网网卡。目前网卡按其传输速度来分可分为10M网卡、10100M自适应网卡以及千兆(1000M)网卡。如果只是作为一般用途,如日常办公等,比较适合使用10M网卡和10100M自适应网卡两种。如果应用于服务器等产品领域,就要选择千兆级的网卡。

2、请解释OSI七层模型

1物理层:提供为建立、维护和拆除物理链路所需要的机械的、电气的、功能的和规程的特性;有关的物理链路上传输非结构的位流以及故障检测指示。

主要功能:利用传输介质为数据链路层提供物理连接,实现比特流的透明传输。

作用:实现相邻计算机节点之间比特流的透明传输,尽可能屏蔽掉具体传输介质与物理设备的差异。使其上面的数据链路层不必考虑网络的具体传输介质是什么。

透明传输的意义就是:不管传的是什么,所采用的设备只是起一个通道作用,把要传输的内容完好的传到对方!

2数据链路层:在网络层实体间提供数据发送和接收的功能和过程;提供数据链路的流控。

主要功能:通过各种控制协议,将有差错的物理信道变为无差错的、能可靠传输数据帧的数据链路。

具体工作:接受来自物理层的位流形式的数据,并封装成帧,传送到上一层;同样,也将来自上一层的数据帧,拆装为位流形式的数据转发到物理层;并且还负责处理接受端发回的确认帧的信息,以便提供可靠的数据传输。

该层通常又被分为 介质访问控制(MAC)逻辑链路控制(LLC)两个子层:

MAC子层的主要任务是解决共享型网络中多用户对信道竞争的问题,完成网络介质的访问控制。

LLC子层的主要任务是建立和维护网络连接,执行差错校验、流量控制和链路控制。

3网络层:控制分组传送系统的操作、路由选择、拥护控制、网络互连等功能,它的作用是将具体的物理传送对高层透明。

主要任务:通过路由算法,为报文或分组通过通信子网选择最适当的路径。该层控制数据链路层与物理层之间的信息转发,建立、维持与终止网络的连接。具体的说,数据链路层的数据在这一层被转换为数据包,然后通过路径选择、分段组合、顺序、进/出路由等控制,将信息从一个网络设备传送到另一个网络设备。

一般的,数据链路层是解决统一网络内节点之间的通信,而网络层主要解决不同子网之间的通信。例如路由选择问题。

在实现网络层功能时,需要解决的主要问题如下:

1寻址:数据链路层中使用的物理地址(如MAC地址)仅解决网络内部的寻址问题。在不同子网之间通信时,为了识别和找到网络中的设备,每一子网中的设备都会被分配一个唯一的地址。由于各个子网使用的物理技术可能不同,因此这个地址应当是逻辑地址(如IP地址)

2交换:规定不同的交换方式。常见的交换技术有:线路交换技术和存储转发技术,后者包括报文转发技术和分组转发技术。

3路由算法:当源节点和路由节点之间存在多条路径时,本层可以根据路由算法,通过网络为数据分组选择最佳路径,并将信息从最合适的路径,由发送端传送的接受端。

4连接服务:与数据链路层的流量控制不同的是,前者控制的是网络相邻节点间的流量,后者控制的是从源节点到目的节点间的流量。其目的在于防止阻塞,并进行差错检测

4传输层:提供建立、维护和拆除传送连接的功能;选择网络层提供最合适的服务;在系统之间提供可靠的透明的数据传送,提供端到端的错误恢复和流量控制。

主要任务:向用户提供可靠的、端到端的差错和流量控制,保证报文的正确传输。

主要作用:向高层屏蔽下层数据通信的具体细节,即向用户透明的传送报文。

主要功能:提供可靠的“面向连接”和不可靠的“面向无连接”的数据传输服务、差错控制和流量控制。在提供“面向连接”服务时,通过这一层传输的数据将由目标设备确认,如果在指定的时间内未收到确认信息,数据将被重新发送。

5会话层:提供两个进程之间建立、维护和结束会话连接的功能;提供交互会话的管理功能,如三种数据流方向的控制,即一路交互、两路交替和两路同时会话模式

主要任务:向两个实体的表示层提供建立和使用连接的方法。将不同实体之间的表示层的连接称为会话。因此会话层的任务就是组织和协调两个会话进程之间的通信,并对数据交换进行管理。

用户可以按照半双工、单工和全工的方式建立会话。当建立会话时,用户必须提供他们想要连接的远程地址。而这些地址与MAC(介质访问控制子层)地址或网络层的逻辑地址不同,他们是为用户专门设计的,更便于用户记忆。域名(DN)就是网络上使用的远程地址。具体功能如下:

会话管理:允许用户在两个实体设备之间建立、维持和终止会话,并支持它们之间的数据交换。例如提供单方向会话或双向同时会话,并管理会话中的发送顺序,以及会话所占用时间的长短。

会话流量控制:提供流量控制和交叉会话功能。

寻址:使用远程地址建立会话连接。

出错控制:从逻辑上讲,会话层主要负责数据交换的建立、保持和终止,但实际的工作却是接收来自传输层的数据,并负责纠错。会话控制和远程过程调用均属于这一层的功能。但应注意,此层检查的错误不是通信介质的错误,而是磁盘空间、打印机缺纸等高级类的错误。

  6表示层:代表应用进程协商数据表示;完成数据转换、格式化和文本压缩。

表示层是OSI模型的第六层,它对来自应用层的命令和数据进行解释,对各种语法赋予相应的含义,并按照一定的格式传送给会话层。

  其主要功能是“处理用户信息的表示问题,如编码、数据格式转换和加密解密”等。

  表示层的具体功能如下:

  数据格式处理:协商和建立数据交换的格式,解决各应用程序之间在数据格式表示上的差异。

  数据的编码:处理字符集和数字的转换。例如由于用户程序中的数据类型(整型或实型、有符号或无符号等)、用户标识等都可以有不同的表示方式,因此,在设备之间需要具有在不同字符集或格式之间转换的功能。

  压缩和解压缩:为了减少数据的传输量,这一层还负责数据的压缩与恢复。

  数据的加密和解密:可以提高网络的安全性。

7应用层:提供OSI用户服务,例如事务处理程序、文件传送协议和网络管理等。

主要功能:直接向用户提供服务,完成用户希望在网络上完成的各种工作。它在其他6层工作的基础上,负责完成网络中应用程序与网络操作系统之间的联系,建立与结束使用者之间的联系,并完成网络用户提出的各种网络服务及应用所需的监督、管理和服务等各种协议。此外,该层还负责协调各个应用程序间的工作。

  应用层为用户提供的服务和协议有:文件服务、目录服务、文件传输服务(FTP)、远程登录服务(Telnet)、电子邮件服务(E-mail)、打印服务、安全服务、网络管理服务、数据库服务等。上述的各种网络服务由该层的不同应用协议和程序完成,不同的网络操作系统之间在功能、界面、实现技术、对硬件的支持、安全可靠性以及具有的各种应用程序接口等各个方面的差异是很大的。应用层的主要功能如下:

  用户接口:应用层是用户与网络,以及应用程序与网络间的直接接口,使得用户能够与网络进行交互式联系。

  实现各种服务:该层具有的各种应用程序可以完成和实现用户请求的各种服务。

小结:由于OSI是一个理想的模型,因此一般网络系统只涉及其中的几层,很少有系统能够具有所有的7层,并完全遵循它的规定。

7层模型中,每一层都提供一个特殊的网络功能。从网络功能的角度观察:下面4层(物理层、数据链路层、网络层和传输层)主要提供数据传输和交换功能,即以节点到节点之间的通信为主;第4层作为上下两部分的桥梁,是整个网络体系结构中最关键的部分;而上3层(会话层、表示层和应用层)则以提供用户与应用程序之间的信息和数据处理功能为主。简言之,下4层主要完成通信子网的功能,上3层主要完成资源子网的功能。

3、请解释TCP/IP四层模型

1链路层(数据链路层/网络接口层):包括操作系统中的设备驱动程序、计算机中对应的网络接口卡

2网络层:处理分组在网络中的活动,比如分组的选路。

3运输层:主要为两台主机上的应用提供端到端的通信。

4应用层:负责处理特定的应用程序细节。

TCP/TP协议族中,网络层IP提供的是一种不可靠的服务。它只是尽可能快地把分组从源节点送到目的节点,但不提供任何可靠性的保证。TCP在不可靠的IP层上,提供了一个可靠的运输层,为了提供这种可靠的服务,TCP采用了超时重传、发送和接受端到端的确认分组等机制。

4、请解释逻辑地址和物理地址

物理地址说白了就是你的MAC地址,MACmedia access control的缩写,中文的意思是媒体访问控制,它是固化在你的网卡的BIOS上的。  

MAC地址是一个48位的地址,前24位是用来表示生产厂家,后面的24位是该网卡的序列号。

逻辑地址是因为MAC地址而出现的,因为48位的MAC地址对于我们来说太难记住,所以人们用ARP地址解析协议,即ARPAddress Resolution Protocol,是根据IP地址获取物理地址的一个TCP/IP协议)和RARPRARP协议(Reverse Address Resolution Protocol),反向地址转换协议,将局域网中某个主机的物理地址转换为IP地址)协议在物理地址和逻辑地址间进行转换。它是32位的地址,如现在的IP地址,它是用二进制来表示的,当然,我们在输入的时候是十进制。

这样一来,我们就不用再记那些复杂的MAC地址,而只要记住很短的逻辑地址就可以了。

不过,现在通过DNS域名系统,又将一些IP地址变成了域名,如www.baidu.com,你在访问的时候就不用再去记它的IP地址,而只要记住它的域名就可以了。

总的说来,在网络里,我们传输数据的时候,计算机最终确定在网络上的一个终端是通过MAC地址来确认的,但在这过程中,是通过将MAC地址映射为IP地址来识别的。

5、解释网络地址转换(NAT

网络地址转换(NAT)是一个Internet 工程任务组 (Internet Engineering Task ForceIETF) 标准,用于允许专用网络上的多台 PC (使用专用地址段,例如 10.0.x.x192.168.x.x172.x.x.x) 共享单个、全局路由的 IPv4 地址。IPv4 地址日益不足是经常部署 NAT 的一个主要原因。Windows XP Windows Me 中的“Internet 连接共享”及许多Internet 网关设备都使用 NAT,尤其是在通过 DSL 或电缆调制解调器连接宽带网的情况下。

NAT对于解决IPv4地址耗费问题(IPv6部署中却没必要)尽管很有效,但毕竟属于临时性的解决方案。这种IPv4地址占用问题在亚洲及世界其他一些地方已比较严重,且日渐成为北美地区需要关注的问题。这就是人们为什么长久以来一直关注使用IPv6来克服这个问题的原因所在。除了减少所需的IPv4地址外,由于专用网络之外的所有主机都通过一个共享的IP地址来监控通信,因此NAT还为专用网络提供了一个隐匿层。NAT与防火墙或代理服务器不同,但它确实有利于安全。

二、数据库

1、请说明数据设计的基本步骤

1需求分析:准确了解并分析用户对系统的需要和要求,弄清系统要达到的目标和实现的功能。

2概念设计:通过数据抽象,设计系统概念模型,一般为E-R模型;(对用户需求进行综合、归纳和抽象,形成一个独立于具体计算机和DBMS的概念模型。)

3逻辑结构设计:将概念结构转换为DBMS所支持的数据模型,并将其性能进行优化。

4物理结构设计:为逻辑数据模型选取一个最适合应用环境的物理结构,包括数据存储结构和存取方法。

5系统实施:运用DBMS提供的数据操作语言和宿主语言,根据数据库的逻辑设计和物理设计的结果建立数据库、编制与调试应用程序、组织数据入库并进行系统试运行。

6运行维护:不断地对其结构性能进行评价、调整和修改。

                                              blob.png

 

2、请详细说明连接查询

连接查询是指将多张表(>=2)进行记录的连接(按照某个指定的条件进行数据拼接)

连接查询的意义: 在用户查看数据的时候,需要显示的数据来自多张表。

连接查询: join, 使用方式: 左表 join 右表;左表: join关键字左边的表;右表: join关键字右边的表。

连接查询分类:内连接,外连接,自然连接和交叉连接。

交叉连接: cross join, 从一张表中循环取出每一条记录, 每条记录都去另外一张表进行匹配: 匹配一定保留(没有条件匹配), 而连接本身字段就会增加(保留),最终形成的结果叫做: 笛卡尔积。

blob.pngblob.png

内连接:join, 从左表中取出每一条记录,去右表中与所有的记录进行匹配: 匹配必须是某个条件在左表中与右表中相同最终才会保留结果,否则不保留.

blob.pngblob.png

 

外连接: 以某张表为主,取出里面的所有记录, 然后每条与另外一张表进行连接: 不管能不能匹配上条件,最终都会保留: 能匹配,正确保留; 不能匹配,其他表的字段都置空,外连接分为两种: left join: 左外连接(左连接), 以左表为主表;right join: 右外连接(右连接), 以右表为主表

基本语法: 左表 left/right join 右表 on 左表.字段 = 右表.字段;

blob.png

自然连接: select * from t1 a,t2 b where a.id=b.id

 

3、请详细说明联合查询

联合查询是将多次查询(多条select语句)在记录上进行拼接(字段不会增加)多条select语句构成: 每一条select语句获取的字段数必须严格一致(但是字段类型无关)

语法:select 语句1 Union [union选项] select语句2

其中union选项:all保留所有(不管重复) distinct: 去重(整个重复,默认)

意义:1查询同一张表,但是需求不同,如查询学生信息男生身高升序女生身高降序 2多表查询: 多张表的结构是完全一样的,保存的数据(结构)也是一样的.

blob.pngblob.png

Order by默认为升序,降序为DESC,升序为ASC

blob.png

 

4、请详细说明子查询

子查询是在某个查询结果之上进行的(一条select语句内部包含了另外一条select语句),分为按位置分类、结果分类

按位置分类: 子查询(select语句)在外部查询(select语句)中出现的位置

1From子查询: 子查询跟在from之后

2Where子查询: 子查询出现where条件中

3Exists子查询: 子查询出现在exists里面

按结果分类: 根据子查询得到的数据进行分类(理论上讲任何一个查询得到的结果都可以理解为二维表)

1标量子查询: 子查询得到的结果是一行一列

2列子查询: 子查询得到的结果是一列多行

3行子查询: 子查询得到的结果是多列一行(多行多列) 1,2,3出现的位置都是在where之后)

4表子查询: 子查询得到的结果是多行多列(出现的位置是在from之后)

标量子查询:

blob.pngblob.png

blob.png

列子查询:

blob.png

找出语文和数学都及格人的名字

select distinct name from t where name not in

(select name from t where score<60)

行子查询:

blob.png

找出年龄最大且身高最高的人(两种方案)

blob.pngblob.png

表子查询:

blob.png

找出每个人最好的成绩

blob.png

Exists子查询:

blob.png

如果存在的话身高大于2米的人,列出表中所有数据

blob.png

 

 

 

三、计算机组成原理

1、简述冯诺依曼计算机体系结构

                                                  blob.png

1存储器用来存放数据和程序

2运算器主要运行算数运算和逻辑运算,并将中间结果暂存到运算器中

3控制器主要用来控制和指挥程序和数据的输入运行,以及处理运算结果

4输入设备用来将人们熟悉的信息形式转换为机器能够识别的信息形式,常见的有键盘,鼠标等

5输出设备可以将机器运算结果转换为人们熟悉的信息形式,如打印机输出,显示器输出等

冯诺依曼体系结构的指令和数据均采用二进制码表示;指令和数据以同等地位存放于存储器中,均可按地址寻访;指令由操作码和地址码组成,操作码用来表示操作的性质,地址码用来表示操作数所在存储器中的位置;指令在存储器中按顺序存放,通常指令是按顺序执行的,特定条件下,可以根据运算结果或者设定的条件改变执行顺序;机器以运算器为中心,输入输出设备和存储器的数据传送通过运算器。

 

2、冯诺依曼机的存储思想

中心存储程序原则--指令和数据一起存储。ENIAC只在20个暂存器,它的程序是外插型的,指令存储在计算机的其他电路中。这样,解题之前,必需先想好所需的全部指令,通过手工把相应的电路联通。这种准备工作要花几小时甚至几天时间,而计算本身只需几分钟。计算的高速与程序的手工存在着很大的矛盾。

    把运算程序存在机器的存储器中,程序设计员只需要在存储器中寻找运算指令,机器就会自行计算,这样,就不必每个问题都重新编程,从而大大加快了运算进程。这一思想标志着自动运算的实现,标志着电子计算机的成熟,已成为电子计算机设计的基本原则。

 

3、程序和数据分别怎么存储(其实也就是问冯诺依曼机和哈佛机的区别)

    冯认为指令也是一种数据,所以冯诺依曼构架只有数据总线和地址总线。

哈佛构架认为指令是指令,数据是数据,所以哈佛构架有供给指令的地址总线和数据总线,还有供给数据的地址总线和数据总线。


 

 

四、操作系统

1、请解释内存与外存及其区别

    存储器是计算机的组成结构中的一个重要的部分,用于存储程序和数据。按其用途可分为主存储器(内存储器、内存)辅助存储器(外存储器、外存)

    内存指的就是主板上的存储部件,是CPU直接与之沟通,并用其存储数据的部件,存放当前正在使用的(即执行中)的数据和程序,它的物理实质就是一组或多组具备数据输入输出和数据存储功能的集成电路,内存只用于暂时存放程序和数据,一旦关闭电源或发生断电,其中的程序和数据就会丢失。

外存通常是磁性介质或光盘,像硬盘,软盘,磁带,CD等,能长期保存信息,并且不依赖于电来保存信息,但是由机械部件带动,速度与CPU相比就显得慢的多。(处理速度、存储容量、断电后)

 

2、进程与线程的区别

进程和线程都是由操作系统所体会的程序运行的基本单元,系统利用该基本单元实现系统对应用的并发性。进程和线程的简单区别:一个程序至少有一个进程,一个进程至少有一个线程。

线程的划分尺度小于进程,使得多线程程序的并发性高。另外,进程在执行过程中拥有独立的内存单元,而多个线程共享内存,从而极大地提高了程序的运行效率。

线程在执行过程中与进程还是有区别的。每个独立的进程有一个程序运行的入口、顺序执行序列和程序的出口。但是线程不能够独立执行,必须依存在应用程序中,由应用程序提供多个线程执行控制。

从逻辑角度来看,多线程的意义在于一个应用程序中,有多个执行部分可以同时执行。但操作系统并没有将多个线程看做多个独立的应用,来实现进程的调度和管理以及资源分配。这就是进程和线程的重要区别。

进程是具有一定独立功能的程序关于某个数据集合上的一次运行活动,进程是系统进行资源分配和调度的一个独立单位。

线程是进程的一个实体,是CPU调度和分派的基本单位,它是比进程更小的能独立运行的基本单位。线程自己基本上不拥有系统资源,只拥有一点在运行中必不可少的资源(如程序计数器,一组寄存器和栈),但是它可与同属一个进程的其他的线程共享进程所拥有的全部资源。一个线程可以创建和撤销另一个线程,同一个进程中的多个线程之间可以并发执行。

一个进程可以有多个线程,但一个线程总是属于唯一的进程。两个进程不能共享内存空间,除非它们有意通过共享内存进行进程间通信。但是同一进程的两个线程总是共享相同的内存。

 

3B/SC/S区别与优缺点

B/S结构(Browser/Server,浏览器/服务器模式),是WEB兴起后的一种网络结构模式,WEB浏览器是客户端最主要的应用软件。这种模式统一了客户端,将系统功能实现的核心部分集中到服务器上,简化了系统的开发、维护和使用。

C/S 结构,客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。

C/SB/S并没有本质的区别:B/S是基于特定通信协议(HTTP)C/S架构,也就是说B/S包含在C/S中,是特殊的C/S架构。之所以在C/S架构上提出B/S架构,是为了满足瘦客户端、一体化客户端的需要,最终目的节约客户端更新、维护等的成本,及广域资源的共享。

1B/S属于C/S,浏览器只是特殊的客户端;

2C/S可以使用任何通信协议,而B/S这个特殊的C/S架构规定必须实现HTTP协议;

3)浏览器是一个通用客户端,本质上开发浏览器,还是实现一个C/S系统。

B/S优点和缺点:

1)维护和升级方式简单。(2)成本降低,选择更多,不限于某操作系统。

3)应用服务器运行数据负荷较重,一旦发生服务器“崩溃”等问题,后果不堪设想。

C/S优点和缺点:

1)应用服务器运行数据负荷较轻。(2)客户端对于操作系统一般由限制。

3)高昂的维护成本且投资大

 

 

 

 

 

五、数据结构与C语言

1C语言的结构体和共用体的区别

    结构体和共用体都是由于储存数据的数据类型。

    结构体的大小是所有成员之和后对齐。

    共用体的大小是所有成语最大的在对齐。

对齐是指以单个最大来的对称。

 

2、什么是面向对象?与面向过程的区别?

面向过程就是分析出解决问题所需要的步骤,然后用函数把这些步骤一步一步实现,使用的时候一个一个依次调用就可以了。面向对象是把构成问题事务分解成各个对象,建立对象的目的不是为了完成一个步骤,而是为了描叙某个事物在整个解决问题的步骤中的行为。

面向对象的三个特征:封装、继承、多态。

封装:把客观事物封装成抽象的类,隐藏属性和方法的实现细节,仅对外公开接口。

继承:子类可以使用父类的所有功能,并且对这些功能进行扩展。继承的过程,就是从一般到特殊的过程。

多态:接口的多种不同的实现方式即为多态。同一操作作用于不同的对象,产生不同的执行结果。在运行时,通过指向基类的指针或引用来调用派生类中的虚函数来实现多态。

 

3、什么是数据结构?

数据结构是在整个计算机科学与技术领域上广泛被使用的术语。它用来反映一个数据的内部构成,即一个数据由那些成分数据构成,以什么方式构成,呈什么结构。数据结构有逻辑上的数据结构和物理上的数据结构之分。逻辑上的数据结构反映成分数据之间的逻辑关系,而物理上的数据结构反映成分数据在计算机内部的存储安排。数据结构是数据存在的形式。 数据结构是信息的一种组织方式,其目的是为了提高算法的效率,它通常与一组算法的集合相对应,通过这组算法集合可以对数据结构中的数据进行某种操作。


你可能感兴趣的文章

评论区

发表评论

必填

选填

选填

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

您好,欢迎到访网站!
  查看权限

«   2018年10月   »
1234567
891011121314
15161718192021
22232425262728
293031

最新留言