傳輸層知識點

2021-07-30 12:38:32 字數 3969 閱讀 2499

1、網路層提供主機之間的邏輯通訊,運輸層提供的的是應用程序間的邏輯通訊。

2、運輸車層對報文的差錯檢測,網路層只有對ip首部的檢測

3、傳輸層的主要協議:tcp udp。故傳輸層 不一定是面向連線的

運輸層的復用和分用

復用:多個應用程序都可以同時通過傳輸層進行通訊 ,

分用:運輸層從ip層收到資料後分發給各應用程序

應用應用層協議

運輸層協議

dnsudp

tftp

udprip(路由資訊協議)

udpdhcp

udp網路管理

snmp

udp遠端檔案伺服器

nfsudp

ip**

udp流式**

通訊時不僅要知道ip位址,還要知道埠號(用於尋找相應的程序)。

tcp ip 16位埠號:

0-1024:服務端使用的埠號

1024-49151:登記埠號

49152-65535:客戶端使用的埠號

特點:

1、無連線

2、不可靠

3、面向報文

4、沒有擁塞控制

5、支援一對

一、一對多、多對一和多對多的通訊

5、udp首部小,8個位元組

udp首部:源埠、目的埠、長度、檢驗和,各佔2個位元組

udp校驗和方法:用到12個位元組的偽首部,二進位制反碼和放入校驗和字段,傳送之後在目的端檢驗是否相等。

特點:

1、面向連線 (它的連線是一條虛連線)

2、點對點

3、可靠

4、全雙工

5、面向位元組流

20位元組的固定首部(沒有選項時)

1、源埠和目的埠 各佔2個位元組

2、序號 4位元組 每個位元組都按順序編號

3、確認號 4位元組

4、資料偏移 4位 指明資料起始處對於報文段起始處的偏移大小,即首部大小最大15*4=60位元組

5、保留 6位

6、urg 緊急指標位

ack 此位為1 確認號才有效,連線後所有報文段都置1

psh 推送操作

rst 嚴重差錯,斷開連線,復位

syn 置1表示這是乙個連線請求

fin 請求釋放連線

7、視窗 2位元組 本傳送報文段的接收視窗,告訴對方,從確認號開始自己還可以接受的最大資料量

8、校驗和 2位元組 檢驗首部和資料,和udp類似,只不過偽首部中的第四個欄位17改為tcp的協議號6

9、緊急指標 2位元組 指出緊急資料的位元組數

10、選項 長度可變 最多40位元組,有mss、視窗擴**項、時間戳(可用來計算rtt)、選擇確認選項;

11、填充

mss:資料段的最大長度,預設536位元組,mss太小利用率不高,太大ip層還得分片。

tcp可靠傳輸的工作原理

停止等待協議

若傳送方位a,接收方為b。每次傳送方傳送乙個分組等待b確認後才再次傳送。

出現差錯呢?就涉及到了超時重傳,每次傳送後需要設定乙個計時器,等待一段時間沒有收到確認後,再次傳送。這裡涉及一下三點:

1、a每次傳送後,必須儲存已傳送的副本,收到確認後清楚

2、分組和確認分組都要有編號。

3、超時計時器的時間必須比資料往返的時間要長。這個時間如何確定。

若確認丟失,或遲到?自己想一下就知道了。自動重傳請求arq

停止等待通道利用率太低。於是就出現了:

連續arq協議

乙個傳送視窗,每收到乙個確認,就將視窗向前移動;

滑動視窗協議

滑動視窗 : 點對點通訊量的控制,所做的是抑制傳送端傳送資料的速率,是乙個端對端的問題,即只要考慮對方傳送的資料即可。擁塞控制:防止過多的資料注入網路,使網路中的路由器或鏈路不致過載

擁塞:\sum 對資源的需求 > 可用資源

採用的四種演算法:

擁塞視窗cwnd,傳送方一般讓自己的傳送視窗=擁塞視窗,當然也要取決於對方的接收視窗。

慢開始:開始時,cwnd=乙個mss(最大報文段長度),每次收到對方確認,cwnd+1,即每經過乙個傳輸輪次(即收到最後乙個確認號),cwnd翻倍。慢開始演算法有乙個慢開始門限k,當cwnd小於k時,採用慢開始演算法,大於k時採用擁塞避免演算法。

擁塞避免演算法:沒收到乙個確認讓cwnd加一(乙個mss),而不是加倍。每當判斷出發生擁塞時,慢開始門限減半,cwnd設為一。

快重傳:接收方收到失序報文,立即重**送確認,當傳送方收到三個確認後立即重傳待傳送報文段。

快恢復:當傳送方收到三個確認後,立即執行乘法減小演算法,將慢開始門限減半,但接下來不執行慢開始演算法而是將cwnd變為和慢開始門限相同的數值(也可能是咋此基礎上+3*mss),執行擁塞避免演算法。

採用客戶端伺服器

三次握手:

1、開始時處於closed狀態,服務端(b)建立tcb傳輸控制塊,進入listen狀態。a建立tcb,發出請求報文段,syn=1,序號seq=x,tcp規定,syn報文段不能攜帶資料,但消耗序號,客戶程序進入syn-sent(同步已傳送狀態)

2、b收到連線請求報文段,如同意,syn和ack位置1,確認號ack = x+1,選擇初始序號seq = y, 不能攜帶資料,伺服器程序進入syn-rcvd狀態

3、客戶程序收到確認後,再次給b確認,ack置1,確認號ack=y+1,序號seq = x+1,客戶進入established狀態。

為什麼要三次呢?防止已失效的鏈結請求報文段突然又傳到b,那麼b發出確認連線訊息後,就一直等待a的訊息,而a不鳥b的確認,故一直占用b的資源,造成浪費!

a和b都處於established狀態,

1、a應用程序先向tcp發出連線釋放報文段,並停止傳送資料,a將fin置1,序號seq=u(前面已傳送的資料最後乙個位元組序號加1),此時a進入fin-wait(終止等待1)

2、b傳送確認號ack=u+1,seq=v,b進入close-wait(關閉等待狀態),a到b方向的連線釋放,tcp處於半關閉狀態。a收到b的確認後,進入fin-wait-2狀態

3、b傳送完資料後,通知tcp釋放連線,傳送報文段,fin=1,b序號w,重複上次確認號ack=u+1,b進入last-ack狀態,等待a的確認。

4、a收到訊息,置ack=1,確認號ack = w+1,自己的序號u+1(據tcp標準,前面傳送的fin報文段消耗乙個序號),進入time-wait狀態。在等待2msl時間後進入closed狀態。

msl:最長報文段壽命。

等待2msl時間的原因:1、保證a傳送的最後乙個ack報文段能夠到達b,若b沒有收到處於last-ack狀態的b會重發fin報文,a收到後重發確認,並重新計時2msl。

2、防止已失效的連線請求報文段出現在本連線中

《運輸層》知識點總結

只有主機才有的層次 為應用層提供通訊服務 使用網路層的服務 運輸層提供程序和程序之間的邏輯通訊 復用和分用 運輸層對收到的報文進行差錯檢測 運輸層有兩種協議 大哥tcp和二弟udp 大哥靠譜,二弟不靠譜 面向連線的傳輸控制協議tcp 傳送資料之前必須建立連線,資料傳送結束後要釋放連線。不提供廣播或多...

Model層和dal層全部知識點

模板 windows 類庫 引用 無 原則 一張表乙個類,一列乙個屬性 表名 類名,列名 屬性名 常用快捷鍵 proppropfull 常見型別轉換 可以借助linq或其他工具查詢轉換後的資料型別 sql資料型別 c 基礎資料型別 整數 int bit int小數 float decimal mon...

TestLink知識點Mantis知識點

testlink知識點 1 testlink系統提供了六種角色 a guest 只有讀的許可權,適合於檢視測試用例和測試需求,以及專案分析的使用者。b testdesigner 可以開展測試用例和測試需求的所有工作。c tester 只能執行測試用例。d senior tester 可以檢視和維護測...