计算机网络tcp传送,计算机网络基础课程—传输控制协议(Tcp)
原標題:計算機網絡基礎課程—傳輸控制協議(Tcp)
?TCP和UDP都使用相同的網絡層(IP),但TCP向應用層提供與UDP完全不同的服務。
?TCP提供一種面向連接的、可靠的字節流服務。
?UDP提供無連接、不可靠的數據報傳輸
?在不可靠的IP交付服務上獲得可靠的TCP傳輸服務
?多數的可靠傳輸協議都是使用了一個基本的技術:確認重傳
?這個技術的關鍵是要求接收方與源發送端進行通信:在收到數據后要發回一個確認(ACK)消息,而源端也只有在收到接收端的確認消息后在發送下一個數據。
?最簡單的正常情況如下圖所示:
?另一種出錯的情況是:接收方發回的確認消息在傳輸過程中出現丟失或破壞,如果發送方在等待一個預定的時間沒能收到確認消息,則重發上次的數據報文。但由于上次的數據接收方已收到,只是字相應的確認消息沒能發回,這樣,就出現了重復的數據報文
?為此的處理方法是為所有發送的數據編序號,這樣接收端就可以通過檢查報文是否具有相同的序號而確定是否出現了重復報文,重復的報文就可以直接丟棄。
?可以看到,上述的簡單確認重傳協議沒有對網絡帶寬進行有效的利用,發送端和接受端都有較多的時間處于等待狀態,為充分利用信道資源,在簡單確認重傳協議的基礎上提出了滑動窗口協議:
?滑動窗口協議與簡單確認重傳的根本差別在于:發送端在收到接收方的確認消息之前,可以發送多個分組。滑動窗口的大小就是發送端在收到接收方的確認消息之前,可以發送的分組數目。窗口大小為1時,就是簡單確認重傳協議。
?詳細內容參見數據鏈路層中的描述。(動畫演示)
?TCP使用滑動窗口協議可以解決兩個重要問題:
–有效傳輸:通過減少等待時間可增加網絡總吞吐量
–流量控制:可以通過變化發送方窗口大小以及接收方緩存大小來控制端到端的流量
?TCP數據(segment)格式:
TCP封裝:
TCP首部格式:
?面向連接的TCP交付服務
?在定義TCP連接之前需要引入端點的概念:
?端點是一個(主機的IP地址,該主機上的TCP端口號)二元組。
?一個TCP連接由兩個端點唯一定義。
?例如:(18.26.0.36, 1069)和(128.10.2.3, 25)就定義了一個 TCP連接。
?每個端點都可以同時參與多個連接。
?每個連接的建立需要雙方端點的同意
?面向連接的服務意味著兩個使用TCP的應用在彼此交換數據前必須先建立一個TCP連接(虛電路)。虛電路連接類似電話,發送和接收數據的進程雙方在進行通信之前要利用協議取得一個數據傳輸路徑的授權,但又并不是如電話那樣在之后的通信中獨占一條物理線路。
?三步握手的過程:
–第一步:發起方發送一個消息,其SYN位被設置;
–第二步:響應方收到消息后,發回一個消息,SYN和ACK位均被設置,表示可以繼續;
–第三步:確認響應,ACK位被設置,表示雙方均同意連接,連接建立。
?三步握手的功能:
–保證雙方都相互知道對方已準備好進行數據傳輸
–雙方確認一個數據傳輸的初始序列號,如上圖中,發送方的初始序列號為x,接收方的初始序列號為y,均被對方確認
?釋放TCP連接過程:
?TCP是全雙工的,一個連接具有兩個方向的數據傳輸,因此連接釋放需要分別釋放兩個方向。
?當一方的應用程序通知TCP已無數據需要發送時,TCP關閉此方向的連接,這時此方向只能接收對方的數據,而不能發送其它數據了(除了釋放連接的消息)。然后發送一個FIN位被設置的消息通知接收方沒有數據發送。接收方響應確認。
?同時,接收方通知應用程序釋放連接,發送回連接釋放消息,最終釋放整個連接。
?TCP性能
?雖然TCP中包含許多比其它運輸層更為復雜的任務,但分析表明,其性能并沒有因此而降低。幾個最大吞吐量的理論計算值(或測得的):
–在以太網(10M)上:8兆
–在FDDI(100M)上:80-90兆
–兩臺Gray Y-MP計算機在800兆的高速通道上:781兆
?早期的TCP有一個較嚴重的性能問題,稱為糊涂窗口綜合癥(Silly Window Syndrome):
?問題描述:
?在TCP執行中,接收方在接收數據前要指定一個確定大小的緩存,發送方傳輸過來的數據首先存儲在緩存中等待處理。
?而另一方面,TCP通過報頭中的WINDOW 字段來向對方報告緩存中的剩余字節,當發送方的數據發送速度較快時,緩沖區很快就用完,這時,應用程序每從緩沖區讀取一個字節,TCP就發送一個WINDOW字段為1的消息,發送端之后就只能發送一個字節的小數據。
?這雖然實現了流量控制,同時也造成了一系列的小報文 (小報文也可能由其它一些原因導致:如應用程序生成數據較慢) 。在小報文中,報頭要比數據更大,而對于每一個報文TCP/IP都需要做同樣的計算、檢校操作,這對于計算資源以及信道資源都是浪費。
?避免SWS的一些措施:
?接收方維護一個當前有效窗口大小的記錄,但延遲發送這個值,知道其值達一定的值,這個一定的值的一個定義是緩沖區大小的一半。
?發送方延時確認接收方發來的窗口消息,這樣可以等待應用程序生成足夠的數據來發送,但延時太長,會導致接收方在無確認后沖發,因此延時又不能太長,標準建議<500毫秒。返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的计算机网络tcp传送,计算机网络基础课程—传输控制协议(Tcp)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 电脑切换用户关闭计算机会怎样,电脑中的“
- 下一篇: 微型计算机期末考试a卷,(208)