《11傳輸層協議與應用》由會員分享,可在線閱讀,更多相關《11傳輸層協議與應用(32頁珍藏版)》請在裝配圖網上搜索。
1、傳輸層協議與應用,本章目標,掌握,TCP,的封裝和工作原理,掌握,UDP,的封裝和工作原理,了解常用的,TCP,和,UDP,端口號,對,TCP,和,UDP,首部能夠進行分析,本章結構,傳輸層,提供端到端的連接,擁塞控制,TCP,的連接與斷開,TCP,封裝格式,UDP,封裝格式,傳輸層的作用,UDP,工作原理,TCP,工作原理,流量控制,差錯控制,計時器,TCP,的應用,UDP,的應用,傳輸層的作用,IP,層提供點到點的連接,傳輸層提供端到端的連接,IP,層:找到了這臺主機!,傳輸層:找到了應用進程,傳輸層的協議,TCP,(,Transmission Control Protocol,),傳輸控
2、制協議,可靠的、面向連接的協議,傳輸效率低,UDP,(,User Datagram Protocol,),用戶數據報協議,不可靠的、無連接的服務,傳輸效率高,TCP,的工作原理,TCP,的封裝格式,連接與斷開,流量控制,擁塞控制,差錯控制,計時器,TCP,的封裝格式,源端口號,目標端口號,32,位序列號,32,位確認號,4,位,首部長度,保留(,6,位),URG,ACK,PSH,RST,SYN,FIN,16,位窗口大小,16,位校驗和,16,位緊急指針,可選項,數據,0,15,16,31,發(fā)送,TCP,進程對應的端口號,目標端接收進程的端口號,0,2,32,-1,范圍內,數據段標記,用于到目的
3、端對到達包的重組,0,2,32,-1,范圍內,對發(fā)送端的確認信息,告訴發(fā)送端這個序號之前的數據段都收到了,緊急指針有效位,與,16,位緊急指針配合使用,確認序列號有效位,表明該數據包包含確認信息,為,1,時,請求重新建立,TCP,連接,為,1,時,請求建立連接,為,1,時,數據發(fā)送完畢,請求斷開連接,滑動窗口的大小,指明本地可接收數據的字節(jié)數,通知接收端立即將數據提交給用戶進程,不在緩存中停留,等待更多的數據,TCP,的連接三次握手,發(fā)送,SYN,,,請求建立連接,(,seq,=100,ctl,=SYN),Host A,Host B,1,發(fā)送,SYN,、,ACK,(,seq,=300,ack,
4、101,ctl,=SYN,、,ACK),2,3,發(fā)送,ACK,(,seq,=101,ack,301,ctl,=ACK),TCP,的四次斷開,發(fā)送,FIN,請求斷開連接,(,seq,=101,ack,=301,ctl,=FIN,,,ACK),Host A,Host B,1,發(fā)送,ACK,(,seq,=301,ack=102,ctl,=ACK),2,4,發(fā)送,ACK,(,seq,=102,ack=302,ctl,=ACK),S,eq,100,S,eq,300,Ack,101,3,發(fā)送,FIN,請求斷開連接,(,seq,=301,ack=102,ctl,=FIN,,,ACK),TCP,的流控機制滑動
5、窗口,Host A,Host B,1,2,3,Ack,=301,win=3,Seq,=300,ack,=101,win=3,S,eq,=100,win=3,Ack,=104,win=1,S,eq,=101,win=3,S,eq,=102,win=3,S,eq,=103,win=3,S,eq,=104,win=3,0,3,接收方的緩沖區(qū),0,1,3,2,發(fā)送窗口大小為,3,通報窗口大小為,1,緩沖區(qū)滿,應用程序讀取了,1,個數據段,實際發(fā)送窗口大小變?yōu)?1,通報窗口大小為,3,TCP,的流控機制擁塞控制,2,1,Win,10,Win,10,Cwnd,=5,Win,10,傳輸時窗口大小為,10,中
6、間鏈路帶寬比較窄,傳輸時窗口大小根據擁塞窗口(記為,cwnd,)的大小變?yōu)?5,Win,10,TCP,的流控機制擁塞控制,2,2,Host A,Host B,1,2,3,Ack,=301,win=3,Seq,=300,ack,=101,win=3,S,eq,=100,win=3,Ack,=102,win=3,S,eq,=101,win=3,S,eq,=102,win=3,S,eq,=103,win=3,S,eq,=102,win=3,通報窗口大小為,3,,但因為中間鏈路擁塞,丟包,只接收到,102,一個確認,重傳,102,,實際傳輸的窗口大小減小,TCP,的差錯控制,TCP,差錯控制的,3,種
7、方式,校驗和,確認,受損傷的數據段,丟失的數據段,重復的數據段,失序的數據段,確認的丟失,超時,收到請確認,TCP,的計時器,4,1,重傳計時器為了控制丟失的數據段,Host A,Host B,開啟重傳計時器,等待確認,Ack,撤消重傳計時器,再發(fā)送其他數據,A,在重傳計時器超時之前接收到,ack,A,在重傳計時器超時之前,沒有,接收到,ack,重傳數據,并將重傳計時器復位,TCP,的計時器,4,2,堅持計時器為了防止零窗口死鎖,Host A,Host B,Ack,win=0,A,在堅持計時器超時之前接收到通知窗口大小的,ack,A,在堅持計時器超時之前,沒有,接收到通知窗口大小的,ack,收
8、到,win=0,的確認,等待對方發(fā)送確認來通知窗口的大小,并啟動堅持計時器,Ack,win=3,發(fā)送后續(xù)數據,發(fā)送探測數據段,提醒接收端確認已丟失,如果沒有堅持計時器和探測數據段,,ack,丟失時,雙方將會進入等待死鎖的狀態(tài),Ack,win=3,丟失,TCP,的計時器,4,3,?;钣嫊r器防止兩個,TCP,之間的連接長時間的空閑,Host A,Server,在保活計時器超時前,,沒有,收到客戶端發(fā)來的數據,發(fā)送探測數據段,如果發(fā)送了,10,個探測數據段,還沒有響應,則斷開連接,建立了,TCP,連接,開啟?;钣嫊r器,server,TCP,的計時器,4,4,時間等待計時器連接終止期間使用的,在發(fā)送了
9、最后一個,ACK,后,不立即關閉連接,而是等待一段時間,保證能接收到重復的,FIN,數據段。,Host A,Host B,FIN,ACK,FIN,ACK,丟失,如果,A,立即關閉,而,ACK,又丟失了。,B,會再發(fā)送,FIN,,但是,A,已經斷開了連接,不會發(fā)送,ACK,A,發(fā)送了最后一個,ACK,后,不立即關閉連接,等時間等待計時器超時后再關閉,TCP,的應用,端口,協議,說明,21,FTP,文件傳輸協議,用于上傳、下載,23,Telnet,用于遠程登錄,通過連接目標計算機的這一端口,得到驗證后可以遠程控制管理目標計算機,25,SMTP,簡單郵件傳輸協議,用于發(fā)送郵件,53,DNS,域名服務
10、,當用戶輸入網站的名稱后,由,DNS,負責將它解析成,IP,地址,這個過程中用到的端口號是,53,80,HTTP,超文本傳輸協議,通過,HTTP,實現網絡上超文本的傳輸,階段總結,TCP,的封裝格式,TCP,的連接與斷開,流控機制,擁塞控制,差錯控制,計時器,階段練習,在,TCP,中如何防止數據段的丟失?,如果接收方的緩存已經滿了,接收方會向發(fā)送發(fā)發(fā)送什么樣的確認信息?發(fā)送方收到后會怎么處理?,UDP,的封裝格式,16,位源端口號,16,位目標端口號,16,位,UDP,長度,16,位,UDP,校驗和,數據,發(fā)送端的,UDP,進程端口號,接收端的,UDP,進程端口號,包含數據的長度,可以算出數據
11、的結束位置,UDP,的差錯控制(可選),0,15,16,31,UDP,的使用,端口,協議,說明,69,TFTP,簡單文件傳輸協議,53,DNS,域名服務,123,NTP,網絡時間協議,111,RPC,遠程過程調用,DNS,服務器支持,TCP,和,UDP,兩種協議的查詢方式,而且端口都是,53,。大多數的查詢都是,UDP,查詢的,一般需要,TCP,查詢的有兩種情況:,當查詢數據較大以至于產生了數據分段,這時,需要利用,TCP,的分片能力來進行數據傳輸。,當主(,master,)服務器和輔(,slave,)服務器之間數據同步通信的時候。,UDP,的流控和差錯控制,UDP,沒有流控機制,UDP,只有
12、校驗和來提供差錯控制,需要上層協議來提供差錯控制:例如,TFTP,協議,Host A,Host B,DATA(512,字節(jié)),ACK,DATA(512,字節(jié)),TFTP,協議提供分塊傳輸、分塊確認的機制,保證數據傳輸的可靠性,TCP/IP,協議棧,FTP,IP,TFTP,UDP,TCP,Telnet,SMTP,HTTP,應用層,傳輸層,網絡層,會話層,表示層,數據鏈路層,Ethernet,PPP,Frame Relay,根據鏈路類型選擇不同的協議,對上層透明,根據協議號選擇應該提交給,TCP,還是,UDP,根據端口號提交給相應的應用程序,抓包分析實例拓樸結構,192.168.2.86,192.
13、168.1.3,代理服務器,Internet,Sniffer,一種協議分析工具軟件,可以捕獲網絡中的數據包,抓包分析實例軟件使用,2,1,添加過濾,開始抓包,設置需要查看的主機的,IP,地址;,應用配置的過濾,抓包分析實例軟件使用,2,2,添加過濾,開始抓包,打開網頁,關閉網頁,結束抓包,抓包分析實例,TCP,連接建立,序列號,:Initial sequence number=3042697805,SYN=1,序列號,:Initial sequence number=1093837408,確認號,:Acknowledgment number=3042697806,ACK,1,SYN,1,序列號
14、,:Sequence number=3042697806,確認號,:1093837409,ACK,1,1,192.168.2.86 192.168.1.3,2,192.168.1.3 192.168.2.86,3,192.168.2.86 192.168.1.3,抓包分析實例斷開連接,FIN,1,ACK,1,ACK,1,FIN,1,ACK,1,1,192.168.2.86 192.168.1.3,2,192.168.1.3 192.168.2.86,3,192.168.1.3 192.168.2.86,4,192.168.2.86 192.168.1.3,本章總結,傳輸層,提供端到端的連接,擁
15、塞控制,TCP,的連接與斷開,TCP,封裝格式,UDP,封裝格式,傳輸層的作用,UDP,工作原理,TCP,工作原理,流量控制,差錯控制,計時器,TCP,的應用,UDP,的應用,可靠的傳輸層協議,源端口號,目標端口號,32,位序列號,32,位確認號,首部長度,標志位,SYN,、,ACK,、,FIN,16,位窗口大小,不可靠的傳輸層協議,源端口號,目標端口號,16,位,UDP,長度,實驗,任務,1,使用,Sniffer,分析,TCP,包格式,完成標準,能夠熟練使用抓包工具軟件,sniffer,能夠根據所學知識分析,TCP,包頭,查看,TCP,連接建立的過程與連接斷開的過程,192.168.1.1,192.168.1.X,