網絡基礎

IP地址,標識你電腦的身份!
子網掩碼,能夠標識子網劃分的狀況,所屬子網
默認網關,數據包默認選擇的出口!通常是你的路由器地址!
DNS服務器,把網站的域名轉換成計算機能看懂的IP地址!
一、關係 
IP地址要和(默認網關)路由器在同一個網段
子網掩碼通常默認,由於你本身上網,不是一個公司什麼的,不存在劃分子網!

若是你使用路由器,你進入路由器看下DNS是多少,填寫在你的電腦上,IP設置和它同一個網段的就能夠,默認網關就填你的路由器地址!html

二、註釋node

   對無子網的IP地址,可寫成主機號爲0的掩碼。如IP地址210.73.140.5,掩碼爲255.255.255.0,也能夠缺省掩碼,只寫IP地址。  

在分配網絡地址時,網絡標識是固定的,而計算機標識是能夠在必定範圍內變化的,下面是三類網絡地址的組成形式: 算法

     A類地址:73.0.0.0 sql

     B類地址:160.153.0.0 數據庫

     C類地址:210.73.140.0 express

     上述中的每一個0都可以在0~255之間進行變化。 編程

     由於IP地址的前三位數字已決定了一個IP地址是屬於何種類型的網絡,因此A類網絡地址將沒法再分紅B類IP地址,B類IP地址也不能再分紅C類IP地址。 安全

     在談到某一特定的計算機IP地址時不宜使用A類、B類、C類的說法,但能夠說主機地址是屬於哪個A類、B類、C類網絡了。服務器

三、缺省子網網絡

  A類網絡缺省子網掩碼:255.0.0.0

  B類網絡缺省子網掩碼:255.255.0.0

  C類網絡缺省子網掩碼:255.255.255.0

四、某網絡192.168.0.X,要劃分4個子網,求子網掩碼,各自網絡地址,有效主機IP範圍?

標準的C類網絡地址192.168.0.X/24,
劃分4個子網,將X的前2位置1獲得的十進制數,這4個子網掩碼是255.255.255.192
網絡地址分別是:(增量爲256-192=64)
192.168.0.0/26;
192.168.0.64/26;
192.168.0.128/26;
192.168.0.192/26;
有效主機IP範圍:(前一個加1,後一個減2獲得的範圍)
192.168.0.1/26~192.168.0.62/26;
192.168.0.65/26~192.168.0.126/26;
192.168.0.129/26~192.168.0.190/26;
192.168.0.193/26~192.168.0.254/26;

 參考網址:http://zhidao.baidu.com/question/143526885.html?fr=qrl&cid=88&index=1&fr2=query

http://zhidao.baidu.com/question/39733466.html?fr=qrl&cid=88&index=3&fr2=query

posted @ 2011-07-14 17:14 zlh840 閱讀(161) 評論(0) 編輯

[轉載]計算機網絡

來源:http://wenku.baidu.com/view/c5192928bd64783e09122bb9.html

計算機網絡

1.網絡結構

在OSI參考模型中,物理層的做用是透明的傳輸比特流。對等實體在一次交互做用中傳送的信息單位稱爲協議數據單元,它包括控制信息和用戶數據兩部分。上下層實體之間的接口稱爲服務訪問點(SAP),網絡層的服務訪問點也稱爲網絡地址,一般分爲網絡號和主機號。

OSI參考模型分爲:物理層、數據鏈路層,網絡層,傳輸層,會話層,表示層,應用層。

物理層涉及到在信道上傳輸的原始比特流。數據鏈路層的主要任務是增強物理層傳輸原始比特流的功能,使之對應的網絡層顯現爲一條無錯線路。發送包把輸入數據封裝在數據幀,按順序傳送出去並處理接受方回送的確認幀。網絡層關係到子網的運行控制,其中一個關鍵問題是確認從源端到目的端如何選擇路由。傳輸層的基本功能是從會話層接受數據並且把其分紅較小的單元傳遞給網絡層。會話層容許不一樣機器上的用戶創建會話關係。

TCP/IP的五層結構圖:物理層、數據鏈路層、網絡層、運輸層,應用層。

2.請你詳細地解釋一下IP協議的定義,在哪一個層上面?主要有什麼做用?TCP與UDP呢?

答:IP是Internet Protocol的簡稱,是網絡層的主要協議,做用是提供不可靠、無鏈接的數據報傳送。TCP是Transmit Control Protocol(傳輸控制協議)的縮寫,在運輸層,TCP提供一種面向鏈接的,可靠的字節流服務;UDP是User Datagram Protocol(用戶數據報協議)的縮寫,在運輸層,UDP提供不可靠的傳輸數據服務。

3.請問交換機和路由器各自的實現原理是什麼?分別在哪一個層次上面實現的?

答:交換機屬於OSI第二層即數據鏈路層設備。它根據MAC地址尋址,經過站表選擇路由,站表的創建和維護由交換機自動進行。路由器屬於OSI第三層即網絡層設備,它根據IP地址進行尋址,經過路由表路由協議產生。交換機最大的好處是快速,路由器最大的好處是控制能力強。

4.交換和路由的區別是什麼?VLAN有什麼特色?

交換是指轉發和過濾幀,是交換機的工做,它在OSI參考模型的第二層。而路由是指網絡線路當中非直連的鏈路,它是路由器的工做,在OSI參考模型的第三層。交換和路由的區別不少。首先,交換是不須要IP的,而路由須要,由於IP就是第三層的協議,第二層須要的是MAC地址;再有,第二層的技術和第三層不同,第二層能夠作VLAN、端口捆綁等,第三層能夠作NAT、ACL、QOS等。

VLAN是虛擬局域網的英文縮寫,它是一個純二層的技術,它的特色有三:控制廣播,安全,靈活性和可擴展性。

5.什麼是SNMP協議?它有什麼特色?SNMP協議須要專門的鏈接麼?

答:SNMP(Simple Network Manager Protocol)即簡單網絡管理協議,它爲網絡管理系統提供了底層網絡管理的框架。SNMP的特色是:SNMP易於實現;SNMP協議是開放的免費產品;

SNMP協議有不少詳細的文檔資料,網絡業界對這個協議也有較深刻的瞭解,這些都是SNMP協議進一步發展和改進的基礎;SNMP協議可用於控制各類設備。

SNMP是一種無鏈接協議。無鏈接的意思是它不支持像TELNET或FTP這種專門的鏈接。經過使用請求報文和返回響應的方式,SNMP在管理代理和管理員之間傳送消息。

6.路由表是作什麼用的?在Linux環境中怎麼配置一條默認路由?

答:路由表是用來決定如何將包從一個子網傳送到另外一個子網的,換句話說就是用來決定從一個網卡接受到的包應該送到哪個網卡上去。路由表的每一行至少由目標網絡號、netmask、到這個子網應該使用的網卡這3條信息。當路由器從一個網卡接受到一個包時,它掃描路由表的每一行,用裏面的netmask和包裏的目標IP地址作並邏輯運算(&)找出目標網絡號。若是此網絡號和這一行裏的網絡號相同,就將這條路由保留下來做爲備用路由。若是已經有備用路由了,就在這兩條路由裏將網絡號最長的留下來,另外一條丟掉。如此接着掃描下一行直到結束。若是掃描結束仍沒有找到任何路由,就用默認路由。肯定路由後,直接將包送到對應的網卡上去。

在Linux上能夠用「route add default gw<默認路由器IP>」命令配置一條默認路由。

7.在網絡中有兩臺主機A和B,經過路由器和其餘交換機設備鏈接起來,已經確認物理鏈接正確無誤,怎麼來測試這兩臺機器是否連通?若是不通,怎麼判斷故障點?怎麼排除故障?

答:測試這兩臺機器是否連通:從一臺機器ping另外一臺機器。若是ping不一樣,用traceroute命令能夠肯定是哪一個路由器不能連通,而後再找問題是否在交換設備或HUB或網線等。

8.每一個路由器在尋找路由器時須要直到哪5部分信息?

答:全部的路由器須要以下信息爲報文尋找路由:目的地址 報文發送的目的主機。鄰站的肯定  指明誰直接鏈接到路由器的接口上。路由的發現  發現鄰站知道哪些網絡。 選擇路由  經過從鄰站學習到的信息,提供最優的到達目的地的路徑。 保持路由信息 路由器保存一張路由表,它存儲所知道的全部路由信息。

9.什麼是BGP?

答:BGP(Border Gateway Protocol,邊界網關協議)是一種在自治系統之間動態交換路由器信息的路由協議。一個自治系統的經典定義是一個管理機制控制之下的一組路由器,它使用IGP和普通度量值向其餘自治系統轉發報文。

10.自適應網卡只有紅燈閃爍,綠燈不亮,這種狀況正常?

答:自適應網卡紅燈表明Link/Act(連通/工做),即連通時紅燈長亮,傳輸數據時閃爍;綠燈表明FDX(全雙工),即全雙工狀態時亮,半雙工狀態時滅。若是一個半雙工的網絡設備和自適應網卡相連,因爲這張網卡是自適應網卡,它就會工做在半雙工狀態,因此綠燈不亮也屬於正常狀況。

11.兩臺筆記本電腦連起來後ping不通,你以爲可能存在哪些問題?

答:(1)首先想到的就是你的網線問題。確認網線是否正確,電腦之間連的線和電腦與HUB之間連的線分正線、反線,是不一樣的。可是對於使用千兆位網卡的除外,千兆位網卡有自動識別的功能,既能夠是正線也能夠是反線。(2)局域網設置問題。電腦互連是要設置的。看看是否安裝了必要的網絡協議,最重要的是,IP地址是否設置正確。互連的時候,最好一臺爲主,一臺爲副,主的設爲網關。(3)網卡驅動未正確安裝。(4)防火牆設置有問題。(5)是否有什麼軟件阻止ping包。

12.解釋什麼叫「透明」?什麼叫「網格」?

答:透明即向高層隱蔽其具體實現。網格就是有規律的方格集,是虛擬的。網格是把整個因特網整合一臺巨大的超級計算機,實現各類資源的全面共享。網格的根本特徵不是它的規模,而是資源共享,消除資源孤島。在不一樣地區的計算機各自分析某一項計算的一部分,綜合起來計算出同一項東西。

13.咱們在南京,與深圳的網絡是通的,但和北京的網絡不通,你以怎樣的順序查找問題所在?

答:查找路由器是否能夠測試到目的地、所通過的路由器及路由延遲狀態。經過這個命令看最後的一個數據包是在哪兒被丟棄或中斷的。

14.香農定理是什麼?

答:香農定理:香農定理描述了有限帶寬、有隨機熱噪聲信道的最大傳輸速率與信道帶寬、信號噪聲功率比之間的關係。在有隨機熱噪聲的信道上傳輸數據信號時,數據傳輸率Rmax與信道帶寬B、信噪比S/N的關係爲:Rmax=B*log2(1+S/N)。

香農定理由以下的公式給出:C=B*log2(1+S/N),其中C是可獲得的鏈路速度,B是鏈路的帶寬,S是平均信號功率,N是平均噪聲功率,信噪比(S/N)一般用分貝(dB)表示,分貝數=10*lg(S/N)。

15.IP地址的分類

A類、B類和C類地址的網絡號字段net-id分別爲1,2和3字節長,而在網絡號字段的最前面有1~3bit的類別比特,其數值分別規定爲0,10,110。A類、B類和C類地址的主機號字段分別爲3個、2個和1個字節長。

IP地址的使用範圍

網絡類別

最大網絡數

第一個可用的網絡號

最後一個可用的網絡號

每一個網絡中的最大主機數

A

126(27-2)

1

126

16777214(224-2)

B

16384(214)

128.0

191.255

65534(216-2)

C

2097152(221)

192.0.0

223.255.255

254(28-2)

通常不使用的特殊IP地址

net-id

host-id

源地址使用

目的地址使用

表明的意思

0

0

能夠

不可

在本網絡上的主機

0

host-id

能夠

不可

在本網絡上的某個主機

全1

全1

不可

能夠

只在本網絡上進行廣播

net-id

全1

不可

能夠

對net-id上的全部主機進行廣播

127

任何數

能夠

能夠

用做本地軟件環回測試之用

16.TCP/IP 創建鏈接的過程?(3-way shake)

答:在TCP/IP協議中,TCP協議提供可靠的鏈接服務,採用三次握手創建一個鏈接。

第一次握手:創建鏈接時,客戶端發送syn包(syn=j)到服務器,並進入SYN_SEND狀態,等待服務器確認;第二次握手:服務器收到syn包,必須確認客戶的SYN(ack=j+1),同時本身也發送一個SYN包(syn=k),即SYN+ACK包,此時服務器進入SYN_RECV狀態;第三次握手:客戶端收到服務器的SYN+ACK包,向服務器發送確認包ACK(ack=k+1),此包發送完畢,客戶端和服務器進入ESTABLISHED狀態,完成三次握手。

17. IP組播有那些好處?
答:Internet上產生的許多新的應用,特別是高帶寬的多媒體應用,帶來了帶寬的急劇
消耗和網絡擁擠問題。組播是一種容許一個或多個發送者(組播源)發送單一的數據包
到多個接收者(一次的,同時的)的網絡技術。組播能夠大大的節省網絡帶寬,由於無
論有多少個目標地址,在整個網絡的任何一條鏈路上只傳送單一的數據包。因此說組播
技術的核心就是針對如何節約網絡資源的前提下保證服務質量。

18.基礎知識

1)    計算機網絡:利用各類通訊手段,把分散的計算機有機的連在一塊兒,達到互相通訊並且共享軟件、硬件和數據等資源的系統。

2)    組成數據通訊網絡的基本要素爲信源、信宿、傳輸系統3項。

3)    通訊模型:信源(工做站)->發送器(調制解調器) ->傳輸系統(公用電話網) ->接收機(調制解調器) ->信宿(服務器)

4)    10BASE-T標準規定的網絡的網絡拓撲結構是星形,網絡速率是10Mb/S,網絡所採用的網絡介質是雙絞線。

5)    傳統的加密方法能夠分紅兩類:替代密碼和換位密碼。現代密碼學採用的算法主要有:祕密密鑰算法和公開密鑰算法。

6)    數據傳輸一般能夠分紅5個階段:(1)創建通訊鏈路;(2)創建數據傳輸鏈路;(3)傳送通訊控制信號和傳輸數據信息;(4)數據傳輸結束,雙方經過控制信息確認傳輸結束;(5)切斷數據傳輸鏈路。

7)    在WWW中,使用統一資源定位器URL來惟一地標識和定位因特網中的資源,它由3部分組成:客戶與服務器之間所使用的通訊協議和主機域名(或IP地址)和文件路徑和文件名。

8)    第一代網絡以單計算機爲中心的聯機系統,第二代網絡以遠程大規模互聯爲主要特色。

9)    單工是隻能有一個方向的通訊而沒有反方向的交互;半雙工是通訊的雙方均可以發送信息。但不能雙方同時發送信息。全雙工是通訊的雙方均可以同時發送信息和接受信息。

10)計算機通訊子網技術發展的順序是線路交換-報文組交換-幀中繼-ATM。

11)使用一樣網絡操做系統的兩個局域網絡鏈接時,爲使鏈接的網絡從網絡層到應用層都能一致,鏈接時必須使用網橋。

12)IEEE 802將數據鏈路層劃分爲兩個子層,上子層是邏輯鏈路控制LLC,下子層是媒體接入控制MAC。 

13)涉及OSI模型層次最多的設備是網關。

14)FTP工做時使用2條TCP鏈接來完成文件傳輸。

15)ICMP是Internet控制報文協議,處於網絡層(IP層)。

16)主要拓撲結構:總線、星形、樹形,環形。

17)異步傳輸模式(ATM)本質上一種高速分組交換模式,用固定大小的分組單元傳送信息,支持多媒體通訊,包括音頻、視頻和數據,結合了線路交換和分組交換的優勢,被用於B-ISDN。

18)分組交換:以分組爲單位,在網絡層上進行;幀中繼:以幀爲單位,在數據鏈路層上進行;異步傳輸:以信元爲單位,在數據鏈路層上進行,創建在大容量光纖介質基礎上的,適用於LAN和WAN。

19)有線傳輸介質:同軸電纜,雙絞線和光纖。

20)轉發器將信號放大並整形後再轉發出去,轉發器又稱爲中繼器,轉發器的做用是消除信號因爲通過一長段電纜而形成的失真和哀減,使信號的波形和強度達到所要求的指標,它工做在物理層,中繼器獲取衰減或損失的信號並從新生成它。

21)Internet採用TCP/IP協議;Internet物理地址和IP地址轉換採用ARP (Address Resolution Protocol)(地址解析協議;IP地址由兩部分組成,網絡號和主機號。不過是要和「子網掩碼」按位與以後才能區分哪些是網絡位哪些是主機位。

19.試題(選擇題,只是答案中之一。):

1)    若是把一個網絡40.15.0.0分爲兩個子網,第一個子網是40.15.0.0/17,那麼第二個子網將會是40.15.128.0/17。解析:讓主網分紅兩個網段,子網掩碼分別是0xff 0xff 0x80 0x00和0xff 0xff 0x00 0x00。

2)    若是一個蠕蟲病毒攻擊了一個家用PC機的A類地址主機的話,這個地址最有可能接受不少ICMP目的沒法抵達包。 解析:大量發出IP請求,確定不少不可達,返回不可達錯誤。

3)    在一個IP數據包到達目的地址以前,它可能成爲碎片,並且不會重組。 解析:網絡問題,包未達到終點不可能重組,但能夠分散成碎片。

4)    在TCP/IP協議棧裏,若是出現阻塞狀況,下面哪一種狀況最有可能發生?丟包 解析:網絡阻塞問題,擁塞致使丟包。

5)    文件傳輸是基於哪一種協議?TCP  解析:FTP是有鏈接的服務,因此必須基於TCP協議。

6)    一個C類網絡最多能容納多少臺主機? 254 解析:子網中IP爲0~255,其中0和255不能用,因此是254個。

7)    SMTP的全稱是「Simple Mail Transfer Protocol」,即簡單郵件傳輸協議。 SMTP 協議屬於TCP/IP協議族,它幫助每臺計算機在發送或中轉信件時找到下一個目的地。SMTP服務器就是遵循SMTP協議的郵件發送服務器。

8)    以太網轉換控制包是基於目的IP地址。

9)    若是TCP服務器在客戶端發出數據報以前已經崩潰了,TCP/IP棧可能返回一個SYN。解析:SYN包是TCP鏈接的第一個包,是很是小的一種數據包。SYN攻擊包括大量此類的包。因爲這些包看上去來自實際不存在的站點,所以沒法有效地進行處理。SYN攻擊就是利用TCP 鏈接的3次握手機制,但發起攻擊端只來一兩次握手,而被攻擊端一直在試圖完成TCP鏈接,所以形成資源不足。

10)在Windows2000操做系統中,配置IP地址的命令是ipconfig。若用ping命令來測試本機是否安裝了TCP/IP協議,則正確的命令是ping 127.0.0.1。若是要列出本機當前創建的鏈接,可使用的命令是netstat –a。

操做系統

1.基本知識點:

1)    操做系統是控制和管理計算機軟硬件資源,以儘可能合理有效的方法組織多個用戶共享多種資源的程序集合。

2)    操做系統的基本功能:(1)處理機管理。主要功能包括進程控制、進程調度、進程同步和進程通訊。(2)存儲器管理。主要功能包括內存分配、地址映射、內存保護和內存擴充。(3)設備管,也叫I/O管理。主要功能包括緩衝區管理、設備分配、設備驅動和設備的無關性處理。(4)文件管理。主要功能包括文件存儲空間的管理、文件操做的通常管理、目錄管理、文件的讀寫管理和存取控制。(5)用戶界面管理。操做系統的用戶界面就是操做系統與用戶的接口,包括控制接口和程序接口。

3)    現代操做系統的基本特徵:併發性、共享性、虛擬性、異步性和不肯定性。

4)    所謂中斷是指系統發生某一事件後,CPU暫停正在執行的程序去執行處理該事件的程序過程,處理中斷事件的程序稱爲中斷處理程序,產生中斷信號的那個部件稱爲中斷源。中斷處理具體過程:保存現場;分析緣由,轉中斷處理程序;恢復現場。

5)    進程是一個具備獨立功能的程序關於數據集合的一次能夠併發執行的運行活動,其基本特徵:動態特徵、併發特徵、獨立性、相互制約性。進程的構成:程序、數據和進程控制塊。進程有三種基本的調度狀態:執行狀態、就緒狀態和等待狀態。

6)    進程的引入大大地提升了資源的利用率和系統的吞吐量,而引入線程的目的是爲了減小程序併發所付出的系統開銷。進程是資源分配的單位,而線程是系統調度的單位。

7)    所謂死鎖是多個進程間的一種僵持狀態。進程死鎖的緣由:資源競爭及進程推動順序非法。死鎖的4個必要條件:互斥、佔有等待、不可剝奪、環路。死鎖的處理:鴕鳥策略、預防策略、避免策略、檢測與解除死鎖。

8)    臨界資源是一次只容許一個進程使用的資源。臨界區是在進程中操做臨界資源的程序段。

2.進程和線程的區別?
答:線程是指進程內的一個執行單元,也是進程內的可調度實體.與進程的區別:(1)調度:線程做爲調度和分配的基本單位,進程做爲擁有資源的基本單位。(2)併發性:不只進程之間能夠併發執行,同一個進程的多個線程之間也可併發執行。(3)擁有資源:進程是擁有資源的一個獨立單位,線程不擁有系統資源,但能夠訪問隸屬於進程的資源. (4)系統開銷:在建立或撤消進程時,因爲系統都要爲之分配和回收資源,致使系統的開銷明顯大於建立或撤消線程時的開銷。

3.網絡編程中設計併發服務器,使用多進程 與 多線程 ,請問有什麼區別?

解析:(1)進程:子進程是父進程的複製品。子進程得到父進程數據空間、堆和棧的複製品

(2)線程:相對與進程而言,線程是一個更加接近與執行體的概念,它能夠與同進程的其餘線程共享數據,但擁有本身的棧空間,擁有獨立的執行序列。

二者均可以提升程序的併發度,提升程序運行效率和響應時間。線程和進程在使用上各有優缺點:線程執行開銷小,但不利於資源管理和保護;而進程正相反。同時,線程適合於在SMP機器上運行,而進程則能夠跨機器遷移。

答:用多進程時每一個進程有本身的地址空間,線程則共享地址空間。全部其餘區別都是由此而來的:(1)速度:線程產生的速度快,線程間的通訊快,切換快等,由於它們在同一個地址空間內。(2)資源利用率:線程的資源利用率比較好也是由於它們在同一個地址空間內。(3)同步問題:線程使用公共變量/內存時須要使用同步機制,仍是由於它們在同一個地址空間內。

4. 操做系統中常見的進程調度策略有哪幾種?

答:FCFS(先來先服務),優先級,時間片輪轉,多隊列、多級反饋隊列。

5.進程間的通訊如何實現?

答:如今最多見的進程間通訊的方式有:信號,信號量,消息隊列,共享內存,管道。信號是使用信號處理器來進行的,信號量是使用P、V操做來實現的。消息隊列是比較高級的一種進程間通訊方法,由於它真的能夠在進程間傳送消息。

6.在Windows編程中互斥器(mutex)的做用和臨界區(critical section)相似,請說一下兩者間的主要區別。

答:二者的區別是mutex開業用於進程之間互斥,critical section是線程之間的互斥。

7.進程進入等待狀態有哪幾種方式?

答:CPU調度給優先級更高的Thread(線程),原先Thread 進入Waiting(等待)狀態。阻塞的Thread得到資源或者信號,進入Waiting狀態。在時間片輪轉的狀況下,若是時間片到了,也將進入等待狀態。

8.試說明進程在三個基本狀態之間轉換的典型緣由。

答:a.處於就緒狀態的進程,當進程調度程序爲之分配了處理機後,該進程便由就緒狀態變爲執行狀態。b.當前進程因發生某事件而沒法執行,如訪問已被佔有的臨界資源,就會使進程由執行狀態變爲阻塞狀態。c.當前進程因事件片用完而被暫停執行,該進程便由執行狀態變爲就緒狀態。

9.同步機構應遵循哪些基本準則?

答:a.空閒讓進;b.忙則等待;c.有限等待;d.讓權等待。

10.在單處理機環境下,進程間有哪幾種通訊方式?

答:a.共享存儲器系統通訊方式;b.消息傳遞系統通訊方式;c.管道通訊方式。

11.試比較消息隊列與管道通訊機制。

答:a.所謂管道,是指用於鏈接一個讀進程和一個寫進程,以實現它們之間通訊的共享文件,又稱pipe文件,管道通訊是屬於共享存儲系統的。b.消息隊列通訊機制屬於消息傳遞系統通訊機制,存在通訊鏈路,有消息的格式,有若干緩衝隊列,採用獨特的發送原語和接受原語。

12.在請求分頁系統中,常採用哪幾種頁面置換算法?

答:a.最佳置換算法;b.先進先出算法;c.最近最久未使用LRU置換算法;d.Clock置換算法;e.此外,還有最少使用置換算法和頁面緩衝算法。

數據庫

1.基礎知識點:

1NF:第一範式。若是關係模式R的全部屬性的值域中每個值都是不可再分解的值,則稱R屬於第一範式模式。第一範式的模式要求屬性值不可再分裂成更小部分,即屬性項不能是屬性組合或由組屬性組成。2NF:第二範式。若是關係模式R爲第一範式,而且R中每個非主屬性徹底函數依賴於R的某個候選鍵,則稱R爲第二範式模式。(若是A是關係模式R的候選鍵的一個屬性,則稱A是R的主屬性,不然稱A是R的非主屬性。) 3NF:第三範式。若是關係模式R是第二範式,且每一個非主屬性都不傳遞依賴於R的候選鍵,則稱R是第三範式的模式。 BCNF:BC模式。若是關係模式R是第一範式,且每一個屬性都不傳遞依賴於R的候選鍵,那麼稱R爲BCNF的模式。4NF:第四範式。設R是一個關係模式,D是R上的多值依賴集合。若是 D中成立非平凡多值依賴X→→Y時,X必是R的超鍵,那麼稱R是第四範式的模式。

2.試題

1)    設有關係R(S,D,M),其函數依賴集F={S→D,D→M}。則關係R至多知足2NF。 解析:屬於依賴關係,全部至多知足第二範式。

2)    找出表ppp裏面num最小的數,不能使用min函數。  答:select * from ppp where num<=all(select num from ppp) 或者:select top 1 num from ppp order by num。

3)    找出表ppp裏面最小的數,可使用min函數。 答:select * from ppp where num=(select Min(num) from ppp)。

4)    選擇表ppp2中num重複的記錄。 答: select * from ppp2 where num in(select num from ppp2 group by num having(count(num)>1))。

5)    寫出複製表、拷貝表和四表聯合的SQL語句。  答:複製表(只複製結構,源表名:A,新表名:B): select * into B from A where 1=0   拷貝表(拷貝結構,源表名:A,新表名:B): select * into B from A  四表聯查: select * from A,B,C,D where 關聯條件

6)    在SQL Server中如何用SQL語句創建一張臨時表?  答: create table #Temp(字段1 類型,字段2 類型…)   注意,臨時表要在表名前面加 「#」。

7)    %表明任意長度(長度能夠爲0)的字符串,_ 表明任意單個字符。若是用戶要查詢的語句自己就含有%或_,這時就要使用escape’<換碼字符>’短語對通配符進行轉義了。

8)    集函數SUM,AVG中的列必須是數值型。

綜合的是選擇題

9)    每個部門的每一個工種的工資最大值? select dept_id,job_cat,max(salary)from employee group by dept_id,job_cat;

10)在primary 和unique兩種約束的狀況下,Oracle數據庫會隱形建立一個惟一索引。

11)在select語句中包含一個where關鍵詞,group by關鍵詞通常在where關鍵詞以後,order by 關鍵詞通常在select語句中全部關鍵詞以後。

12)select last_name,salary from employees order by salary; select last_name,salary from employees order by 2 asc; 這兩個SQL語句是相同的結果。

13)若是你想把時間顯示成像「2005111014:44: 17」這樣的格式,SQL語句: select to_char(sydate,’yyyymmdd hh24:mi:ss’)from dual;

14)select語句中用來鏈接字符串的符號是+。

15)若是要從字符串「Hello world」中提取出「ello world」這樣的結果,SQL語句: select lower(trim(‘H’from ‘Hello world’))from dual;

3.存儲過程和函數的區別是什麼?

答:存儲過程是用戶定義的一系列SQL語句的集合,涉及特定表或其餘對象的任務,用戶能夠調用存儲過程。而函數一般是數據庫已定義的方法,它接受參數並返回某種類型的值,而且不涉及特定用戶表。

4.事務是什麼?

答:事務是做爲一個邏輯單元執行的一系列操做。一個邏輯工做單元必須有4個屬性,稱爲ACID(原子性、一致性、隔離性和持久性)屬性,只有這樣才能稱爲一個事務。

5.遊標的做用是什麼?如何知道遊標已經到了最後?

答:遊標用於定位結果集的行。經過判斷全局變量@@FETCH_STATUS能夠判斷其是否到了最後。一般此變量不等於0表示出錯或到了最後。

6.觸發器分爲事前觸發和過後觸發,這兩種觸發有何區別?語句級觸發和行級觸發有何區別?

答:事前觸發器運行於觸發事件發生以前,而過後觸發器運行於觸發事件發生以後。語句級觸發器能夠在語句執行前或後執行,而行級觸發在觸發器所影響的每一行觸發一次。

7.什麼叫作SQL注入式攻擊?如何防範?

答:所謂SQL注入式攻擊,就是攻擊者把SQL命令插入到Web表單的輸入域頁面請求的查詢字符串中,欺騙服務器執行惡意的SQL命令。在某些表單中,用戶輸入的內容直接用來構造動態SQL命令,或做爲存儲過程的輸入參數,這類表單特別容易受到SQL注入式攻擊。防範SQL注入式攻擊闖入:只要在利用表單輸入的內容構造SQL命令以前,把全部輸入內容過濾一番就能夠了。過濾輸入內容能夠按多種方式進行。第一,替換單引號,即把全部單獨出現的單引號改爲兩個單引號,防止攻擊者修改SQL命令的含義。第二,刪除用戶輸入內容中的全部連字符,防止攻擊者順利得到訪問權限。第三,對於用來執行查詢的數據庫帳戶,限制其權限。第四,用存儲過程來執行全部的查詢。第五,檢查用戶輸入的合法性,確信輸入的內容只包含合法的數據。數據檢查應當在客戶端和服務器端都執行。第六,將用戶登陸名稱、密碼等數據加密保存。第七,檢查提取數據的查詢所返回的記錄數量。

8.爲了防止在查詢記錄的時候被其餘用戶更改記錄,應該採用什麼方法?如何用查詢語句實現該方法?

答: 添加一個「時間戳」類型的字段就能夠了。timestamp這種數據類型會根據當前時間自動產生一個時間字符串,確保這些數在數據庫中是惟一的。timestamp通常用作給錶行加版本戳的機制,存儲大小爲8個字節。一個表只能有一個timestamp列。每次插入或更新包含timestamp列的行時,timestamp列中的值均會更新。這一屬性使timestamp列不適合做爲鍵使用,尤爲是不能做爲主鍵使用。對行的任何更新都會更改timestamp值,從而更改鍵值。

9.有一個數據庫,只有一個表,包含着1000個記錄,你能想出一種解決方案來把第五行到第七行的記錄取出來麼?不要使用航標和索引。

答:第一步創建數據庫:

declare @i int

set @i=1

create table #T(userid int)

while (@i<=10)

begin

insert into #T

select @i

set @i=@i+1

end

select userid from

(select top 3 userid from(selec top 7 userid from #T order by userid)Ta order by userid desc

)TB order by userid

刪除數據庫: drop table #T

提取數據:

select top 3 userid from T where userid not in(select top 4 userid from T order by userid)order by userid

或者:select top 7 userid from T where userid >ANY(select top 4 userid from T order by userid)order by userid

或者:select top 7 userid from T where userid >ALL(select top 4 userid from T order by userid)order by userid

10.什麼是彙集索引?什麼是非彙集索引?什麼是主鍵?

答:表中常常有一個列或列的組合,其值能惟一地標識表中的每一行。這樣的一列或多列稱爲表的主鍵。彙集索引肯定表中數據的物理順序。一個表中只能包含一個彙集索引。非彙集索引與課本中的索引相似。數據存儲在一個地方,索引存儲在另外一個地方,索引帶有指針指向數據的存儲位置。索引中的項目按索引鍵值的順序存儲,而表中的信息按另外一種順序存儲。

11.現有一張表,有兩個字段:ID,NAME。ID爲主鍵。若是但願查詢出全部擁有2個或更多ID 的NAME,查詢語句應該如何寫?

答:select [Name] from [table] group by(name) having(count([ID]>=2)。

12.設供應商供應零件的關係模式爲SP(Sno,Pno,Qty),其中Sno表示供應商號,Pno表示零件號,Qty表示零件數量。整個數據庫以下表:

Sno     Pno      Qty

168      r1        3

168      r2        4

168      r3        7

169      r2        1

169      r3        5

170      r4        8

171      r7        5

172      r2        1

172      r7        3

請問下面的SQL語句返回值是什麼?

Select * from SP SPY where exists (select * from SP SPZ where Sno)

解析:在exists 中的子查詢在這個例子中只返回一個值。由於從子查詢中返回的行數至少有一行exits返回爲true,這使得表中的全部記錄都被顯示了出來。

請問下面的SQL語句返回值是什麼?

Select * from SP SPY where exists (select * from SP SPZ where Sno=’168’ and SPZ.Pno=SPY.Pno);

解析:返回與168號供應商所提供零件相同編號的狀況。

若想獲得與168號供應上所提供零件相同的所有供應商的所有產品狀況?

解析:Select * from SP  where Sno in (select Sno from SP where Pno in (select Pno from SP from SP  where Sno=’168’));

或者:Select * from SP SPX where exists (select * from SP SPY where SPY.Sno=’168’ and exists (select * from SP SPZ where SPZ.Sno=SPX.Sno and SPZ.Pno=SPY.Pno));

13. 觸發器怎麼工做的?

答:觸發器主要是經過事件進行觸發而被執行的,當對某一表進行諸如UPDATE、 INSERT、 DELETE 這些操做時,數據庫就會自動執行觸發器所定義的SQL 語句,從而確保對數據的處理必須符合由這些SQL 語句所定義的規則。

14.在一個文件中有 10G 個整數,亂序排列,要求找出中位數。內存限制爲 2G。只寫出思路便可。(騰訊筆試題)

答:(1)把整數分紅256M段,每段能夠用64位整數保存該段數據個數,256M*8 = 2G內存,先清0。(2)讀10G整數,把整數映射到256M段中,增長相應段的記數。(3)掃描256M段的記數,找到中位數的段和中位數的段前面全部段的記數,能夠把其餘段的內存釋放。(4)因中位數段的可能整數取值已經比較小(若是是32bit整數,固然若是是64bit整數的話,能夠再次分段),對每一個整數作一個記數,再讀一次10G整數,只讀取中位數段對應的整數,並設置記數。(5)對新的記數掃描一次,便可找到中位數。

若是是32bit整數,讀10G整數2次,掃描256M記數一次,後一次記數因數量很小,能夠忽略不記。

解釋一下:假設是32bit整數,按無符號整數處理整數分紅256M段? 整數範圍是0 - 2^32 - 1 一共有4G種取值,4G/256M = 16,每16個數算一段 0-15是1段,16-31是一段,...整數映射到256M段中? 若是整數是0-15,則增長第一段記數,若是整數是16-31,則增長第二段記數,...其實能夠不用分256M段,能夠分的段數少一些,這樣在掃描記數段時會快一些,還能節省一些內存。

15.通常數據庫若出現日誌滿了,會出現什麼狀況,是否還能使用?

答:只能執行查詢等讀操做,不能執行更改,備份等寫操做,緣由是任何寫操做都要記錄日誌。也就是說基本上處於不能使用的狀態。

16.SQL Server是否支持行級鎖,有什麼好處?

答:支持,設立封鎖機制主要是爲了對併發操做進行控制,對干擾進行封鎖,保證數據

的一致性和準確性,行級封鎖確保在用戶取得被更新的行到該行進行更新這段時間內不

被其它用戶所修改。於是行級鎖便可保證數據的一致性又能提升數據操做的併發性。

17.磁盤櫃上有14塊73G的磁盤, 數據庫爲200G 大小包括日誌文件,如何設置磁盤(要說明這14磁盤是怎麼用的)?

答:這個問題應該是考察硬件知識和數據庫物理部署。首先須要知道這些磁盤是否要用於存放數據庫備份文件和數據庫性能(讀/寫)要求。來決定raid的級別。1)、若是偏重於性能考慮,並且不用存放數據庫備份文件的話,考慮使用raid0+1,這樣可以使用的磁盤容量爲:14*73*50%=511G。2)、若是讀/寫性能要求不高,並且還比較摳門的話,能夠考慮raid5,這樣可以使用的磁盤容量爲:13*73=949G。至於如何使用應該是說數據庫物理文件的部署。注意說出將tempdb,data file,log file分開存放以減小I/O競爭便可。其實如今的條帶化磁盤通常都會自動將文件分存,人爲的分佈已經愈來愈不重要了。

18..有兩服務器羣集,分別爲node1和node2 如今要打win200系統補丁,打完後,要從新啓動,如何打補丁,不能影響用戶使用(要用羣集的術語詳細說明)。

答:這個具體操做有點忘了。大體是:首先看哪一個節點正在使用,經過節點IP(私有)訪問另外一個空閒節點,爲其打上補丁,而後在羣集管理器中中止該節點(也能夠用命令行方式),從新啓動。等到啓動完畢,將切換使用節點,爲另外一個節點打補丁。而後從新啓動。

19.有一個A 數據庫,分別複製到B和C, B 要求 每次數據更新 也同時更新,C 天天更新一次就行,如何制定複製策略!

答:這個應該考察的是複製知識。a->b  1)、若是使用SQL Server複製功能,那麼讓a->b使用事務性複製方式(同步複製)。2)、若是表很少,也能夠本身寫觸發器,利用linkserver+distribute transaction。    a->c  1)、若是使用SQL Server複製功能,那麼讓a->b使用快照複製方式,在某一時間點進行一次性複製。2)、也能夠本身寫bat,將a備份後,經過ftp傳輸備份介質,恢復c。(比較麻煩,不推薦)

20.有一個order 表,有90個字段,20個索引,15個複合索引,其中有3個索引字段超過10個,如何進行優化

答:這個問題問的比較沒水平。你不詳細說明這個表的使用方式(讀寫類的,仍是幾乎是靜態表),就問人家怎麼優化?!!還不如問問索引的分佈訪問原理更好。

看得出他就想讓你說:那三個索引超過10個,B樹遍例效率很低,適當減小字段數目。若是是SQL2005,能夠將選擇性很差的字段放在「索引附加字段」中,以保證索引覆蓋。並且SQL Server因爲有鎖升級的毛病,能夠考慮拆開表。

21..有一個數據庫200G大小,天天增長50M 容許用戶隨時訪問,制定備份策略(詳細說明)。

答:這種狀況能夠採用增量備份方式。每週日作一次全備份,週一到週六做增量備份(因爲數據量較少,能夠考慮每30分鐘增量備份一次)。這樣能夠儘可能減小性能消耗,並且若是transaction log丟失的狀況下,能夠保證最多丟失30分鐘數據。

22..管理50臺數據庫,平常工做是檢查數據庫做業是否完成,你該如何完成這項檢查工做?

答:這個比較簡單。在每臺機器上創建linkserver,而後在DBA管理服務器上作個分佈式視圖,每次查詢該視圖,各個機器上的做業狀況一目瞭然。分佈式視圖寫法:

create view vw_job

as

select '機器一' as MName,* from linkserver1..sysjobactivity

union all

select '機器二' as MName,* from linkserver2..sysjobactivity

union all

select '機器三' as MName,* from linkserver3..sysjobactivity

23.自定義函數和存儲過程的區別是什麼,什麼狀況下只能用自定義函數,什麼狀況下只能用存儲過程

答:這個應該是考察存儲過程編寫經驗。通常自定義函數主要用於其餘sql中的調用,如:

select yourfunc(...) from table 這種狀況下,通常只能經過函數實現。存儲過程的功能要遠遠強於函數,例如動態執行sql(sp_executesql)的使用和一些特殊的功能,自定義函數中是不支持的,只能用存儲過程實現。

24.若是想配置SQL Mail 應該在服務器安裝哪些軟件!

答:須要哪些軟件?安個outlook express就能夠了。sql server提供接口存儲過程,很是簡單。

25.學生其存放在Student表中,學生選課狀況存放在SC表中,課程狀況存放在Course表中。

(1)查詢與「劉晨」在同一個系學習的學生。

答:SELECT Sno,Sname,Sdept FROM Student WHERE Sdept IN(SELECT Sdept FROM Student  WHERE Sname=’劉晨’);

或者:SELECT S1.Sno,S1.Sname,S1.Sdept FROM Student S1,Student S2 WHERE S1.Sdept=S2.Sdept AND S2.Sname=’劉晨’;

(2)查詢選修了課程名爲「信息系統」的學生學號和姓名

答:SELECT Sno,Sname FROM Student WHERE Sno IN(SELECT Sno FROM SC) WHERE Cno IN(SELECT Cno FROM Course WHERE Cname=’信息系統’);

或者:SELECT Sno,Sname FROM Student,SC,Course WHERE Student.Sno=SC.Sno AND SC.Cno=Course.Cno AND Course.Cname=’信息系統’;

COM

1.什麼是COM?你怎麼理解COM?

答:Components Object Model(COM)是軟件組件互相通訊的一種方式。它是一種二進制和網絡標準,容許任意兩個組件互相通訊,而無論它們是在什麼計算機上運行(只要計算機是相連的),無論各計算機運行的是什麼操做系統(只要該系統支持COM),也無論該組件是用什麼語言編寫的。COM還提供了位置透明性:當你編寫組件時,其餘組件是進程內DLL、本地EXE,仍是位於其餘計算機上的組件,對用戶而言都無所謂。

首先,COM對象被很好地封裝起來。你沒法訪問對象的內部實現細節,你沒法知道對象使用了什麼數據結構,可是咱們能夠經過接口來訪問COM對象裏面的方法。

歸納地說,COM具備以下一些優越性:(1)編程技術難度和工做量下降,開發週期變短,開發成本下降。(2)實現分層次的編程,從而促進了軟件的專業化生產。(3)軟件的複用率提升,使軟件的使用效率獲得提升並延長了使用壽命。

2.COM是接口麼?

答:(1)COM不是接口,也不是對象,它是一種標準。(2)符合COM標準的對象就是COM對象。其實COM對象無非是實現了不少接口的對象而已。(3)COM對象必須實現IUnKnown接口,這個接口是管理COM對象生命週期的。當COM對象不使用的時候,這個接口定義的方法負責釋放內存。(4)QueryInterface(QI),即所謂查詢接口。因爲COM對象有不少個接口,不一樣的接口管理着COM的不一樣類型的方法。所以從一個接口可使用的方法轉到另外一個接口可使用的方法的過程稱爲QI,這個過程是由Idispatch接口管理的。(5)GUIDs每一個組件都有一個獨一無二的標識,這個標識符就是COM組件的身份,它是一個128位的數字,由系統自由分配。(6)一個COM對象能夠有多個接口,一個接口也徹底能夠被多個COM 對象實現。(7)接口分爲兩種:內置接口和外置接口。前一種定義的是COM對象的方法和屬性,用implements實現,COM對象必須實現全部的接口內容;後一種定義的是COM對象的事件,用withEvents實現,這種接口在實現的時候沒必要實現全部的內容。(8)COM組件必須被註冊後才能使用,它獲得註冊表那裏去登記「戶口」。

3.COM有什麼缺陷?

答:COM組件很不錯,但是它也有致命的缺陷,這個缺陷就來自它自己。COM是能夠被重用的,COM對象的實現過程也能夠被修改升級(定義是不能修改的)。若是兩個程序都使用一個COM對象,而這個COM組件升級的話,極可能會出現某個程序無非使用新組件的狀況,這被稱爲「DLL  HELL」(DLL災難)。有時候咱們安裝了新軟件後不少別的軟件就沒法使用了,很大程度上就是由於這個DLL HELL。

相關文章
相關標籤/搜索