TCP/IP通信の基礎となる知識を習得します。コンピュータの最小単位、ビットとバイトについて学習します。ネットワーク上に流れるデータの規則について学習します。IPアドレスについて学習します。IPアドレスについて学習します。ファイアウォールについて学習します。TCP通信はなぜ信頼性が高いのかについて学習します。【8限目】パケットが届く時、届かない時もしあなたがオンラインゲームを作成する場合は注意が必要です。1フレーム毎に1パケットを送ることはかなり難しいからです。理由は単純で、1パケットを処理するのに掛かる時間は1フレームより長いからです。パケットは20フレームから30フレームに一度だけ送信するべきです。それだと格闘ゲームが作れない?そんな時は......仕方がないので1フレーム毎にパケットを送ります。その代わり、1パケットに5フレーム分位情報を持たせて下さい。1パケットに現在の挙動の前後の情報も持たせておくのです。しておけば、パケットロスしても以前のパケットから相手の入力を読み取ることができます。それか3フレーム単位で動く格闘ゲームを作って下さい。handshakingTCPは信頼性があり、UDPは信頼性がないと以前お話したことを覚えていますか?なぜTCPは信頼性があるのでしょうか、その秘密はTCPの仕組みにあります。TCPは相手へパケットを転送する前に、SYNパケットを自動的に送信します。ACKパケットを返却します。ACKパケットを受け取った時、今度はACKパケットを送信して、初めてパケットを転送するのです。クリックでTCP通信のイメージつまり、相手との接続が確実にうまくいくか、事前に確認しているのです。ちなみにTCPは転送したパケットの順番もきちんと守ります。これらの処理はTCPが行うものであり、プログラマが意識する必要はありません。プログラマは、TCPを使う場合もUDPを使う場合もほとんど同じ書式のコードを記述します。よって、確実に届いて欲しい時にはTCPを、多少パケットをロスしてもいいから速く届いて欲しい時にはUDPを用いればよいのです。これにてネットワーク概論の講義は終了です。これで通信プログラムを書くための知識は一通り身に付きました。座学はこの辺にして、実際にプログラムを書きまくって下さい。通信系のプログラムは、初めて書いた時は9割方動かないので覚悟して下さい。portファイアウォールとは、PCへ流入してくるパケットが安全かどうかを確かめ、安全であれば受け入れ、そうでなければ破棄するシステムのことです。パケット:転送されてくるデータのことファイアウォールはPC毎に設定することもありますし、ルーターへその役割を担わせることもあります。個人で利用するPCであれば、PC毎に設定することが多いです。通信を行うソフトウェアを作成する際には、そのソフトウェアがファイアウォールにブロックされないよう設定を行う必要があります。サーバーを構築する際には、予めファイアウォールに穴を空けておき、自分達のパケットはその穴を通すようにする必要があります。IPアドレスで相手方のコンピュータを識別することが可能とお話しました。IPアドレスだけでは足りないのです。IPアドレスで確かに相手方のコンピュータは分かるのですが、相手のコンピュータで稼働しているどのアプリケーションへ届ければよいかまでは分かりません。それを判別する為に「ポート番号」を用います。ポート番号とは、アプリケーション毎に設定されたデータサーキットの出入口です。ポート番号1番をオンラインゲームが専有し、ポート番号2番をスカイプが専有するのです。パケットが届いた暁には、パケットのヘッダー(内部情報)を参照し、ポート番号が1番なのか2番なのか確認します。1番であればオンラインゲームへ届け、2番であればスカイプへ届けるのです。このように、IPアドレスでPCへ転送した後、ポート番号を使ってアプリケーションへ転送するのです。ここまでやって初めてデータが届けられるのです。ちなみにポート番号の何番をアプリケーションで専有するかは、予めプログラミングしておきます。送出するパケットにはその情報を持たせ、受け取るアプリケーションではポート番号X番を専有する処理を書いておきます。個人で制作するアプリケーションの場合、49152番~65535番を勝手に使用することができます。ファイアウォールにて空けておく穴も同じくポート番号です。ファイアウォールへ予め「ポート番号55555番は使用するからパケットを捨てないで下さい」と命令しておきます。ローカルIP実は前回学習したIPアドレスは更に2種類に分類されます。いっても、IPアドレスの数列から分類する訳ではありません。ところでIPアドレスはおよそ42億台のコンピュータへ割り振れるのでした。42億台という数値は、一見多く見えるかもしれませんが、実は人間全員に割り振ることはできないのです。ボクのようにPCを3、4台持っている人間もいます。これではIPアドレスがすぐに枯渇してしまうでしょう。そこで、パソコンにIPアドレスを割り振るのではなく、ルーター(Wikipedia)へ割り振ることが考えられました。外部ネットワークと実際の通信を行うのはルーターで、ルーターの内側に接続されたPCは、ルーターからデータを転送して貰うのです。これなら、ルーターからPCを識別できればよいので、世界中の他のコンピュータと重複しても構いません。必要なデータはルーターがそのまま転送してくれますから、ルーターがある時とない時でPCの挙動は変わりません。適当に割り振られるIPアドレスのことを、ローカルIPアドレスと言います。ちなみにCクラスの場合、最初の2Byteが192.168で始まります。これはローカルIPアドレスだったということです。RyuTweet1234»スポンサードリンク↑このページのトップヘ。