網(wǎng)絡(luò)協(xié)議及IP概述
對等實體通常是指計算機網(wǎng)絡(luò)體系結(jié)構(gòu)中處于相同層次的信息單元。一般系統(tǒng)網(wǎng)絡(luò)協(xié)議包括五個部分:通信環(huán)境,傳輸服務(wù),詞匯表,信息的編碼格式,時序、規(guī)則和過程。1969年美國國防部建立最早的網(wǎng)絡(luò)——阿帕計算機網(wǎng)絡(luò)時,發(fā)布了一組計算機通信協(xié)議的軍用標(biāo)準(zhǔn),它包括了五個協(xié)議,習(xí)慣上以其中的TCP和IP兩個協(xié)議作為這組協(xié)議的通稱。TCP/IP是因特網(wǎng)的正式網(wǎng)絡(luò)協(xié)議,是一組在許多獨立主機系統(tǒng)之間提供互聯(lián)功能的協(xié)議,規(guī)范因特網(wǎng)上所有計算機互聯(lián)時的傳輸、解釋、執(zhí)行、互操作,解決計算機系統(tǒng)的互聯(lián)、互通、操作性,是被公認的網(wǎng)絡(luò)通信協(xié)議的國際工業(yè)標(biāo)準(zhǔn)。TCP/IP是分組交換協(xié)議,信息被分成多個分組在網(wǎng)上傳輸,到達接收方后再把這些分組重新組合成原來的信息。除TCP/IP外,常用的網(wǎng)絡(luò)協(xié)議還有PPP、SLIP等。
網(wǎng)絡(luò)協(xié)議是由三個要素組成:(1) 語義。語義是解釋控制信息每個部分的意義。它規(guī)定了需要發(fā)出何種控制信息,以及完成的動作與做出什么樣的響應(yīng)。(2) 語法。語法是用戶數(shù)據(jù)與控制信息的結(jié)構(gòu)與格式,以及數(shù)據(jù)出現(xiàn)的順序。(3) 時序。時序是對事件發(fā)生順序的詳細說明。(也可稱為“同步”)。人們形象地把這三個要素描述為:語義表示要做什么,語法表示要怎么做,時序表示做的順序。
網(wǎng)絡(luò)上的計算機之間又是如何交換信息的呢?就像我們說話用某種語言一樣,在網(wǎng)絡(luò)上的各臺計算機之間也有一種語言,這就是網(wǎng)絡(luò)協(xié)議,不同的計算機之間必須使用相同的網(wǎng)絡(luò)協(xié)議才能進行通信。網(wǎng)絡(luò)協(xié)議是網(wǎng)絡(luò)上所有設(shè)備(網(wǎng)絡(luò)服務(wù)器、計算機及交換機、路由器、防火墻等)之間通信規(guī)則的集合,它規(guī)定了通信時信息必須采用的格式和這些格式的意義。大多數(shù)網(wǎng)絡(luò)都采用分層的體系結(jié)構(gòu),每一層都建立在它的下層之上,向它的上一層提供一定的服務(wù),而把如何實現(xiàn)這一服務(wù)的細節(jié)對上一層加以屏蔽。一臺設(shè)備上的第 n層與另一臺設(shè)備上的第n層進行通信的規(guī)則就是第n層協(xié)議。在網(wǎng)絡(luò)的各層中存在著許多協(xié)議,接收方和發(fā)送方同層的協(xié)議必須一致,否則一方將無法識別另一方發(fā)出的信息。網(wǎng)絡(luò)協(xié)議使網(wǎng)絡(luò)上各種設(shè)備能夠相互交換信息。常見的協(xié)議有:TCP/IP協(xié)議、IPX/SPX協(xié)議、NetBEUI協(xié)議等。
IP是Internet Protocol(網(wǎng)際互連協(xié)議)的縮寫,是TCP/IP體系中的網(wǎng)絡(luò)層協(xié)議。設(shè)計IP的目的是提高網(wǎng)絡(luò)的可擴展性:一是解決互聯(lián)網(wǎng)問題,實現(xiàn)大規(guī)模、異構(gòu)網(wǎng)絡(luò)的互聯(lián)互通;二是分割頂層網(wǎng)絡(luò)應(yīng)用和底層網(wǎng)絡(luò)技術(shù)之間的耦合關(guān)系,以利于兩者的獨立發(fā)展。根據(jù)端到端的設(shè)計原則,IP只為主機提供一種無連接、不可靠的、盡力而為的數(shù)據(jù)包傳輸服務(wù)。
套接字是通信的基石,是支持TCP/IP協(xié)議的路通信的基本操作單元??梢詫⑻捉幼挚醋鞑煌鳈C間的進程進行雙間通信的端點,它構(gòu)成了單個主機內(nèi)及整個網(wǎng)絡(luò)間的編程界面。套接字存在于通信域中,通信域是為了處理一般的線程通過套接字通信而引進的一種抽象概念。套接字通常和同一個域中的套接字交換數(shù)據(jù)(數(shù)據(jù)交換也可能穿越域的界限,但這時一定要執(zhí)行某種解釋程序),各種進程使用這個相同的域互相之間用Internet協(xié)議簇來進行通信。
Socket(套接字)可以看成是兩個網(wǎng)絡(luò)應(yīng)用程序進行通信時,各自通信連接中的端點,這是一個邏輯上的概念。它是網(wǎng)絡(luò)環(huán)境中進程間通信的API(應(yīng)用程序編程接口),也是可以被命名和尋址的通信端點,使用中的每一個套接字都有其類型和一個與之相連進程。通信時其中一個網(wǎng)絡(luò)應(yīng)用程序?qū)⒁獋鬏數(shù)囊欢涡畔懭胨谥鳈C的 Socket中,該 Socket通過與網(wǎng)絡(luò)接口卡(NIC)相連的傳輸介質(zhì)將這段信息送到另外一臺主機的 Socket中,使對方能夠接收到這段信息。 Socket是由IP地址和端口結(jié)合的,提供向應(yīng)用層進程傳送數(shù)據(jù)包的機制。