質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Cisco

シスコ(Cisco Systems,Inc.)は、アメリカ合衆国に本社を置く、世界最大のコンピュータネットワーク機器開発会社及び同社の製品

意見交換

クローズ

4回答

339閲覧

UDP hole panching が TCP で利用できない理由

akiyama3284pga

総合スコア186

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Cisco

シスコ(Cisco Systems,Inc.)は、アメリカ合衆国に本社を置く、世界最大のコンピュータネットワーク機器開発会社及び同社の製品

0グッド

1クリップ

投稿2023/12/17 10:24

0

1

NAT周りのことについて考えてまして、
なぜUDP hole panchingがTCPでは成り立たないのかという疑問が出ました。
以下のように解釈しているのですが問題ないでしょうか?

ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
TCPでは、最初のハンドシェイクの送信が通らない(拒否)時点で、
NATがマップテーブルから該当のエントリ(localポート + localIP に対応する外部ポート)を削除する。
そのため、シグナルから相手に送られた情報を基に送信した時点で、該当の一致するエントリがないため、NATにより拒否される。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

もし上が正しければ、最初のエントリ作成のための送信以外(以降)の送信はTCPでもNATを通過できるため、
TCP通信ができるように思います。
これは正しいでしょうか?

以上大きくは2点、ご意見等頂けましたら幸いです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答4

#1

matukeso

総合スコア1590

投稿2023/12/18 03:34

それがTCP Simultaneous Openです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

akiyama3284pga

総合スコア186

投稿2023/12/18 04:06

編集2023/12/18 04:08

#1
ありがとうございます。
確認のため、整理したく存じます。

UDPでエントリ作成までを行い、開通した段階で相手からTCPを開始するというような、
UDPとTCPを上手く組み合わせて、TCPでNATを越えて(こじ開けるのはUDP)p2p通信を実現する手法

というような理解でよろしいでしょうか?

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

matukeso

総合スコア1590

投稿2023/12/18 04:59

違います。
NATテーブルはProtocolで分離しているのが普通で、UDPで開けてTCPでそのポートを使うとかはできません。(関係ないので、TCP側は開かない。)
両端からのTCP-SYNでNAT開けと、回線接続をやるのがTCP Simultaneous Openです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

akiyama3284pga

総合スコア186

投稿2023/12/18 05:37

編集2023/12/18 05:43

#3
ありがとうございます。
大変参考になります。
プロトコルでテーブルを分けているということで、色々な思い込みが解消できました。

UDP hole panchingとは別に、またTCP Simultaneous Openというものを学んで行きたいと存じます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問