• ベストアンサー

TCPのポート番号とマルチタスク

マルチタスクOSで複数のTCPセッションを同一のポートで開いた場合、 データの混同が起きないのはなぜでしょうか? たとえば、WINDOWSで、FirefoxとIEを使い、複数のYoutube動画をポート80で同時に受信できるのですが、なぜデータの混同が起きないのかがわかりません。 TCPヘッダ(もしくはUDPヘッダ)にセッション番号のようなものがあるわけではないので、NICに入ってきた段階では、そのTCPデータがどのタスクが必要としてるのかわからないと思うのですが・・。

質問者が選んだベストアンサー

  • ベストアンサー
noname#96023
noname#96023
回答No.1

通信を区別しているのは以下の4つです 送信先:IP、送信先:ポート番号、送信元:IP、送信元:ポート番号 です から、 IEは送信先:youtube、送信先:80、送信元:貴方のPC、送信元:xxxxx Firefoxは送信先:youtube、送信先:80、送信元:貴方のPC、送信元:yyyyy となり問題がありません

pokapoka1980
質問者

お礼

送信元のポート番号はランダムとは知りませんでした。 てっきり送信先と同じ番号を使うものかと・・。 返信、ありがとうございました。 感謝です。

関連するQ&A

  • TCPではなく、UDPが音声や動画配信に使用される理由

    TCPではなく、UDPが音声や動画配信に使用される理由を教えてください。 ヘッダがTCPよりも短く、データをより多く伝送できるから、というくらいしかわかりません。 よろしくお願いします。

  • ルーターを介したTCPとUDP通信の違いについて

    端末1---(LAN側)ルーター(WAN側)---端末2 というふうに接続されていた場合を想定します。 上図で端末1がTCPセッションを端末2と張ろうとした場合(httpなど)のルーターの動きについて確認させてください。 <ルーターの動き> (1)端末1からのTCPセッション開始のパケットを受信す るとMACアドレスとIPアドレスをルーターのものにす り替え、ポート番号も変えて端末2に渡す。この時の アドレスとポート番号の対応表を記憶しておく。 (2)端末2から応答が返ってきた場合(1)で記憶した対応表 を基にパケットのMAC,IP,ポートをすり替えて端末1 に渡す。 (3)TCPのセッションが終了したら(1)で記憶した対応表は 破棄する。 とりあえずこの解釈は正しいでしょうか? なお、UDP通信の場合は(1)の対応表を全く作らないということで良いでしょうか? ご教授よろしくお願いします。

  • TCP/IPにおける端末間の通信について(NAPT)

    TCP/IPにおける端末間の通信について(NAPT) お世話になります。 TCP/IPについて質問です。 NAPT機能の付いたルータを介し、インターネット越しに通信を行う場合を想定します。 1.端末A(送信側)から端末B(受信側)にTCPあるいはUDPを用いてデータを送信する場合、端末Bでは必ず待ち受けるポートにbind(listen)し、また端末Aでは指定されたポート宛てにデータを送信する必要があると聞きました。 ここまでは理解できますが、ここにNAPT機能の付いたルータが介入する場合、"例外なく"端末B側のルータでポートマッピングを行う必要があるのでしょうか? 2.上記の認識がもし正しい場合、2台の端末で通信を行う場合は少なくとも片方でポートマッピングが必要ということになります。 だとするならば、SkypeやMSNメッセンジャーなどのクライアント側でポートマッピングが必要のないアプリケーションは、必ずサーバを介した通信を行っているということでしょうか? Skypeなどの仕組みを説明しているサイトを見ると、接続の手順を踏んだのちに端末間で通信を行うとの記述があるのですが、いくら接続先のIPがわかっていても、アプリケーション間で接続を確立するには、片方でポートマッピングが必要になると思うのですが、これはどういうことなのでしょうか? 3.上記の認識が正しい場合、UDPで受信する為には必ずポートマッピングが必要ということになります。 だとするならば、クライアント側でポートマッピングが必要のないアプリケーションは、少なくとも受信にはUDPを用いていないということでしょうか? 以上の3点についてお答え頂けると幸いです。 回答お待ちしています。

  • winsockのポート指定について

    winsockを使ったUDPのプログラムを作成しています。開発環境はVC.NET/win2000です。 UDPサーバで受信側のプログラムとして、   ・sin_port に受信ポート番号を設定   ・socket   ・bind という流れでソケット生成をしています。 上記の流れを1プロセスで1度行って、1プロセスにつき1ポートに対応した メッセージを受信しているのですが、 1プロセスで複数ポートを対象に受信を行うことは可能なのでしょうか?   ・ポート番号を複数指定する   ・ソケットを複数生成する など・・・  方法がわかりません。 すみませんが回答をよろしくおねがいします。

  • TCP及びUDP通信について

    TCP及びUDP通信について 現在WinSockAPIを用いた通信を行うプログラムを組んでいます。 しかしながらネットワークに関しては初心者で、わからない点がいくつか出てきたので質問させて頂きます。 -------------------------------------------------- 1.TCPで双方向通信を行う場合、サーバ側は指定したポートにbind→listenし、接続を待ち受けます。 クライアント側はサーバのIPを指定し、接続確立後にポートはOSが自動で割り振ると聞きました。 つまり、クライアント側がポートを開放せずに通信が出来るのは、OSなどが自動でポートを割り当て、割り当てたポートに到着したデータを該当アプリケーションに渡すからでしょうか? ポート関連は全てルータが管理しているものだと思っていたのですが、OSがポートを割り当てるという動作がよく理解できません。 -------------------------------------------------- 2.UDPで双方向通信を行う場合、端末A・端末Bともに指定したポートにbindする必要があると聞きました。 つまり、UDPで双方向通信を行う場合、端末A・端末Bの双方でポートを開放する必要があるということでしょうか? -------------------------------------------------- 是非ともご教授ください。

  • サーバで、提供するサービスのポートが重複しても問題ない?

    kaituyoと申します。Win2000serverを用い、複数のサービスを提供しているのですが、新規に一つサービスを追加しようとしたら、既存のサービスと使用する通信ポートが重複してしまいました。これって、運用上問題あるのでしょうか? 初心者なので、基本的な質問となって申し訳ありません。ちなみに、重複しているポートは 137(udp) 138(udp) 139(tcp) です。ご教授お願いします。

  • CATVでのポート開放について

    ネットゲームをするのにポートの開放をしたいのですが、どうもうまくいかないのでお聞きしたいのです。 環境は ・WindowOS:s XP SP3 ・プロバイダ:CATV足立 ・ルータ:WHR-HP-G(有線) ・アンチウィルス・ファイアーウォール無し で、ルータの設定の『ポート変換』では プロトコル=TCP/UDP ポート=任意のTCPポート 任意のポート=開けたいポート番号 LAN側IPアドレス=手動設定 LAN側IPアドレス手動設定欄=使っているPCのIPアドレス(ipconfgで調べたところ192.~)でした LAN側のTCP/UDPポート変換の入力欄=開けたいポート番号 とやりました。 またXPに入っているFWはサービスセンタのサービスを切っているので動いてないはずです。 以上のことをして、使いたいソフトを起動中にネット上にあるポート開放の確認ができるサイトを複数試したのですが、どれもポートが開いていない、という結果でした。 ポートが開けないのは何か設定がまずいのでしょうか? それともCATVなので元々ポートの開放はできないのですか? どなたか教えてください

  • ポート開放が出来ません...

    環境 eo光 ルーター:eo-RT150(Z) OS:Windows11 マインクラフトのBE版のサーバーをPCで立ててマルチプレイをする為に、ポート開放をしたいのですが上手く出来ません。 プライベートネットワークでIP割り当ては手動で192.168.0.3にしてます。 ルータの「ポート転送設定 - IPv4」に プロトコル:UDP LAN側ホスト:192.168.0.3 WANポート:19132~19133 プロトコル:TCP LAN側ホスト:192.168.0.3 WANポート:19132~19133 を設定済み ファイアウォールの受信/送信の規則にもTCPとUDPでポート番号19132 を許可しています。 他に、コマンドプロンプトからtracert -d 8.8.8.8を実行し1行目と2行目の上6桁の数字が全く異なることから恐らく二重ルータではないと判断しています。 UPnPCj133のポート開放テストの結果が以下の通りです。 ------------------------------------------------------- ■ポート開放テスト■ ------------------------------------------------------- [既存cgiリストを利用します] ① ポート 28800 を(TCP)listenします →listen OK ②内部接続を試みます →内部接続 OK ③ UPnPでポート 28800 (TCP)を開きます →AddPortMapping 成功 ④ ポート 28800 を(TCP)listenします →listen OK ⑤外部接続を試みます [SP.Thanks]kuro様 → cgi server error 【確認!】UPnPCJが最新ですか? ------------------------------------------------------- ×テストに失敗しました

  • TCP/IP通信に関する質問です。

    下記の3つのLinuxPCを使って、TCP/IPによるソケット通信のシステムを作成しました。 PC1: IP:192.168.0.1 Port: 20000 TCPサーバ PC2: IP:192.168.0.2 Port: 20000 TCPサーバ PC3: IP:192.168.0.3 Port:ランダム(クライアントなので) TCPクライアント PC3をクライアントとして、同じポート番号を持つアプリが動いている PC1とPC2に繋いで通信をする形です。 このシステムは問題なく動きました。 しかし、続いてPC1とPC2を一つのPCに(ハードウェアとして)まとめたくなったときに、 下記の条件があったとき、どのようにすれば良いでしょうか? 1. PC3のソフトウェアは一行も変更しない 2.りPC1とPC2が同一のハードウェアになっても、それぞれのソケットに流れるデータは変わらない 一台のコンピュータにおいて、一つのNICに複数のIPをふることはできましたが、 同じポート番号のソケットを作成するのはできないと思っています。 今のところ、一台のコンピュータで仮想マシンを二台立ち上げる方法を考えていますが、 それ以外に上手い方法はあるでしょうか? 非常に困っているため、ご回答よろしくお願いします。

  • ubuntuのポート解放について

    ubuntuのポート解放について bindのrndc.keyのために、953番ポートを開きたいのですが、 #sudo ufw 953/tcp #sudo ufw 953/udp を打ち込んでも、解放されません。 #/etc/init.d/bind9 restart rndc: connect failed: aaa.bbb.cc.dd#953 :connection refusedのようにはじかれてしまいます。 #ufw statusを見る限り、 Status: active To Action From --- ------ ---- 953/tcp Allow Anywhere 953/udp Allow Anywhere と解放されているように見えるのですが、 #netstat -lnput4を見る限り Proto 受信-0 送信-0 内部アドレス 外部アドレス 状態 PID/Program name tcp 0 0 127.0.0.1:631 0.0.0.0:* Listen 1166/cupsd upp 0 0 0.0.0.0:5353 0.0.0.0:* 809/avahi-daemon: r upp 0 0 0.0.0.0:56098 0.0.0.0:* 809/avahi-daemon: r となっていて、Listen状態のものがひとつしかありません。 #ufw allowだけではubuntuのポート解放は足りないのでしょうか。 どうかよろしくお願いします。