天天看點

網絡程式設計-基礎

網絡通信–基礎

計算機網絡基礎知識

什麼是socket

它是使用 标準Unix 檔案描述符 (file descriptor) 和其它程式通訊的方式,是internet套接字

網絡通信-socket,計算機中兩個程式通過socket建立一個通道,資料在通道中互相傳輸,構成了簡單的網絡通信。

socket有兩種類型,Stream Socket(流格式)和Datagram Socket(資料報格式),資料報套接字也叫“無連接配接套接字”,使用UDP協定,流式套接字是可靠的雙向通訊的資料流,使用TCP協定。

傳輸協定

TCP 傳輸控制協定 (The Transmission Control Protocol)

有序,安全,可靠,通過通道雙向傳輸,資料不會丢失,重複,亂序

UDP 使用者資料報協定 (User Datagram Protocol)

不需要建立和維持連接配接,可能造成資料丢失和錯亂,對資料長度有限制,但是效率較高,為了防止資料丢失,設定在對方收到包後傳回一個應當(“ACK”包),如果規定時間沒有收到ACK,則重新發送,直到得到ACK。

網絡層次模型

TCP/IP四層網絡模型:

  • 網絡接口層
  • 網間層
  • 傳輸層
  • 應用層

    網絡接口層最底層,包含用于協作ip資料在已有網絡媒體上傳輸的協定(ARP,RARP協定)

    網間層對應于OSI七層參考模型的網絡層。負責資料的包裝、尋址和路由。同時還包含網間控制封包協定(Internet Control Message Protocol,ICMP)用來提供網絡診斷資訊。

    (本層包含IP協定、RIP協定(Routing Information Protocol,路由資訊協定),ICMP協定。)

    傳輸層對應于OSI七層參考模型的傳輸層,它提供兩種端到端的通信服務。其中TCP協定(Transmission Control Protocol)提供可靠的資料流運輸服務,UDP協定(Use Datagram Protocol)提供不可靠的使用者資料報服務。

    應用層對應于OSI七層參考模型的應用層和表達層。

    網際網路的應用層協定包括Finger、Whois、FTP(檔案傳輸協定)、Gopher、HTTP(超文本傳輸協定)、Telent(遠端終端協定)、SMTP(簡單郵件傳送協定)、IRC(網際網路中繼會話)、NNTP(網絡新聞傳輸協定)等。

    部分協定略解:

    ARP: 将32位的IP位址轉換為48位的實體位址。

    ICMP: 網際網路控制封包協定。它是IPv4協定族中的一個子協定,用于IP主機、路由器之間傳遞控制消息。控制消息是在網絡通不通、主機是否可達、路由是否可用等網絡本身的消息。這些控制消息雖然不傳輸使用者資料,但是對于使用者資料的傳遞起着重要的作用。

OSI七層網絡模型:

  • 應用層 (七)
  • 表示層
  • 會話層
  • 傳輸層
  • 網絡層
  • 資料鍊路層
  • 實體層(一)

    實體層:

    作用: 負責最後将資訊編碼成電流脈沖或其它信号用于網上傳輸。它由計算機和網絡媒體之間的實際界面組成,可定義電氣信号、符号、線的狀态和時鐘要求、資料編碼和資料傳輸用的連接配接器。所有比實體層高的層都通過事先定義好的接口而與它通話。

    協定: 如最常用的RS-232規範、10BASE-T的曼徹斯特編碼以及RJ-45就屬于第一層。

    資料鍊路層:

    **作用:**資料鍊路層通過實體網絡鍊路提供可靠的資料傳輸。

    協定: ATM,FDDI等

    網絡層:

    作用: 這層對端到端的包傳輸進行定義,他定義了能夠辨別所有結點的邏輯位址,還定義了路由實作的方式和學習的方式。為了适應最大傳輸單元長度小于包長度的傳輸媒體,網絡層還定義了如何将一個包分解成更小的包的分段方法。

    協定: IP,IPX等

    傳輸層:

    作用: 傳輸層向高層提供可靠的端到端的網絡資料流服務。傳輸層的功能一般包括流控、多路傳輸、虛電路管理及差錯校驗和恢複。流控管理裝置之間的資料傳輸,確定傳輸裝置不發送比接收裝置處理能力大的資料;多路傳輸使得多個應用程式的資料可以傳輸到一個實體鍊路上;虛電路由傳輸層建立、維護和終止;差錯校驗包括為檢測傳輸錯誤而建立的各種不同結構;而差錯恢複包括所采取的行動(如請求資料重發),以便解決發生的任何錯誤。

    協定: TCP,UDP,SPX

    會話層:

    作用:會話層建立、管理和終止表示層與實體之間的通信會話。通信會話包括發生在不同網絡應用層之間的服務請求和服務應答,這些請求與應答通過會話層的協定實作。它還包括建立檢查點,使通信發生中斷的時候可以傳回到以前的一個狀态。

    協定: SQL,RPC等

    表示層:

    作用: 主要功能是定義資料格式以及加密

    協定: FTP,加密

    應用層:

    作用: 應用層是最接近終端使用者的OSI層,這就意味着OSI應用層與使用者之間是通過應用軟體直接互相作用的。注意,應用層并非由計算機上運作的實際應用軟體組成,而是由向應用程式提供通路網絡資源的API(Application Program Interface,應用程式接口)組成,這類應用軟體程式超出了OSI模型的範疇。應用層的功能一般包括辨別通信夥伴、定義資源的可用性和同步通信。因為可能丢失通信夥伴,應用層必須為傳輸資料的應用子程式定義通信夥伴的辨別和可用性。定義資源可用性時,應用層為了請求通信而必須判定是否有足夠的網絡資源。在同步通信中,所有應用程式之間的通信都需要應用層的協同操作。

    協定: telnet,HTTP,FTP,WWW,NFS,SMTP等。

繼續閱讀