
Pythonで動かしながら学ぶ コンピュータネットワーク
パイソンデウゴカシナガラマナブ コンピュータネットワーク
- 著: 中山 悠
★さあ、基本を徹底的に体感しよう!★
著者が独自開発したシミュレータを使って、コンピュータネットワークの挙動をPythonで学ぼう!
スイッチング、ルーティング、TCPのハンドシェイク、輻輳制御、TLSハンドシェイクが、この一冊でわかる!
本書の特徴は大きく3つあります。
1. Pythonで動かしながら学べる
OSI参照モデルやTCP/IPといった基盤技術を、単なる文章の解説ではなく、提示されたサンプルをベースに自らコーディングしながら学びます。ノードやリンク、パケットなどのクラスを自分で拡張するうちに、プロトコルの仕組みや挙動を体感できます。
2. シンプルなシミュレータだから、理解しやすい
既存の高機能シミュレータは便利な反面、設定の複雑さやライセンス費用が初学者には障壁でした。そこで、機能を絞り、極力シンプルな設計とすることで、初学者にも理解しやすいシミュレータを開発しました。ノード、リンク、パケットという3つのクラスを軸に、スイッチング、ルーティング、TCPのハンドシェイク、輻輳制御、さらにはTLSハンドシェイクまで段階的に追加していきます。
3. 学習環境の整備が簡単
Google Colabを利用するので、ブラウザさえあればOSの違いを意識せずに学習を始められます。もちろん、複数台の物理デバイスや複雑なネットワーク設定も必要ありません。
【サポートサイト】
https://www.conecolab.com
【主な内容】
0章 ネットワークの基礎知識
1章 コンピュータネットワークの基本要素
2章 ネットワークと時間
3章 スイッチとMACアドレス
4章 MACアドレス学習とループ回避
5章 IPパケットとフラグメント
6章 ルーティングプロトコル
7章 レイヤとカプセル化
8章 アドレスの問い合わせ
9章 IPアドレスの配布と変換
10章 コネクションと信頼性
11章 確認応答と再送制御
12章 輻輳とウィンドウ制御
13章 待ち行列と通信品質
14章 アプリケーションとデータ転送
15章 暗号化と鍵交換
- 前巻
- 次巻
オンライン書店で購入する
目次
第0章 ネットワークの基礎知識
0.1 コンピュータとネットワークの発展
0.2 プロトコルとは
0.3 通信の種類
0.4 MACアドレスとIPアドレス
0.5 代表的なネットワーク機器
第1章 コンピュータネットワークの基本要素
1.1 ノード
1.2 リンク
1.3 パケット
1.4 パケット転送
1.5 可視化
演習課題
第2章 ネットワークと時間
2.1 時間の重要性
2.2 Packetクラスの改良
2.3 Linkクラスの改良
2.4 Nodeクラスの改良
2.5 実装まとめ
2.6 シミュレーションの実行
演習課題
第3章 スイッチとMACアドレス
3.1 ローカルネットワークとは
3.2 スイッチ
3.3 MACアドレス
演習課題
第4章 MACアドレス学習とループ回避
4.1 フォワーディングテーブルの更新
4.2 スパニングツリープロトコル(STP)
演習課題
第5章 IPパケットとフラグメント
5.1 インターネットとIP
5.2 ネットワークアドレスとサブネットマスク
5.3 ルータ
演習課題
第6章 ルーティングプロトコル
6.1 ルーティングプロトコルとは
6.2 OSPF
6.3 LSA
6.4 最短経路の計算
演習課題
第7章 レイヤとカプセル化
7.1 レイヤとアドレス
7.2 カプセル化
演習課題
第8章 アドレスの問い合わせ
8.1 ARPによるMACアドレス解決
8.2 DNSによるIPアドレスの問い合わせ
演習課題
第9章 IPアドレスの配布と変換
9.1 DHCPによるIPアドレスの配布
9.2 NAT
演習課題
第10章 コネクションと信頼性
10.1 コネクション型とコネクションレス型
10.2 UDPによるコネクションレス型通信
10.3 TCPによるコネクション型通信
演習課題
第11章 確認応答と再送制御
11.1 確認応答とシーケンス番号
11.2 再送制御
演習課題
第12章 輻輳とウィンドウ制御
12.1 ウィンドウ制御
12.2 高速回復(Fast Recovery)
演習課題
第13章 待ち行列と通信品質
13.1 待ち行列
13.2 FIFO (First In First Out)
13.3 ラウンドロビン
13.4 優先制御
演習課題
第14章 アプリケーションとデータ転送
14.1 アプリケーション層
14.2 FTP
14.3 FTPの動作確認
14.4 HTTP
演習課題
第15章 暗号化と鍵交換
15.1 暗号化
15.2 SSL/TLS
15.3 HTTPS
演習課題
書誌情報
紙版
発売日
2025年07月17日
ISBN
9784065402092
判型
B5
価格
定価:4,180円(本体3,800円)
ページ数
368ページ
著者紹介
2008年東京大学大学院新領域創成科学研究科修士課程修了。同年日本電信電話株式会社入社。2018年東京大学大学院情報理工学系研究科博士課程修了。博士(情報理工学)。2019年より、東京農工大学工学研究院准教授。 モバイルコンピューティング、低遅延ネットワーク、IoTなどの研究に取り組む。特定非営利活動法人neko 9 Laboratories理事長。2022年より株式会社Flyby代表取締役、2024年より株式会社UMINeCo代表取締役も兼務し、大学発技術の社会実装に取り組む。 著書に、『TCP技術入門』『TCP/IP技術入門』(ともに技術評論社)、『よくわかるIoTデータ転送技術』(森北出版)がある。
オンライン書店一覧
関連シリーズ
-
ソフトウェアの挑戦
-
Pythonではじめる時系列分析入門
-
プログラミング〈新〉作法
-
Polarsとpandasで学ぶ データ処理アイデアレシピ55
-
RustによるWebアプリケーション開発
-
ゼロから学ぶGit/GitHub
-
Pythonでスラスラわかる ベイズ推論「超」入門
-
Juliaプログラミング大全
-
Kaggleに挑む深層学習プログラミングの極意
-
ゼロから学ぶRust
-
ROS2とPythonで作って学ぶAIロボット入門
-
Pythonではじめるベイズ機械学習入門
-
Rではじめる地理空間データの統計解析入門
-
ゼロからはじめるデータサイエンス入門
-
Pythonではじめるテキストアナリティクス入門
-
Python数値計算プログラミング
-
1週間で学べる!Julia数値計算プログラミング
-
問題解決力を鍛える!アルゴリズムとデータ構造
-
ゼロからつくるPython機械学習プログラミング入門
-
これからのロボットプログラミング入門
-
モンテカルロ統計計算
-
スパース回帰分析とパターン認識
-
Rで学ぶ統計的データ解析
-
ゼロから学ぶPythonプログラミング
-
Pythonで学ぶアルゴリズムとデータ構造
-
PythonではじめるKaggleスタートブック
-
最適化手法入門
-
RとStanではじめる ベイズ統計モデリングによるデータ分析入門
-
データ分析のためのデータ可視化入門
-
ProcessingによるCGとメディアアート
-
入門者のPython
-
Web学習アプリ対応 C言語入門
-
ホログラフィ入門
-
pixivエンジニアが教えるプログラミング入門
-
使える! MATLAB/Simulinkプログラミング
-
最新 使える!MATLAB
-
今日から使える! MATLAB 数値計算から古典制御まで
-
OpenCVによる画像処理入門
-
OpenCVによるコンピュータビジョン・機械学習入門
-
LabVIEW画像計測入門
-
IDLプログラミング入門―基本概念から3次元グラフィックス
-
GPUプログラミング入門 -CUDA5による実装