TCP

TCP-echo通信のモデル
Python socket module: Just a thin wrapper over the underlying C library's socket calls.
TCP通信のモデル
TCP-echo通信のモデルとプログラミングための背景知識







パケットとプロトコル
TCP/IPネットワーク
ネットワーク層(IP)
トランスポート層(TCP,UDP)
IPアドレスとポート番号
ソケットオブジェクト
クライアント&サーバの通信モデル
TCP-echo通信のモデル
ソケットによるデータ通信とTCP/IPネットワーク
IPヘッダ情報
IP
TCP
TCPヘッダ情報
データ
データ
TCP/IP
ネットワーク
•通信プログラムを作成する上では、通信相手のソケットに自分の
ソケットを繋ぐことができれば、安定した通信を行うことができる。
•安定した通信は、TCP/IPのプロトコルで自動的に対処される。
•ソケットを繋ぐことができれば、 マシン同士が、どの様な通信機器
や伝送経路を辿って、データを送受信しているかなどを気にする必
要は無くなる。
TCP-echo通信のモデル
パケットとプロトコル
パケット
プログラムにより組み立て
られ、解釈されるバイトの
列
プロトコル
情報を交換する手順やパ
ケットの内容について定め
た決まりごと。
TCP/IPはプロトコル
データ
データ
アプリケーション
プログラム(AP)
アプリケーション
プログラム(AP)
ソケット
TCP UDP
UDP TCP
IP
ホスト
ソケット
IP
TCP
通信
チャネル
IP
ルータ
通信
チャネル
IP
ホスト
TCP/IPネットワーク
TCP-echo通信のモデル
TCP/IPネットワーク
TCP/IPネットワーク
アプリケーションプログ
ラムが、ソケットAPIを
介してUDP、TCPサー
ビスを利用する通信
データ
データ
アプリケーション
プログラム(AP)
アプリケーション
プログラム(AP)
ソケット
TCP UDP
UDP TCP
データの流れ
AP→ソケット
→TCP→IP→(IP)→IP
→TCP→ソケット→AP
IP
ホスト
ソケット
IP
TCP
通信
チャネル
IP
ルータ
通信
チャネル
IP
ホスト
TCP/IPネットワーク
TCP-echo通信のモデル
ネットワーク層(IP)
データ
データ
ネットワーク層の機能
パケットを宛先に配送するた
めの問題(アドレッシング&
ルーティング)を解決する
アプリケーション
プログラム(AP)
アプリケーション
プログラム(AP)
ソケット
パケットは個別に処理され
(データグラムサービス) 、
ネットワークへ送信される
各パケットには宛先アドレス
がある
パケットの紛失や到着順番
の逆転が起こり得る
TCP UDP
UDP TCP
IP
ホスト
ソケット
IP
TCP
通信
チャネル
IP
ルータ
通信
チャネル
IP
ホスト
TCP/IPネットワーク
TCP-echo通信のモデル
トランスポート層
(TCP,UDP)
トランスポート層の役割
特定のアプリケーションプログラム
にパケットを届ける(ネットワーク上
のアドレッシング)
ポート番号により、アプリケーション
を識別
TCP
パケット紛失を検出しパケットを再
送
データ
アプリケーション
プログラム(AP)
アプリケーション
プログラム(AP)
ソケット
ホスト
ソケット
IP
TCP
TCP UDP
UDP TCP
IP
UDP
再送機能がない。
データ
通信
チャネル
IP
ルータ
通信
チャネル
IP
ホスト
TCP/IPネットワーク
TCP-echo通信のモデル
IPアドレスとポート番号
ポート番号
符号無しの16ビット2進数(1~
65,535)
IPアドレスで指定されたホスト内の
アプリケーションを指定する
Well Known Port
データ
データ
FTP
5000
FTP
20
TCP
IPアドレス
IPアドレスは、32ビット(IPv4)
ドット10進表記法(10.1.2.3)
IPアドレスは、コンピュータの通信
チャネルのアドレスを表す
10.1.2.3
TCP
10.1.2.5
IP
IP
IP
TCP
クライアント
サーバ
TCP-echo通信のモデル
ソケットオブジェクト
データ
ソケットオブジェクト
ソケットオブジェクトが、APの
メッセージ通信窓口をポート
にバインドする
AP
データ
データ
AP
AP
ソケット
論理的なネットワークアドレス
IPアドレスとポート番号の組
み合わせにより、ネットワーク
アドレスが論理的に拡張でき
る。
1
2
65535
1
2
65535
IP
TCP
TCP
UDP
IP
TCP-echo通信のモデル
クライアント&サーバ
の通信モデル
クライアント(依頼人)が通信を開始
し、サーバ(奉仕人)がそれに応答
する。
クライアント
クライアントは予めサーバのアドレ
スとポート番号を知っている。
サーバ
他方、サーバはクライアントの情報
を知らない。
DNS
IPアドレスは、DNSを使って調べる
Well Known Port
よく利用されるポート番号は、予め
割当てられている。
データ
データ
FTP
5000
FTP
20
TCP
10.1.2.3
TCP
10.1.2.5
IP
IP
IP
TCP
クライアント
サーバ