理解tcp的三向交握

來源:互聯網
上載者:User

TCP的結構在中定義為:
struct tcphdr
{
u_int16_t source;     //發送TCP資料的源連接埠
u_int16_t dest;         //發送TCP資料的目標連接埠
u_int32_t seq;       //標識該TCP所包含的資料位元組的開始序號
u_int32_t ack_seq; //確認序號表示接受方下次需要的序號
#if __BYTE_ORDER == __LITTLE_ENDIAN
u_int16_t res1:4; //
u_int16_t doff:4;  //資料首部長度,一般為5
u_int16_t fin:1;    //為1表示親戚關係串連
u_int16_t syn:1;  //為1表示請求串連
u_int16_t rst:1;   //ret為1,表示重新串連
u_int16_t psh:1; //為1表示接收方收到資料立即交到上層
u_int16_t ack:1; //如果確認號正確,那麼為1
u_int16_t urg:1; //為1表示為緊急資料
u_int16_t res2:2; //
#elif __BYTE_ORDER == __BIG_ENDIAN
u_int16_t doff:4;
u_int16_t res1:4;
u_int16_t res2:2;
u_int16_t urg:1;
u_int16_t ack:1;
u_int16_t psh:1;
u_int16_t rst:1;
u_int16_t syn:1;
u_int16_t fin:1;
#endif
u_int16_t window; //視窗,告訴接收者可以接收的大小
u_int16_t check; //對tcp資料進行較核
u_int16_t urg_prt; //如果urg=1,那麼指出緊急資料對於曆史資料開始的序號的位移值
};
關於TCP協議的詳細情況,請查看 RFC793

TCP串連的三向交握

             c端  假設序號為1000                 s端  假設序號為2000

1、syn=1;seq=1000        ---TCP包---〉if(syn ==1){

                                                         ack = 1;ack_seq=1001;

2、 if(ack==1 && ack_seq==1001)<---TCP包---- seq = 2000;}

      {ack = 1; ack_seq = 2001;

 3、  seq = 1001;          }        ----TCP包---->  if(ack==1 &&

                                                               ack_seq==2001&&

                                                                seq == 1001)

                                                              {return OK;}

這三向交握:

第一次就是c發包告訴s我要請求和你串連看行不?

第二次就是s收到包後看到c想串連,顧客至上嘛!就給它回一個包,包中就是設定確認標誌,禮貌的等待c的確認!如果等待到期立刻中斷!

第三次就是c接到s的確認包,然後發送自己收到包的確認包告訴s可以串連,服務收到後確認後串連就完成!

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.