## **TCP/IP簡介**
* TCP/IP起源于1969年美國國防部(DOD:The United States Department Of Defense)高級研究項目管理局(APRA:AdvancedResearch Projects Agency)對有關分組交換的廣域網(Packet-Switched wide-area network)科研項目,因此起初的網絡稱為ARPANET。
1973年`TCP(傳輸控制協議)`正式投入使用,1981年`IP(網際協議)`協議投入使用,1983年TCP/IP協議正式被集成到美國加州大學伯克利分校的UNIX版本中,該“網絡版”操作系統適應了當時各大學、機關、企業旺盛的連網需求,因而隨著該免費分發的操作系統的廣泛使用,TCP/IP協議得到了流傳。
TCP/IP技術得到了眾多廠商的支持,不久就有了很多分散的網絡。所有這些單個的TCP/IP網絡都互聯起來稱為INTERNET。基于TCP/IP協議的Internet已逐步發展成為當今世界上規模最大、擁有用戶和資源最多的一個超大型計算機網絡,TCP/IP協議也因此成為事實上的工業標準。IP網絡正逐步成為當代乃至未來計算機網絡的主流。
* 早在TCP/IP協議出現之前,國際標準化組織(ISO)就提出了`開放系統互連(OSI)網絡模型`,為網絡的設計、開發、編程、維護提供了便利的分而治之的思想,其**先進性**、**科學性**、**實用性**是不言而喻的。
TCP/IP協議不是單純的兩個協議,是一組不同層次上的多個協議的組合,常稱為`TCP/IP協議簇或者互聯網協議簇`。TCP/IP也是互聯網的事實上的標準,為實現整個網絡的互聯提供指導。TCP/IP層次組合很難用OSI的七層模型來套用,它是OSI模型的濃縮,將原來的七層模型合并為四層協議的體系結構,自頂向下分別是應用層、傳輸層、網絡層和網絡接口層,沒有OSI參考模型的會話層和表示層,一般認為TCP/IP的會話和表示功能是在傳輸層或應用層上完成的。
* [ ] **TCP/IP與OSI模型比較**

*****
* [ ] **OSI參考模型**

* 1層是**物理層**(Physical Layer)(即OSI模型中的第一層)
利用傳輸介質為數據鏈路層提供物理連接,實現比特流的透明傳輸。物理層的作用是實現相鄰計算機節點之間比特流的透明傳送,盡可能屏蔽掉具體傳輸介質和物理設備的差異。使其上面的數據鏈路層不必考慮網絡的具體傳輸介質是什么。
* 第2層是**數據鏈路層**(Data Link Layer)
數據鏈路層(Data Link Layer)是OSI模型的第二層,負責建立和管理節點間的鏈路。該層的主要功能是:通過各種控制協議,將有差錯的物理信道變為無差錯的、能可靠傳輸數據幀的數據鏈路。
* 第3層是**網絡層**(Network Layer)
其主要任務是:通過路由選擇算法,為報文或分組通過通信子網選擇最適當的路徑。該層控制數據鏈路層與傳輸層之間的信息轉發,建立、維持和終止網絡的連接。
具體地說,數據鏈路層的數據在這一層被轉換為數據包,然后通過路徑選擇、分段組合、順序、進/出路由等控制,將信息從一個網絡設備傳送到另一個網絡設備。
* 第4層是**處理信息的傳輸層**(Transport Layer)。
該層的主要任務是:向用戶提供可靠的端到端的差錯和流量控制,保證報文的正確傳輸。傳輸層的作用是向高層屏蔽下層數據通信的細節,即向用戶透明地傳送報文。該層常見的協議:TCP/IP中的TCP協議、Novell網絡中的SPX協議和微軟的NetBIOS/NetBEUI協議。
* 第5層是**會話層**( Session Layer)
主要任務是:向兩個實體的表示層提供建立和使用連接的方法。將不同實體之間的表示層的連接稱為會話。因此會話層的任務就是組織和協調兩個會話進程之間的通信,并對數據交換進行管理。
* 第6層是**表示層**(Presentation Layer)
這一層主要解決用戶信息的語法表示問題。它將欲交換的數據從適合于某一用戶的抽象語法,轉換為適合于OSI系統內部使用的傳送語法。即提供格式化的表示和轉換數據服務。數據的壓縮和解壓縮, 加密和解密等工作都由表示層負責。
* 第7層是“**應用層**”(Application Layer),是專門用于應用程序的。
應用層為用戶提供的服務和協議有:文件服務、目錄服務、文件傳輸服務(FTP)、遠程登錄服務(Telnet)、電子郵件服務(E-mail)、打印服務、安全服務、網絡管理服務、數據庫服務等。
*****
* [ ] **TCP/IP模型**

* **應用層**
應用層決定了向用戶提供應用服務時通信的活動。||? ?應用層負責處理特定的應用程序細節。?
TCP/IP 協議族內預存了各類通用的應用服務。比如,FTP(File Transfer Protocol,文件傳輸協議)和DNS(Domain Name System,域 名系統)服務就是其中兩類。 HTTP 協議也處于該層。
* **傳輸層**
傳輸層對上層應用層,提供處于網絡連接中的兩臺計算機之間的數據 傳輸。
在傳輸層有兩個性質不同的協議:TCP(Transmission Control Protocol,傳輸控制協議)和 UDP(User Data Protocol,用戶數據報 協議)。
1. TCP為兩臺主機提供高可靠性的數據通信。它所做的工作包括把應用程序交給它的數據分成合適的小塊交給下面的網絡層,確認接收到的分組,設置發送最后確認分組的超時時鐘等。由于運輸層提供了高可靠性的端到端的通信,因此應用層可以忽略所有這些細節。為了提供可靠的服務,TCP采用了超時重傳、發送和接收端到端的確認分組等機制。
2. UDP則為應用層提供一種非常簡單的服務。它只是把稱作數據報的分組從一臺主機發送到另一臺主機,但并不保證該數據報能到達另一端。一個數據報是指從發送方傳輸到接收方的一個信息單元(例如,發送方指定的一定字節數的信息)。UDP協議任何必需的可靠性必須由應用層來提供。
* **網絡層**
網絡層用來處理在網絡上流動的數據包。**數據包**是網絡傳輸的最小數據單位。該層規定了通過怎樣的路徑(所謂的傳輸路線)到達對方計算機,并把數據包傳送給對方。
與對方計算機之間通過多臺計算機或網絡設備進行傳輸時,網絡層所起的作用就是在眾多的選項內選擇一條傳輸路線。
*****
*****
網絡層又稱為也稱作互聯網層(在區別圖中為網際層),處理分組在網絡中的活動,例如分組的選路。在TCP/IP協議族中,網絡層協議包括IP協議(網際協議),ICMP協議(Internet互聯網控制報文協議),以及IGMP協議(Internet組管理協議)。
1. **IP**是一種網絡層協議,提供的是一種不可靠的服務,它只是盡可能快地把分組從源結點送到目的結點,但是并不提供任何可靠性保證。同時被TCP和UDP使用。TCP和UDP的每組數據都通過端系統和每個中間路由器中的IP層在互聯網中進行傳輸。
1. **ICMP**是IP協議的附屬協議。IP層用它來與其他主機或路由器交換錯誤報文和其他重要信息。
1. **IGMP**是Internet組管理協議。它用來把一個UDP數據報多播到多個主機。
* **鏈路層**
用來處理連接網絡的硬件部分。包括控制操作系統、硬件的設備驅動、NIC(Network Interface Card,網絡適配器,即網卡),及光纖等物理可見部分(還包括連接器等一切傳輸媒介)。硬件上的范疇均在鏈路層的作用范圍之內。
*****
也稱作數據鏈路層或網絡接口層(在對比圖中為網絡接口層和硬件層),通常包括操作系統中的設備驅動程序和計算機中對應的網絡接口卡。它們一起處理與電纜(或其他任何傳輸媒介)的物理接口細節。ARP(地址解析協議)和RARP(逆地址解析協議)是某些網絡接口(如以太網和令牌環網)使用的特殊協議,用來轉換IP層和網絡接口層使用的地址。