マンガでよめる痔のこと・薬のこと

well-knownポート番号は0-1023ということですが、「0」の番号はどういった用途で使用されているかご存知の方いらっしゃいますでしょうか?

このQ&Aに関連する最新のQ&A

A 回答 (1件)

ポートナンバー0番は現在使われていないようです。

将来、何らかの新たなシステムで使うことになるかもしれないので、「予約」されていると思われます。

参考URLは、IANA(ドメインやポート番号を一括管理している組織)が公開しているポートナンバーの一覧表です。昨年暮れ時点での情報なので、たぶん現状に即していると思います。

http://www.iana.org/assignments/port-numbers

参考URL:http://www.iana.org/assignments/port-numbers
    • good
    • 0
この回答へのお礼

情報ありがとうございます。
てっきり「リザーブ」というサービスが存在するのでは?と思ってました。
ハハ・・(照)

お礼日時:2005/01/09 20:06

このQ&Aに関連する人気のQ&A

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

このQ&Aを見た人はこんなQ&Aも見ています

このQ&Aを見た人が検索しているワード

このQ&Aと関連する良く見られている質問

Qpingでポートの指定

pingでIPアドレスを指定して、通信できるかどうかというのは
よく使いますが、pingでポートを指定して応答するかどうかは調べられるのでしょうか?

よろしくお願いします

Aベストアンサー

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含むICMP)ではできません。

FTPの疎通確認であれば、クライアントからサーバに対するTCP/21通信(FTP-CMD)が可能であること(サーバからクライアントへのTCP/21からの応答を含む)+サーバからクライアントに対するTCP/20通信(FTP-DATA)が可能であること(クライアントからサーバへのTCP/21からの応答を含む)が必要でしょう。

監視ソフトによるものであれば、
・クライアントからサーバへのログイン(TCP/21)
・クライアントからサーバへのlsの結果(TCP/20)
で確認すればよいでしょう。

pingを含むICMPというプロトコルは、OSIの7レイヤで言うところのL2(同一セグメント内通信)とL3(IPルーティングされた通信)の両方にまたがる、ちょっと珍しいプロトコルです。

IPアドレスは指定できますが、別サブネットに属するIPアドレスに到達できればL3通信、できなければゲートウェイと呼ばれる同一サブネットに属する中継装置からの回答を得るという点でL2(MAC通信ではなく、同一セグメント内通信という意味)通信です。

ポート番号はL4で使用されるアドレスですから、L4機能の疎通確認はping(を含む...続きを読む

Qポートの80と443

こちらのサービス(https://secure.logmein.com/)を利用すると、インターネットを見られるサーバーのポートの80と443が空いていればルータやファイアウォールに特段の設定なく外部からサーバーを操作できるそうですが、逆にサーバーのポートの80や443を空けることには何か危険性があるのでしょうか。

Aベストアンサー

ポート80は一般的なHTTP、ポート443はHTTPSです。
この2つのポートがあいていなければインターネット接続(WEBブラウジング)は出来ません。
ですから、ほとんどのファイアウォールでこのポートは開いています。(インターネット接続を制限している社内LANでは当然閉じていますが)

ちなみに、よく使うポートとしてはFTPで20、21、SMTP(送信メール)で25、受信メールPOP3で110あたりです。セキュリティポリシー上、この辺は制限される事も多いですが、HTTP 80、HTTPS(暗号化用)443は通常閉じません。


危険性?
WEBプロトコルを使ってFTP的なファイル転送(WebDAV)やVPN等も出来るようになっています。当然そこにはある種の危険はつきものですが、WEBブラウジングに伴う危険と大きく変わりません。ウィルス等に感染していればこの2つのポートだけでも相当危険でしょうね。

参考まで。

Q「0.0.0.0」や「127.0.0.1」の意味?

IEのブラウザを起動している最中にnetstat -naで、どのポート開いているのかを調べてみると 

TCP 192.168.0.3:2597  ×.×.×.×:80 ESTABLISHED
 
という様な表示の他に

TCP 0.0.0.0:2597    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2598    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2600    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2602    0.0.0.0:0   LISTENING
TCP 127.0.0.1:2470    0.0.0.0:0   LISTENING
UDP 127.0.0.1:2470 *:*
 

というような表示が常に出てきます。

IEを起動していないときに同じように調べると、ポートは何一つ開いていません。

自分のPCにはウィルスソフトをいれてません。

なので、やはり何かしらのウィルスに感染していると考えたほうが良いのでしょうか?

それとも、「0.0.0.0」や「127.0.0.1」といった表示はIEを起動させれば常に出てくるものなんでしょうか?

「0.0.0.0」と「127.0.0.1」はどういう意味なんでしょうか?

IEのブラウザを起動している最中にnetstat -naで、どのポート開いているのかを調べてみると 

TCP 192.168.0.3:2597  ×.×.×.×:80 ESTABLISHED
 
という様な表示の他に

TCP 0.0.0.0:2597    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2598    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2600    0.0.0.0:0   LISTENING
TCP 0.0.0.0:2602    0.0.0.0:0   LISTENING
TCP 127.0.0.1:2470    0.0.0.0:0   LISTENING
UDP 127.0.0.1:2470 *:*
 

というよ...続きを読む

Aベストアンサー

127.0.0.1は前の方が書いているとおりループバックアドレスといってマシン自体を表すアドレスです。

次に0.0.0.0ですが、LISTENING状態のものにしか出ていないと思いますがLocal AddressとForeign Addressで少し意味が違います。
Local Addressの0.0.0.0はマシンが持っているすべてのIPアドレスを表しています。つまりマシンが複数のIPを持っていた場合、マシンの持つすべてのIPアドレスにおいて接続を受け付けているということになります。
それとは違いLocal Addressが指定されている場合は、接続先アドレスがそのアドレスの接続しか受け付けないようになっています。

Foreign Addressが0.0.0.0の場合、これはどんなIPアドレスからでも接続を受け付けているという意味になります。

>IEを起動していないときに同じように調べると、ポートは何一つ開いていません。
これはたぶん見間違いです。普通にWindowsが起動しているなら必ず何かしらのポートが開いているはずです。

>それとも、「0.0.0.0」や「127.0.0.1」といった表示はIEを起動させれば常に出てくるものなんでしょうか?
IEが起動していなくてもWindowsが普通に起動していれば必ず出てきます。

>なので、やはり何かしらのウィルスに感染していると考えたほうが良いのでしょうか?
場合によってはウィルスに感染し、他のPCに接続しようとしている場合もあります。
多少高いと思うかもしれませんが、アンチウィルスソフトは入れた方がいいと思います。ウィルスによってはPCを起動不能にする場合もあります。大事なデータなどがある場合は、なおさら入れた方がよいでしょう。

127.0.0.1は前の方が書いているとおりループバックアドレスといってマシン自体を表すアドレスです。

次に0.0.0.0ですが、LISTENING状態のものにしか出ていないと思いますがLocal AddressとForeign Addressで少し意味が違います。
Local Addressの0.0.0.0はマシンが持っているすべてのIPアドレスを表しています。つまりマシンが複数のIPを持っていた場合、マシンの持つすべてのIPアドレスにおいて接続を受け付けているということになります。
それとは違いLocal Addressが指定されている場合は、接続先アドレ...続きを読む

Qポート8080を使ったWebの閲覧を、会社がブロックする理由

Web サーバをたてており、ポート 8080 を使っています。一般に公開していますが、
特定の会社の方から、見えない、というご指摘を受けました。会社のネットでは、このサーバの8080ポートを見ることができないらしいのです。
このように、クライアント側で 8080 を制限する理由というのは何なのでしょうか? 
よろしくお願いいたします。

Aベストアンサー

「8080 を制限する理由」というよりも「80, 25, 110だけ許可。あとは不許可」の結果なのでしょう。つまりWEBとメールだけで、あとは禁止。Allow/Denyな設定はセキュリティ機器の常道なので、やむを得ないでしょう。

Q起動しているサービスを確認するコマンド

初歩的な質問で恐縮ですが、ご教示いただけますと幸いです。

起動しているサービスを確認するために以下の2つのコマンドを打ってみるのですが、結果(出て来るサービス名)が違います。
このコマンドの違いについてご教示いただけますでしょうか。

(1)service --status-all
(2)chkconfig --list

Aベストアンサー

(1)service --status-all

サービスの現在のステータスを調べるコマンド

(2)chkconfig --list

OSのブート時に自動起動するサービスを調べるコマンド

違いが出るのは、
・ブート後に手動あるいは他のコマンドから起動したサービス
・ブート後に手動あるいは他のコマンドから、あるいはエラーで停止したサービス
・ブート後に実行はされるがすぐに停止して常駐しないサービス (ntpdate とか)

あるいは、(1)ではサービス名が表示されない物もあるので、どのサービスがどんなステータス出力をするのか知っておく必要もありますね。(service network statusとか)

QUDP通信におけるbind関数について

初めて質問させていただきます。よろしくお願いします。

最近、ネットワークプログラミングの勉強をしているのですが、bindについてよくわからなくなってきました・・・。よろしければご教授願います。

質問内容は以下の通りです。
(1)bindにおける設定内容は、「相手側のIPとポート番号」なのか「自分側のIPとポート番号」なのか?
 色々なところを調べてみましたが、「IPとポート番号」を設定する、としかかかれてなく、いったいどっちなのかがわからなくなってきました・・・。

(2)UDP通信において、bindは必要なのか?
 サーバ-クライアントの関係が曖昧なUDP通信において、bindというのは必要なのでしょうか。
私の認識では例えば、「recv関数」などを使い受信待ちをする場合はbindが必要だが、送信だけの場合には不要であるとなっています。

この認識はあっているのでしょうか。
拙文ですが、どうか教えていただきたく <(_ _*)>

Aベストアンサー

TCP/UDP通信がどのように働くかを考えれば、疑問の答えが分かるのでは?
bindについて言えば
「OSはマシンに届いたパケットを如何にして該当プログラムに届けるか?」
です。
自分のポート番号をOSに教えてあげなければ、OSは着信したパケットをどのプログラム(プロセス)に届けるか分からないでしょう。それをするのがbindの役割です。
従って(1)は自ポート番号。IPは複数IPを持っているマシンで一部IPでのみ受け付ける場合に必要ですね。
一般的にサーバでbindするタイミングでは相手のIPやポート番号は不明ですから、要求されても困りますね。
(2)は質問者さんの認識通り。受信のために必要、送信では不要です。

QNTP の TCPポートは?

NTPは123/UDPでようは足りると思うのですが、
WELL KNOWN PORTとかいろいろな資料に「123/TCP」ポートが割当たってます。
ntpd,ntpdate等でNTPを使う場合、実際には123/TCPは使われているのでしょうか?

Aベストアンサー

RFC1305では「ntpには123/udpを割り当てる」となっていますが、RFC1700では「123 ntp」となっており、「123/udp」と明示されているわけではありません。
よって、「123/tcp ntp」が間違っている(または使えない)という明確な根拠にはなりません。

「現状では『123/tcp ntp』を実装するための定義が存在しない」程度に考えた方が良いと思います。

ただ、将来的にRFC2030のSNTPが(IPv6対応などの点で)主流になる可能性があるので、「123/tcp ntp」は定義されない可能性もあります。

Qファイルやディレクトリの存在確認を行う方法

ファイルをオープンするのはfopenでOKですが、ファイルやディレクトリの存在確認を行う方法が知りたいです。

何か組み合わせて作るものなのでしょうか?
perlとか便利な演算子があるのですが、C/C++って器用ではないですね。
これは処理系?依存の内容ですか?

私の環境は VC6, VC2005 Windows2000です。

Aベストアンサー

int access(const char* path, int mode);
int stat(const char* path, struct stat* sb);

かな?
MSDN を引くと _access_s() を使えとか書いてあるけど。

Qsocket: recvはいつ,どれだけ受け取るのか?

 現在,参考書にしたがってC++でソケットプログラミングを書いています.

 sendとrecvを非同期にするために,本では select関数やWSAAsyncSelect関数などを利用していて,実際,本のとおりに書いて上手く動いています.

 ここで伺いたいのですが,recvは,どうやって「データが届いたか」を知るのでしょうか.

 同期ならば,トランシーバでの会話のように送信側が「どうぞ」といって送受信を交代させることができますが,非同期ならばそれができません.

 NICとかが,プログラムに「届いたぞ!( or これから届くぞ!)」と教えてくれるのでしょうか.あるいは逆に,プログラムがNICに「届いてる?」と聞いているのでしょうか.仮に,ここに書いたような方法で届いたことが分かったとしても,どれくらい受け取ればいいかは分かりません(それも併せて教えてもらっているのでしょうか.データを送るときには,どれだけ送ればいいか分かりますよね.受信するときはどうしてるのかを知りたいと思っています).

Aベストアンサー

Linux しか知らないので Linux で説明をします。

NIC が通信パケットを受け取ると割り込みが発生し、CPU は割り込みを受け付けて、対応するデバイスドライバを起動します。この時、ドライバはソケットバッファと呼ばれる構造体にパケットの中身をコピーして、Linux カーネルの本体に渡し、そこで TCP 等の上位プロトコル処理が行われます。

一方、ユーザプログラムの方は、 select() なり read() で待っている訳ですが、OS はもちろんプロセスが何を待っているかを知っているので、対応する待ちの条件が満たされると、この場合は select() や read() が、抜けてくる(return する)訳です。

という事で、ユーザのプログラムは select() なり read() なりで受信データを「待つ」ことが必要です。もちろん select() や read() が呼ばれた時点で既に受信しているのならば、それらは直ぐに帰ってきます。read() や recv() はデータが届いた事を知る、というよりは、届いているかチェックして、まだ届いていなければ届くまで待つ(read() が抜けてこない)という処理になります。また NIC とユーザプログラムが直接やり取りをするのではなく、間にバッファがあって、対応するソケットのデータがある(受信済み)/ないか(未受信)、という問い合わせを行っているだけです。

ソケットの場合、データの送受信は非同期であり、送受信のタイミングのずれは(ソケット)バッファである程度吸収されます。もちろん、送受信バッファが満杯になった場合は流量制御が働いて、結果的に送信側の write() や send() が待ちに入ることになります。

Linux (Unix) のソケットの受信では、read() 等で指定されたバッファが常に満杯で返されるとは限らない設計になっています。つまり、その時に受信しているデータを返すだけなので、read() で返されたバイト数を必ず見ないと間違った動きになるので注意してください。

Linux しか知らないので Linux で説明をします。

NIC が通信パケットを受け取ると割り込みが発生し、CPU は割り込みを受け付けて、対応するデバイスドライバを起動します。この時、ドライバはソケットバッファと呼ばれる構造体にパケットの中身をコピーして、Linux カーネルの本体に渡し、そこで TCP 等の上位プロトコル処理が行われます。

一方、ユーザプログラムの方は、 select() なり read() で待っている訳ですが、OS はもちろんプロセスが何を待っているかを知っているので、対応する待ちの条件が満...続きを読む

QUDP通信する時に、相手にどうやって自分のポート番号を教える?

UDP通信する時に、相手(送信側)にどうやって自分(受信側)のポート番号を教えるのでしょうか?

例えば、下記のページのサンプルだと、受信側は5555で待ち受けていますが、この場合は送信側はあらかじめ受信側が5555で待ち受けていると知っています。送信側が知らない場合に、どうやって受信側のポート番号を知らせればよいのでしょうか?

http://www.hellohiro.com/datagram.htm

Aベストアンサー

#1です。

> 受信側は
> DatagramSocket
> を引数なしでインスタンス化して、receiveメソッドを動かせば、そこに返ってくる、ということなのでしょうか?

「返ってくる」というのはレスポンスのことでしょうか。その前提で話をします。

最初の回答のA→B(リクエスト)とB→A(レスポンス)のうち,Aがこの質問のとおりに動作するには,Bが以下のような動作を行う必要があります。逆にBが以下のような動作をするならAの動作はご質問のとおりです。

1)Aは引数なし,Bは固定のポートを指定してインスタンス化。
2)Aは送信するリクエストパケット(DatagramPacket)を作り,これにBのIPアドレスとポートをセットして送信。
3)BのIPアドレス・ポートにAからのパケット到着。Bはこれをreceiveメソッドで受け取る。
4)BはAからのパケットに含まれるAのIPアドレスとポート番号を取得する(DatagramPacketのgetSocketAddressメソッドで多分取得可)。
5)Bはレスポンスを作成し,取得したAのIPアドレスとポートをレスポンスパケット(DatagramPacket)にセットしてこれを送信。
6)AのIPアドレス・ポートにBからのパケット到着。Aはこれをreceiveメソッドで受け取る。

UDPでは,リクエストを送って相手がそれを受け取れば,UDP通信はそれでおわりです。リクエストに対してレスポンスを返す場合,送信側と受信側が入れ替わって新規のUDP通信を始めることになります。

#1です。

> 受信側は
> DatagramSocket
> を引数なしでインスタンス化して、receiveメソッドを動かせば、そこに返ってくる、ということなのでしょうか?

「返ってくる」というのはレスポンスのことでしょうか。その前提で話をします。

最初の回答のA→B(リクエスト)とB→A(レスポンス)のうち,Aがこの質問のとおりに動作するには,Bが以下のような動作を行う必要があります。逆にBが以下のような動作をするならAの動作はご質問のとおりです。

1)Aは引数なし,Bは固定のポートを指定し...続きを読む


人気Q&Aランキング