tcpip協議中最核心的協議是 tcpip協議( 二 )


TCP 是面向連接的、可靠的流協議 。流就是指不間斷的數據結構,當應用程序采用 TCP 發送消息時,雖然可以保證發送的順序,但還是猶如沒有任何間隔的數據流發送給接收端 。TCP 為提供可靠性傳輸,實行“順序控制”或“重發控制”機制 。此外還具備“流控制(流量控制)”、“擁塞控制”、提高 *** 利用率等眾多功能 。UDP 是不具有可靠性的數據報協議 。細微的處理它會交給上層的應用去完成 。在 UDP 的情況下,雖然可以確保發送消息的大小,卻不能保證消息一定會到達 。因此,應用有時會根據自己的需要進行重發處理 。TCP 和 UDP 的優缺點無法簡單地、絕對地去做比較:TCP 用于在傳輸層有必要實現可靠傳輸的情況;而在一方面,UDP 主要用于那些對高速傳輸和實時性有較高要求的通信或廣播通信 。TCP 和 UDP 應該根據應用的目的按需使用 。1. 端口號
數據鏈路和 IP 中的地址,分別指的是 MAC 地址和 IP 地址 。前者用來識別同一鏈路中不同的計算機,后者用來識別 TCP/IP*** 中互連的主機和路由器 。在傳輸層也有這種類似于地址的概念,那就是端口號 。端口號用來識別同一臺計算機中進行通信的不同應用程序 。因此,它也被稱為程序地址 。
1.1 根據端口號識別應用
一臺計算機上同時可以運行多個程序 。傳輸層協議正是利用這些端口號識別本機中正在進行通信的應用程序,并準確地將數據傳輸 。

tcpip協議中最核心的協議是  tcpip協議

文章插圖
通過端口號識別應用
1.2 通過 IP 地址、端口號、協議號進行通信識別
僅憑目標端口號識別某一個通信是遠遠不夠的 。
tcpip協議中最核心的協議是  tcpip協議

文章插圖

tcpip協議中最核心的協議是  tcpip協議

文章插圖
通過端口號、IP地址、協議號進行通信識別
① 和② 的通信是在兩臺計算機上進行的 。它們的目標端口號相同,都是80 。這里可以根據源端口號加以區分 。③ 和 ① 的目標端口號和源端口號完全相同,但它們各自的源 IP 地址不同 。此外,當 IP 地址和端口號全都一樣時,我們還可以通過協議號來區分(TCP 和 UDP) 。1.3 端口號的確定
標準既定的端口號:這種 *** 也叫靜態 ***。它是指每個應用程序都有其指定的端口號 。但并不是說可以隨意使用任何一個端口號 。例如 HTTP、FTP、TELNET 等廣為使用的應用協議中所使用的端口號就是固定的 。這些端口號被稱為知名端口號,分布在 0~1023 之間;除知名端口號之外,還有一些端口號被正式注冊,它們分布在 1024~49151 之間,不過這些端口號可用于任何通信用途 。時序分配法:服務器有必要確定監聽端口號,但是接受服務的客戶端沒必要確定端口號 。在這種 *** 下,客戶端應用程序完全可以不用自己設置端口號,而全權交給操作系統進行分配 。動態分配的端口號范圍在 49152~65535 之間 。1.4 端口號與協議
端口號由其使用的傳輸層協議決定 。因此,不同的傳輸層協議可以使用相同的端口號 。此外,那些知名端口號與傳輸層協議并無關系 。只要端口一致都將分配同一種應用程序進行處理 。2. UDP
UDP 不提供復雜的控制機制,利用 IP 提供面向無連接的通信服務 。并且它是將應用程序發來的數據在收到的那一刻,立即按照原樣發送到 *** 上的一種機制 。即使是出現 *** 擁堵的情況,UDP 也無法進行流量控制等避免 *** 擁塞行為 。此外,傳輸途中出現丟包,UDP 也不負責重發 。甚至當包的到達順序出現亂序時也沒有糾正的功能 。如果需要以上的細節控制,不得不交由采用 UDP 的應用程序去處理 。UDP 常用于一下幾個方面:1.包總量較少的通信(DNS、SNMP等);2.視頻、音頻等多媒體通信(即時通信);3.限定于 LAN 等特定 *** 中的應用通信;4.廣播通信(廣播、多播) 。3. TCP
TCP 與 UDP 的區別相當大 。它充分地實現了數據傳輸時各種控制功能,可以進行丟包時的重發控制,還可以對次序亂掉的分包進行順序控制 。而這些在 UDP 中都沒有 。此外,TCP 作為一種面向有連接的協議,只有在確認通信對端存在時才會發送數據,從而可以控制通信流量的浪費 。根據 TCP 的這些機制,在 IP 這種無連接的 *** 上也能夠實現高可靠性的通信( 主要通過檢驗和、序列號、確認應答、重發控制、連接管理以及窗口控制等機制實現) 。3.1 三次握手(重點)
TCP 提供面向有連接的通信傳輸 。面向有連接是指在數據通信開始之前先做好兩端之間的準備工作 。所謂三次握手是指建立一個 TCP 連接時需要客戶端和服務器端總共發送三個包以確認連接的建立 。在socket編程中,這一過程由客戶端執行connect來觸發 。下面來看看三次握手的流程圖:

推薦閱讀