在世界上各地,各種各樣的電腦運行著各自不同的操作系統(tǒng)為大家服務(wù),這些電腦在表達(dá)同一種信息的時候所使用的方法是千差萬別。就好像圣經(jīng)中上帝打亂了各地人的口音,讓他們無法合作一樣。計算機使用者意識到,計算機只是單兵作戰(zhàn)并不會發(fā)揮太大的作用。只有把它們聯(lián)合起來,電腦才會發(fā)揮出它最大的潛力。于是人們就想方設(shè)法的用電線把電腦連接到了一起。
但是簡單的連到一起是遠(yuǎn)遠(yuǎn)不夠的,就好像語言不同的兩個人互相見了面,完全不能交流信息。因而他們需要定義一些共通的東西來進(jìn)行交流,TCP/IP就是為此而生。TCP/IP不是一個協(xié)議,而是一個協(xié)議族的統(tǒng)稱。里面包括了IP協(xié)議,IMCP協(xié)議,TCP協(xié)議,以及我們更加熟悉的http、ftp、pop3協(xié)議等等。電腦有了這些,就好像學(xué)會了外語一樣,就可以和其他的計算機終端做自由的交流了。
什么是TCP/IP?
TCP/IP也稱"國際協(xié)議簇", 即不僅指 TCP/IP協(xié)議本身,而且包括與其有關(guān)的協(xié)議。 TCP為傳輸控制協(xié)議,IP為網(wǎng)際協(xié)議,是網(wǎng)絡(luò)層最重要的協(xié)議。采用TCP/IP協(xié)議通過互聯(lián)網(wǎng)傳送信息可減少網(wǎng)絡(luò)中的傳輸阻塞,方便大批量的數(shù)據(jù)在網(wǎng)上傳輸,從而提高網(wǎng)絡(luò)的傳輸效率。? TCP/IP協(xié)議族中包括上百個互為關(guān)聯(lián)的協(xié)議,其中有:Telnet
(Remote Login): 提供遠(yuǎn)程登錄功能; FTP (FileTransfer Protocol):遠(yuǎn)程文件傳輸協(xié)議,允許用戶將遠(yuǎn)程主機上的文件拷貝到自己的計算機上; SMTP (Simple Messagetransfer Protocol):簡單信息傳輸協(xié)議,主要用于傳輸電子郵件;NFS(Network File Server):網(wǎng)絡(luò)文件服務(wù)器,可使多臺計算機透明地訪問彼此的目錄 ; UDP ( User DatagramProtocol):用戶數(shù)據(jù)包協(xié)議。
TCP/IP協(xié)議的四層結(jié)構(gòu)
第一層:鏈路層
包括操作系統(tǒng)中的設(shè)備驅(qū)動程序、計算機中對應(yīng)的網(wǎng)絡(luò)接口卡
第二層:網(wǎng)絡(luò)層
網(wǎng)絡(luò)互連層是整個TCP/IP協(xié)議棧的核心。它的功能是把分組發(fā)往目標(biāo)網(wǎng)絡(luò)或主機。同時,為了盡快地發(fā)送分組,可能需要沿不同的路徑同時進(jìn)行分組傳遞。因此,分組到達(dá)的順序和發(fā)送的順序可能不同,這就需要上層必須對分組進(jìn)行排序。
網(wǎng)絡(luò)互連層定義了分組格式和協(xié)議,即IP協(xié)議(Internet Protocol)。
第三層:傳輸層
在TCP/IP模型中,傳輸層的功能是使源端主機和目標(biāo)端主機上的對等實體可以進(jìn)行會話。在傳輸層定義了兩種服務(wù)質(zhì)量不同的協(xié)議。即:傳輸控制協(xié)議TCP和用戶數(shù)據(jù)報協(xié)議UDP.
TCP協(xié)議是一個面向連接的、可靠的協(xié)議。它將一臺主機發(fā)出的字節(jié)流無差錯地發(fā)往互聯(lián)網(wǎng)上的其他主機。在發(fā)送端,
它負(fù)責(zé)把上層傳送下來的字節(jié)流分成報文段并傳遞給下層。在接收端,它負(fù)責(zé)把收到的報文進(jìn)行重組后遞交給上層。
TCP協(xié)議還要處理端到端的流量控制,以避免緩慢接收的接收方?jīng)]有足夠的緩沖區(qū)接收發(fā)送方發(fā)送的大量數(shù)據(jù).
UDP協(xié)議是一個不可靠的、無連接協(xié)議,主要適用于不需要對報文進(jìn)行排序和流量控制的場合。
第四層:應(yīng)用層
TCP/IP模型將OSI參考模型中的會話層和表示層的功能合并到應(yīng)用層實現(xiàn)。這一層主要的作用有DNS域名解析
第五層:物理層
物理層中,將數(shù)據(jù)的0,1轉(zhuǎn)換為電壓和脈沖傳輸給物理的傳輸介質(zhì),而相互直連的設(shè)備之間使用地址實現(xiàn)傳輸。這種地址被稱為MAC地址,也可稱為物理地址或硬件地址。
采用MAC地址,目的是為了識別連接到同一個傳輸介質(zhì)上的設(shè)備。因此,在這一層中將包含MAC地址信息的首部附加到從網(wǎng)絡(luò)層轉(zhuǎn)發(fā)過來的
數(shù)據(jù)上,將其發(fā)送到網(wǎng)絡(luò)。
序號:本報文段發(fā)送的數(shù)據(jù)的第一個字節(jié)的序號。
確認(rèn)號:是“確認(rèn)報文”中期望收到對方下一個報文的第一個數(shù)據(jù)字節(jié)的序號。
若確認(rèn)號 = N,表明到N-1為止的所有數(shù)據(jù)都已正確收到。
數(shù)據(jù)偏移:指的是首部長度,單位是4字節(jié)。
控制位:
--緊急URG:TCP會把緊急數(shù)據(jù)放在發(fā)送緩存的最前面,同時也置于報文數(shù)據(jù)的最前面。
--推送PSH:使接收方盡快將數(shù)據(jù)交付應(yīng)用程序,不必等緩存填滿后再交付。
--復(fù)位RST:TCP連接中出現(xiàn)嚴(yán)重差錯,必須釋放連接,然后重新建立。
--同步SYN:SYN置1表明這是一個“連接請求”或“連接接受”報文。
--終止FIN:用來釋放一個連接。
窗口:指明現(xiàn)在允許對方發(fā)送的數(shù)據(jù)量,因為接收方的緩存是有限的。窗口值是動態(tài)變化的。
緊急指針:指出報文段中緊急數(shù)據(jù)的字節(jié)數(shù)。
為什么需要采用三次握手?
主要是為了防止兩次握手情況下已失效的連接請求報文段突然又傳送到服務(wù)端,而產(chǎn)生的錯誤。舉例如下:
客戶A向服務(wù)器B發(fā)出TCP連接請求,第一個連接請求報文在網(wǎng)絡(luò)的某個節(jié)點長時間滯留,A超時后認(rèn)為報文丟失,于是再重傳一次連接請求,B收到后建立連接。數(shù)據(jù)傳輸完畢后雙方斷開連接。而此時,前一個滯留在網(wǎng)絡(luò)中的連接請求到達(dá)了服務(wù)端B,而B認(rèn)為A又發(fā)來連接請求,若采用的是“兩次握手”,則這種情況下B認(rèn)為傳輸連接已經(jīng)建立,并一直等待A傳輸數(shù)據(jù),而A此時并無連接請求,因此不予理睬,這樣就造成了B的資源白白浪費了;但此時若是使用“三次握手”,則B向A返回確認(rèn)報文段,由于是一個失效的請求,因此A不予理睬,建立連接失敗。第三次握手的作用:防止已失效的連接請求報文段突然又傳送到了服務(wù)器。
TCP/IP? 視頻