伺服器通訊協議概括
一共分為幾大類:
Soap、Http、TCP/IP 、UDP、ICMP TCP/IP協議包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等許多協議,這些協議一起稱為TCP/IP協議。
TCP
TCP是面向連線的通訊協議,通過三次握手建立連線,通訊完成時要拆除連線,由於TCP是面向連線的所以只能用於端到端的通訊。
TCP提供的是一種可靠的資料流服務,採用“帶重傳的肯定確認”技術來實現傳輸的可靠性。TCP還採用一種稱為“滑動視窗”的方式進行流量控制,所謂視窗實際表示接收能力,用以限制傳送方的傳送速度。
如果IP資料包中有已經封好的TCP資料包,那麼IP將把它們向‘上’傳送到TCP層。TCP將包排序並進行錯誤檢查,同時實現虛電路間的連線。TCP資料包中包括序號和確認,所以未按照順序收到的包可以被排序,而損壞的包可以被重傳。
TCP將它的資訊送到更高層的應用程式,例如Telnet的服務程式和客戶程式。應用程式輪流將資訊送回TCP層,TCP層便將它們向下傳送到IP層,裝置驅動程式和物理介質,最後到接收方。
面向連線的服務(例如Telnet、FTP、rlogin、X Windows和SMTP)需要高度的可靠性,所以它們使用了TCP。DNS在某些情況下使用TCP(傳送和接收域名資料庫),但使用UDP傳送有關單個主機的資訊。
IP
IP層接收由更低層(網路介面層例如乙太網裝置驅動程式)發來的資料包,並把該資料包傳送到更高層---TCP或UDP層;相反,IP層也把從TCP或UDP層接收來的資料包傳送到更低層。IP資料包是不可靠的,因為IP並沒有做任何事情來確認資料包是否按順序傳送的或者有沒有被破壞,IP資料包中含有傳送它的主機的地址(源地址)和接收它的主機的地址(目的地址)。
高層的TCP和UDP服務在接收資料包時,通常假設包中的源地址是有效的。也可以這樣說,IP地址形成了許多服務的認證基礎,這些服務相信資料包是從一個有效的主機發送來的。IP確認包含一個選項,叫作IP source routing,可以用來指定一條源地址和目的地址之間的直接路徑。對於一些TCP和UDP的服務來說,使用了該選項的IP包好像是從路徑上的最後一個系統傳遞過來的,而不是來自於它的真實地點。這個選項是為了測試而存在的,說明了它可以被用來欺騙系統來進行平常是被禁止的連線。那麼,許多依靠IP源地址做確認的服務將產生問題並且會被非法入侵。
UDP
UDP是面向無連線的通訊協議,UDP資料包括目的埠號和源埠號資訊,由於通訊不需要連線,所以可以實現廣播發送。
UDP通訊時不需要接收方確認,屬於不可靠的傳輸,可能會出現丟包現象,實際應用中要求程式設計師程式設計驗證。
UDP與TCP位於同一層,但它不管資料包的順序、錯誤或重發。因此,UDP不被應用於那些使用虛電路的面向連線的服務,UDP主要用於那些面向查詢---應答的服務,例如NFS。相對於FTP或Telnet,這些服務需要交換的資訊量較小。使用UDP的服務包括NTP(網路時間協議)和DNS(DNS也使用TCP)。
欺騙UDP包比欺騙TCP包更容易,因為UDP沒有建立初始化連線(也可以稱為握手)(因為在兩個系統間沒有虛電路),也就是說,與UDP相關的服務面臨著更大的危險。
ICMP
ICMP與IP位於同一層,它被用來傳送IP的控制資訊。它主要是用來提供有關通向目的地址的路徑資訊。ICMP的‘Redirect’資訊通知主機通向其他系統的更準確的路徑,而‘Unreachable’資訊則指出路徑有問題。另外,如果路徑不可用了,ICMP可以使TCP連線‘體面地’終止。PING是最常用的基於ICMP的服務。
soap將資訊進行XML的序列化後,再用http協議的方式再打包進行傳送,傳送的方式還是tcp或者udp。做個比喻就好理解了。tcp 和 udp 都是公路,暫且把tcp認為是一般公路,udp高速公路,soap和http就都是汽車,那麼soap和http都可以在tcp和udp上跑。說soap可以通過http來傳送,實際就是說soap是小轎車,http是裝轎車的卡車,把soap的資訊裝到http裡面,然後再運輸,當然走的道路還是tcp或udp。
說soap可以通過http協議來傳輸,這句話不太準確,比較準確第說法是:soap資訊可以通過http協議包裝後通過tcp或udp傳輸。
HTTP
是一個通訊協議,通過網路傳輸資訊。
SOAP
是一個基於XML的協議交換訊息,可以使用HTTP來傳輸這些資訊。事實上HTTP是SOAP訊息的最常見的傳輸工具。
soap將資訊進行XML的序列化後,再用http協議的方式再打包進行傳送,傳送的方式還是tcp或者udp。做個比喻就好理解了。tcp 和 udp 都是公路,暫且把tcp認為是一般公路,udp高速公路,soap和http就都是汽車,那麼soap和http都可以在tcp和udp上跑。說soap可以通過http來傳送,實際就是說soap是小轎車,http是裝轎車的卡車,把soap的資訊裝到http裡面,然後再運輸,當然走的道路還是tcp或udp。說soap可以通過http協議來傳輸,這句話不太準確,比較準確第說法是:soap資訊可以通過http協議包裝後通過tcp或udp傳輸。
IPX/SPX
IPX/SPX是基於施樂的XEROX’S Network System(XNS)協議,而SPX是基於施樂的XEROX’S SPP(Sequenced Packet Protocol:順序包協議)協議,它們都是由novell公司開發出來應用於區域網的一種高速協議。它和TCP/IP的一個顯著不同就是它不使用ip地址,而是使用網絡卡的實體地址即(MAC)地址。在實際使用中,它基本不需要什麼設定,裝上就可以使用了。由於其在網路普及初期發揮了巨大的作用,所以得到了很多廠商的支援,包括microsoft等,很多軟體和硬體也均支援這種協議。
NetBEUI
NetBEUI即NetBios Enhanced User Interface,或NetBios增強使用者介面。它是NetBIOS協議的增強版本,曾被許多作業系統採用,例如Windows for Workgroup、Win9x系列、Windows NT等。NETBEUI協議在許多情形下很有用,是WINDOWS98之前的作業系統的缺少協議。總之NetBEUI協議是一種短小精悍、通訊效率高的廣播型協議,安裝後不需要進行設定,特別適合於在“網路鄰居”傳送資料。所以建議除了TCP/IP協議之外,區域網的計算機最好也安上NetBEUI協議。另外還有一點要注意,如果一臺只裝了TCP/IP協議的WINDOWS98機器要想加入到WINNT域,也必須安裝NetBEUI協議。