1. 程式人生 > >【網絡】 應用&傳輸層筆記

【網絡】 應用&傳輸層筆記

服務端 註冊 適應 頂級域名 郵件轉發 映射 name 技術 eight

應用層

應用層常用的協議和各自對應的TCP/UDP端口:

  DNS  TCP/UDP  53

  HTTP  TCP  80

  SMTP  TCP  25

  POP  UDP  110

  Telnet  TCP  23

  DHCP  UDP  67

  FTP  TCP  20和21

關於端口號的分配可以提一下:

  公認端口:0-1023

  已註冊端口:1024-49151

  動態&私有端口:49152-65535

下面是一些常用的應用層協議略解

  1. DNS(Domain Name System)

  主要功能:將對用戶友好的域名轉化為後臺服務器的IP地址

  DNS客戶端本身也是一個服務,在配置網絡連接的時候,系統會要求用戶提供DNS服務器。對於家庭個人電腦而言,大多數時候ISP都會提供。在DOS命令行鍵入nslookup可以查看到當前網絡狀況下DNS服務器的配置信息。DNS的解析過程是這樣的。DNS服務器上有一個named守護進程監聽請求,當收到某個客戶端發來的請求時,服務器先檢查自身記錄,查找看本次請求的域名可不可以憑自身的力量解析。如果不行那就要連接到其他的DNS Server,當得到結果之後DNSServer會向客戶端返回結果,同時將本次得到的域名和IP地址之間的對應關系存儲下來,如果下次還有類似的請求那麽就可以憑自身記錄快速處理了。

  關於DNS Server的層級構造:DNS服務器采用樹狀結構來實現檢索目標。一臺根服務器記錄了頂級服務器的信息(比如它們的IP地址)。頂級服務器中,每一個服務器各自管理一個頂級域名(比如.com)。服務器中記錄的信息是二級服務器的信息。二級服務器中維護的是頂級域名+二級域名的組合,其記錄信息是三級服務器的信息……以此類推,只有最下層的服務器才會記錄一個完整域名和IP地址之間的映射關系。圖示:

技術分享

  對於這個實例中的mail.cisco.com這個域名來說,保存過其相關所有信息的DNS服務器,包括跟服務器,.com的一級服務器,cisco.com的二級服務器,mail.cisco.com的三級服務器都叫做這個域名的主域名服務器。

  2. HTTP 和 WEB服務

  通常情況下通過瀏覽器訪問某個文件的過程:

  用戶在瀏覽器地址欄中輸入一個URL,瀏覽器解析URL得到三部分分別是協議或方案(http://)、域名、請求文件的路徑。瀏覽器向DNS請求將域名轉化為IP地址,然後根據HTTP協議的要求向這個地址發送一個GET請求,要求訪問相關文件。服務器收到相關請求之後將相關文件的內容傳送給請求發起方,然後瀏覽器解釋得到的文件內容並顯示頁面。

  HTTP框架內的會話發起種類有很多種,其中最常用的就是GET和POST。區別就不多啰嗦了,懂點web的人都懂的。除了這兩個還有像PUT,DELETE這類的。

  3. POP,SMTP協議以及MTA,MDA,MUA進程

  對用戶而言,POP協議用來規定接收郵件的規則,SMTP用來規定發送郵件的規則,所以一般郵件服務器和客戶機都肯定要同時支持兩種協議。MUA進程就是運行在客戶機上,用來實現這兩個協議的程序。相對的郵件服務器上則是靠MTA和MDA兩個進程來實現收發郵件協議的。一個郵件服務器首先用MTA從客戶端的MUA或者另一臺服務器的MTA那裏獲得郵件,查看郵件的宛先,如果這個地址維護在本地服務器上,那麽就把郵件轉送給MDA,由服務器的MDA進程負責分發;如果沒有在本地服務器上找到相關目的地址,那麽就用MTA把這個郵件轉發給另一臺服務器的MTA。

  4. DHCP協議

  DHCP服務器的功能是提供自動分配的IP,子網掩碼,缺省網關等網絡層的參數。現在一般家庭裏都有無線路由器了,無線路由器中就自帶了一個DHCP服務器的。如果沒有接入無線的話那麽DHCP服務由ISP提供。

  采用DHCP雖然能夠快速自動地分配網絡參數,讓管理接入接出頻繁的網絡方便很多,但是也有一些缺點,比如我們需要網關,交換機這類網絡設備的IP得是固定IP比較好,另外DHCP不對接入的設備有安全性檢查導致安全性也會降低一些。

傳輸層

  傳輸層的作用主要有:

  跟蹤各個會話(通過在PDU中寫入端口號實現)

  將數據分段(適應傳輸方式,提高效率和容錯性)

  在接收端重組數據段

  標識應用程序

  流量控制

  錯誤回復(通過重傳)

  開始會話

  根據應用層的不同要求而選擇不同的協議(TCP/UDP)

  

  客戶端發送請求的時候傳輸層程序會為這個數據段隨機選擇動態分配的端口,比如在DOS中鍵入netstat -an可以看到狀態為ESTABLISHED的會話,本地的地址後面的端口都是一個很大的數,就是隨機分配來的。而一般服務端的話為了讓客戶端能夠方便地找到服務,其肯定是一個靜態的固定端口號。ip:port這樣的形式表示的一個通信地址也被稱為套接字。

  

  TCP和UDP兩種協議的不同:

  TCP是可靠傳輸,UDP是盡力傳輸。TCP在其PDU的報頭中有序列號等信息,占20個字節。UDP則沒有這部分信息,其報頭只占8個字節。對於TCP而言,它會在發送數據之後跟蹤數據的到達情況,確認是否需要重發。同時TCP還在接收到數據之後按照序列號的順序重組數據,而這兩項功能UDP是沒有的。相對而言TCP消耗的網絡成本更大一些因為它傳遞更多的數據且需要在會話之前先握手連接(作為檢測到達情況的準備工作),而UDP的成本小一些。基於TCP和UDP的代表的應用有:

  TCP  web瀏覽器,電子郵件,文件傳輸

  UDP  視頻音頻流,IP電話(中途丟幾個包也不影響整體數據表現的)

哎…那啥。。當時實在是過於青澀,有很多東西覺得沒必要記錄的記了下來,還錯了很多。。我都不太想繼續整理下去了【捂臉】

【網絡】 應用&傳輸層筆記