終止序列

終止序列

在TCP協定中,TCP連線建立過程叫做三次握手,TCP連線釋放過程叫做四次握手。終止連線的四次握手一般由客戶機啟動,客戶機通過傳送第一個段啟動終止序列,這個段稱為FIN段,這個段的標識符已經被設定。在計算機通信中,終止序列簡單來說是指通信雙方終止通信的序列。

基本介紹

  • 中文名:終止序列
  • 外文名: Termination Sequence
  • 學科:計算機科學
  • 定義:通信雙方終止通信的標識符
  • 有關術語:TCP
  • 領域:計算機網路、通信
簡介,TCP,概述,首部格式,TCP連線的終止,計算機通信,

簡介

數學上,序列是被排成一列的對象(或事件);這樣,每個元素不是在其他元素之前,就是在其他元素之後。這裡,元素之間的順序非常重要。在離散時間信號中,若令相繼時刻t(k+1)與tk之間的間隔為時間常數T,則離散信號只在均勻離散時刻t=...,-2T,-T,0,T,2T,...時有定義,它可以表示為f(kT),這樣的離散信號也常稱為序列。
在TCP協定中,TCP連線釋放過程叫做四次握手。終止連線的四次握手一般由客戶機啟動,客戶機會傳送第一個段啟動終止序列,這個段稱為FIN段,因為會話標識符欄位中的FIN標識符已經設定,設定FIN標識符的目的是通知伺服器,客戶希望終止客戶機到伺服器方向上的連線。終止序列簡單來說是指通信雙方終止通信的序列,是通信雙方都認可的且能夠被計算機所識別的序列。

TCP

概述

TCP(Transmission Control Protocol 傳輸控制協定)是一種面向連線的、可靠的、基於位元組流的傳輸層通信協定,由IETF的RFC 793定義。在簡化的計算機網路OSI模型中,它完成第四層傳輸層所指定的功能,用戶數據報協定(UDP)是同一層內 另一個重要的傳輸協定。在網際網路協定族(Internet protocol suite)中,TCP層是位於IP層之上,套用層之下的中間層。不同主機的套用層之間經常需要可靠的、像管道一樣的連線,但是IP層不提供這樣的流機制,而是提供不可靠的包交換。
套用層向TCP層傳送用於網間傳輸的、用8位位元組表示的數據流,然後TCP把數據流分區成適當長度的報文段(通常受該計算機連線的網路的數據鏈路層的最大傳輸單元( MTU)的限制)。之後TCP把結果包傳給IP層,由它來通過網路將包傳送給接收端實體的TCP層。TCP為了保證不發生丟包,就給每個包一個序號,同時序號也保證了傳送到接收端實體的包的按序接收。然後接收端實體對已成功收到的包發回一個相應的確認(ACK);如果傳送端實體在合理的往返時延(RTT)內未收到確認,那么對應的數據包就被假設為已丟失將會被進行重傳。TCP用一個校驗和函式來檢驗數據是否有錯誤;在傳送和接收時都要計算校驗和。

首部格式

TCP的首部格式圖右圖所示:
---Source Port是源連線埠,16位。
TCP首部
TCP首部
---Destination Port是目的連線埠,16位。
---Sequence Number是傳送數據包中的第一個位元組的序列號,32位。
終止序列
---Acknowledgment Number是確認序列號,32位。
---Data Offset是數據偏移,4位,該欄位的值是TCP首部(包括選項)長度除以4。
---標誌位: 6位,URG表示Urgent Pointer欄位有意義:
ACK表示Acknowledgment Number欄位有意義
PSH表示Push功能,RST表示復位TCP連線
SYN表示SYN報文(在建立TCP連線的時候使用)
FIN表示沒有數據需要傳送了(在關閉TCP連線的時候使用)
Window表示接收緩衝區的空閒空間,16位,用來告訴TCP連線對端自己能夠接收的最大數據長度。
---Checksum是校驗和,16位。
---Urgent Pointers是緊急指針,16位,只有URG標誌位被設定時該欄位才有意義,表示緊急數據相對序列號(Sequence Number欄位的值)的偏移。

TCP連線的終止

(1) 某個套用進程首先調用close,稱該端執行“主動關閉”(active close)。該端的TCP於是傳送一個FIN分節(包含終止序列),表示數據傳送完畢。
(2) 接收到這個FIN的對端執行 “被動關閉”(passive close),這個FIN由TCP確認。
注意:FIN的接收也作為一個檔案結束符(end-of-file)傳遞給接收端套用進程,放在已排隊等候該套用進程接收的任何其他數據之後,因為,FIN的接收意味著接收端套用進程在相應連線上再無額外數據可接收。
(3) 一段時間後,接收到這個檔案結束符的套用進程將調用close關閉它的套接字。這導致它的TCP也傳送一個FIN。
(4) 接收這個最終FIN的原傳送端TCP(即執行主動關閉的那一端)確認這個FIN。
既然每個方向都需要一個FIN和一個ACK,因此通常需要4個分節。
注意:
(1) “通常”是指,某些情況下,步驟1的FIN隨數據一起傳送,另外,步驟2和步驟3傳送的分節都出自執行被動關閉那一端,有可能被合併成一個分節。
(2) 在步驟2與步驟3之間,從執行被動關閉一端到執行主動關閉一端流動數據是可能的,這稱為“半關閉”(half-close)。
(3) 當一個Unix進程無論自願地(調用exit或從main函式返回)還是非自願地(收到一個終止本進程的信號)終止時,所有打開的描述符都被關閉,這也導致仍然打開的任何TCP連線上也發出一個FIN。

計算機通信

計算機通信是一種以數據通信形式出現,在計算機與計算機之間或計算機與終端設備之間進行信息傳遞的方式。計算機通信的基本原理是將電信號轉換為邏輯信號,其轉換方式是將高低電平表示為二進制數中的1和0, 再通過不同的二進制序列來表示所有的信息。也就是將數據以二進制中的0和1的比特流的電的電壓做為表示,產生的脈衝通過媒介(通訊設備)來傳輸數據,達到通信的功能,這個是osl的物理層,也就是通信的工作原理。
OSI參考模型將整個協定垂直地分為7個層次 7、套用層 與用戶套用進程的接口6、表示層 數據格式的轉換 5、會話層 會話管理與數據傳輸的同步 4、傳輸層 端到端經網路透明地傳送報文 3、網路層 分組傳送,路由選擇和流量控制 2、數據鏈路層 在鏈路上無差錯地傳送幀 1、物理層 經物理媒體透明傳送比特流。

相關詞條

熱門詞條

聯絡我們