• ベストアンサー

ネットワークの学習方法

ネットワークの学習方法についてお聞かせください。 私のレベルは、IPAの基本情報技術者資格を持っている程度です。 解答いただける方に参考になるよう申し上げておきます。 では、質問の内容ですが、 FTPやHTTPといったデータ転送について学習するには、 何をキーワードに、何から始めたらよいのでしょうか? ネットワークについてインターネット上で情報を集めてみたところ、 たいてい書かれていることは、IPアドレス、プロトコルやルータといった根本や概念を説いた内容がほとんどです。 しかし、これらを理解したところで、 ネットワークがどのように動いているかは分かっても 実際にLANおよびWANを利用し、独自通信を行うアプリの具体的実現案になりません。 例えば、東京にある端末で、大阪にある端末のファイルをとってくるような通信を確立するにはどうすればよいのでしょうか? このようなことについて学習できる書籍やサイト、その他方法を探しています。 どなたかよろしくお願いします。

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

  • ベストアンサー
  • K_Senryu
  • ベストアンサー率100% (6/6)
回答No.2

ネットワークを学ぶには、やはりRFCを読み込むことが重要だと思います。 RFCを読んだ上で、クライアントやサーバを作ってみると理解が早いです。 FTPはRFP 959、HTTPはRFP 2616で、これらは(多分)日本語化されているの で学習もしやすいです。 もちろん、#1さんの回答のように、パケットを覗いてみるのも大切ですね。 情報処理技術者試験のネットワーク試験の対策資料を見てみると、もっと 体系的に学習できるかもしれません。 > 例えば、東京にある端末で、… 普通にFTPで良いと思います。セキュアな通信でということならば、 SFTPとかFTP over SSHとかで検索するといろいろ出てきます。 あと、質問内容にわからない点があります。 > しかし、これらを理解したところで、 > ネットワークがどのように動いているかは分かっても > 実際にLANおよびWANを利用し、独自通信を行うアプリの具体的実現案になりません。 これは、「独自のプロトコルを作成したい」ですか? それとも、「既存のプロトコルを利用したソフトウェアを作成したい」ですか? 後者であれば、冒頭に挙げた、「RFCを読め」となりますし、前者であれば、 なぜ既存プロトコルでは駄目なのか、再度考え直す必要があると思います。 それなりの歴史を持つ分野ですので、先人の知恵を生かすのも技術でしょう。

参考URL:
http://www.ietf.org/rfc.html, http://www5d.biglobe.ne.jp/~stssk/rfcjlist.html
OKbokuzyo
質問者

お礼

K_Senryuさん回答ありがとうございます。 非常に詳しく回答していただいたおかげで、 少し方向性が見えたように思います。 >これは、「独自のプロトコルを作成したい」ですか? >それとも、「既存のプロトコルを利用したソフトウェアを作成したい」ですか? 言葉足らずですみません。 おっしゃる通り、これは後者の意味あいで書いたつもりです。 RFC、記憶の片隅にあったかないかくらいの言葉ですが、 添付してくださった参考URLを開いてみたところ、 その量の多さにびっくりしました。 じっくり時間をかけて学習していこうと思います。 ありがとうございました

その他の回答 (3)

  • cdsdasds
  • ベストアンサー率52% (114/217)
回答No.4

まず確認したいのですが、「独自通信を行うアプリの具体的実現案」が必要な理由は何でしょうか。 >例えば、東京にある端末で、大阪にある端末のファイルをとってくるような通信を確立するにはどうすればよいのでしょうか? FTPやHTTPではだめなのですか。 何故こんなことをお聞きするかというと、現在のLANやWAN上のプログラムは大半が標準化された方式を使うことになっていて、まったく1から作るということは余り無いからです。 独自のプログラムが独自のポートを使うのでポートをあけなければいけないとかの場合、運用側からもwebだけでいいことにならないのとか言われます。いいことは余り無いはずです。 OSI参照モデルは習われたと思います。昔は必要なら全ての階層のプログラムを開発者が作ったのですが、現在は自分の関係する階層以外はほとんどの場合で標準のものを使うはずです。 あなたが知りたいのはどの階層でしょうか。 プロトコルならプロトコル名、パケットやフレームの構造ならTCP/IPとかEthernetとかを検索すれば概念だけでなく必要な全ての情報が出ています。 とりあえずわかりたいというのならCCNAとかの教科書をお読みになることをお勧めします。

OKbokuzyo
質問者

お礼

cdsdasdsさん回答ありがとうございます。 >>FTPやHTTPではだめなのですか いえ、既存プロトコルを用いたデータ転送について学びたいという意味でしたので、FTPやHTTPのことです。 別の方からもご指摘いただきましたが、 質問文の書き方が悪く、少々混乱させたみたいでもうしわけありません。 >>とりあえずわかりたいというのならCCNAとかの教科書をお読みになることをお勧めします そうですね、やはり書籍から体系的に勉強して、わからない部分をネット等で調べていこうと思います。 CCNA関連の書籍なら資格も取れれば一石二鳥ですしね。 ありがとうございました。

回答No.3

私の場合 資格はなにもないですが ネットワークのパケットをLinuxのアプリでRAWパケットを作って 実際に送信しTCPDUMPで確認しながら学習しました Linuxはソースが公開されていますので まずはここから学習するのがいいかもしれません 自分で作るのと 見るのでは かなり違います

OKbokuzyo
質問者

お礼

C_is_Bestさん回答ありがとうございます。 RAWパケット?TCPDUMP? なにやら聞き慣れない言葉が多数ですが、 Linuxをのせた端末から送信したパケットを 別端末で拾って解析を行うということでしょうか? 勉強不足でお恥ずかしいかぎりです。 Linuxも最近注目度がかなり高くなってきているみたいなので こちらも非常に勉強してみたいと思っています。 この機会にあわせてやってみるのがいいかもしれませんね。 ありがとうございました。

  • ryuta_mo
  • ベストアンサー率30% (109/354)
回答No.1

パケットモニタで実際にどのような通信が行われてるのか見てみるというのはどうでしょう。 http://homepage2.nifty.com/spw/software/vigil/

OKbokuzyo
質問者

お礼

ryuta_moさん回答ありがとうございます。 過去に昔のタイプのハブ(Macアドレスによるルーティングをしないタイプ)を用いて、 LAN上に流れるブロードキャストを拾う実験をやったことがあります。 それのWAN版(?)のようなものでしょうか? HTTP通信は平文でデータが送られるので危険とは聞きますね。 確かにこのソフトを使うとはやく理解できそうです。 検討しようと思います、ありがとうございました。

関連するQ&A