.NET面试题.收集答案.

时间:2020-12-04 19:05:57

1. .NET的框架组成是什么?
答:.NET开发框架的几个主要组成部分:首先是整个开发框架的基础,即通用语言运行时以及它所提供的一组基础类库;在开发技术方面,.NET提供了全新的数据库访问技术ADO .NET,以及网络应用开发技术ASP .NET和Windows编程技术Win Forms;在开发语言方面,.NET提供了VB,VC++,C#, Jscript等多种语言支持;而Visual Studio .NET则是全面支持.NET的开发工具。
.NET框架(Framework)是一个开发、部署和运行.NET应用的环境,包括了ASP.NET、公共语言运行时环境(CLR)以及.NET 框架类

2. CPU在上电后,进入操作系统的main()之前必须做什么工作?
答:过程如下: bios自举:检查硬件等读取MBR 转到MBR执行它的代码,它会检测活动分区把活动分区的引导扇区的引导代码装入内存运行引导代码引导代码装入该分区的操作系统也就是进入main()(当然不一定叫main,如linux下叫start_kernel)执行一系列的初始化,然后最终启动登录界面实现启动过程
加电后,会触发cpu的reset信号,导致cpu复位,然后cpu会跳到(arm下0x00000000,x86下0xfffffff0)/执行指令.主要是做cpu初始化,确定cpu的工作模式,mmu初始化。建立页表段表,初始化中孤单控制器和中断向量表,初始化输入和输出,初始化nandflash,把os的TEXT区加载到sdram,然后跳转到sdram的main()

 

3. 简述ISO OSI的物理层Layer1/链路层Layer2/网络层Layer3的任务.
答:物理层是OSI的第一层,它虽然处于最底层,却是整个开放系统的基础。物理层为设备之间
  的数据通信提供传输媒体及互连设备,为数据传输提供可靠的环境。
  a.媒体和互连设备
  物理层的媒体包括架空明线、平衡电缆、光纤、无线信道等。通信用的互连设备指DTE和DCE
  间的互连设备。DTE既数据终端设备,又称物理设备,如计算机、终端等都包括在内。而DCE则
  是数据通信设备或电路连接设备,如调制解调器等。数据传输通常是经过DTE──DCE,再经过
  DCE──DTE的路径。互连设备指将DTE、DCE连接起来的装置,如各种插头、插座。
  LAN中的各种粗、细同轴电缆、T型接、插头,接收器,发送器,中继器等都属物理层的媒体
  和连接器。
  b.物理层的主要功能
  ⑴为数据端设备提供传送数据的通路,数据通路可以是一个物理媒体,也可以是多个物理媒
  体连接而成.一次完整的数据传输,包括激活物理连接,传送数据,终止物理连接.所谓激活,就是
  不管有多少物理媒体参与,都要在通信的两个数据终端设备间连接起来,形成一条通路.
  ⑵ 传输数据.物理层要形成适合数据传输需要的实体,为数据传送服务.一是要保证数据能
  在其上正确通过,二是要提供足够的带宽(带宽是指每秒钟内能通过的比特(BIT)数),以减少信
  道上的拥塞.传输数据的方式能满足点到点,一点到多点,串行或并行,半双工或全双工,同步或
  异步传输的需要.
  ⑶ 完成物理层的一些管理工作.
  c.物理层的一些重要标准
  物理层的一些标准和协议早在OSI/TC97/C16 分技术委员会成立之前就已制定并在应用了,
  OSI也制定了一些标准并采用了一些已有的成果.下面将一些重要的标准列出,以便读者查阅.
  ISO2110:称为"数据通信----25芯DTE/DCE接口连接器和插针分配".它与EIA(美国电子工业
  协会)的"RS-232-C"基本兼容.
  ISO2593:称为"数据通信----34芯DTE/DCE----接口连接器和插针分配".
  ISO4092:称为"数据通信----37芯DTE/DEC----接口连接器和插针分配".与EIARS-449兼容.
  CCITT V.24:称为"数据终端设备(DTE)和数据电路终接设备之间的接口电路定义表".其功
  能与EIARS-232-C及RS-449兼容于100序列线上
 

  数据链路可以粗略地理解为数据通道。物理层要为终端设备间的数据通信提供传输媒体及其
  连接.媒体是长期的,连接是有生存期的.在连接生存期内,收发两端可以进行不等的一次或多次数
  据通信.每次通信都要经过建立通信联络和拆除通信联络两过程.这种建立起来的数据收发关系就
  叫作数据链路.而在物理媒体上传输的数据难免受到各种不可靠因素的影响而产生差错,为了弥补
  物理层上的不足,为上层提供无差错的数据传输,就要能对数据进行检错和纠错.数据链路的建立,
  拆除,对数据的检错,纠错是数据链路层的基本任务.
  ⑴链路层的主要功能
  链路层是为网络层提供数据传送服务的,这种服务要依靠本层具备的功能来实现。链路层应
  具备如下功能:
  ① 链路连接的建立,拆除,分离.
  ② 帧定界和帧同步.链路层的数据传输单元是帧,协议不同,帧的长短和界面也有差别,但
  无论如何必须对帧进行定界.
  ③ 顺序控制,指对帧的收发顺序的控制.
  ④ 差错检测和恢复。还有链路标识,流量控制等等.差错检测多用方阵码校验和循环码校
  验来检测信道上数据的误码,而帧丢失等用序号检测.各种错误的恢复则常靠反馈重发
  技术来完成.
  ⑵数据链路层的主要协议
  数据链路层协议是为发对等实体间保持一致而制定的,也为了顺利完成对网络层的服务。主
  要协议如下:
  a. ISO1745--1975:"数据通信系统的基本型控制规程".这是一种面向字符的标准,利用10
  个控制字符完成链路的建立,拆除及数据交换.对帧的收发情况及差错恢复也是靠这些
  字符来完成.ISO1155, ISO1177, ISO2626, ISO2629等标准的配合使用可形成多种链路
  控制和数据传输方式.
  b. ISO3309--1984:称为"HDLC 帧结构".ISO4335--1984:称为"HDLC 规程要素 ".
  ISO7809--1984:称为"HDLC 规程类型汇编".这3个标准都是为面向比特的数据传输控制
  而制定的.有人习惯上把这3个标准组合称为高级链路控制规程.
  c. ISO7776:称为"DTE数据链路层规程".与CCITT X.25LAB"平衡型链路访问规程"相兼容.
  ⑶链路层产品
  独立的链路产品中最常见的当属网卡,网桥也是链路产品。MODEM的某些功能有人认为属于链
  路层,对些还有争议.
  数据链路层将本质上不可靠的传输媒体变成可靠的传输通路提供给网络层。在IEEE802.3情况
  下,数据链路层分成了两个子层,一个是逻辑链路控制,另一个是媒体访问控制
 

   网络层的产生也是网络发展的结果.在联机系统和线路交换的环境中,网络层的功能没有太大意义.当数据终端增多时.它们之间有中继设备相连.此时会出现一台终端要求不只是与唯一的一台而是能和多台终端通信的情况,这就是产生了把任意两台数据终端设备的数据链接起来的问题,也就是路由或者叫寻径.另外,当一条物理信道建立之后,被一对用户使用,往往有许多空闲时间被浪费掉.人们自然会希望让多对用户共用一条链路,为解决这一问题就出现了逻辑信道技术和虚拟电路技术.

⑴网络层主要功能

网络层为建立网络连接和为上层提供服务,应具备以下主要功能.

1. 路由选择和中继.

2. 激活,终止网络连接.

3. 在一条数据链路上复用多条网络连接,多采取分时复用技术.

4. 差错检测

5. 排序,流量控制.

6. 服务选择.

7. 网络层管理.

8.分段和合段

9.流量控制

10.加速数据传送

11.复位

 

⑵网络层标准简介

网络层的一些主要标准如下.

ISO.DIS8208:称为"DTE用的X.25分组级协议".

ISO.DIS8348:称为"CO 网络服务定义"(面向连接).

ISO.DIS8349:称为"CL 网络服务定义"(面向无连接).

ISO.DIS8473:称为"CL 网络协议".

ISO.DIS8348:称为"网络层寻址".

除上述标准外,还有许多标准。这些标准都只是解决网络层的部分功能,所以往往需要在网络

层中同时使用几个标准才能完成整个网络层的功能.由于面对的网络不同,网络层将会采用不同的

标准组合.

在具有开放特性的网络中的数据终端设备,都要配置网络层的功能.现在市场上销售的网络硬

设备主要有网关和路由器.

1. 网络层功能概述
  网络层是OSI参考模型中的第三层,是通信子网的最高层。网络层关系到通信子网的运行控制,体现了网络应用环境中资源子网访问通信子网的方式。
  网络层的主要任务是设法将源结点出的数据包传送到目的结点,从而向运输层提供最基本的端到端的数据传送服务。概括地说,网络层应该具有以下功能:
  (1) 为传输层提供服务
  网络层提供的服务有两类:面向连接的网络服务和无连接的网络服务。
  虚电路服务是网络层向运输层提供的一种使所有数据包按顺序到达目的结点的可靠的数据传送方式,进行数据交换的两个结点之间存在着一条为它们服务的虚电路;而数据报服务是不可靠的数据传送方式,源结点发送的每个数据包都要附加地址、序号等信息,目的结点收到的数据包不一定按序到达,还可能出现数据包的丢失现象。
  典型的网络层协议是X.25,它是由ITU-T(国际电信联盟电信标准部)提出的一种面向连接的分组交换协议。
  (2) 组包和拆包
  在网络层,数据传输的基本单位是数据包(也称为分组)。在发送方,传输层的报文到达网络层时被分为多个数据块,在这些数据块的头部和尾部加上一些相关控制信息后,即组成了数据包(组包)。数据包的头部包含源结点和目标结点的网络地址(逻辑地址)。在接收方,数据从低层到达网络层时,要将各数据包原来加上的包头和包尾等控制信息去掉(拆包),然后组合成报文,送给传输层。
  (3) 路由选择
  路由选择也叫做路径选择,是根据一定的原则和路由选择算法在多结点的通信子网中选择一条最佳路径。确定路由选择的策略称为路由算法。
在数据报方式中,网络结点要为每个数据包做出路由选择;而在虚电路方式中,只需在建立连接时确定路由。
  (4) 流量控制
  流量控制的作用是控制阻塞,避免死锁。
  网络的吞吐量(数据包数量/秒)与通信子网负荷(即通信子网中正在传输的数据包数量)有着密切的关系。
  对防止出现阻赛和死锁,需进行流量控制,通常可采用滑动窗口、预约缓冲区、许可证和分组丢弃四种方法。
  
2. 路由选择算法简介
  路由算法很多,大致可分为静态路由算法和动态路由算法两类。
  (1) 静态路由算法
  静态路由算法又称为非自适应算法,是按某种固定规则进行的路由选择。其特点是算法简单、容易实现,但效率和性能较差。属于静态路由算法的有以下几种:
   ☆ 最短路由选择:
   ☆ 扩散式路由选择:
   ☆ 随机路由选择:
   ☆ 集中路由选择:
  (2) 动态路由算法
  动态路由算法又称为自适应算法,是一种依靠网络的当前状态信息来决定路由的策略。这种策略能较好地适应网络流量、拓扑结构的变化,有利于改善网络的性能;但算法复杂,实现开销大。属于动态路由算法的有以下几种:
   ☆ 分布式路由选择策略:
   ☆ 集中路由选择策略:
3. 网络层的网络连接设备
  (1) 路由器(Router)
  在互联网中,两台主机之间传送数据的通路会有很多条,数据包从一台主机出发,中途要经过多个站点才能到达另一台主机。这些中间站点通常由称为路由器的设备担当,其作用就是为数据包选择一条合适的传送路径。

  路由器工作在OSI模型的网络层,是根据数据包中的逻辑地址(网络地址)而不是MAC地址来转发数据包的。
  路由器的主要工作是为经过路由器的每个数据包寻找一条最佳传输路径,并将该数据包有效地传送到目的站点。
  路由器不仅有网桥的全部功能,还具有路径的选择功能,可根据网络的拥塞程度,自动选择适当的路径传送数据。
  路由器与网桥不同之处在于,它并不是使用路由表来找到其他网络中指定设备的地址,而是依靠其它的路由器来完成任务。也就是说,网桥是根据路由表来转发或过滤数据包,而路由器是使用它的信息来为每一个数据包选择最佳路径。
路由器有静态和动态之分。静态路由器需要管理员来修改所有的网络路由表,一般只用于小型的网间互连;而动态路由器能根据指定的路由协议来完成修改路由器信息。
  (2) 第三层交换机
随着技术的发展,有些交换机也具备了路由的功能。这些具有路由功能的交换机要在网络层对数据包进行操作,因此被称为第三层交换机。

 

4. TCP/IP分别代表什么?
答:Tcp/ip是传输控制协议
5. 软件开发的五个主要步骤是什么?
需求分析
系统设计
系统编码
测试运行
升级维护


6. 你在开发软件的时候,这5个肯骤分别占用的时间百分比是多少?
答:20 15 15 40 20

7. makefile 文件的作用是什么?
答:一个工程中的源文件不计数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。
makefile带来的好处就是——“自动化编译”,一旦写好,只需要一个make命令,整个工程完全自动编译,极大的提高了软件开发的效率。make是一个命令工具,是一个解释makefile中指令的命令工具,一般来说,大多数的IDE都有这个命令,比如:Delphi的make,Visual C++的nmake,Linux下GNU的make。可见,makefile都成为了一种在工程方面的编译方法。
Make工具最主要也是最基本的功能就是通过makefile文件来描述源程序之间的相互关系并自动维护编译工作。而makefile 文件需要按照某种语法进行编写,文件中需要说明如何编译各个源文件并连接生成可执行文件,并要求定义源文件之间的依赖关系。makefile 文件是许多编译器--包括 Windows NT 下的编译器--维护编译信息的常用方法,只是在集成开发环境中,用户通过友好的界面修改 makefile 文件而已。