>> OSI(Open Systems Interconnection)模型和OSI協議(OSI Protocols)編程
OSI模式是國際標準化組織(ISO)制定的一個網絡通訊的概念化模型,它將不一樣的通訊功能劃分到7個邏輯層,這7個層分別只與緊鄰的下一層通訊:網絡
OSI協議是對OSI模型具體實現,對於OSI模型的每一層均可以有多種的實現協議。ui
因爲其複雜性以及對已有網絡協議缺少兼容性,OSI模型在其發佈以後受到了多數廠家和用戶的抵制,因此並未造成一套與其徹底一致的協議實現。而在現實的互聯網絡中TCP/IP協議模型成爲了現實的標準。編碼
參見:http://en.wikipedia.org/wiki/OSI_model
http://en.wikipedia.org/wiki/OSI_protocols
http://en.wikipedia.org/wiki/Open_Systems_Interconnectionspa
>> TCP/IP協議模型orm
TCP/IP模型分爲四層:ip
參考:http://en.wikipedia.org/wiki/TCP/IP_model
http://en.wikipedia.org/wiki/OSI_modelget
>> 網絡數據傳輸的兩種基本方式it
>> 協議數據單元(PDU)與服務數據單元(SDU)io
協議數據單元是特定協議下數據傳輸的基本單位,在OSI模型中,每層的PDU具備特定的含義。以下:
PDU一般由三部分組成:Header + Payload + Trailer。Header和Trailer是協議控制信息,Payload是上層的用戶信息。
SDU是OSI上層傳遞給下層的用戶數據,或者能夠說第N層的PDU就是第N-1層的SDU。來自於上層的SDU最終會做爲本層PDU的載荷數據(Payload)出現,但二者並不相同,好比,SDU的大小若是超出了最大載荷的限制,可能會被拆分到多個PUD的載荷中。
參見:http://en.wikipedia.org/wiki/Protocol_data_unit
>> 協議描述術語
協議的主要目的是描述PDU中數據的組成、順序、類型及長度等信息。有關這些信息用以下術語來描述:
- IE(信息元素 - Information Element) —— PUD中的Header和Trailer的信息單元,每一個單元描述了特定的信息。對於PUD中的Payload,因爲它是上層數據,在本層沒法解析,因此會始終做爲一個單獨的IE。如:源地址、目標地址等。
- IEI(信息元素指示器 - Information Element Indicator) —— 爲每一個IE給定的名稱。如:Source Address, Destination Address等。
- IEIC(信息元素指示器編碼 - Information Element Indicator Coding) —— 爲便於在代碼中區分不一樣的IE,給每一個IEI指定了一個惟一是整數值。如:Source Address --> 0x00, Destination Address --> 0x01。一般,PDU中的所有IE都會按固定的順序拼接,因此IEIC的取值實際也是各IE的拼接順序。
- IE Format - IE的格式描述。任意一個IE能夠經過三部分信息描述:
好比,V表示這一IE中直接保存IE的取值(沒有IE的IEIC和長度信息),TVL表示這一IE由三部分組成——首先是IEIC,而後是這個IE的總長度,而後是IE的取值。
- IE Length - IE在PDU中所佔的字節數範圍。若是IE Length是固定值,表示其取值有固定長度;若是是一個範圍(不固定),表示其取值長度會變化。
- PDU Type - 爲了經過同一協議傳遞具備不一樣用途的數據,某些協議會設置一個IEI爲PDU Type的信息元素。具備不一樣Type的PDU由不一樣的IE組成(可能有部分重複)。
>> 包(Packet)
嚴格來講包(Packet)是指網絡層的PDU,但在編程中,爲了方便,任何一層的PDU均可稱爲包。這樣,包基本上能夠等價於Payload。