日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手)

發布時間:2024/10/14 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手) 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章目錄

    • 1.TCP協議特點
    • 2.TCP報文段的首部格式
    • 3.TCP連接管理
      • (1)連接的建立 - - - 三次握手
      • (2)SYN泛洪攻擊
    • 4.TCP連接釋放----四次握手
    • 5.TCP連接建立和釋放的總結如下


1.TCP協議特點


2.TCP報文段的首部格式

  • TCP傳送的數據單元稱為報文段。一個TCP報文段分為TCP首部和TCP數據兩部分,整個TCP報文段作為IP數據報的數據部分封裝在IP數據報中
  • 其首部的前20B是固定的。TCP報文段的首部最短為20B,后面有4N字節是根據需要而增加的選項,通常長度為4B的整數倍。
  • TCP報文段既可以用來運載數據,又可以用來建立連接、釋放連接和應答。
  • 1)源端口和目的端口字段。各占2B。端口是運輸層與應用層的服務接口,運輸層的復用和分用功能都要通過端口實現。
  • 2)序號字段。占4B。TCP是面向字節流的(即TCP傳送時是逐個字節傳送的),所以TCP連接傳送的數據流中的每個字節都編上一個序號。序號字段的值指的是本報文段所發送的數據的第一個字節的序號。
  • 3)確認號字段。占4B,是期望收到對方的下一個報文段的數據的第一個字節的序號。若確認號為N,則表明到序號N- 1為止的所有數據都已正確收到。
  • 4)數據偏移(即首部長度)。占4位,這里不是IP數據報分片的那個數據偏移,而是表示首部長度,它指出TCP報文段的數據起始處距離TCP報文段的起始處有多遠。“數據偏移”的單位是32位(以4B為計算單位)。因此當此字段的值為15時,達到TCP首部的最大長度60B.

  • 5)保留字段。占6位,保留為今后使用,但目前應置為0,該字段可以忽略不計。
  • 6)緊急位URG。URG= 1時,表明緊急指針字段有效。它告訴系統報文段中有緊急數據,應盡快傳送(相當于高優先級的數據)。但URG需要和緊急指針配套使用,即數據從第一個字節到緊急指針所指字節就是緊急數據。

  • 7)確認位ACK。只有當ACK= 1時確認號字段才有效。當ACK=0時,確認號無效。TCP規定,在連接建立后所有傳送的報文段都必須把ACK置1.

  • 8)推送位PSH (Push)。 接收TCP收到PSH= 1的報文段,就盡快地交付給接收應用進程而不再等到整個緩存都填滿后再向上交付。

  • 9)復位位RST (Reset)。RST=1時,表明TCP連接中出現嚴重差錯(如主機崩潰或其他原因),必須釋放連接,然后再重新建立運輸連接。

  • 10)同步位SYN。同步SYN= 1表示這是一個連接請求或連接接收報文。當SYN=1, ACK=0時,表明這是一個連接請求報文,對方若同意建立連接,則在響應報文中使用SYN=1, ACK=1。即SYN= 1表示這是一個連接請求或連接接收報文。

  • 11)終止位FIN (Finish)。用來釋放一個連接。FIN= 1表明此報文段的發送方的數據已發送完畢,并要求釋放傳輸連接。

  • 12)窗口字段。占2B。它指出現在允許對方發送的數據量,接收方的數據緩存空間是有限的,因此用窗口值作為接收方讓發送方設置其發送窗口的依據,單位為字節。
    例如,假設確認號是701,窗口字段是1000。這表明,從701號算起,發送此報文段的接收方方還有接收1000B數據(字節序號為701 ~1700)的接收緩存空間。

  • 13)校驗和。占2B。校驗和字段檢驗的范圍包括首部和數據兩部分。在計算校驗和時,和UDP一樣,要在TCP報文段的前面加上12B的偽首部(只需將UDP偽首部的第4個字段,即協議字段的17改成6,其他的和UDP一樣)。
    UDP協議
  • 14)緊急指針字段。占16 位,指出在本報文段中緊急數據共有多少字節(緊急數據放在本報文段數據的最前面)。


15)選項字段。長度可變。TCP最初只規定了一種選項,即最大報文段長度(Maximum SegmentSize,MSS)。MSS是TCP報文段中的數據字段的最大長度。窗口擴大、時間戳、選擇確認
16)填充字段。這是為了使整個首部長度是4B的整數倍。填充0.

3.TCP連接管理

  • TCP是面向連接的協議,因此每個TCP連接都有三個階段:連接建立、數據傳送和連接釋放。
  • TCP連接的管理就是使運輸連接的建立和釋放都能正常進行。

在TCP連接建立的過程中,要解決以下三個問題:

  • 1)要使每一方都能夠確知對方的存在。
  • 2)要允許雙方協商一些參數(如最大窗口值、是否使用窗口擴大選項、時間戳選項及服務質量等)。
  • 3)能夠對運輸實體資源( 如緩存大小、連接表中的項目等)進行分配。

每條TCP連接通過通信兩端的兩個端點( 即兩個套接字)確定。

(1)連接的建立 - - - 三次握手

  • seq為序號字段,標明本次報文段數據部分的第一個字節的序號
  • ack是確認號字段,告訴對方我接下來應該接收的數據是從字節序號ack開始的數據
  • ACK是確認位,0時確認號字段ack無效,1時確認號字段ack有效
  • SYN是同步位
  • 第一步:客戶機的TCP首先向服務器的TCP發送一個連接請求報文段。這個特殊的報文段中不含應用層數據,其首部中的SYN標志位被置為1。另外,客戶機會隨機選擇一個起始序號 seq= x(連接請求報文不攜帶數據,但要消耗一個序號)。
  • 第二步:服務器的TCP收到連接請求報文段后,如同意建立連接,就向客戶機發回確認,并為該TCP連接分配TCP緩存和變量。在確認報文段中,SYN和ACK位都被置為1,確認號字段的值為x+ 1, 并且服務器隨機產生起始序號seq = y(確認報文不攜帶數據,但也要消耗-一個序號)。確認報文段同樣不包含應用層數據。
  • 第三步:當客戶機收到確認報文段后,還要向服務器給出確認,并且也要給該連接分配緩存和變量。這個報文段的ACK標志位被置1,序號字段為x+1,確認號字段ack=y+ 1。該報文段可以攜帶數據,若不攜帶數據則不消耗序號。
    成功進行以上三步后,就建立了TCP連接,接下來就可以傳送應用層數據。

TCP提供的是全雙工通信,因此通信雙方的應用進程在任何時候都能發送數據。

  • 服務器端的資源是在完成第二次握手時分配的
  • 而客戶端的資源是在完成第三次握手時分配的,這就使得服務器易于受到SYN洪泛攻擊。

(2)SYN泛洪攻擊

4.TCP連接釋放----四次握手

  • 天下沒有不散的筵席,TCP同樣如此。參與TCP連接的兩個進程中的任何- 一個都能終止該連接。TCP連接釋放的過程通常稱為四次握手

  • 第一步:客戶機打算關閉連接時,向其TCP發送一個連接釋放報文段, 并停止發送數據,主動關閉TCP連接,該報文段的FIN標志位被置1, seq=u, 它等于前面已傳送過的數據的最后一個字節的序號加1 (FIN報文段即使不攜帶數據,也要消耗一個序號)。
    TCP 是全雙工的,即可以想象為一條TCP連接上有兩條數據通路。
    發送FIN報文時,發送FIN的一端不能再發送數據,即關閉了其中一條數據通路,但對方還可以發送數據。

  • 第二步:服務器收到連接釋放報文段后即發出確認,確認號是ack=u+ 1,而這個報文段自己的序號是v,等于它前面已傳送過的數據的最后一個字節的序號加1。
    此時,從客戶機到服務器這個方向的連接就釋放了,TCP連接處于半關閉狀態。
    但服務器若發送數據,客戶機仍要接收,即從服務器到客戶機這個方向的連接并未關閉。

  • 第三步:若服務器已經沒有要向客戶機發送的數據,就通知TCP釋放連接,此時其發出FIN= 1的連接釋放報文段。

  • 第四步:客戶機收到連接釋放報文段后,必須發出確認。在確認報文段中,ACK字段被置為1,確認號ack=w+1,序號seq=u+1.此時TCP連接還未釋放,必須經過時間等待計時器設置的時間2MSL后,A才進入連接關閉狀態。

5.TCP連接建立和釋放的總結如下

  • 1)連接建立。分為3步:
    ①SYN=1,seq=x。
    ②SYN=1, ACK=1, seq=y, ack=x+ 1。
    ③ACK=1,seq=x+1, ack=y+ 1。
  • 2)釋放連接。分為4步:
    ①FIN=1, seq= u
    ②ACK=1, seq=v, ack=u+ 1。
    ③FIN=1,ACK=1, seq=w,ack=u+ 1。
    ④ACK=1, seq=u+1, ack=w+ 1。

關于連接和釋放,ACK、 SYN、 FIN 一定等于1

總結

以上是生活随笔為你收集整理的5.3 计算机网络传输层之TCP协议(tcp协议特点、tcp报文段首部格式、tcp连接---三次握手、tcp连接释放---四次握手)的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。