3ウェイハンドシェイクプロトコルTCPと4つの振っ理解(インタビューの質問の1)について

TCPの通信プロセスは、以下の3つの手順が含まれます。

1.建立TCP连接通道

2.传输数据

3.断开TCP连接通道。

示されるように、TCP通信処理の概略図を示します。
ここに画像を挿入説明

図は、3つの部分から構成:接続の確立、データ転送、切断されます。

TCP接続を確立することは非常に簡単です、あなたは、3ウェイハンドシェイクを介して接続を確立することができます。転送データへの良好な接続を確立した後。再送タイムアウト、再送信速いので、上のフロー制御、輻輳制御、および:TCPデータ伝送は、概念の多くが含まれます。外しプロセスも非常に簡単です、4ウェイハンドシェイクを切断してプロセスを完了します。接続を確立するためのスリーウェイハンドシェイク:

最初のハンドシェーク:クライアントがサーバにSYNパケット(SEQ = X)を送信し、SYN_SEND状態となり、確認するサーバを待って、第二のハンドシェイク:サーバがSYNパケットを受信し、SYN(ACK = X + 1)顧客を確認しなければなりません自体はSYNパケット(SEQ = Y)、すなわち、SYN + ACKパケットは、サーバが状態SYN_RECVに入り送信しながら、;第三のハンドシェーク:クライアントがサーバにSYN + ACKパケットを受信すると、サーバは、(受信確認パケットACKを送信します。 ESTABLISHED状態にACK = Y + 1)、このパケットが送信され、クライアントとサーバ、3ウェイハンドシェイクを完了します。

3ウェイハンドシェイクが完了した後、袋のハンドシェイクは、データを転送する公式の開始前に、クライアントとサーバーのデータの転送が含まれていません。理想的には、TCP接続は、一度二者の通信のいずれかの当事者が接続を閉じるためのイニシアチブをとる前に、TCP接続がダウンして保持されます、設立します。

データ送信処理:

a.超时重传超时重传机制用来保证TCP传输的可靠性。每次发送数据包时,发送的数据报都有seq号,接收端收到数据后,会回复ack进行确认,表示某一seq 号数据已经收到。发送方在发送了某个seq包后,等待一段时间,如果没有收到对应的ack回复,就会认为报文丢失,会重传这个数据包。b.快速重传接受数据一方发现有数据包丢掉了。就会发送ack报文告诉发送端重传丢失的报文。如果发送端连续收到标号相同的ack包,则会触发客户端的快速重 传。比较超时重传和快速重传,可以发现超时重传是发送端在傻等超时,然后触发重传;而快速重传则是接收端主动告诉发送端数据没收到,然后触发发送端重传。c.流量控制这里主要说TCP滑动窗流量控制。TCP头里有一个字段叫Window,又叫Advertised-Window,这个字段是接收端告诉发送端自己 还有多少缓冲区可以接收数据。于是发送端就可以根据这个接收端的处理能力来发送数据,而不会导致接收端处理不过来。 滑动窗可以是提高TCP传输效率的一种机制。d.拥塞控制滑动窗用来做流量控制。流量控制只关注发送端和接受端自身的状况,而没有考虑整个网络的通信情况。拥塞控制,则是基于整个网络来考虑的。考虑一下这 样的场景:某一时刻网络上的延时突然增加,那么,TCP对这个事做出的应对只有重传数据,但是,重传会导致网络的负担更重,于是会导致更大的延迟以及更多 的丢包,于是,这个情况就会进入恶性循环被不断地放大。试想一下,如果一个网络内有成千上万的TCP连接都这么行事,那么马上就会形成“网络风 暴”,TCP这个协议就会拖垮整个网络。为此,TCP引入了拥塞控制策略。拥塞策略算法主要包括:慢启动,拥塞避免,拥塞发生,快速恢复。

关于tcp三次握手,通俗理解,客户端向服务器发送请求,这为第一次握手;服务器接收到客户端的请求,给以客户端输送响应,此为第二次握手;当客户端接收到服务器发送过来的响应后,再给客户端发送一个东西,没有任何意义,只是告知客户端我已经接收到你的响应,此为第三次握手。

四次挥手断开连接:

最初の波:アクティブ近いがある受動的データ転送の閉じ側へのアクティブ側を閉じるため、FINを送信し、受動的に近い側に伝えるために、正方形を閉じるためのイニシアチブを取る:私は、もちろん、(あなたのフィンをデータを与えることはありません作りましたパケットデータは、対応する肯定応答メッセージACKを受信することなく、送出前に、依然として積極的に閉じた側)がデータを再送信するが、今回はアクティブ近い側は、データを受け入れることができます。

第二波:パッシブシャットダウンがFINパケットを受信したが、確認応答番号号+(同じSYN、FINシーケンス番号を占有する)を受信するために、相互にACKを送信します。

第三の波:パッシブを閉じあなたがデータを送信与えることはありません、私も上でデータを送信する、パーティを閉じるためのイニシアチブを伝えるために、あるデータ転送、の閉じた側を閉鎖するためのイニシアチブを取るために、受動側を閉じるため、FINを送信します。

第四の波:イニシアチブは、受動的に閉じパーティーを送信するためにFIN、ACKの後に近く受け取った、番号が受信確認番号+1これは、4波を完了します。

リリース元の4件の記事 ウォンの賞賛0 ビュー19

おすすめ

転載: blog.csdn.net/weixin_40740993/article/details/104565017