TCPセグメントとTCPパケットの違いは何ですか?


15

TCPセグメントはTCPパケットの一部ではありませんか?

私が読んだものは次のとおりです。

セグメントは、TCPによって転送可能なサイズに切り刻まれ、TCPヘッダーでラップされたアプリケーションデータです。

TCPヘッダー自体はセグメントで構成されていませんか?

回答:


21

我々は言うTCP segmentTCPヘッダ及び(上側)アプリケーション層から来るアプリケーションデータ片(パケット)から構成されたプロトコル・データ・ユニットです。トランスポート層データは一般的に名前が付けられsegment、ネットワーク層データ単位は名前が付けられますdatagramが、トランスポート層プロトコルとしてUDPを使用する場合UDP segment、代わりに、とは言いませんUDP datagram。これは、UDPデータユニットをセグメント化しないためだと思います(TCPを使用する場合、トランスポート層でセグメント化が行われます)。

データのカプセル化とTCP / IPプロトコルスタック


この説明はすべて、IETFが管理するTCP / IPモデルに適用されます。
ログオフ

7

元のTCP RFCは、「セグメント」という用語の使用方法に関して曖昧です。

場合によっては、「セグメント」という用語は、送信されているアプリケーションデータストリームの現在の部分のみを指し、TCPヘッダーは除外されます。たとえば、TCP "Maximum Segment Size"(MSS)は、このメッセージ内のアプリケーションデータチャンクの最大サイズであり、TCPヘッダーはカウントしません。

ただし、「セグメント」という用語には、TCPヘッダーを含むTCPメッセージ全体が含まれる場合もあります。実際、少なくとも1つのケースでは、仕様にはアプリケーションデータのないTCPセグメント(プレーンAcksなど)が記載されています。

単一のIPメッセージ全体が「データグラム」です。

元のIP RFCは、リンク層メッセージを「パケット」と呼びます。IPデータグラムは、小さなパケットネットワークのパケットサイズ制限に収まるように「フラグメント」に分割できます。

IEEE 802.3 /イーサネットリンク層は、単一​​の連続した物理層伝送を「パケット」と呼びます。パケットのMACデータリンク部分は「フレーム」と呼ばれます。フレームは宛先MACアドレスで始まり、フレームチェックシーケンスで終わります。IPデータグラム(またはそのフラグメント)を含む可能性のあるフレームの部分は、「MACクライアントデータフィールド」と呼ばれます。

したがって、技術的には、「TCPパケット」や「IPパケット」などはありません。パケットは、IPの下の層からの用語です。TCPには「セグメント」があり、IPには「データグラム」があります。


2

「セグメントヘッダー」とも呼ばれるTCPヘッダー、およびペイロード、またはデータ、または「セグメントデータ」は、さまざまなサイズのTCPセグメントを構成します。


2

TCPセグメントはデータグラムと呼ばれます。通常、セグメントまたはデータグラムはパケットです。データグラムまたはパケットがネットワーク層で処理されると、データにIPヘッダーが追加され、IPパケットになります。

トランスポート層は、データをセグメント、データグラム、またはいわゆるパケットと呼ばれる小さな単位にセグメント化します。ただし、通常はセグメントと呼びます。


2

tcpセグメントは概念にすぎず、IPデフラグとは異なります

ip mtuよりも大きいデータを送信すると、1つのipパケットに入れられますが、ipレイヤーはipパケットが長すぎて送信できないことがわかります。したがって、大きなパケットをいくつかに分割します。識別子ですが、オフセットとデータ長が異なります。受信側はすべてのピースを収集する責任があり、すべてのピースを受信した後、すべてのピースを1つのIPパケット全体に再構成し、上位プロトコル層にプッシュします。

ただし、tcpレイヤーの動作は異なります。十分な大きさのデータを送信すると、tcpレイヤーはデータを1つのtcpパケットに入れてから、それらを断片に分割しませんが(ipは行います)、生データの一部を1つのtcpパケットに取得してから、 tcpパケットからip層へ、tcpパケットの長さはmssによって決定され、後で残りのデータの別の部分を別のtcpパケットに取得し、すべてのデータが送信されるまでプロセスを繰り返します。

tcpがmssを使用しない場合、それは恐ろしいです。あなたがmssより大きいデータを送信すると仮定すると、それは1つのtcpパケットだけに入れられます(mssは使用されないためデータは小さな断片に分割されません)、tcpパケットはip mtuより大きいので、ipはtcpを分割します小片にパケット。いずれかのピースが失われた場合、tcpパケットは再送信され、時間と帯域幅を無駄にします

ps:tcp_mss = ip_mtu-tcp_header


1

ヘッダーはセグメントで構成されていません。ヘッダーは常に同じサイズであり、完全でなければなりません。そうしないと、パケットをデコードできませんでした。

「セグメント」と呼ぶものは、「ストリーム」全体であり、後に他のTCPストリームと結合されます。見る:

Transmission Control Protocolは、データストリームからデータを受け取り、それをチャンクに「セグメント化」し、TCPヘッダーを追加してTCPセグメントを作成します。


1

TCPは、アプリケーション層からデータを受信し、このデータを複数のデータセグメントに「チョップ」します。TCPヘッダーが追加された元のデータの断片。このヘッダーの一部はシーケンス番号であり、受信側のTCPプロトコルがすべての受信セグメント(ヘッダーを除く)を正しい順序に並べ、元のデータを再構築してアプリケーション層に転送するために使用されます。

だから、あなたの質問に答えるために; 「TCPパケット」という用語は実際には存在しません。これは、ヘッダーとデータセクションで構成される「セグメント」と呼ばれます。ヘッダー自体は、特にシーケンス番号、チェックサム、送信元ポート番号と宛先ポート番号を含むいくつかの「フィールド」で構成されています。


1

TCP接続を介してデータを送信すると、送信するデータの量が、単一パケットの接続で許可されている最大バイトサイズを超える場合があります。この量の「最大セグメントサイズ」(MSSとも呼ばれます)は、2つのTCPエンドポイント(クライアントとサーバー)間の接続時に「ネゴシエート」(1)されます。OSIレベル4プロ​​トコルTCPは、スキャッター/ギャザーを担当します。これは、データストリームが小さな部分(セグメントと呼ばれる)に分割され、ネットワーク経由で個別に送信されることを意味します。反対側では、TCP層は、パケットを正しい順序で再収集して、送信されたようにストリームを再生成する役割を果たします。セグメントが出発時と同じ順序で目的地に到着することを伝えることはできません。これが、パケットに番号が付けられる理由でもあります。もっと、パケットは受信者によって個別に確認されますが(2)、パケットが失われることがあります。次に、パケットの宛先からエミッタにACKが返されません。次に、エミッタはそれを再送信する必要があります(これはTCPの役割でもあります)。いつかパケットは正しく受信されますが、エミッターはackを受信しません(パケットの損失)。このような場合、エミッタはそれを再送信しますが、受信者は既にそれを受信して​​いることを確認し(Dupパケット)、それを削除しますが、送信者にackを再送信します。

また、スループットを向上させるために、エミッターは複数のパケットを連続して送信でき、次のパケットを送信するために以前のackを待つ必要はありません。TCPプロトコルの一部でもあり、スライディングウィンドウと呼ばれます。ACKに対して保留中の送信パケットの数は制限されています。

(1)実際には、交渉はまったくありません。各エンドポイントは、対処できる最大サイズを示します。この値には、20バイトのIPヘッダーも、20バイトのTCPヘッダーも含まれません。(2)単一のACKで複数のパケットを確認することもできます。

データグラムはカプセル化されたデータであり、IPネットワーク上で送信されるか、UDPなどのコネクションレスプロトコルを使用することに注意してください。パケットは、TCPなどの接続指向プロトコルのカプセル化されたデータです。セグメントは、TCPで送信されるデータストリームの一部です。W.Richard Stevensの「TCP / IPの図解」を参照して、これらすべての詳細を説明してください。


0

TCPセグメントはパケットです。セグメントは、2台のコンピューター間のTCP接続ストリームの一部にすぎません。データグラムは、UDP用語では「パケット」です。


0

IPパケットは、データが添付されたIPヘッダーで構成されます。データは、TCPヘッダーと、TCPセグメントと呼ばれるアプリケーションデータのセグメントです。TCPセグメントは、通常TCPパケットと呼ばれるものです。


0

このようなものの「一般的な」用語は、Protocol Data Unit(PDU)です。

LAYER # - OSI NAME     - COMMON PROTOCOL OR USE - PDU NAME
-------   ------------   ----------------------   --------------------------
Layer 1 - Physical     - Transceiver            - bits, or a physical signal
Layer 2 - Datalink     - Ethernet               - frame
Layer 3 - Network      - IP                     - packet
Layer 4 - Transport    - TCP                    - segment
Layer 5 - Session      - SIP                    - data, request, or response
Layer 6 - Presentation - Encryption/compression - data, request, or response
Layer 7 - Application  - HTTP                   - data, request, or response

レイヤー4以上の特定のプロトコルでは、物事がぼやけます(たとえば、今日まで、本当に純粋にセッションプロトコルであるものは何も知りません。また、一般的な「プレゼンテーション」プロトコルなどはありません。しかし、それは多くのソフトウェア/通信スタックの中で明確に分離されたレイヤーです)。

また、前述のように、これらのPDUのそれぞれには、ペイロードまたはデータとは異なるヘッダーがあります。ヘッダーには、データに関する情報と、場合によっては相手側の検証用のチェックサムが含まれます。


代わりに上位層で作業TPDUが使用されていませんか?books.google.de/books?id=daqV_KzkoSIC&pg=PA147を
ヤヌストロ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.