理由TCPスティックパッケージ/開梱とソリューション

クライアントが継続的にサーバーにデータパケットを送信する場合、通常のクライアントソケットの開発では、サーバーは、データパケットが一般的に遭遇するTCPプロトコルで立ち往生している、2本のスティックの場合になります受け取ります問題は、パッケージ化し、開梱。

我々は、すべて、TCPはトランスポート層プロトコルであることを知っているトランスポート層のTCPプロトコルのほかにも、UDPプロトコルを持っています。だから、UDPスティックパッケージまたはアンパック現象が、その後どうなりますか?答えはノーです。UDPパケットが上で送信され、それによって、アプリケーション層でUDPデータパケットの16ビット長の使用を示すために、UDP、UDPヘッダのフレーム構造から理解することができるので、データパケットのことができるだけでなく、別個の異なる領域回避の問題にパッケージを固執し、開梱。また、TCPは、バイト指向のアプリケーション層とTCPトランスポート層との間のデータ交換は、データ・ブロック・サイズであるが、これらのデータブロックは、構造化されていないバイトストリーム、無境界一連のTCPだけが、そしてありますTCPヘッダの長さフィールドにTCPからも見ることができるフレーム構造は、データはTCPを使用して転送するとき、それはスティックパッケージを有していてもよく、またはアンパック現象が発生し、上記の点に基づいて、示すデータはありません。

フォームを開梱スティックパッケージ、

今、サーバへのクライアントが連続的に2つのデータパケットを送信すると仮定し、パケット1表わさpacket2と、サーバーは、データが3分割されてもよい受け、我々は、以下に列挙する。

前者の場合、受信端末は、通常、2つのパケットを受信し、即ち、スティックパッケージとアンパック現象が発生しない、そのような条件は、この説明の範囲内ではありません。
ここに画像を挿入説明
TCPパケット損失が発生しないので、第二の場合には、受信端末は、パケットが送信機によって送信された情報の2つのパケットを含んでいるように、スティック・パッケージである現象を一つだけのパケットを受信します。受信機は、2つのデータパケットの限界を知らないので、この場合、受信側が処理されるため、それは困難です。
ここに画像を挿入説明
以下に示すように、第3のケースは、このケースでは、2つの形式があります。受信機は、2つのパケットを受信するが、両方のパケットのいずれか不完全であるか、または複数の外である、すなわち、このような状況が発生し、スティックパッケージをアンパック。特別な治療なしの両方のケースならば、受信側の処理のためにも悪いです。
ここに画像を挿入説明
スティック包装、開梱の理由が発生します

TCPスティックパッケージまたは多くの理由で発生開梱、今共通点を一覧表示し、不完全な、追加してくださいすることができます、

図1に示すように、送信すべきデータが発生するアンパック、残りのTCP送信バッファ領域のサイズよりも大きいです。

図2は、送信すべきデータがMSS(最大パケットサイズ)よりも大きい場合、TCPは、送信前に解凍あろう。

3、送信するデータが送出されたら、TCPデータは、複数の書き込みをバッファリングし、より少ないTCP送信バッファのサイズよりもスティックパッケージを発生します。

図4に示すように、受信データバッファを読んでいない側のアプリケーション層データ受信は、スティックパッケージが発生します。

などなど。

スティック包装、開梱ソリューション

上記の分析を通じて、我々はこの問題を解決する方法を、次に、スティックのパッケージの原因を知っているか、または起こる開梱?重要な問題は、各データパケットのための境界情報を追加する方法で、一般的に使用される方法は、以下があります。

図1に示すように、各パケットの送信側は、ヘッダは、パケットの少なくとも長さが含まれている必要があり、パックヘッダを追加するので、受信端末ヘッダのパケット長フィールドを読み取ることによって、データを受信した後、それらは各データパケットの実際の長さを知っていることA。

図2に示すように、各固定長データパケットがカプセル化されているの送信端(0でないにより充填されてもよい)、固定長データのこの端部は、それぞれに受信バッファから読み出され、オープン自然分割各データパケットを受信します来ます。

図3は、この境界は、異なるデータパケットが開いて分割することができるので、受信側は、そのような特殊記号を追加するように、データパケットの境界に設けられていてもよいです。

などなど。

公開された21元の記事 ウォン称賛10 ビュー8100

おすすめ

転載: blog.csdn.net/weixin_44997483/article/details/102574934
おすすめ