] > UDP, TCP

第 7 回 UDP, TCP

本日の内容


このドキュメントは http://edu.net.c.dendai.ac.jp/ 上で公開されています。

7-1. IP のまとめ

IP はもともと ARPANET でホスト間通信を行うプロトコル TCP を開発して いる途中で、ネットワーク間パケット交換処理とホスト間処理を分離、階層化し た過程でできました。 ネットワーク間パケット交換処理が IP で、ホスト間の処理が TCP になります。

IP は IP アドレスと言うアドレスを用いて通信をします。 そして、パケットには宛先の IP アドレスが付加されます。 そのパケットはルータによって中継されて目的のホストに到着します。 中継する際の経路の選択は途中の各ルータに独立に決定させています。 これをホップバイホップルーティングと言います。 IP は決められた長さのパケットを目的地まで送りますが、到着性を保証して いるわけではありません。 ルータは途中で輻輳が起きるとパケットを廃棄します。 大きなファイルを正確に端末間で送るのは、この IP を利用した TCP で行い ます。

IP ではルータに経路制御が任されています。 これには様々な方法がありました。

スタティックルーティング
人間が手で設定を行う。複雑で細かい設定が可能。 但し、故障時にルーティングを自動的に変更できない。
ダイナミックルーティング
ルータがプログラムによって経路を制御するもの。 障害時に経路を自動的に変更するなど耐故障性がある。
EGP
AS 間ルーティング。責任者のいない分散管理。ネットワークアドレスと AS 番号で管理する。 プロバイダ間などで使用される。 BGP ver.4
IGP
AS 内ルーティング。管理責任者が管理を行う。通常一つのネットワーク アドレスに対してサブネットマスクを定義し、サブネットの管理を行う。 RIP, OSPF

7-2. UDP

UDP(RFC 768 1980 年)は IP パケットは通常別のプロトコルを乗せて利用します。 UDP というプロトコルを使うと IP パケットにそのまま情報を載せてデータを やりとりできます。 但し、ポート番号により多重化されてます。

IP と同じ機能をもっていますから、ブロードキャスト、マルチキャストなど も使用できます。 TCP のようにハンドシェイクを行う必要もなく、最小限の手間で利用できます。 基本的には一方向通信なので、たとえるなら葉書のようなものになります。

UDP は RIP や DNS などのネットワーク管理や、映像、音声を流す RTP など リアルタイム通信に使われています。

7-3. TCP

TCP(RFC 793 1981 年)はインターネットでファイルを誤りなく送り合うために 作られました。

TCP も UDP 同様、ポート番号により多重化されています。 ポート番号は 0 から 65535 までありますが、特に 0 から 1023 まではシス テム領域で一般ユーザは自分のマシンのこのポート番号を管理下に置くことは できません。 このエリアには TCP, UDP とも重要なサーバが登録されています。

TCP 80
HTTP(Hyper Text Transfer Protocol)つまり WWW
TCP 25
SMTP(Simple Mail Transfer Protocl) つまり電子メールサーバ
TCP 110
POP3(Post Office Protocol Version 3) つまりパソコン用電子メールダ ウンロードサーバ
UDP 53
DNS(Domain Name Server) つまりネームサーバ(ホストやドメインの名前 を IP アドレスと対応づける
UDP 520
RIP(Routing Information Protocol)

TCP の特徴として、まず end to end 型、つまり、端末と端末間で行われるプ ロトコルであると言う点があります。 そして、コネクション型サービス、すなわち通信は end to end で行われます が、そこがあたかも管でつながっているよう、通信内容が順序よく並んで取り 出せるようになっています。これはたとえるなら電話のようなものです。 また、 TCP は再送や輻輳制御などを行うことで通信内容に関して高い信頼性 を保証します。 また、通信は両端で相互に同時にメッセージが行われる全二重という形態をと ります。 なお、 TCP は端末間のみのユニキャストだけに対応しているため、ブロード キャストやマルチキャストには使えません。 また、コネクションを確立するのに 1 往復半の通信(三方向ハンドシェ イクが必要で、さらにコネク ションごとにポートを生成する必要があるため、コストがかかります。

TCP は再送処理や輻輳制御をしてファイルを確実に届けるものです。 このプロトコルを利用してさまざまなインターネットのアプリケーションが作 られています。 電子メールや WWW もこの TCP を利用しています。

7-4. TCP のプロトコルの内容

01234567 89101112131415 1617181920212223 2425262728293031
送信元ポート番号 宛先ポート番号
セグメント番号
確認通知番号
ヘッダ長 未使用 URG ACK PSH RST SYN FIN ウィンドウ幅
チェックサム 緊急ポインタ
オプション(0 個以上)
データ
...
URG
緊急ポインタ有効
ACK
確認通知番号有効
PSH
バッファリングせずに送信
RST
リセット
SYN
コネクション確立
FIN
コネクション終了

三方向ハンドシェイク

ホスト X通信内容ホスト Y
セグメント番号セグメント番号
2 x(SYN SEG=x)→
3 ←(SYN SEG=y ACK=x+1)y
4 x+1(SYN SEG=x+1 ACK=y+1)→
  1. 始めに各ホストはセグメント番号が自由に決められているとします。ホス ト X は x, ホスト Y は y という値になっているとします。
  2. X は Y に接続を申し込むため、 SYN を送ります。その時、セグメント番 号 x を送ります。
  3. Y は SYN を受けとったら、同様に X に SYN を送ります。 その時、セグメント番号 y を送ります。 さらに X の SYN を受けとったことを示すため、x のセグメントを受けとった ことを示す ACK=x+1 を送ります。
  4. X は Y から SYN を受けとったら、Y に ACK=y+1 を含めた SYN を送りま す。その時、セグメント番号は x+1 を送ります。
  5. これで双方がセグメント番号を交換し終えたので、次のセグメント番号か ら実際のデータの送受を行うことができます。

7-5. ソケット

1
2
3
4


坂本直志 <sakamoto@c.dendai.ac.jp>
東京電機大学工学部情報通信工学科