開啟主選單

求真百科

終止序列

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

目錄

基本信息

中文名; 終止序列

外文名; Termination Sequence

學科; 計算機科學

定義; 通信雙方終止通信的標識符

有關術語; 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、物理層 經物理媒體透明傳送比特流。[1]

參考文獻