1つのIPパケットで複数のtcpまたはudpパケットを送信することは可能ですか?これを許可しないプロトコルの仕様はありますか。
プロトコルで許可されているが、一般的にtcp / udp実装では実行されない場合は、これを証明するLinuxソースコードの関連部分を教えてください。
単一のIPパケットで複数のパケットを送信する一部のOSでのtcp/udpの実装はありますか。(許可されている場合)。
1つのIPパケットで複数のtcpまたはudpパケットを送信することは可能ですか?これを許可しないプロトコルの仕様はありますか。
プロトコルで許可されているが、一般的にtcp / udp実装では実行されない場合は、これを証明するLinuxソースコードの関連部分を教えてください。
単一のIPパケットで複数のパケットを送信する一部のOSでのtcp/udpの実装はありますか。(許可されている場合)。
できません。
TCP seqment ヘッダーには、その長さが記述されていません。TCP ペイロードの長さは、IP パケットの長さから IP および TCP ヘッダーの長さを差し引いたものです。したがって、IP パケットごとに 1 つの TCP セグメントのみです。
ただし、逆に、IP フラグメンテーションによって、単一の TCP セグメントを複数の IP パケットにフラグメント化できます。
TCP はパケットを送信しません。これは継続的なストリームです。メッセージを送信します。
Udp はパケット ベースであるため、一度に 1 つのパケットしか送信しません。
プロトコル自体が許可していません。それは壊れません、それは起こりません。
トンネリングを使用するという提案は有効ですが、警告も有効です。
tcp over tcp をトンネリングしてみることをお勧めしますが、一般的には悪い考えと考えられています。必要に応じて、マイレージは異なる場合があります。
単一の TCP 接続で複数のデータ ストリームを許可するStream Control Transmission Protocolを参照してください。
編集 - TCP には独自のヘッダー フィールドがないことを知らなかったので、この情報を含むカスタム TCP に相当するものを作成せずにこれを行う方法はありません。ただし、SCTP はまだ使用できる可能性があるため、そのリンクは残しておきます。
複数の TCP パケットを 1 つの IP パケットにパックすることはできません。これは、前述の仕様上の制限です。TCP は、アプリケーション指向の最も近い API です。それとも生の IP メッセージの送信をプログラムしたいですか? どんな問題を解決したいか教えてください。あるアプリケーションから別のアプリケーションへのメッセージの配信をどのように編成するかを考えたり、TCP/IP スタックにフックしたいと述べたりします。私があなたに提案できること: