1、試說明運輸層在協議棧中的地位和作用,運輸層的通信和網絡層的通信有什麼重要區別?爲什麼運輸層是必不可少的?
運輸層處於面向通信部分的最高層,同時也是用戶功能中的最低層,向它上面的應用層提供服務
運輸層爲應用進程之間提供端到端的邏輯通信,但網絡層是爲主機之間提供邏輯通信。
各種應用進程之間通信需要“可靠或盡力而爲”的兩類服務質量,必須由運輸層以複用和分用的形式加載到網絡層。
2、當應用程序使用面向連接的TCP和無連接的IP時,這種傳輸是面向連接的還是面向無連接的?
都是。這要在不同層次來看,在運輸層是面向連接的,在網絡層則是無連接的。
3、試舉例說明有些應用程序願意採用不可靠的UDP,而不用採用可靠的TCP。
VOIP:由於語音信息具有一定的冗餘度,人耳對VOIP數據報損失由一定的承受度,但對傳輸時延的變化較敏感。有差錯的UDP數據報在接收端被直接拋棄,TCP數據報出錯則會引起重傳,可能帶來較大的時延擾動。因此VOIP寧可採用不可靠的UDP,而不願意採用可靠的TCP。
4、 如果應用程序願意使用UDP來完成可靠的傳輸,這可能嗎?請說明理由
可能,但應用程序中必須額外提供與TCP相同的功能。
5、某個應用進程使用運輸層的用戶數據報UDP,然而繼續向下交給IP層後,又封裝成IP數據報。既然都是數據報,可否跳過UDP而直接交給IP層?哪些功能UDP提供了但IP沒提提供?
不可跳過UDP而直接交給IP層
IP數據報IP報承擔主機尋址,提供報頭檢錯;只能找到目的主機而無法找到目的進程。
UDP提供對應用進程的複用和分用功能,以及提供對數據差分的差錯檢驗。
6、一個應用程序用UDP,到IP層把數據報在劃分爲4個數據報片發送出去,結果前兩個數據報片丟失,後兩個到達目的站。過了一段時間應用程序重傳UDP,而IP層仍然劃分爲4個數據報片來傳送。結果這次前兩個到達目的站而後兩個丟失。試問:在目的站能否將這兩次傳輸的4個數據報片組裝成完整的數據報?假定目的站第一次收到的後兩個數據報片仍然保存在目的站的緩存中。
不行。重傳時,IP數據報的標識字段會有另一個標識符。僅當標識符相同的IP數據報片才能組裝成一個IP數據報。前兩個IP數據報片的標識符與後兩個IP數據報片的標識符不同,因此不能組裝成一個IP數據報。
7、在停止等待協議中如果不使用編號是否可行?爲什麼?
分組和確認分組都必須進行編號,才能明確哪個分則得到了確認。
8、在停止等待協議中,如果收到重複的報文段時不予理睬(即悄悄地丟棄它而其他什麼也沒做)是否可行?
收到重複幀不確認相當於確認丟失
9、 主機A向主機B連續發送了兩個TCP報文段,其序號分別爲70和100。試問:
(1) 第一個報文段攜帶了多少個字節的數據?
第一個報文段的數據序號是70到99,共30字節的數據。
(2) 主機B收到第一個報文段後發回的確認中的確認號應當是多少?
確認號應爲100
(3) 如果主機B收到第二個報文段後發回的確認中的確認號是180,試問A發送的第二個報文段中的數據有多少字節?
80字節
(4)如果A發送的第一個報文段丟失了,但第二個報文段到達了B。B在第二個報文段到達後向A發送確認。試問這個確認號應爲多少?
70
10、爲什麼在TCP首部中要把TCP端口號放入最開始的4個字節?
在ICMP的差錯報文中要包含IP首部後面的8個字節的內容,而這裏面有TCP首部中的源端口和目的端口。當TCP收到ICMP差錯報文時需要用這兩個端口來確定是哪條連接出了差錯。
11、 爲什麼在TCP首部中有一個首部長度字段,而UDP的首部中就沒有這個這個字段
TCP首部除固定長度部分外,還有選項,因此TCP首部長度是可變的。UDP首部長度是固定的。
12、如果用戶要傳送的數據的字節長度超過TCP報文字段中的序號字段可能編出的最大序號,問還能否用TCP來傳送
數據的字節長度超過TCP報文段中的序號字段可能編出的最大序號,通過循環使用序號,仍能用TCP來傳送。
13、在使用TCP傳送數據時,如果有一個確認報文段丟失了,也不一定會引起與該確認報文段對應的數據的重傳。試說明理由。
還未重傳就收到了對更高序號的確認。
14在TCP的擁塞控制中,什麼是慢開始、擁塞避免、快重傳和快恢復算法?這裏每一種算法各起什麼作用? “乘法減小”和“加法增大”各用在什麼情況下?
慢開始:在主機剛剛開始發送報文段時可先將擁塞窗口cwnd設置爲一個最大報文段MSS的數值。在每收到一個對新的報文段的確認後,將擁塞窗口增加至多一個MSS的數值。用這樣的方法逐步增大發送端的擁塞窗口cwnd,可以分組注入到網絡的速率更加合理擁塞避免:當擁塞窗口值大於慢開始門限時,停止使用慢開始算法而改用擁塞避免算法。
擁塞避免算法使發送的擁塞窗口每經過一個往返時延RTT就增加一個MSS的大小。
快重傳算法規定:發送端只要一連收到三個重複的ACK即可斷定有分組丟失了,就應該立即重傳丟手的報文段而不必繼續等待爲該報文段設置的重傳計時器的超時。
快恢復算法:當發送端收到連續三個重複的ACK時,就重新設置慢開始門限 ssthresh 與慢開始不同之處是擁塞窗口 cwnd 不是設置爲 1,而是設置爲ssthresh
若收到的重複的AVK爲n個(n>3),則將cwnd設置爲ssthresh;若發送窗口值還容許發送報文段,就按擁塞避免算法繼續發送報文段;若收到了確認新的報文段的ACK,就將cwnd縮小到ssthresh
乘法減小:是指不論在慢開始階段還是擁塞避免階段,只要出現一次超時(即出現一次網絡擁塞),就把慢開始門限值 ssthresh 設置爲當前的擁塞窗口值乘以 0.5。當網絡頻繁出現擁塞時,ssthresh 值就下降得很快,以大大減少注入到網絡中的分組數。
加法增大:是指執行擁塞避免算法後,在收到對所有報文段的確認後(即經過一個往返時間),就把擁塞窗口 cwnd增加一個 MSS 大小,使擁塞窗口緩慢增大,以防止網絡過早出現擁塞
15、設TCP的ssthresh的初始值爲8(單位爲報文段)。當擁塞窗口上升到12時網絡發生了超時,TCP使用慢開始和擁塞避免。試分別求出第1次到第15次傳輸的各擁塞窗口大小。你能說明擁塞控制窗口每一次變化的原因嗎?
擁塞窗口大小分別爲:1,2,4,8,9,10,11,12,1,2,4,6,7,8,9.
16、TCP在進行流量控制時是以分組的丟失作爲產生擁塞的標誌。有沒有不是因擁塞而引起的分組丟失的情況?如有,請舉出三種情況。
當Ip數據報在傳輸過程中需要分片,但其中的一個數據報未能及時到達終點,而終點組裝IP數據報已超時,因而只能丟失該數據報;
IP數據報已經到達終點,但終點的緩存沒有足夠的空間存放此數據報;
數據報在轉發過程中經過一個局域網的網橋,但網橋在轉發該數據報的幀沒有足夠的存儲空間而只好丟棄。
17、解釋爲什麼突然釋放運輸連接就可能會丟失用戶數據,而使用TCP的連接釋放方法就可保證不丟失數據。
當主機1和主機2之間連接建立後,主機1發送了一個TCP數據段並正確抵達主機2,接着主機1發送另一個TCP數據段,這次很不幸,主機2在收到第二個TCP數據段之前發出了釋放連接請求,如果就這樣突然釋放連接,顯然主機1發送的第二個TCP報文段會丟失。
而使用TCP的連接釋放方法,主機2發出了釋放連接的請求,那麼即使收到主機1的確認後,只會釋放主機2到主機1方向的連接,即主機2不再向主機1發送數據,而仍然可接受主機1發來的數據,所以可保證不丟失數據。
18、試用具體例子說明爲什麼在運輸連接建立時要使用三次握手。說明如不這樣做可能會出現什麼情況。
3次握手完成兩個重要的功能,既要雙方做好發送數據的準備工作(雙方都知道彼此已準備好),也要允許雙方就初始序列號進行協商,這個序列號在握手過程中被髮送和確認。
假定B給A發送一個連接請求分組,A收到了這個分組,併發送了確認應答分組。按照兩次握手的協定,A認爲連接已經成功地建立了,可以開始發送數據分組。可是,B在A的應答分組在傳輸中被丟失的情況下,將不知道A是否已準備好,不知道A建議什麼樣的序列號,B甚至懷疑A是否收到自己的連接請求分組,在這種情況下,B認爲連接還未建立成功,將忽略A發來的任何數據分組,只等待連接確認應答分組。而A發出的分組超時後,重複發送同樣的分組。這樣就形成了死鎖。
19、MIME與SMTP的關係是什麼的?什麼是quoted-printable編碼和base64編碼?
MIME全稱是通用因特網郵件擴充MIME。它並沒有改動或取代SMTP。MIME的意圖是繼續使用目前的RFC 822格式,但增加了郵件主體的結構,並定義了傳送非ASCII碼的編碼規則。也就是說,MIME郵件可以在現有的電子郵件程序和協議下傳送。
quoted-printable編碼:對於所有可打印的ASCII碼,除特殊字符等號外,都不改變。等號和不可打印的ASCII碼以及非ASCII碼的數據的編碼方法是:先將每個字節的二進制代碼用兩個十六進制數字表示,然後在前面再加上一個等號。
base64編碼是先把二進制代碼劃分爲一個24位長的單元,然後把每個24位單元劃分爲4個6位組。每一個6位組按以下方法替換成ASCII碼。6位的二進制代碼共有64種不同的值,從1到63。用A表示0,用B表示1,等等。26個大寫字母排列完畢後,接下去再排26個小寫字母,再後面是10個數字,最後用+表示62,而用/表示63。再用兩個連在一起的等號==和一個等號=分別表示最後一組的代碼只有8位或16位。回車和換行都忽略,它們可在任何地方插入。
20、試將數據 11001100 10000001 00111000進行base64編碼,並得到最後傳輸的ASCII數據。
對應的ASCII數據爲zIE4,對應的二進制代碼爲:
01111010 01001001 01000101 00110100
21、基於萬維網的電子郵件系統有什麼特點?在傳送郵電時使用什麼協議?
特點:不管在什麼地方,只要能上網,在打開萬維網瀏覽器後,就可以收發電子郵件。這時,郵件系統中的用戶代理就是普通的萬維網。
電子郵件從 A 發送到網易郵件服務器是使用 HTTP 協議。
兩個郵件服務器之間的傳送使用 SMTP。
郵件從新浪郵件服務器傳送到 B 是使用 HTTP 協議。
22、連接在Internet上的主機名必須是惟一的嗎?
主機名在因特網中必須是惟一的,IP地址在因特網中也必須是惟一的,但一個主機名卻可以對應多個IP地址。
23、一個單位的DNS服務器可以採用集中式的一個DNS服務器,也可以採用分佈式的多個DNS服務器,哪一種方案更好些?
從解析域名的速度來看,在集中式的一個DNS服務器上進行域名解析應當比在多個分佈式的DNS服務器要快些。
從管理的角度看,分層次的多級結構和分佈式的DNS服務器要方便得多。
計算速度方面來考慮,一個服務器若負荷過重就會使計算速度變慢。一個小單位如果很少發生同時請求域名的解析,那麼一個單個的域名服務器就能很好地工作。
24、對同一個域名向DNS服務器發出好幾次的DNS請求報文後,每一次得到IP地址都不一樣,這可能嗎?
可能。例如,對域名www.yahoo.com進行解析就會出現這樣的結果。產生這樣的結果是爲了使Yahoo這個萬維網服務器的負載得到平衡(因爲每天訪問這個站點的次數非常多)。因此這個網站就設有好幾個計算機,每一個計算機都運行同樣的服務器軟件。這些計算機的IP地址當然都是不一樣的,但它們的域名卻是相同的。這樣,第一個訪問該網址的就得到第一個計算機的IP地址,而第二個訪問者就得到第二個計算機的IP地址,等等。這樣可使每一個計算機的負荷不會太大。
25、簡述FTP的工作原理。
FTP採用客戶/服務器工作模式,在客戶與服務器之間利用TCP建立可靠連接,但與一般客戶/服務器模式不同的是,FTP客戶端與服務器之間要建立雙重TCP連接,一個是控制連接,另一個是數據連接。
控制連接傳輸控制信息(文件傳輸命令);數據連接則是真正用來傳輸文件數據。
FTP服務是一種交互式服務,客戶每次調用FTP便與服務器建立一個會話,並利用控制連接向服務器發送控制命令來維持會話,直到FTP關閉。FTP客戶進程每提出一個請求,服務器便與客戶建立一個數據連接,進行文件數據傳輸,一旦數據傳輸結束,數據連接就被撤除。
26、簡述電子郵件的工作過程。
電子郵件服務基於客戶/服務器模式。
發送方將編輯完畢的電子郵件發送給當地的郵件服務器
郵件服務器收到客戶送來的郵件,根據收件人的郵件地址發送到對方的郵件服務器中
對方的郵件服務器接收到其他郵件服務器發來的郵件,並根據郵件地址分發到相應的電子郵箱中,這樣接受方可通過電子郵箱來讀取郵件,並對他們進行相關的處理。