美國獨立服務器的TCP協議是TCP/IP協議族其中一個重要的協議,對比美國獨立服務器TCP協議介紹IP協議,TCP協議更靠近應用層,因此在應用程序中具有更強的可操作性,美國獨立服務器TCP協議介紹一些重要的 socket選項都與TCP協議相關,本文小編就來介紹下美國獨立服務器的TCP協議。
美國獨立服務器的傳輸層協議主要有兩個:TCP協議和UDP協議。使用TCP協議通信的雙方必須先建立連接,然后才能開始數據的讀寫。雙方都必須為該連接分配必要的內核資源,以管理連接的狀態和連接上數據的傳輸。美國獨立服務器TCP連接是雙方的數據讀寫可以通過一個連接進行,完成數據交換之后,通信雙方都必須斷開連接以釋放系統資源。
TCP協議的這種連接是一對一的,所以基于廣播和多播,目標是多個美國獨立服務器TCP協議地址的應用程序不能使用TCP服務。而無連接協議UDP則非常適合于廣播和多播。
節流服務和數據報服務的區別會對應到美國獨立服務器實際編程中,體現為通信雙方是否必須執行相同次數的讀、寫操作。當發送端應用程序連續執行多次寫操作時,TCP模塊先將這些數據放入TCP發送緩沖區中。當TCP模塊真正開始發送數據時,發送緩沖區中這些等待發送的數據可能被封裝成一個或多個TCP報文段發出。因此,TCP模塊發送出的TCP報文段的個數和應用程序執行的寫操作次數之間沒有固定的數量關系。
當美國獨立服務器接收端收到一個或多個TCP報文段后,TCP模塊將它們攜帶的應用程序數據按照TCP報文段的序號依次放入TCP接收緩沖區中,并通知應用程序讀取數據。接收端應用程序可以一次性將TCP接收緩沖區中的數據全部讀出,也可以分多次讀取,這取決于用戶指定的應用程序讀緩沖區的大小。因此,應用程序執行的讀操作次數和TCP模塊接收到的TCP報文段個數之間也沒有固定的數量關系。
綜上所述,發送端執行的寫操作次數和接收端執行的讀操作次數之間沒有任何數量關系,這就是字節流的概念:應用程序對數據的發送和接收是沒有邊界限制的。UDP則不然。發送端應用程序每執行一次寫操作UDP模塊就將其封裝成一個UDP數據報并發送之。接收端必須及時針對每一個UDP數據報執行讀操作,否則就會丟包。并且如果美國獨立服務器果用戶沒有指定足夠的應用程序緩沖區來讀取UDP數據,則UDP數據將被截斷。
美國獨立服務器TCP傳輸是可靠的,TCP協議采用發送應答機制,即發送端發送的每個TCP報文段都必須得到接收方的應答,才認為這個TCP報文段傳輸成功。其次,TCP協議采用超時重傳機制,發送端在發送出一個TCP報文段之后啟動定時器,如果在定時時間內未收到應答,它將重發該報文段。最后,因為TCP報文段最終是以IP數據報發送的,而IP數據報到達接收端可能亂序、重復,所以TCP協議還會對接收到的TCP報文段重排、整理,再交付給應用層。