IP協(xié)議基礎(chǔ)2
TCP/IP協(xié)議基礎(chǔ)(第二講) 這樣當(dāng)路由器收到一個包后,該包向上傳給IP: (1)如果交通阻塞(聽起來蠻可怕的),包在路由器中停滯,TTL至少減1或更多。要是它降到0的話,包就會被拋棄?! ?2
TCP/IP協(xié)議基礎(chǔ)(第二講)
這樣當(dāng)路由器收到一個包后,該包向上傳給IP:
(1)如果交通阻塞(聽起來蠻可怕的),包在路由器中停滯,TTL至少減1或更多。要是它降到0的話,包就會被拋棄。
(2)如果對于下一網(wǎng)絡(luò)來說包太大的話,IP會將它分割成若干個小包。
(3)如果包被分解,IP為每個新包制造一個新頭,其中包括:一個標(biāo)志,用來顯示其它小包在其后;一個小包ID,用來確定所有小包是一起的;一個小包偏移,用來告訴接收主機怎么重新組合它們。
(4)IP計算一個新的檢驗和。
(5)IP獲取一個路由的目標(biāo)硬件地址。
(6)IP轉(zhuǎn)發(fā)包。
在下一主機,包被發(fā)送到TCP或UDP。每個路由器都要重復(fù)該過程。直到包到達(dá)最終目的地。當(dāng)包到達(dá)最終目的地后,IP將小包組裝成原來的包。
5、TCP
TCP是一種可靠的面向連接的傳送服務(wù)。它在傳送數(shù)據(jù)時是分段進(jìn)行的,主機交換數(shù)據(jù)必須建立一個會話。它用比特流通信,即數(shù)據(jù)被作為無結(jié)構(gòu)的字節(jié)流。
通過每個TCP傳輸?shù)淖侄沃付樞蛱?,以獲得可靠性。如果一個分段被分解成幾個小段,接收主機會知道是否所有小段都已收到。通過發(fā)送應(yīng)答,用以確認(rèn)別的主機收到了數(shù)據(jù)。對于發(fā)送的每一個小段,接收主機必須在一個指定的時間返回一個確認(rèn)。如果發(fā)送者未收到確認(rèn),數(shù)據(jù)會被重新發(fā)送;如果收到的數(shù)據(jù)包損壞,接收主機會舍棄它,因為確認(rèn)未被發(fā)送,發(fā)送者會重新發(fā)送分段。
端口
SOCKETS實用程序使用一個協(xié)議端口號來標(biāo)明自己應(yīng)用的唯一性。端口可以使用0到65536之間的任何數(shù)字。在服務(wù)請求時,操作系統(tǒng)動態(tài)地為客戶端的應(yīng)用程序分配端口號。
套接字
套接字在要領(lǐng)上與文件句柄類似,因為其功能是作為網(wǎng)絡(luò)通信的終結(jié)點。一個應(yīng)用程序通過定義三部分來產(chǎn)生一個套接字:主機IP地址、服務(wù)類型(面向連接的服務(wù)是TCP,無連接服務(wù)是UDP)、應(yīng)用程序所用的端口。
TCP端口
TCP端口為信息的傳送提供定地點,端口號小于256的定義為常用端口。
TCP的三次握手
TCP對話通過三次握手來初始化。三次握手的目的是使數(shù)據(jù)段的發(fā)送和接收同步;告訴其它主機其一次可接收的數(shù)據(jù)量,并建立虛連接。
我們來看看這三次握手的簡單過程:
(1)初始化主機通過一個同步標(biāo)志置位的數(shù)據(jù)段發(fā)出會話請求。
(2)接收主機通過發(fā)回具有以下項目的數(shù)據(jù)段表示回復(fù):同步標(biāo)志置位、即將發(fā)送的數(shù)據(jù)段的起始字節(jié)的順序號、應(yīng)答并帶有將收到的下一個數(shù)據(jù)段的字節(jié)順序號。
(3)請求主機再回送一個數(shù)據(jù)段,并帶有確認(rèn)順序號和確