網絡的網絡
網絡把主機連接起來,而互聯(lián)網是把多種不同的網絡連接起來,因此互聯(lián)網是網絡的網絡。
ISP
互聯(lián)網服務提供商 ISP 可以從互聯(lián)網管理機構獲得許多 IP 地址,同時擁有通信線路以及路由器等聯(lián)網設備,個人或機構向 ISP 繳納一定的費用就可以接入互聯(lián)網。
目前的互聯(lián)網是一種多層次 ISP 結構,ISP 根據覆蓋面積的大小分為第一層 ISP、區(qū)域 ISP 和接入 ISP?;ヂ?lián)網交換點 IXP 允許兩個 ISP 直接相連而不用經過第三個 ISP。
主機之間的通信方式
電路交換與分組交換
1. 電路交換
電路交換用于電話通信系統(tǒng),兩個用戶要通信之前需要建立一條專用的物理鏈路,并且在整個通信過程中始終占用該鏈路。由于通信的過程中不可能一直在使用傳輸線路,因此電路交換對線路的利用率很低,往往不到 10%。
2. 分組交換
每個分組都有首部和尾部,包含了源地址和目的地址等控制信息,在同一個傳輸線路上同時傳輸多個分組互相不會影響,因此在同一條傳輸線路上允許同時傳輸多個分組,也就是說分組交換不需要占用傳輸線路。
在一個郵局通信系統(tǒng)中,郵局收到一份郵件之后,先存儲下來,然后把相同目的地的郵件一起轉發(fā)到下一個目的地,這個過程就是存儲轉發(fā)過程,分組交換也使用了存儲轉發(fā)過程。
時延
總時延 = 傳輸時延 + 傳播時延 + 處理時延 + 排隊時延
1. 傳輸時延
主機或路由器傳輸數據幀所需要的時間。
其中 l 表示數據幀的長度,v 表示傳輸速率。
2. 傳播時延
電磁波在信道中傳播所需要花費的時間,電磁波傳播的速度接近光速。
其中 l 表示信道長度,v 表示電磁波在信道上的傳播速度。
3. 處理時延
主機或路由器收到分組時進行處理所需要的時間,例如分析首部、從分組中提取數據、進行差錯檢驗或查找適當的路由等。
4. 排隊時延
分組在路由器的輸入隊列和輸出隊列中排隊等待的時間,取決于網絡當前的通信量。
計算機網絡體系結構
1. 五層協(xié)議
2. OSI
其中表示層和會話層用途如下:
五層協(xié)議沒有表示層和會話層,而是將這些功能留給應用程序開發(fā)者處理。
3. TCP/IP
它只有四層,相當于五層協(xié)議中數據鏈路層和物理層合并為網絡接口層。
TCP/IP 體系結構不嚴格遵循 OSI 分層概念,應用層可能會直接使用 IP 層或者網絡接口層。
TCP/IP 協(xié)議族是一種沙漏形狀,中間小兩邊大,IP 協(xié)議在其中占據舉足輕重的地位。
4. 數據在各層之間的傳遞過程
在向下的過程中,需要添加下層協(xié)議所需要的首部或者尾部,而在向上的過程中不斷拆開首部和尾部。
路由器只有下面三層協(xié)議,因為路由器位于網絡核心中,不需要為進程或者應用程序提供服務,因此也就不需要傳輸層和應用層。
通信方式
根據信息在傳輸線上的傳送方向,分為以下三種通信方式:
帶通調制
模擬信號是連續(xù)的信號,數字信號是離散的信號。帶通調制把數字信號轉換為模擬信號。
基本問題
1. 封裝成幀
將網絡層傳下來的分組添加首部和尾部,用于標記幀的開始和結束。
2. 透明傳輸
透明表示一個實際存在的事物看起來好像不存在一樣。
幀使用首部和尾部進行定界,如果幀的數據部分含有和首部尾部相同的內容,那么幀的開始和結束位置就會被錯誤的判定。需要在數據部分出現首部尾部相同的內容前面插入轉義字符。如果數據部分出現轉義字符,那么就在轉義字符前面再加個轉義字符。在接收端進行處理之后可以還原出原始數據。這個過程透明傳輸的內容是轉義字符,用戶察覺不到轉義字符的存在。
3. 差錯檢測
目前數據鏈路層廣泛使用了循環(huán)冗余檢驗(CRC)來檢查比特差錯。
信道分類
1. 廣播信道
一對多通信,一個節(jié)點發(fā)送的數據能夠被廣播信道上所有的節(jié)點接收到。
所有的節(jié)點都在同一個廣播信道上發(fā)送數據,因此需要有專門的控制方法進行協(xié)調,避免發(fā)生沖突(沖突也叫碰撞)。
主要有兩種控制方法進行協(xié)調,一個是使用信道復用技術,一是使用 CSMA/CD 協(xié)議。
2. 點對點信道
一對一通信。
因為不會發(fā)生碰撞,因此也比較簡單,使用 PPP 協(xié)議進行控制。
信道復用技術
1. 頻分復用
頻分復用的所有主機在相同的時間占用不同的頻率帶寬資源。
2. 時分復用
時分復用的所有主機在不同的時間占用相同的頻率帶寬資源。
使用頻分復用和時分復用進行通信,在通信的過程中主機會一直占用一部分信道資源。但是由于計算機數據的突發(fā)性質,通信過程沒必要一直占用信道資源而不讓出給其它用戶使用,因此這兩種方式對信道的利用率都不高。
3. 統(tǒng)計時分復用
是對時分復用的一種改進,不固定每個用戶在時分復用幀中的位置,只要有數據就集中起來組成統(tǒng)計時分復用幀然后發(fā)送。
4. 波分復用
光的頻分復用。由于光的頻率很高,因此習慣上用波長而不是頻率來表示所使用的光載波。
5. 碼分復用
為每個用戶分配 m bit 的碼片,并且所有的碼片正交,對于任意兩個碼片 s和t有
為了討論方便,取 m=8,設碼片 s 為 00011011。在擁有該碼片的用戶發(fā)送比特 1 時就發(fā)送該碼片,發(fā)送比特 0 時就發(fā)送該碼片的反碼 11100100。
在計算時將 00011011 記作 (-1 -1 -1 +1 +1 -1 +1 +1),可以得到
其中 s'為s的反碼。
利用上面的式子我們知道,當接收端使用碼片 s對接收到的數據進行內積運算時,結果為 0 的是其它用戶發(fā)送的數據,結果為 1 的是用戶發(fā)送的比特 1,結果為 -1 的是用戶發(fā)送的比特 0。
碼分復用需要發(fā)送的數據量為原先的 m 倍。
CSMA/CD 協(xié)議
CSMA/CD 表示載波監(jiān)聽多點接入 / 碰撞檢測。
記端到端的傳播時延為 τ,最先發(fā)送的站點最多經過 2τ 就可以知道是否發(fā)生了碰撞,稱 2τ 為 爭用期 。只有經過爭用期之后還沒有檢測到碰撞,才能肯定這次發(fā)送不會發(fā)生碰撞。
當發(fā)生碰撞時,站點要停止發(fā)送,等待一段時間再發(fā)送。這個時間采用 截斷二進制指數退避算法 來確定。從離散的整數集合 {0, 1, .., (2k-1)} 中隨機取出一個數,記作 r,然后取 r 倍的爭用期作為重傳等待時間。
PPP 協(xié)議
互聯(lián)網用戶通常需要連接到某個 ISP 之后才能接入到互聯(lián)網,PPP 協(xié)議是用戶計算機和 ISP 進行通信時所使用的數據鏈路層協(xié)議。
PPP 的幀格式:
MAC 地址
MAC 地址是鏈路層地址,長度為 6 字節(jié)(48 位),用于唯一標識網絡適配器(網卡)。
一臺主機擁有多少個網絡適配器就有多少個 MAC 地址。例如筆記本電腦普遍存在無線網絡適配器和有線網絡適配器,因此就有兩個 MAC 地址。
局域網
局域網是一種典型的廣播信道,主要特點是網絡為一個單位所擁有,且地理范圍和站點數目均有限。
主要有以太網、令牌環(huán)網、FDDI 和 ATM 等局域網技術,目前以太網占領著有線局域網市場。
可以按照網絡拓撲結構對局域網進行分類:
以太網
以太網是一種星型拓撲結構局域網。
早期使用集線器進行連接,集線器是一種物理層設備, 作用于比特而不是幀,當一個比特到達接口時,集線器重新生成這個比特,并將其能量強度放大,從而擴大網絡的傳輸距離,之后再將這個比特發(fā)送到其它所有接口。如果集線器同時收到兩個不同接口的幀,那么就發(fā)生了碰撞。
目前以太網使用交換機替代了集線器,交換機是一種鏈路層設備,它不會發(fā)生碰撞,能根據 MAC 地址進行存儲轉發(fā)。
以太網幀格式:
交換機
交換機具有自學習能力,學習的是交換表的內容,交換表中存儲著 MAC 地址到接口的映射。
正是由于這種自學習能力,因此交換機是一種即插即用設備,不需要網絡管理員手動配置交換表內容。
下圖中,交換機有 4 個接口,主機 A 向主機 B 發(fā)送數據幀時,交換機把主機 A 到接口 1 的映射寫入交換表中。為了發(fā)送數據幀到 B,先查交換表,此時沒有主機 B 的表項,那么主機 A 就發(fā)送廣播幀,主機 C 和主機 D 會丟棄該幀。主機 B 收下之后,查找交換表得到主機 A 映射的接口為 1,就發(fā)送數據幀到接口 1,同時交換機添加主機 B 到接口 3 的映射。
虛擬局域網
虛擬局域網可以建立與物理位置無關的邏輯組,只有在同一個虛擬局域網中的成員才會收到鏈路層廣播信息。
例如下圖中 (A1, A2, A3, A4) 屬于一個虛擬局域網,A1 發(fā)送的廣播會被 A2、A3、A4 收到,而其它站點收不到。
使用 VLAN 干線連接來建立虛擬局域網,每臺交換機上的一個特殊接口被設置為干線接口,以互連 VLAN 交換機。IEEE 定義了一種擴展的以太網幀格式 802.1Q,它在標準以太網幀上加進了 4 字節(jié)首部 VLAN 標簽,用于表示該幀屬于哪一個虛擬局域網。
概述
因為網絡層是整個互聯(lián)網的核心,因此應當讓網絡層盡可能簡單。網絡層向上只提供簡單靈活的、無連接的、盡最大努力交互的數據報服務。
使用 IP 協(xié)議,可以把異構的物理網絡連接起來,使得在網絡層看起來好像是一個統(tǒng)一的網絡。
與 IP 協(xié)議配套使用的還有三個協(xié)議:
IP 數據報格式
IP 地址編址方式
IP 地址的編址方式經歷了三個歷史階段:
1. 分類
由兩部分組成,網絡號和主機號,其中不同分類具有不同的網絡號長度,并且是固定的。
IP 地址 ::= {< 網絡號="">, < 主機號="">}
2. 子網劃分
通過在主機號字段中拿一部分作為子網號,把兩級 IP 地址劃分為三級 IP 地址。
IP 地址 ::= {< 網絡號="">, < 子網號="">, < 主機號="">}
要使用子網,必須配置子網掩碼。一個 B 類地址的默認子網掩碼為 255.255.0.0,如果 B 類地址的子網占兩個比特,那么子網掩碼為 11111111 11111111 11000000 00000000,也就是 255.255.192.0。
注意,外部網絡看不到子網的存在。
3. 無分類
無分類編址 CIDR 消除了傳統(tǒng) A 類、B 類和 C 類地址以及劃分子網的概念,使用網絡前綴和主機號來對 IP 地址進行編碼,網絡前綴的長度可以根據需要變化。
IP 地址 ::= {< 網絡前綴號="">, < 主機號="">}
CIDR 的記法上采用在 IP 地址后面加上網絡前綴長度的方法,例如 128.14.35.7/20 表示前 20 位為網絡前綴。
CIDR 的地址掩碼可以繼續(xù)稱為子網掩碼,子網掩碼首 1 長度為網絡前綴的長度。
一個 CIDR 地址塊中有很多地址,一個 CIDR 表示的網絡就可以表示原來的很多個網絡,并且在路由表中只需要一個路由就可以代替原來的多個路由,減少了路由表項的數量。把這種通過使用網絡前綴來減少路由表項的方式稱為路由聚合,也稱為 構成超網 。
在路由表中的項目由“網絡前綴”和“下一跳地址”組成,在查找時可能會得到不止一個匹配結果,應當采用最長前綴匹配來確定應該匹配哪一個。
地址解析協(xié)議 ARP
網絡層實現主機之間的通信,而鏈路層實現具體每段鏈路之間的通信。因此在通信過程中,IP 數據報的源地址和目的地址始終不變,而 MAC 地址隨著鏈路的改變而改變。
ARP 實現由 IP 地址得到 MAC 地址。
每個主機都有一個 ARP 高速緩存,里面有本局域網上的各主機和路由器的 IP 地址到 MAC 地址的映射表。
如果主機 A 知道主機 B 的 IP 地址,但是 ARP 高速緩存中沒有該 IP 地址到 MAC 地址的映射,此時主機 A 通過廣播的方式發(fā)送 ARP 請求分組,主機 B 收到該請求后會發(fā)送 ARP 響應分組給主機 A 告知其 MAC 地址,隨后主機 A 向其高速緩存中寫入主機 B 的 IP 地址到 MAC 地址的映射。
網際控制報文協(xié)議 ICMP
ICMP 是為了更有效地轉發(fā) IP 數據報和提高交付成功的機會。它封裝在 IP 數據報中,但是不屬于高層協(xié)議。
ICMP 報文分為差錯報告報文和詢問報文。
1. Ping
Ping 是 ICMP 的一個重要應用,主要用來測試兩臺主機之間的連通性。
Ping 的原理是通過向目的主機發(fā)送 ICMP Echo 請求報文,目的主機收到之后會發(fā)送 Echo 回答報文。Ping 會根據時間和成功響應的次數估算出數據包往返時間以及丟包率。
2. Traceroute
Traceroute 是 ICMP 的另一個應用,用來跟蹤一個分組從源點到終點的路徑。
Traceroute 發(fā)送的 IP 數據報封裝的是無法交付的 UDP 用戶數據報,并由目的主機發(fā)送終點不可達差錯報告報文。
虛擬專用網 VPN
由于 IP 地址的緊缺,一個機構能申請到的 IP 地址數往往遠小于本機構所擁有的主機數。并且一個機構并不需要把所有的主機接入到外部的互聯(lián)網中,機構內的計算機可以使用僅在本機構有效的 IP 地址(專用地址)。
有三個專用地址塊:
VPN 使用公用的互聯(lián)網作為本機構各專用網之間的通信載體。專用指機構內的主機只與本機構內的其它主機通信;虛擬指好像是,而實際上并不是,它有經過公用的互聯(lián)網。
下圖中,場所 A 和 B 的通信經過互聯(lián)網,如果場所 A 的主機 X 要和另一個場所 B 的主機 Y 通信,IP 數據報的源地址是 10.1.0.1,目的地址是 10.2.0.3。數據報先發(fā)送到與互聯(lián)網相連的路由器 R1,R1 對內部數據進行加密,然后重新加上數據報的首部,源地址是路由器 R1 的全球地址 125.1.2.3,目的地址是路由器 R2 的全球地址 194.4.5.6。路由器 R2 收到數據報后將數據部分進行解密,恢復原來的數據報,此時目的地址為 10.2.0.3,就交付給 Y。
網絡地址轉換 NAT
專用網內部的主機使用本地 IP 地址又想和互聯(lián)網上的主機通信時,可以使用 NAT 來將本地 IP 轉換為全球 IP。
在以前,NAT 將本地 IP 和全球 IP 一一對應,這種方式下?lián)碛?n 個全球 IP 地址的專用網內最多只可以同時有 n 臺主機接入互聯(lián)網。為了更有效地利用全球 IP 地址,現在常用的 NAT 轉換表把傳輸層的端口號也用上了,使得多個專用網內部的主機共用一個全球 IP 地址。使用端口號的 NAT 也叫做網絡地址與端口轉換 NAPT。
路由器的結構
路由器從功能上可以劃分為:路由選擇和分組轉發(fā)。
分組轉發(fā)結構由三個部分組成:交換結構、一組輸入端口和一組輸出端口。
路由器分組轉發(fā)流程
路由選擇協(xié)議
路由選擇協(xié)議都是自適應的,能隨著網絡通信量和拓撲結構的變化而自適應地進行調整。
互聯(lián)網可以劃分為許多較小的自治系統(tǒng) AS,一個 AS 可以使用一種和別的 AS 不同的路由選擇協(xié)議。
可以把路由選擇協(xié)議劃分為兩大類:
1. 內部網關協(xié)議 RIP
RIP 是一種基于距離向量的路由選擇協(xié)議。距離是指跳數,直接相連的路由器跳數為 1。跳數最多為 15,超過 15 表示不可達。
RIP 按固定的時間間隔僅和相鄰路由器交換自己的路由表,經過若干次交換之后,所有路由器最終會知道到達本自治系統(tǒng)中任何一個網絡的最短距離和下一跳路由器地址。
距離向量算法:
RIP 協(xié)議實現簡單,開銷小。但是 RIP 能使用的最大距離為 15,限制了網絡的規(guī)模。并且當網絡出現故障時,要經過比較長的時間才能將此消息傳送到所有路由器。
2. 內部網關協(xié)議 OSPF
開放最短路徑優(yōu)先 OSPF,是為了克服 RIP 的缺點而開發(fā)出來的。
開放表示 OSPF 不受某一家廠商控制,而是公開發(fā)表的;最短路徑優(yōu)先表示使用了 Dijkstra 提出的最短路徑算法 SPF。
OSPF 具有以下特點:
所有路由器都具有全網的拓撲結構圖,并且是一致的。相比于 RIP,OSPF 的更新過程收斂的很快。
3. 外部網關協(xié)議 BGP
BGP(Border Gateway Protocol,邊界網關協(xié)議)
AS 之間的路由選擇很困難,主要是由于:
BGP 只能尋找一條比較好的路由,而不是最佳路由。
每個 AS 都必須配置 BGP 發(fā)言人,通過在兩個相鄰 BGP 發(fā)言人之間建立 TCP 連接來交換路由信息。
網絡層只把分組發(fā)送到目的主機,但是真正通信的并不是主機而是主機中的進程。傳輸層提供了進程間的邏輯通信,傳輸層向高層用戶屏蔽了下面網絡層的核心細節(jié),使應用程序看起來像是在兩個傳輸層實體之間有一條端到端的邏輯通信信道。
UDP 和 TCP 的特點
UDP 首部格式
首部字段只有 8 個字節(jié),包括源端口、目的端口、長度、檢驗和。12 字節(jié)的偽首部是為了計算檢驗和臨時添加的。
TCP 首部格式
TCP 的三次握手
假設 A 為客戶端,B 為服務器端。
三次握手的原因
第三次握手是為了防止失效的連接請求到達服務器,讓服務器錯誤打開連接。
客戶端發(fā)送的連接請求如果在網絡中滯留,那么就會隔很長一段時間才能收到服務器端發(fā)回的連接確認。客戶端等待一個超時重傳時間之后,就會重新請求連接。但是這個滯留的連接請求最后還是會到達服務器,如果不進行三次握手,那么服務器就會打開兩個連接。如果有第三次握手,客戶端會忽略服務器之后發(fā)送的對滯留連接請求的連接確認,不進行第三次握手,因此就不會再次打開連接。
TCP 的四次揮手
以下描述不討論序號和確認號,因為序號和確認號的規(guī)則比較簡單。并且不討論 ACK,因為 ACK 在連接建立之后都為 1。
四次揮手的原因
客戶端發(fā)送了 FIN 連接釋放報文之后,服務器收到了這個報文,就進入了 CLOSE-WAIT 狀態(tài)。這個狀態(tài)是為了讓服務器端發(fā)送還未傳送完畢的數據,傳送完畢之后,服務器會發(fā)送 FIN 連接釋放報文。
TIME_WAIT
客戶端接收到服務器端的 FIN 報文后進入此狀態(tài),此時并不是直接進入 CLOSED 狀態(tài),還需要等待一個時間計時器設置的時間 2MSL。這么做有兩個理由:
TCP 可靠傳輸
TCP 使用超時重傳來實現可靠傳輸:如果一個已經發(fā)送的報文段在超時時間內沒有收到確認,那么就重傳這個報文段。
一個報文段從發(fā)送再到接收到確認所經過的時間稱為往返時間 RTT,加權平均往返時間 RTTs 計算如下:
超時時間 RTO 應該略大于 RTTs,TCP 使用的超時時間計算如下:
其中 RTTd 為偏差。
TCP 滑動窗口
窗口是緩存的一部分,用來暫時存放字節(jié)流。發(fā)送方和接收方各有一個窗口,接收方通過 TCP 報文段中的窗口字段告訴發(fā)送方自己的窗口大小,發(fā)送方根據這個值和其它信息設置自己的窗口大小。
發(fā)送窗口內的字節(jié)都允許被發(fā)送,接收窗口內的字節(jié)都允許被接收。如果發(fā)送窗口左部的字節(jié)已經發(fā)送并且收到了確認,那么就將發(fā)送窗口向右滑動一定距離,直到左部第一個字節(jié)不是已發(fā)送并且已確認的狀態(tài);接收窗口的滑動類似,接收窗口左部字節(jié)已經發(fā)送確認并交付主機,就向右滑動接收窗口。
接收窗口只會對窗口內最后一個按序到達的字節(jié)進行確認,例如接收窗口已經收到的字節(jié)為 {31, 34, 35},其中 {31} 按序到達,而 {34, 35} 就不是,因此只對字節(jié) 31 進行確認。發(fā)送方得到一個字節(jié)的確認之后,就知道這個字節(jié)之前的所有字節(jié)都已經被接收。
TCP 流量控制
流量控制是為了控制發(fā)送方發(fā)送速率,保證接收方來得及接收。
接收方發(fā)送的確認報文中的窗口字段可以用來控制發(fā)送方窗口大小,從而影響發(fā)送方的發(fā)送速率。將窗口字段設置為 0,則發(fā)送方不能發(fā)送數據。
TCP 擁塞控制
如果網絡出現擁塞,分組將會丟失,此時發(fā)送方會繼續(xù)重傳,從而導致網絡擁塞程度更高。因此當出現擁塞時,應當控制發(fā)送方的速率。這一點和流量控制很像,但是出發(fā)點不同。流量控制是為了讓接收方能來得及接收,而擁塞控制是為了降低整個網絡的擁塞程度。
TCP 主要通過四個算法來進行擁塞控制:慢開始、擁塞避免、快重傳、快恢復。
發(fā)送方需要維護一個叫做擁塞窗口(cwnd)的狀態(tài)變量,注意擁塞窗口與發(fā)送方窗口的區(qū)別:擁塞窗口只是一個狀態(tài)變量,實際決定發(fā)送方能發(fā)送多少數據的是發(fā)送方窗口。
為了便于討論,做如下假設:
1. 慢開始與擁塞避免
發(fā)送的最初執(zhí)行慢開始,令 cwnd = 1,發(fā)送方只能發(fā)送 1 個報文段;當收到確認后,將 cwnd 加倍,因此之后發(fā)送方能夠發(fā)送的報文段數量為:2、4、8 ...
注意到慢開始每個輪次都將 cwnd 加倍,這樣會讓 cwnd 增長速度非???,從而使得發(fā)送方發(fā)送的速度增長速度過快,網絡擁塞的可能性也就更高。設置一個慢開始門限 ssthresh,當 cwnd >= ssthresh 時,進入擁塞避免,每個輪次只將 cwnd 加 1。
如果出現了超時,則令 ssthresh = cwnd / 2,然后重新執(zhí)行慢開始。
2. 快重傳與快恢復
在接收方,要求每次接收到報文段都應該對最后一個已收到的有序報文段進行確認。例如已經接收到 M1 和 M2,此時收到 M4,應當發(fā)送對 M2 的確認。
在發(fā)送方,如果收到三個重復確認,那么可以知道下一個報文段丟失,此時執(zhí)行快重傳,立即重傳下一個報文段。例如收到三個 M2,則 M3 丟失,立即重傳 M3。
在這種情況下,只是丟失個別報文段,而不是網絡擁塞。因此執(zhí)行快恢復,令 ssthresh = cwnd / 2 ,cwnd = ssthresh,注意到此時直接進入擁塞避免。
慢開始和快恢復的快慢指的是 cwnd 的設定值,而不是 cwnd 的增長速率。慢開始 cwnd 設定為 1,而快恢復 cwnd 設定為 ssthresh。
域名系統(tǒng)
DNS 是一個分布式數據庫,提供了主機名和 IP 地址之間相互轉換的服務。這里的分布式數據庫是指,每個站點只保留它自己的那部分數據。
域名具有層次結構,從上到下依次為:根域名、頂級域名、二級域名。
DNS 可以使用 UDP 或者 TCP 進行傳輸,使用的端口號都為 53。大多數情況下 DNS 使用 UDP 進行傳輸,這就要求域名解析器和域名服務器都必須自己處理超時和重傳來保證可靠性。在兩種情況下會使用 TCP 進行傳輸:
文件傳送協(xié)議
FTP 使用 TCP 進行連接,它需要兩個連接來傳送一個文件:
根據數據連接是否是服務器端主動建立,FTP 有主動和被動兩種模式:
主動模式要求客戶端開放端口號給服務器端,需要去配置客戶端的防火墻。被動模式只需要服務器端開放端口號即可,無需客戶端配置防火墻。但是被動模式會導致服務器端的安全性減弱,因為開放了過多的端口號。
動態(tài)主機配置協(xié)議
DHCP (Dynamic Host Configuration Protocol) 提供了即插即用的連網方式,用戶不再需要去手動配置 IP 地址等信息。
DHCP 配置的內容不僅是 IP 地址,還包括子網掩碼、網關 IP 地址。
DHCP 工作過程如下:
遠程登錄協(xié)議
TELNET 用于登錄到遠程主機上,并且遠程主機上的輸出也會返回。
TELNET 可以適應許多計算機和操作系統(tǒng)的差異,例如不同操作系統(tǒng)系統(tǒng)的換行符定義。
電子郵件協(xié)議
一個電子郵件系統(tǒng)由三部分組成:用戶代理、郵件服務器以及郵件協(xié)議。
郵件協(xié)議包含發(fā)送協(xié)議和讀取協(xié)議,發(fā)送協(xié)議常用 SMTP,讀取協(xié)議常用 POP3 和 IMAP。
1. SMTP
SMTP 只能發(fā)送 ASCII 碼,而互聯(lián)網郵件擴充 MIME 可以發(fā)送二進制文件。MIME 并沒有改動或者取代 SMTP,而是增加郵件主體的結構,定義了非 ASCII 碼的編碼規(guī)則。
2. POP3
POP3 的特點是只要用戶從服務器上讀取了郵件,就把該郵件刪除。
3. IMAP
IMAP 協(xié)議中客戶端和服務器上的郵件保持同步,如果不手動刪除郵件,那么服務器上的郵件也不會被刪除。IMAP 這種做法可以讓用戶隨時隨地去訪問服務器上的郵件。
常用端口
應用應用層協(xié)議端口號傳輸層協(xié)議備注域名解析DNS53UDP/TCP長度超過 512 字節(jié)時使用 TCP動態(tài)主機配置協(xié)議DHCP67/68UDP簡單網絡管理協(xié)議SNMP161/162UDP文件傳送協(xié)議FTP20/21TCP控制連接 21,數據連接 20遠程終端協(xié)議TELNET23TCP超文本傳送協(xié)議HTTP80TCP簡單郵件傳送協(xié)議SMTP25TCP郵件讀取協(xié)議POP3110TCP網際報文存取協(xié)議IMAP143TCP
Web 頁面請求過程
1. DHCP 配置主機信息
2. ARP 解析 MAC 地址
3. DNS 解析域名
4. HTTP 請求頁面
侵權必刪。