岡村耕二 http://okaweb.ec.kyushu-u.ac.jp/lectures/in/ トランスポート層 岡村耕二 http://okaweb.ec.kyushu-u.ac.jp/lectures/in/ 情報ネットワーク.

Slides:



Advertisements
Similar presentations
TCP/IP によるチャットプログラ ム 薄井 秀晃. 基礎知識編 TCP/IP とは? IP とは・・・ Internet Protocol の略称であり通信方法の技術的なルールで あり、実際にデータを送受信する前にデータを小さなデータ に分割し、それに発信元と受信先の IP アドレスを付加させて.
Advertisements

1 情報ネットワーク 課題レポート 模範解答 身の回りで、階層化されている物事を 1 つあげて、その階層構造を説明 せよ 課題のポイント – 機能が階層ごとに分割されているか – 同じ層でのやりとり(プロトコル)があるか – 上位層と下位層での情報のやりとり(インタフェース)があるか –
イーサネットと ATM Ethernet and ATM Which is better, Shared Media or Point to Point? 岡村耕二.
山梨大学 伊 藤 洋 99/06/30 インターネット入門 総合科目V 山梨大学 伊 藤  洋
インターネットと プロトコル(TCP/IP)
インターネットのプロトコル階層 ネットワーク層(IPアドレス)
第1回.
システムコール 低水準入力 ファイルディスクリプタ ソケット
ネットワーク層.
情報ネットワーク (基礎編) 岡村耕二 お知らせがあることがあるので、講義の前日 あるいは当日の午前中に確認してください。 情報ネットワーク.
TCP (Transmission Control Protocol)
「コンピュータと情報システム」 07章 インターネットとセキュリティ
Windows Network Programming
TCPソケットプログラミング ソケットプログラミング TCP-echoのデータ通信手順
Ibaraki Univ. Dept of Electrical & Electronic Eng.
心理学情報処理法Ⅰ コンピュータネットワーク概論.
トランスポート層.
Telnet, rlogin などの仮想端末 ftp などのファイル転送 rpc, nfs
コンテンツ配信 エンコード (符号化) CBR (Constant Bit Rate) VBR (Variable Bit Rate)
ネットワーク機器接続 2SK 情報機器工学.
パケットの流れ ブラウザ OS TCP IP LANアダプタ ハブ ルータ HTTPメッセージ TCP HTTP断片 TCP HTTP断片
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
岡村耕二 情報ネットワーク (基礎編) 岡村耕二 情報ネットワーク.
「コンピュータと情報システム」 06章 通信ネットワーク
第2章 第1節 情報通信の仕組み 1 ネットワークの仕組み 2 通信プロトコル 3 認証と情報の保護
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
インターネット概論第3回 kudo担当分.
物理層と伝送媒体 2012年度以降の教科書(第5版)と 2011年度までの教科書(第4版)の対応 物理層、伝送媒体と公衆通信サービス
第11章 UDPユーザ・データグラム・プロトコル
TCP/UDP プロセス間の通信のためのプロトコル TCP:信頼性高、処理時間大 UDP:信頼性低、処理時間小 ftp SMTP HTTP
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
UDPエコーサーバ UDP-echoサーバのプログラムモデル(Cプログラム) サーバで利用するソケット関数(Cプログラム)
インターネットの基礎知識 その3 ~TCP・UDP層編~
第9章 Error and Control Messages (ICMP)
分散システム特論 岡村耕二.
ソケットプログラム(TCP,UDP) EasyChat開発
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
岡村耕二 トランスポート層 ソケットプログラミング 岡村耕二 情報ネットワーク.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
ネットワーク技術II 第9.1課 TCP/IPプロトコルスイート
ソケットプログラム(TCP,UDP) EasyChat開発2
ネットワークの基礎知識 電子制御設計製図Ⅰ   2014年5月2日 Ⅲ限目.
インターネットにおける真に プライベートなネットワークの構築
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
TCP/IP入門          櫻井美帆          蟻川朋未          服部力三.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
Ibaraki Univ. Dept of Electrical & Electronic Eng.
Webプロキシ HTTP1.0 ヒント CS-B3 ネットワークプログラミング  &情報科学科実験I.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
岡村耕二 トランスポート層 岡村耕二 情報ネットワーク.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
最低限インターネット ネットワークにつなぎましょ!
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
岡村耕二 TCP通信プログラム 課題と回答例 岡村耕二 情報ネットワーク.
LAN(TCP/IP) インターネットワーキング編
情報実験 第五回 最低限 internet ~ネットワークの仕組みを知ろう~
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
OSI7層に関係する機器、仕様、機能など 物理層 データリンク層 ネットワーク層 トランスポート層 セッション層 プレゼンテーション層
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
岡村耕二 TCP通信プログラム 岡村耕二 情報ネットワーク.
ネットワーク・プログラミング TCPサーバ.
7月13日の演習問題・解答例 について ネットワーク長が 18、22、26、28 の場合の
岡村耕二 UDP通信プログラム 課題と回答例 岡村耕二 情報ネットワーク.
情報ネットワーク 岡村耕二.
ポートスキャン実習 2002年9月19日 修士1年 兼子 譲 牧之内研究室「インターネット実習」Webページ
プロトコル番号 長野 英彦.
岡村耕二 情報ネットワーク 岡村耕二 情報ネットワーク.
岡村耕二 TCP通信プログラム 岡村耕二 情報ネットワーク.
Presentation transcript:

岡村耕二 http://okaweb.ec.kyushu-u.ac.jp/lectures/in/ トランスポート層 岡村耕二 http://okaweb.ec.kyushu-u.ac.jp/lectures/in/ 情報ネットワーク

階層とプロトコル (OSI 参照モデル) アプリケーション層 プレゼンテーション層 セッション層 トランスポート層 ネットワーク層 階層とプロトコル (OSI 参照モデル) 物理層 データリンク層 ネットワーク層 アプリケーション層 トランスポート層 プレゼンテーション層 セッション層 プロトコル 情報ネットワーク

7層の概略(IT辞典 http://e-words.jp) アプリケーション層 データ通信を利用した様々なサービスを人間や他のプログラムに提供する。 プレゼンテーション層 第5層から受け取ったデータをユーザが分かりやすい形式に変換したり、第7層から送られてくるデータを通信に適した形式に変換したりする。 セッション層 通信プログラム同士がデータの送受信を行なうための仮想的な経路(コネクション)の確立や解放を行なう。 トランスポート層 相手まで確実に効率よくデータを届けるためのデータ圧縮や誤り訂正、再送制御などを行なう。 ネットワーク層 相手までデータを届けるための通信経路の選択や、通信経路内のアドレス(住所)の管理を行なう。 データリンク層 通信相手との物理的な通信路を確保し、通信路を流れるデータのエラー検出などを行なう。 物理層 データを通信回線に送出するための電気的な変換や機械的な作業を受け持つ。ピンの形状やケーブルの特性なども第1層で定められる。 情報ネットワーク

トランスポート層 セッション層より上位では,個々の応用プロセスが処理を実現するのに必要な情報が、メッセージ単位まで分割される。トランスポート層以下は、このメッセージを通信相手の応用プロセスまで、詳細な伝達手段を意識せずに、確実に送り届ける機能を果たしている。 トランスポート層では、両端のコンピュータシステム内で機能してるアプリケーションプロセス間で、データ送信の保証をすることができる。データ通信の保証のために、通信エラーの検出や回復の機能を持つ。また、上位層が要求するスループットや伝送遅延などのサービス品質(QoS: Quality of Service) を保証する。 代表的なプロトコルに、インターネットにおける誤りのないコネクション型サービス TCP (Transmission Control Protocol) や、動画像などを伝送するための効率の良いコネクションレス型サービス UDP (User Datagram Protocol) などがある。 情報ネットワーク

トランスポート 一度に複数の人としゃべったり 相手によってゆっくりしゃべったり、一度にたくさんしゃべったり 情報ネットワーク

典型的な構成(近距離) アプリケーション プレゼンテーション セッション トランスポート ネットワーク データリンク 物理 情報ネットワーク

典型的な構成(長距離) アプリケーション プレゼンテーション セッション トランスポート ネットワーク データリンク・物理 情報ネットワーク

トランスポート層 プロセスとプロセスの通信 TCP (Transmission Control Protocol ) 信頼性があるが、速度が不定 メール、WEBアクセス UDP (User Datagram Protocol) 信頼性がないが、 速度は一定 マルチメディア通信 情報ネットワーク

トランスポート層 IPアドレスだけでは識別子が足りない ポート番号 特定のサービスを固定的に割り当てる ホスト内でもっと細かく識別できる必要がある プロセス ウインドウ IP Address + Port = トランスポートアドレス ポート番号 16bit 特定のサービスを固定的に割り当てる 25: 電子メール 80: WWW 情報ネットワーク

ネットワーク層とトランスポート層 アプリケーション プレゼンテーション セッション トランスポート ネットワーク データリンク・物理 情報ネットワーク

決められたポート番号 http://www.iana.org/assignments/port-numbers 情報ネットワーク The range for assigned ports managed by the IANA is 0-1023. Port Assignments: Keyword Decimal Description References ------- ------- ----------- ---------- 0/tcp Reserved 0/udp Reserved # Jon Postel <postel@isi.edu> tcpmux 1/tcp TCP Port Service Multiplexer tcpmux 1/udp TCP Port Service Multiplexer # Mark Lottor <MKL@nisc.sri.com> compressnet 2/tcp Management Utility compressnet 2/udp Management Utility compressnet 3/tcp Compression Process compressnet 3/udp Compression Process # Bernie Volz <VOLZ@PROCESS.COM> 情報ネットワーク

信頼性のある TCP 通信の実現と工夫 Slow Start Sliding Window 遅延時間に弱い なかなかスピードが出ない。 送信 受信 送信 受信 Slow Start Sliding Window 遅延時間に弱い なかなかスピードが出ない。 スループット 時間 情報ネットワーク

通信アプリケーション 電子メール WWW DNS VoD テレビ会議 SMTP/POP/IMAP HTTP/FTP DNS RTSP RTP 情報ネットワーク

TCP通信プログラム 情報ネットワーク

TCP通信プログラム(基本接続) 情報ネットワーク #include <stdio.h> #include <strings.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> main(narg,arg) int narg; char **arg; { int sock,sock2,saddr2_len; int s_addr; unsigned short port; struct sockaddr_in saddr,saddr2; s_addr=inet_addr(arg[1]); port=atoi(arg[2]); bzero(&saddr,sizeof(struct sockaddr_in)); bzero(&saddr2,sizeof(struct sockaddr_in)); saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = s_addr; saddr.sin_port = htons(port); sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); switch (arg[3][0]){ case 'b': if(bind(sock, (struct sockaddr *)&saddr,sizeof(saddr)) < 0){ perror("TCPbind "); return -1; } listen(sock,8); sock2=accept(sock,(struct sockaddr *)&saddr2,&saddr2_len); printf("connected from %s.\n",inet_ntoa(saddr2.sin_addr)); break; case 'c': if(connect(sock, (struct sockaddr *)&saddr,sizeof(saddr)) < 0){ perror("TCPconnect "); getchar(); close (sock); 情報ネットワーク

TCP と UDP の違い(bind) UDP: TCP bind したソケットIDから直接受信を行う bind したソケットはID は accept により、接続要求受け付けに用いられ、accept 後、通信用のソケットIDが生成され、その ID を用いて通信が行われる。 情報ネットワーク

bind で与えるべきIPアドレス saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = s_addr; saddr.sin_port = htons(port); sock=socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); if(bind(sock, (struct sockaddr *)&saddr,sizeof(saddr)) < 0){ perror("TCPbind "); 接続は誰が行うかわからない。つまり、 予想はできないし、指定できる場合は少ない。そのため、誰とでも接続が行えるように 0.0.0.0 を指定する。ただし、サービスを識別するためのポート番号は適切な値にする必要がある。 情報ネットワーク

TCP と UDP の違い(connect) UDP: TCP 通信相手が bind していなくても connect の発行は可能 connect するためには、通信相手が先に予め、 bind/listen/accept しておく必要がある。 情報ネットワーク

送信、受信する関数は同じ TCP も UDP と同じく write() 関数によるソケットへの書き込みで送信を行い、read()関数によるソケットからの読み出しで受信を行う。 ただし、TCP は bind したソケットIDではなく、accept したソケットID。 情報ネットワーク

UDP通信プログラム 情報ネットワーク

UDP通信プログラム(ソケットの準備) 情報ネットワーク include <stdio.h> #include <strings.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> main(narg,arg) int narg; char **arg; { int sock; int s_addr; unsigned short port; struct sockaddr_in saddr; char ch; s_addr=inet_addr(arg[1]); port=atoi(arg[2]); bzero(&saddr,sizeof(struct sockaddr_in)); saddr.sin_family = AF_INET; saddr.sin_addr.s_addr = s_addr; saddr.sin_port = htons(port); sock=socket(AF_INET,SOCK_DGRAM, IPPROTO_UDP); } 情報ネットワーク

送信、受信の準備 if(connect(sock, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in))<0){ perror("connect"); return -1; } if(bind(sock, (struct sockaddr *)&saddr, sizeof(struct sockaddr_in))<0){ perror("bind"); return -1; } 情報ネットワーク