TCP/IP協議體系


一、OSI模型

1、OSI七層模型、

 (1)各層結構說明

數據鏈路層、網絡層(IP)、鏈路層(tcp、udp)處於內核態
應用層(DNS、ftp、https協議)處於用戶區

應用層(數據):確定進程之間通信的性質以滿足用戶需要以及提供網絡與用戶應用(文件傳輸、電子郵件、文件服務、虛擬終端)
表示層(數據):主要解決用戶信息的語法表示問題,如加密解密(數據格式化、代碼轉化、數據加密)
會話層(數據):提供包括訪問驗證和會話管理在內的建立和維護應用之間通信的機制,如服務器驗證用戶登錄便是由會話層完成的(解除或建立與其他接點的聯系)
傳輸層(段):實現網絡中不同主機上用戶進程之間的數據通信,可靠與不可靠的傳輸,傳輸層的錯誤檢測,流量控制(提供端對端的接口)
網絡層(包):提供邏輯地址(IP)、選路、數據從源端到目的端的傳輸(為數據包選擇路由)
數據鏈路層(幀):將上層數據封裝成幀,用MAC地址訪問媒介,錯誤檢測與修正(傳輸有地址的幀以及錯誤檢測功能)
物理層(比特流):設備之間的比特流的傳輸,物理接口,電氣特性等(以二進制數據形式在物理媒體上傳輸數據)

(2)設備應用

網關:應用層、傳輸層
(網關在傳輸層上以四線網絡互連,是最復雜的網絡互連設備,僅用於兩個高層協議不同的網絡互連。網關的結構也和路由器類似,不同的是互連層。網關既可以用於廣域網,也可以用於局域網互連)

路由器:網絡層
(路由選擇,存儲轉發)

交換機:數據鏈路層、網絡層
(識別數據包中的MAC地址信息,根據MAC地址進行轉發,並將這些MAC地址與對應的端口記錄在自己內部的一個地址表中)

網橋:數據鏈路層
(將兩個LAN連起來,根據MAC地址轉發幀)

集線器(Hub):物理層
(純硬件設備,主要用來連接計算機等網絡終端)

中繼器::物理層
(在比特級別對網絡信號進行再生和重定時,從而使得他們能夠在網絡上傳輸更長的距離)

2、五層協議體系結構、

二、TCP/IP 協議體系

1、采用4層結構,應用層、傳輸層、網絡層、數據鏈路層

 

 每層調用下層所提供的協議以完成需求;

 

數據鏈路層:
(1)ARP(地址解析協議):它實現IP地址到物理地址(通常是MAC地址,通俗的理解就是網卡地址)的轉換。
     應用:網絡層使用IP地址尋找一台機器,而數據鏈路層則是使用物理地址尋找一台機器,因此網絡層必須先將目標機器的IP地址轉化成物理地址,才能使用數據鏈路層提供的服務。 (
2)RARP(逆地址解析協議):顧名思義,它和ARP是相反的,它是實現從物理地址到IP地址的轉換
     應用:RARP協議僅用於網絡上的某些無盤工作站,因為缺少儲存設備,無盤工作站無法記錄自己的IP地址,然而通過RARP就可以看到從物理地址到IP地址的映射。
網絡層:
(1)IP
(2)ICMP:主要用於檢測網絡連接

    8位類型:將ICMP報文分為兩大類:一類是差錯報文,比如目標不可達(類型值為3)和重定向(類型值為5);另一類是查詢報文,用來查詢網絡信息。

    有的ICMP報文還用8位代碼字段細分不同的條件。比如代碼值0表示網絡重定向,代碼值1表示主機重定向。

    16位校驗和:對整個報文(包括頭部和內容部分)進行循環冗余校驗(CRC)。

    注意:ICMP協議並非嚴格意義上的網絡層協議,因為它使用了處於同一層的IP協議提供的服務,而一般來說,上層協議使用下層協議提供的服務。

 傳輸層:

 (1)TCP協議(傳輸控制協議):為應用層提供可靠的、面向連接和流式服務

 (2)UDP協議(用戶數據報協議):為應用層提供不可靠的、無連接的和數據報服務

 (3)SCTP協議(流控制傳輸協議):傳輸電話信號

  

 應用層:

(1)OSPF(開放最短路徑優先)協議:是一種動態路由更新協議,用於路由器之間的通信,以告知對方各自的路由信息。

(2)DNS(域名服務)協議:提供機器域名到IP地址的轉換。(如將www.baidu.com轉化成百度的IP,輸入域名就直接可以進入。因為IP地址記的時候太麻煩,就像每個人都是由身份證唯一標識的,但為了好記就起了名字。DNS就是一個將姓名與身份證對應的過程)

(3)telnet協議是一種遠程登陸協議,使我們能在本地完成遠程任務。

(4)HTTP協議(超文本傳輸協議)是一個基於請求與響應模式的、無狀態的、應用層的協議,常基於TCP的連接方式。

(5)TFTP協議

(6)SNMP協議

(7)SMTP協議

2、tcp協議和udp協議的差別

TCP傳輸控制協議 。UDP用戶數據報協議
TCP對資源要求比較多,UDP對資源要求比較少
TCP可以保證數據的正確性,UDP有可能會丟包
TCP可以保證數據的順序,UDP不會保證

 

 3、TCP三次握手 < 請求--->應答--->確認 >

位碼即TCP標志位6種:SYN建立連接的標志位,ACK確認位,PSH傳送,FIN結束關閉連接,RST重置位,URG緊急位;seq起始序號,ack確認號;

 

第一次握手:TCP客戶機進程首先向 TCP服務機進程發送一個TCP報文段,其報文段首部中的標志位SYN=1(標志),起始序號seq=x,該報文段稱為SYN報文段,它封裝在一個IP數據包中發送給服務器;

第二次握手:TCP SYN報文段到達服務機后,SYN和ACK均為1,確認號ack=x+1,服務機令自己的起始序號seq=y,此時稱為SYNACK報文段發送給客戶機;

第三次握手:收到SYNACK報文后,向服務機發送第三個報文段,對服務機允許連接的報文段進行確認,該報文段確認號ack=y+1,起始序號seq=x+1,發送完畢后,客戶機和服務機都進入ESTABLISHED狀態,完成三次握手,開始傳送數據。

4、四次揮手

 

1)客戶端進程發出連接釋放報文,並且停止發送數據。釋放數據報文首部,FIN=1,其序列號為seq=u(等於前面已經傳送過來的數據的最后一個字節的序號加1),此時,客戶端進入FIN-WAIT-1(終止等待1)狀態。 TCP規定,FIN報文段即使不攜帶數據,也要消耗一個序號。
2)服務器收到連接釋放報文,發出確認報文,ACK=1,ack=u+1,並且帶上自己的序列號seq=v,此時,服務端就進入了CLOSE-WAIT(關閉等待)狀態。TCP服務器通知高層的應用進程,客戶端向服務器的方向就釋放了,這時候處於半關閉狀態,即客戶端已經沒有數據要發送了,但是服務器若發送數據,客戶端依然要接受。這個狀態還要持續一段時間,也就是整個CLOSE-WAIT狀態持續的時間。
3)客戶端收到服務器的確認請求后,此時,客戶端就進入FIN-WAIT-2(終止等待2)狀態,等待服務器發送連接釋放報文(在這之前還需要接受服務器發送的最后的數據)。
4)服務器將最后的數據發送完畢后,就向客戶端發送連接釋放報文,FIN=1,ack=u+1,由於在半關閉狀態,服務器很可能又發送了一些數據,假定此時的序列號為seq=w,此時,服務器就進入了LAST-ACK(最后確認)狀態,等待客戶端的確認。
5)客戶端收到服務器的連接釋放報文后,必須發出確認,ACK=1,ack=w+1,而自己的序列號是seq=u+1,此時,客戶端就進入了TIME-WAIT(時間等待)狀態。注意此時TCP連接還沒有釋放,必須經過2∗∗MSL(最長報文段壽命)的時間后,當客戶端撤銷相應的TCB后,才進入CLOSED狀態。
6)服務器只要收到了客戶端發出的確認,立即進入CLOSED狀態。同樣,撤銷TCB后,就結束了這次的TCP連接。可以看到,服務器結束TCP連接的時間要比客戶端早一些。

 5、TCP/IP實現可靠傳輸的方式

1、序列號,ACK信號:發送方給每個要發送的數據包都標有一個序列號。接受方在接收到數據包后,給發送送發送一個ACK信號包含了,要求的下一個數據包的序列號。
2、超時重發:當發送方在規定時間內沒有接收到接收方的ACK時,將會重發送該數據包,並下一次等待重發的時間成指數增長。當重發一定次數后,若還沒有收到ACK,就會強制的斷開連接。
3、TCP的連接管理:三次握手,四次揮手。
4、以段為單位發送數據包:在通信雙方建立連接的同時,協商數據包的單位即(最大的消息長度(MSS))。
5、滑動窗口:包括前端已發送未收到ACK的數據包,和后端待發送的數據包。接收端收到ACK后,窗口向前滑動,直到有數據未確認時停止。
6、流量控制:TCP數據報首部字段來控制滑動窗口的大小。
7、擁塞控制:發送端通過擁塞窗口主動控制數據流量。 慢啟動:防止通信雙方一開始就發送大量的數據包,擁塞窗口一開始的大小為:1MSS,每收到一個ACK擁塞窗口就擴大兩倍,發送數據包時選擇擁塞窗口和滑動窗口的較小值。擁塞避免算法:相比慢啟動,擁塞窗口的增長速度更慢。快速重傳:當在規定時間限度內沒有收到ACK,那么很可能就是網絡出現問題。此時將擁塞窗口減小為一,重新慢開始。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM