INTERNET編程之ISO/OSI和TCP/IP模型續

也許,有人會問爲什麼我們要建立這些模型呢.這其實很容易理解.

整個網絡是一個複雜的環境,在這個環境中存在着不同的操作系統(UNIX,WINDOWS),不同的通信介質(有線,無線),不同的通信設備(通用的和專用的) ,不同的業務環境(實時,分時,批處理等).

爲了解決上面的問題,和我們編程一樣,在遇到複雜問題的時候,我們總是嘗試着分解這個問題,使它成爲更簡單的一系列小問題,這樣就能夠解決了.因此,網絡環境間的通信就採用了分層模型來解決上面的問題.

對於,每一層的不同業務,都有相應的協議.什麼是協議呢.協議就是一個約定,大家都要遵守.簡單的說:

協議 = 語義 + 語法 + 規則

那,我們就看看他們的規則吧:

1 通信實體之間不可以直接通信

2 各層之間單向通信.

3 上層使用下層提供的服務,下層提供服務給上層.

4 數據在從一臺計算機傳送數據到另一臺計算機時,(不同的計算機是用IP地址來區分的),在經過每一層的時候,數據都要打包,我們稱爲數據封裝,也就是加上協議報頭,有些還添加尾部.在到達另一臺計算機時,再逆方向解包處理.這些包.

具體來說是:

OSI參考模型中,對等層協議之間交換的信息單元統稱爲協議數據單元(PDU,Protocol Data Unit)。
OSI參考模型中每一層都要依靠下一層提供的服務。
爲了提供服務,下層把上層的PDU作爲本層的數據封裝,然後加入本層的頭部(和尾部)。頭部中含有完成數據傳輸所需的控制信息。
這樣,數據自上而下遞交的過程實際上就是不斷封裝的過程。到達目的地後自下而上遞交的過程就是不斷拆封的過程。由此可知,在物理線路上傳輸的數據,其外面實際上被包封了多層“信封”。
但是,某一層只能識別由對等層封裝的“信封”,而對於被封裝在“信封”內部的數據僅僅是拆封後將其提交給上層,本層不作任何處理。

5.端口:

按照OSI七層模型的描述,傳輸層提供進程(應用程序)通信的能力。爲 了標識通信實體中進行通信的進程(應用程序),TCP/IP協議提出了協議端口(protocol port,簡稱端口)的概念。
端口是一種抽象的軟件結構(包括一些數據結構和I/O緩衝區)。應用程序通過系統調用與某端口建立連接(binding)後,傳輸層傳給該端口的數據都被相應的進程所接收,相應進程發給傳輸層的數據都通過該端口輸出。
端口用一個整數型標識符來表示,即端口號。端口號跟協議相關,TCP/IP傳輸層的兩個協議TCP和UDP是完全獨立的兩個軟件模塊,因此各自的端口號也相互獨立。
端口使用一個16位的數字來表示,它的範圍是0~65535,1024以下的端口號保留給預定義的服務。例如:http使用80端口。

基本上就這些了.當然了,某些是COPY的,懶得寫的嘛!

接下來寫一下各層常用協議吧:

1 應用層:

遠程登錄協議Telnet、文件傳輸協議FTP、 超文本傳輸協議HTTP、域名服務DNS、簡單郵件傳輸協議SMTP、郵局協議POP3。
2 傳輸層:

傳輸控制協議TCP、用戶數據報協議UDP。
               TCP:面向連接的可靠的傳輸協議。
               UDP:是無連接的,不可靠的傳輸協議。
3 網絡層:

網際協議IP、Internet互聯網控制報文協議ICMP、Internet組管理協議IGMP。

4.數據鏈路層和物理層:

地址解析協議和逆地址解析協議等

說實話,這些東西,我也不清楚.也只是在用的時候纔會去了解,寫在這裏,是爲了方便以後查找用的.呵呵

下回,我們就進入SOCKET編程吧.


 

n

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章