2003年度軟考網路設計師下午考試真題

試題一(10分)

閱讀以下說明,回答問題1和問題2,將解答填入答題紙的對應欄內。

[說明]

某學校擬組建一個小型校園網,具體設計如下:

1、設計要求

(1)終端用戶包括:48個校園網普通用戶;一個有24個多媒體用戶的電子閱覽室;

一個有48個用戶的多媒體教室(性能要求高於電子閱覽室)。

(2)伺服器提供web、dns、e-mail服務。

(3)支持遠程教學,可以接入網際網路,具有廣域網訪問的安全機制和網路管理功能。

(4)各樓之間的距離為500米。

2、可選設備

設備名稱 數量 特  性

交換機switchl  1台 具有兩個l001]ase—tx連線埠和24個lobase—t連線埠

交換機switch2 2台 各具有兩個100m快速乙太網連線埠(其中一個loobase—tx、一個l00base—fx)和24個10base—t連線埠

交換機switch3 2台 各配置2連線埠loobase—fx模組、24個100 base—tx快速乙太網連線埠

交換機switch4 1台 配置4連線埠loobase-fx模組、24個100base-tx快速乙太網連線埠:具有mib管理模組。

路由器routerl 1台 提供了對內的10/100m區域網路接口,對外的128k的isdn或專線連線,同時具有防火牆功能。

3、可選介質  3類雙絞線、5類雙絞線、多模光纖。

該校網路設計方案如圖1所示:

 

[問題1](7分)

依據給出的可選設備進行選型,將(1) ~(5)處空缺的設備名稱填寫在答題紙相應位置(每處可選一台或多台設備)。

[問題2](3分)

將(6)~(8)處空缺的介質填寫在答題紙相應位置(所給介質可重複選擇)。

 

試題二(10分)

閱讀以下說明,回答問題1和問題2,將解答填入答題紙的對應欄內。

[說明]

在一幢11層的大樓內組建一個區域網路,該區域網路的連線示意圖如圖2所示。

[問題11(6分)

指出上述解決方案存在什麼問題?需要

增加什麼設備?如何連線?

[問題2](4分)

若在該區域網路實現vlan,路由器將起什麼作用?

 

試題三(10分)

閱讀以下說明,回答問題,將解答填入答題紙的對應欄內。

[說明]

網路地址轉換(nat)的主要目的是解決ip地址短缺問題以及實現tcp負載均衡等。在圖3的設計方案中,與internet連線的路由器採用網路地址轉換。

[問題]

請根據路由器的nat表和圖3中給出的網路結構、ip地址,簡要敘述主機b向內部

網路發出請求進行通信時,邊界路由器實現tcp負載均衡的過程。

路由器的nat表

協定   內部局部地址及連線埠號 內部全局ip地址及連線埠號  外部全局ip地址及連線埠號

tcp 10.1.1.1:80 10.1.1.127:80 172.20.7.3:3058

tcp 10.1.1.2:80  10.1.1.127:80 172.20.7.3:4371

tcp 10.1.1.3:80  10.1.1.127:80 172.20.7.3:3062

 

試題四(10分)

閱讀以下說明,回答問題1至問題3,將解答填入答題紙的對應欄內。

[說明]

windows組網是指把windows終端和伺服器連線起來。圖4給出了在windows作業系統中的典型lan配置。

[問題1](3分)

在osi參考模型中,netbios工作在哪一層?

[問題2](4分)

netbios包括哪些服務功能?

[問題3](3分)

windows組網中採用什麼工具來實現域的創建和管理?在什麼情況下需要設定“主域”?

 

試題五(10分)

閱讀以下說明,將應填入__(n) __處的解答填寫在答題紙的對應欄內。

[說明]

某網路結構如圖5所示,如果router3與網路4之間的線路突然中斷,按照rip路由協定的實現方法,路由表的更新時間間隔為30秒,中斷30秒後router2的路由信息表1和中斷500秒後router2的路由信息表2如下。

註:①若到達目的網路不需轉發或目的網路不可達,用“一”來表示“下一站地址”;

②當目的網路不可達時,“跳數”為16。

 

路由信息表1

目的網路 下一站地址  跳數

10.0.0.0  __(1)__ __(2)__

20.0.0.0  -  0

30.0.0.0  -  0

40.0.0.0  __(3)__ __(4)__

路由信息表2

目的網路 下一站地址  跳數

10.0.0.0 20.0.0.1  1

20.0.0.0 __(5)__ __(6)__

30.0.0.0  __(7)__ __(8)__

40.0.0.0  __(9)__ __(10)__

[問題]

1.請填充中斷30秒後router2的路由信息表1。

2.請填充中斷500秒後router2的路由信息表2。

 

試題六(10分)

閱讀以下說明,回答問題1和問題2,將解答填入答題紙的對應欄內。

[說明]

vpn是通過公用網路internet將分布在不同地點的終端聯接而成的專用網路。目前大多採用ipsec實現ip網路上端點間的認證和加密服務。

[問題1](5分)

某公司的網路拓撲結構如圖6所示,採用vpn來實現網路安全。請簡要敘述從公司

總部主機到分支機構主機通過ipsec的通信過程。

 [問題2](每空1分,共5分)

某路由器的部分配置信息如下所示,請解釋其中標有下劃線部分的含義(“//”後為注釋內容)。

*配置路由器信息

version 12.0  //版本

hostname secrouter//路由器名稱

boot system flash c1700-osy56i-mz_120-3—t3.bin

//套用ike共享密鑰進行認證

//創建標識為“100”的ike策略

crypto isakmp policy 100

hash md5 (1)

authentication pre-share  (2)

//與遠端ip為172.16.2.1的對等體的共享密鑰為“mcns”

crypto isakmp key mcns address 172.16.2.1

//配置名為l&2的交換集,指定esp-des和esp-md5-hmac兩種變換

crypto  ipsec  transform—set  l&2  esp—des  esp—md5一hmac

//配置加密圖

//分配給該加密圖集的名稱:sharef,序號:10;

//指定用ike來建立ipsec安全關聯,以保護由該加密圖條目所指定的數據流

crypto map sharef 10 ipsec-isakmp

set deer 172.16.2.1  (3)

set transform-set l&2 (4)

match address 151

 

//配置接口

interface serial0

ip address 172.16.1.1  255.255.255.252

ip access-group 101 in

crypto  map  sharef  (5)

interface fastethernet0

end

 

試題七(15分)

閱讀以下說明和java程式代碼,將應填入__(n) __處的字句寫在答題紙的對應欄內。

[說明]

1、smtp是傳送e-mail的協定,常用以下5條命令傳送e-mail:

◆itelo<sp><domain><crlf>,與smtp伺服器握手,傳送本機域名;

◆mall<sp>from:<reverse-path><crlf>,傳送發信者的信箱名稱;

◆rcpt<sp>t0:<forward-path><crlf>,傳送接收者的信箱名稱;

◆data<crlf>,傳送郵件數據e包括信頭和信體);

◆quit<crlf>,退出與smtp伺服器的連線。

2、試題中直接利用的類及方法如下:

(1)類serversocket(intport)實現tcp伺服器插口(socket),它提供兩種構造函式,用它們來指定伺服器插口所用的連線埠,並監聽到達的連線請求。類中的主要方法有:

accept():啟動伺服器插口監聽並等待,直到建立連線為止,一旦建立連線就返回socket類的一個對象。

getlnetaddress():返回插口所連線的主機地址。

getlocalport():返回在伺服器插口上建立了連線的連線埠。

close():關閉伺服器插口。

(2)類inetaddress包裝了internet地址。類中的主要方法有:

getlocalhost():返回一個代表本機internet地址的inetaddress對象。

getaddress():獲得數字表示的ip地址。

gethostname():獲得域名。

(3)類socket實現基於連線的客戶插口。類中的主要方法有:

getlnetaddress():返回一個與插口連線的客戶機的internet地址,其類型為inetaddress。

getlnputstream():用來訪問與插口相關的輸入流。

getoutputstream():用來訪問與插口相關的輸出流。

close():關閉插口。

(4)readline()是輸入流類的一個方法,用於伺服器或客戶從對方讀入一行輸入

流信息。

(5)用戶自定義類nvtinputstream(1nputstream instream,outputstream outstream)實現了網路虛擬終端輸入接口。

(6)用戶自定義類nvtoutputstream(0utputstreamoutstream)實現了網路虛擬終端輸出接口。

3、下面是用java語言實現的一個簡單smtp伺服器程式的部分代碼。

[程式代碼]

import java, net.*;

import java. io.*;

import jdg. yan. nvtinputstream; //用戶自定義類包

import jdg. yan. nvtoutputstream; //用戶自定義類包

 

public class smtpserverapp

{

public static void main(string args[])

{

smtpserver server=new $mtpservero;

server, run 0;

}

}

 

class smtpserver

{

static final int helo=1;

static final int mail=2;

static final int rcpt=3;

static final int data=4;

static final iht end data=5;

static final iht quit=6;

static final int finished=9;

nvtoutputstream out;

nvtinputstream in;

string hostname;

 

public smtpserver()

{

super();

}

public void run(){

try {

serversocket server=__(1)__;  //在1145號連線埠建立tcp伺服器插口

int localport= server, getlocalport() ; //監聽連線連線埠

hostname=__ (2) __;  //獲取本地主機域名

system. out. println (“listening on port”+ localport+”.”);

boolean finished=false;

do {

socket client=__(3)__; // 監聽等待,直到建立連線,返回對象cllent

string destname=__(4)__ ; //獲得所連線的客戶主機ip地址的域名

int destport=client, getport ()  ; //所連線的客戶主機連線埠號

system. out.println(“accepted connection to “+destname+” on port “+destport+”.”

//控制台顯示連線

out=new nvtoutputstream (client.getoutputstream());

in=new nvtinputstream(__ (5) __);  //建立與連線關聯的輸入流

__(6)__ ;  //接收郵件

__(7)__ ;  //關閉連線對象

} while (! finished);

}catch (unknownhostexception ex) {

system.out. println (*unknownhostexception occurred.”);  //出錯處理

catch (ioexception ex) {

system. out. println (“ioexception occurred.”);

}

}

void getmail(){  //實現smtp的子集,從客戶接收郵件

out. println(“server 220”+hostname+” ready!” ) ;

int state =helo; //設定狀態為helo,state保存與客戶通信的狀態

do { //接收並處理從郵件客戶接收到的命令

string line=” ”;

out.println(“server 250  helo , ok!”);

try{

line= __(8)__;  //從虛擬終端讀取一行

if (1ine==null ) state=finished;

} catch(ioexception ex) {

system. out. println (“server ioexception occurred.”);

system. exit (1) ~

}

switch (state) {

case helo:

if (__(9)__)  //若該行信息為傳送本機域名

{

out.println(“server 250 hello”):

system.out.println(1ine);

tate=mail;}

else{

out.println(“server 500 error”);

system.out.println(*server*+line);

}

state:finished;

break:

case mall:  //代碼省略

case rcpt:  //代碼省略

case data:

if(__(10)__)  //若該行信息為傳送郵件數據

{

out.println(“354 mail input:end with<crlf>.<crlf>”);

system.out.println(1ine);

state=end_data;

}else{

out.println(*500 error*);

system.out.println(1ine);

}

break;

case end data://代碼省略

case quit:  //代碼省略

}

}while(state!=finished);

}

//判斷客戶收到的命令是否與指定的命令字元串相匹配

boolean commandis(string s,string line){

int n=s.1ength();

if(s.equalslgnorecase(1ine.substring(0,n)))return true;

return false;

}

}