tcpip協議

  幾個概念

1.分層(我們使用四層模型更爲貼合我們的實際網絡)

分層是爲什麼,其實和公司中職位是一樣的,不同職位的人做不同的事情,然後不同職位的人合起來,一起完成了數據傳輸的事情。

鏈路層  在這個層面,主機與主機的交互只認得硬件mac編號,並不認識IP。

網絡層 IP   ICMP  IGMP

運輸層 TCP  UDP

應用層 Telnet遠程登陸,FTP文件傳輸協議(我們這個端口和那個端口的連接是用來幹什麼的,傳輸文件?那麼可以使用FTP。傳輸文本?那麼可以使用HTTP。應用層就是實際上對具體的程序之間的交互功能進行定義的層。)

 2.  接口 互聯網上的每個接口必須有一個唯一的 I P地址

使用T C P / I P協議的應用程序通常採用兩種應用編程接口( A P I):

s o c k e tT L I(運輸層接口:Transport Layer Interface)。

3. 封裝 T C P傳給I P的數據單元稱作 T C P報文段或簡稱爲 T C P段(T C P s e g m e n t)。 

 I P傳給網絡接口層的數據單元稱作 I P數據報(IP datagram)。通過以太網傳輸的比流稱作幀(Fr a m e )

 

 

 IP:網絡協議

一.基本概念

 

所有的 T C PU D PI C M PI G M P數據都以I P數據報格式傳輸。IP的就像給網絡上每個機器一個門牌號,網絡層,你可以把它理解爲郵件運輸工,它的職能就是負責把一包東西,從這個門牌運輸到另外一個門牌。

 

不可靠(u n r e l i a b l e)的意思是它不能保證 I P數據報能成功地到達目的地。如果發生某種錯誤時,如某個路由器暫時用完了緩衝區, I P有一個簡單的錯誤處理算法:丟棄該數據報,然後發送 I C M P消息報給信源端。任何要求的可靠性必須由上層來提供(如T C P)。

 

無連接  I P數據報可以不按發送順序接收。如果一信源向相同的信宿發送兩個連續的數據報(先是 A,然後是B),每個數據報都是獨立地進行路由選擇,可能選擇不同的路線,因此 B可能在A到達之前先到達。

. 多路訪問協議:

 

a) ALOHA協議: 純 ALOHA協議和 時隙 ALOHA協議

 

b) 載波偵聽多路訪問協議 (CSMA):1-堅持式 CSMA、⾮堅持式 CSMA、p-堅持式 CSMA、

 

  帶有衝突檢測的 CSMA(CSMA/CD)
  CSMA/CA(避免衝突的 CSMA 協議):發送⽅先激發 RTS短幀,接收⽅收到後發送 CTS短幀,使接收⽅周圍的站點在發送期間保持沉默避免衝突

 

但同樣存在面向連接的虛電路和無連接的數據包。

二.路由算法

對應網絡上也存在自適應算法(動態路由,根據網絡狀態刷新路由表)和非自適應算法(靜態路由,可靠)。

Dijkstra最短通路算法,距離矢量DistanceVector算法,鏈路狀態算法

內部⽹關路由協議 ( IGP,也叫域內路由協議) :

 

a) 路由信息協議( RIP):基於距離⽮量算法,例如 Bellman-ford 算法

 

b) 開放最短路徑優先協議( OSBF):基於鏈路狀態算法,例如 Dijkstra 算法
 
三.網絡接口

 

IPv4 頭標格式 :

 

a) 版本號 : 4bit,IPv4 填 4            b) 頭標⻓度 :4bit,單位爲 4 字節,範圍 5-15,缺省值爲 5

 

c) 服務類型 (TOS):8bit ,0          d) 總⻓度 :16bit ,單位字節, 描述 IP 分組的總⻓, 包括頭和數據, 最⼤ 65535 字節,

 

e) 標識符 : 16bit,⽤於唯⼀標識分組       f) 標誌 :3bit ,第 1 位未定義,第 2 位 DF 爲 0 表示可分段,第 3 位 MF 爲 1 表示還有分段

 

g) 段偏移 : 13bit,單位爲 8 字節 ,取值 0-8191  h) ⽣存期( TTL):8bit ,單位秒

 

i) 協議 :8bit ,表示⾼層協議類型        j) 分組頭校驗 :16bit ,每 16 位相加,進位加到結果,最後取反

 

k) 源 IP 地址 和⽬的 IP 地址 :各32bit
 

網際協議 IP 是 TCP/IP 體系中兩個最主要的協議之一。與 IP 協議配套使用的還有三個協議:

地址解析協議 ARP(Address Resolution Protocol)

網際控制報文協議 ICMP (Internet Control Message Protocol)

網際組管理協議 IGMP (Internet Group Management Protocol)

 

 

 

 

TCP傳輸層

 

傳輸層相比於網絡層最大的不同就是引入了端口的概念。網絡層只管發送地址和目的地址。但是發送主機上有可能有多個程序和同一個接收主機進行傳輸數據,怎麼區分這多個程序呢?就引入了端口的概念。

 

傳輸層還有一個職能是定義發送方和接收方基本處理包的行爲。上面說到網絡層就相當於郵件運輸工,它只負責把一包東西從一個地方放到另外一個地方,但是,這包東西是否送達了,送達之後接收方又有什麼行爲。這些都可以在傳輸層進行定義。注意,這裏說的是可以,你也可以在傳輸層布不管這些,只做簡單的基本封裝四元組。你懂的,我說的就是UDP。

⽤戶數據包協議( UDP):不可靠,⾼效. 常用於實時視頻數據傳播。單元稱爲數據報
傳輸控制協議( TCP):傳輸的數據單元稱爲數據段
                                       數據流傳輸、可靠、全雙⼯、流量控制、擁塞控制

 

 

 

 

 

 

包的序號,用來解決網絡包亂序(reordering)問題。

Acknowledgement Number就是ACK——用於確認收到,用來解決不丟包的問題。

Window又叫Advertised-Window,也就是著名的滑動窗口(Sliding Window),用於解決流控的。

TCP Flag ,也就是包的類型,主要是用於操控TCP的狀態機的。

i. 源端⼝ /⽬的端⼝ :各 16bit

 

ii. 序列號 /確認號 :各 32bit

 

iii. 頭標⻓度 :4bit ,單位是 4 字節

 

iv. 保留 :6bit,置零

 

v. URG:1bit ,指示緊急指針有效

 

vi. ACK:1bit ,指示確認段有效

 

vii. PSH:1bit ,告訴主機⽴即將數據段遞交給應⽤進程

 

viii. RST:1bit ,重新連接

 

ix. SYN:1bit ,同步序列號,⽤於確認連接

 

x. FIN:1bit ,⽤於釋放連接

 

xi. 窗⼝⼤⼩ :16bit,⽤於流量控制,指示確認後還可發送的字節數

 

xii. 檢驗和 /緊急指針 :各16bit

 

 

 

 二、流量控制與滑動窗口

 

三、TCP建立連接和關閉的三次握手

 

client和server應該理解爲發送方(客戶端)和接收方(服務器)

建⽴連接:三步握⼿
a) 主機 1 向主機 2 發送序號 seq = x的連接請求 TPDU
b) 主機 2 答應連接請求, ack = x, seq = y
c) 主機 1 發送序列號 seq = x 的數據,並確認 ack = y
TCP協議的狀態機

 

 

三. 擁塞阻塞 明明網絡已經堵塞了,還一個勁地發送大量包,甚至重發,那麼這個時候,大家都沒得玩了。於是,TCP引入了擁塞窗口(cwnd)的概念。

流量控制:根據接收⽅的緩存容量來動態調整發送⽅的窗⼝⼤⼩,避免⼀個快速的發送⽅淹沒⼀個慢速的接收⽅
擁塞控制:根據⽹絡的承載容量來動態調整發送⽅的窗⼝⼤⼩,避免同⼀時刻發送⽅有太多的未被確認接收的
 算法:
慢啓動在剛剛連接網絡的時候,最好先慢慢檢測網絡情況,再確定發送包的數量。這就是我們說的慢啓動算法。
   發送方從1個包開始,收到ACK,下次就發送2個包,收到這兩個包的ACK(請注意,這裏有可能只有一個ACK),下次就發送4個包。

“每收到一個ACK,擁塞窗口就增加一個報文段”。

當然上圖的情況太理想,實際的情況,坑cwnd爲2的請求發出去兩個報文包的時候,先返回了一個ACK,然後cwnd這個時候就爲3,發送方就會繼續發送請求包。。。

 

 

 

 擁塞避免算法 

慢啓動使得cwnd是呈指數增長。一定不可能是無限增長的,這裏就有個閥值,超過這個閥值,就進入擁塞避免算法。

先說擁塞避免算法,擁塞避免算法說的是擁塞窗口的增加不再是“每收到一個ACK,擁塞窗口就增加一個報文段”。 而是“每收到一個ACK,cwnd = cwnd + 1/cwnd”。

 

 

快速回復算法

快速恢復算法是爲了不要有一個重傳就那麼大響應。能儘快恢復到網絡流暢時候穩定的狀態。

 

其他

DNS域名查詢類型 :

 

a) 遞歸查詢 :每⼀個被請求的服務器如果沒有記錄, 就會向其它服務器查詢, 並沿着

 

查詢路徑返回

 

b) 迭代查詢 :本地服務器如果沒有記錄, 就向⾼級服務器查詢, 被請求的服務器如果

 

沒有記錄就返回⼀個可供查詢的服務器地址

 

FTP⽂件傳輸協議 :

 

a) 主動模式 :client 向 server 命令通道 21 端⼝, server 向 client 數據通道 20 端⼝

 

b) 被動模式 :client 向 server 命令通道 21 端⼝, client 向 server 數據通道> 1023

電⼦郵件相關協議 :
a) 消息交換的協議:
   i. 發送 email:簡單郵件傳輸協議( SMTP)
   ii. 接收 email:
  1. 郵局協議第 3 版( POP3)
  2. Internet 消息訪問協議( IMAP)
b) 消息格式的協議:
   i. RFC 822:基本的 ASCII的⽂本郵件
   ii. 多⽤途 Internet 郵件擴展( MIME )

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章