熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

網絡編程基本概念,TCP/IP協議簡介

2013-11-23 18:50:38  來源: Java核心技術 
    網絡基礎知識
    網絡編程的目的就是指直接或間接地通過網絡協議與其他計算機進行通訊網絡編程中有兩個主要的問題一個是如何准確的定位網絡上一台或多台主機另一個就是找到主機後如何可靠高效的進行數據傳輸在TCP/IP協議中IP層主要負責網絡主機的定位數據傳輸的路由由IP地址可以唯一地確定Internet上的一台主機而TCP層則提供面向應用的可靠的或非可靠的數據傳輸機制這是網絡編程的主要對象一般不需要關心IP層是如何處理數據的
    目前較為流行的網絡編程模型是客戶機/服務器(C/S)結構即通信雙方一方作為服務器等待客戶提出請求並予以響應客戶則在需要服務時向服務器提出申請服務器一般作為守護進程始終運行監聽網絡端口一旦有客戶請求就會啟動一個服務進程來響應該客戶同時自己繼續監聽服務端口使後來的客戶也能及時得到服務
    兩類傳輸協議TCPUDP
    盡管TCP/IP協議的名稱中只有TCP這個協議名但是在TCP/IP的傳輸層同時存在TCP和UDP兩個協議
    TCP是Tranfer Control Protocol的簡稱是一種面向連接的保證可靠傳輸的協議通過TCP協議傳輸得到的是一個順序的無差錯的數據流發送方和接收方的成對的兩個socket之間必須建立連接以便在TCP協議的基礎上進行通信當一個socket(通常都是server socket)等待建立連接時另一個socket可以要求進行連接一旦這兩個socket連接起來它們就可以進行雙向數據傳輸雙方都可以進行發送或接收操作
    UDP是User Datagram Protocol的簡稱是一種無連接的協議每個數據報都是一個獨立的信息包括完整的源地址或目的地址它在網絡上以任何可能的路徑傳往目的地因此能否到達目的地到達目的地的時間以及內容的正確性都是不能被保證的
    下面我們對這兩種協議做簡單比較
    使用UDP時每個數據報中都給出了完整的地址信息因此無需要建立發送方和接收方的連接對於TCP協議由於它是一個面向連接的協議在socket之間進行數據傳輸之前必然要建立連接所以在TCP中多了一個連接建立的時間
    使用UDP傳輸數據時是有大小限制的每個被傳輸的數據報必須限定在KB之內而TCP沒有這方面的限制一旦連接建立起來雙方的socket就可以按統一的格式傳輸大量的數據UDP是一個不可靠的協議發送方所發送的數據報並不一定以相同的次序到達接收方而TCP是一個可靠的協議它確保接收方完全正確地獲取發送方所發送的全部數據
    總之TCP在網絡通信上有極強的生命力例如遠程連接(Telnet)和文件傳輸(FTP)都需要不定長度的數據被可靠地傳輸相比之下UDP操作簡單而且僅需要較少的監護因此通常用於局域網高可靠性的分散系統中client/server應用程序
    讀者可能要問既然有了保證可靠傳輸的TCP協議為什麼還要非可靠傳輸的UDP協議呢?主要的原因有兩個一是可靠的傳輸是要付出代價的對數據內容正確性的檢驗必然占用計算機的處理時間和網絡的帶寬因此TCP傳輸的效率不如UDP高二是在許多應用中並不需要保證嚴格的傳輸可靠性比如視頻會議系統並不要求音頻視頻數據絕對的正確只要保證連貫性就可以了這種情況下顯然使用UDP會更合理一些
From:http://tw.wingwit.com/Article/program/Java/hx/201311/25841.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.