内容紹介
TCP/IPネットワークの実際が基礎から理解できる!
TCP/IPを真に理解するため、ネットワーク技術の解説はもちろん、コンピュータ内部の構造、データやパケットをやり取りする仕組み、ネットワークプログラミングの基礎、OSへの実装まで、わかりやすく解説した1冊。
このような方におすすめ
・TCP/IP技術を学ぼうとしている方
・ネットワークの基礎を学習、再確認したい方
・UNIXやC言語の経験を持ち、これからTCP/IPネットワークを勉強したいという方
目次
主要目次
第1章 TCP/IP入門
第2章 ネットワークとコンピュータ
第3章 ネットワークの基礎技術とTCP/IP
第4章 IPはインターネットプロトコル
第5章 TCPとUDP
第6章 経路制御とルータ
第7章 ネットワークアプリケーション
第8章 ソケットプログラミング
第9章 TCP/IPの実装
付録
詳細目次
第1章 TCP/IP入門
1.1 ようこそ、コンピュータとネットワークの世界へ
1.1.1 ネットワークはコンピュータの可能性を広げる
1.1.2 ネットワークとTCP/IP
1.1.3 インターネット、イントラネット、エクストラネット
1.1.4 いろいろなネットワークといろいろなコンピュータ
1.2 TCP/IPで何ができるか
1.2.1 TCP/IPアプリケーションの過去、現在、未来
1.2.2 インターネットブームとTCP/IP
1.2.3 実用的なTCP/IP
1.2.4 なんでもかんでもTCP/IP
1.3 TCP/IPの特徴
1.3.1 通信方式を選ばないTCP/IP
1.3.2 TCP/IPはソフトウェア
1.3.3 ハードウェアとソフトウェアの関係
1.3.4 利用者にはネットワークの細かいことがわからない
1.3.5 TCP/IPネットワークと電話網、郵便網のブラックボックス化
1.3.6 利用者にやさしいネットワークを目指して
1.4 TCP/IPを学ぶにあたって
1.4.1 ネットワークの構成要素
1.4.2 TCP/IPの基本はサーバとクライアント
1.4.3 パケット交換と回線交換
1.4.4 TCP/IPはパケット交換方式を採用
第2章 ネットワークとコンピュータ
2.1 コンピュータの基礎
2.1.1 ネットワークの前に、まずコンピュータを理解しよう
2.1.2 ハードウェアとソフトウェア
2.1.3 OSとアプリケーション
2.1.4 TCP/IPでのハードウェアとソフトウェア
2.2 ハードウェアの基本要素
2.2.1 コンピュータの中はネットワーク
2.2.2 バスの基礎
2.2.3 バスにおけるアドレスとデータの扱われ方
2.2.4 パラレル通信とシリアル通信
2.2.5 全二重通信と半二重通信
2.2.6 同期信号とクロック
2.3 バッファ、キュー、キャッシュ
2.3.1 バッファ
2.3.2 キューとスタック
2.3.3 いろいろなキュー(待ち行列)
2.3.4 キューの実現方法(リストとリングバッファ)
2.3.5 キャッシュ
2.4 コンピュータのデータ表現
2.4.1 2進数とデータ表現
2.4.2 ビット、バイト、オクテット
2.4.3 2進数の基礎
2.4.4 2進数の基本演算
2.4.5 2進数の応用演算
2.4.6 ビッグエンディアンとリトルエンディアン
2.4.7 人が扱う情報をデジタル情報に
2.5 ソフトウェアの基本要素
2.5.1 5種類のソフトウェア
2.5.2 ハードウェアの抽象化
2.5.3 デバイスドライバ
2.5.4 ライブラリルーチンとAPI
2.6 プログラムの動作原理
2.6.1 ブートとロードと実行
2.6.2 プログラムの内部構造
2.6.3 プロセスとタスク
2.6.4 アドレス空間と仮想記憶
2.6.5 プロセスとCPUとスレッド
2.6.6 プロセスとスレッドの違い
2.7 OSの役割
2.7.1 ハードウェアの制御と管理
2.7.2 動作モードとシステムコール
2.7.3 割り込み制御
2.7.4 OSによるプロセス管理
2.7.5 ソフトウェア割り込みと遅延実行
第3章 ネットワークの基礎技術とTCP/IP
3.1 ネットワークによる接続
3.1.1 物理的な接続とはハードウェア的に接続すること
3.1.2 論理的な接続とはソフトウェア的に接続すること
3.1.3 アプリケーションの設定
3.2 ネットワークの種類
3.2.1 ユニキャスト、マルチキャスト、ブロードキャスト
3.2.2 データ転送方式
3.2.3 ネットワークの構造
3.3 TCP/IP技術の構成
3.3.1 TCP/IPの4つの技術
3.3.2 TCP/IPの階層化原理
3.3.3 OSI参照モデル
3.4 ネットワークの性能
3.4.1 ネットワークの速さ
3.4.2 伝送速度と帯域
3.4.3 ネットワークのスループット
3.4.4 遅延時間
3.5 ふくそうとパケットの喪失
3.5.1 ネットワークの混み具合(ふくそう)
3.5.2 ふくそうが発生する場所
3.5.3 ふくそう時のルータの処理
3.6 ハードウェアとネットワーク
3.6.1 Ethernetによるデータの配送
3.6.2 Ethernetによるデータの配送
3.6.3 データリンクの限界
3.6.4 ルータによるネットワークの接続
第4章 IPはインターネットプロトコル
4.1 IPの目的
4.1.1 IPの役割
4.1.2 IPには制限事項がある
4.1.3 IPの基本はIPアドレスとルーティングテーブル
4.2 IPアドレスとネットワーク
4.2.1 IPアドレスの構造
4.2.2 IPアドレスはインタフェースに付けられる
4.2.3 ネットマスクとサブネットワーク
4.3 IPとルーティングテーブル
4.3.1 IPによるパケットの配送
4.3.2 ルーティングテーブルとパケットの配送
4.3.3 より複雑なネットワーク
4.3.4 直接配送と間接配送
4.3.5 IPパケットの配送例
4.4 IPのエラー処理
4.4.1 ICMP
4.4.2 パケットのループ
4.5 IPとデータリンク
4.5.1 ARP(Address Resolution Protocol)
4.5.2 分割化
4.5.3 経路MTU探索
4.6 コンピュータ内部のIPの処理
4.6.1 ホストの処理
4.6.2 ルータの処理
4.6.3 ルーティングテーブルとARPの内部構造
4.7 DNS
4.7.1 DNSの役割
4.7.2 ドメイン名の構造と管理
第5章 TCPとUDP
5.1 TCPとUDP
5.1.1 IPとTCP/UDP
5.1.2 クライアントサーバモデルとポーリング/セレクティング方式
5.1.3 TCPとUDPとポート番号
5.1.4 ソケットインタフェース
5.1.5 TCPとUDPの特徴の違い
5.2 IPそのままのUDP
5.2.1 IPそのままのUDP
5.2.2 UDPによるデータの信頼性
5.3 非常に複雑なTCP
5.3.1 データの到達性に関する信頼性の提供
5.3.2 TCPのパケットサイズ「セグメント」
5.3.3 TCPの内部変数(TCB)と入出力バッファ
5.3.4 コネクションの管理
5.3.5 フロー制御(ウィンドウとフロー制御)
5.3.6 ふくそう制御
5.3.7 TCPにおけるデータの信頼性
5.4 TCPとUDPの処理
5.4.1 UDPの内部処理
5.4.2 TCPの内部処理
5.5 TCPとUDPの性質の比較
5.5.1 信頼性
5.5.2 ストリーム型とデータグラム型
5.5.3 パケット配送の即時性
5.5.4 通信相手の数
5.5.5 フロー制御
5.5.6 ふくそう制御
第6章 経路制御とルータ
6.1 ルータの役割
6.1.1 ルータとルーティング
6.1.2 ルータが備えるさまざまな機能の概要
6.1.3 DHCP(Dynamic Host Configuration Protocol)
6.1.4 NAT(Network Address Translator)
6.1.5 フィルタリング、アドレス変換
6.2 経路制御とは
6.2.1 静的経路制御と動的経路制御
6.2.2 経路制御アルゴリズム
6.2.3 代表的なルーティングプロトコル
6.3 RIP
6.3.1 RIPの基礎
6.3.2 RIPによる経路制御
6.3.3 経路が切断されたときの処理
6.3.4 RIPの内部処理
6.3.5 RIPの問題点
6.4 OSPF
6.4.1 OSPFはジグソーパズル
6.4.2 OSPFの基礎
6.4.3 ネットワークの種類と情報交換
6.4.4 OSPFによるリンク状態情報の伝達
6.4.5 エリア
6.4.6 OSPFの内部処理
6.5 BGP
6.5.1 ASと経路制御
6.5.2 BGPによる経路制御
6.5.3 EBGPとIBGP
第7章 ネットワークアプリケーション
7.1 ネットワークとアプリケーション
7.1.1 ネットワークアプリケーションとは
7.1.2 アプリケーションプログラムの構造
7.1.3 ストリーム型とデータグラム型
7.2 World Wide Webのしくみ
7.2.1 World Wide Webの概要
7.2.2 Webシステムの内部処理
7.2.3 HTTPによるWeb通信
7.2.4 CGIとJava、Java Script
7.3 電子メールのしくみ
7.3.1 電子メールのしくみの概要
7.3.2 電子メールにおけるMIME
7.3.3 SMTP
7.3.4 POP
第8章 TCP/IPアプリケーションプログラミング
8.1 ネットワークプログラミングの基礎
8.1.1 通信サービスとアプリケーションプログラム
8.1.2 ソケットインタフェース、ソケットモジュール
8.1.3 ソケットシステムコールの概要
8.2 TCPを使ったアプリケーションプログラミング
8.2.1 ソケットによるTCPの制御
8.2.2 サンプルプログラムの仕様と動作環境
8.2.3 TCPサーバプログラムの基礎
8.2.4 TCPクライアントプログラムの基礎
8.3 UDPを使ったアプリケーションプログラミング
8.3.1 ソケットによるUDPの制御
8.3.2 サンプルプログラムの仕様と動作環境
8.3.3 UDPサーバプログラムの基礎
8.3.4 UDPクライアントプログラムの基礎
第9章 TCP/IPの実装
9.1 TCP/IPの実装
9.1.1 LinuxカーネルとTCP/IPの実装
9.1.2 Linuxカーネルを学ぶときの注意点
9.1.3 TCP/IPモジュールのソースコード
9.2 LinuxカーネルによるTCP/IPの実際
9.2.1 カーネルソースの構造
9.2.2 システムコールと内部処理
9.2.3 メモリ管理
9.2.4 タイマー処理
付録
付録A ヘッダフォーマット
A.1 ARP
A.2 IP(IPv4)
A.3 ICMP
A.4 IPv6
A.5 TCP
A.6 UDP
付録B IPアドレスに関する情報
B.1 プライベートIPアドレス
B.2 ネットマスク一覧表
B.3 ネットマスクとネットワークアドレス
B.4 10進数、16進数、2進数の対応表
付録C 代表的なポート番号
C.1 代表的なTCPのポート番号
C.2 代表的なUDPのポート番号
付録D アプリケーションサンプルプログラム
D.1 TCPのプログラム
D.2 UDPのプログラム
索引
続きを見る