Udemy
    •  
    •  
    •  
    •  
    •  
    •  
    •  
    •  
Turn what you know into an opportunity and reach millions around the world.
Learn More
Your cart is empty.
Keep shopping
Pythonで動かしながら学ぶコンピュータネットワーク入門 – Colabシミュレータで基礎から暗号化まで
Rating: 4.8 out of 5(20 ratings)
238 students

Pythonで動かしながら学ぶコンピュータネットワーク入門 – Colabシミュレータで基礎から暗号化まで

Google Colab上で動作するシンプルなPythonネットワークシミュレータを用い、OSIモデルからTCP/IP、ルーティング、暗号化技術までを実践的に体験学習
Created byYu Nakayama
Last updated 7/2025
Japanese
Japanese [Auto],

What you'll learn

  • ネットワークの基礎知識 – プロトコル、パケット、MAC/IPアドレスなど、後の章で使う用語や概念を概観し、代表的なネットワーク機器を紹介します
  • コンピュータネットワークの基本要素 – ノード・リンク・パケットのクラスを実装し、任意のネットワークを構築してパケット送受信とグラフ化を行います
  • ネットワークと時間 – 時間の概念を導入し、スループットや遅延、ロス率などサービス品質の指標を計測します
  • スイッチとMACアドレス、ループ回避 – スイッチを作成し、MACアドレス学習やブロードキャスト抑制、STPによるループ回避を実装します
  • IPパケットとフラグメント – IPアドレスとルータによるパケット転送、サブネットマスク、フラグメントと再組立てを学びます
  • ルーティングプロトコル – OSPFなどの代表的なルーティングプロトコルを実装し、ダイクストラ法による最短経路計算を確認します
  • レイヤとカプセル化 – 階層化とカプセル化の意義を学び、MACアドレスとIPアドレスを順番に処理できる仕組みを実装します
  • アドレスの問い合わせ – DNSによるドメイン名とIPアドレスの変換プロセス、ARPによるMACアドレス解決を実装し、問い合わせの仕組みを理解します
  • IPアドレスの配布と変換 – DHCPによる動的アドレス配布と、NATによるアドレス変換を実装し、家庭用ルータで使われる仕組みを学びます
  • コネクションと信頼性 – UDPとTCPを比較し、TCPヘッダと3ウェイハンドシェイク、信頼性を支える仕組みを実装します
  • 確認応答と再送制御 – ACKやシーケンス番号、再送制御を実装し、データの分割と再構築方法を理解します
  • 輻輳とウィンドウ制御 – Tahoe/Reno等の輻輳制御アルゴリズムを実装し、混雑による遅延やロスを観察します
  • 待ち行列と通信品質 – バッファのキューと各種スケジューリング(FIFO、ラウンドロビン、優先制御)を実装し、アプリケーション特性に応じたQoS制御を学びます
  • アプリケーション層とデータ転送 – FTP、TFTP、HTTPなどのアプリケーションプロトコルの動作を学びます
  • 暗号化と鍵交換 – SSL/TLSハンドシェイクや暗号化・鍵交換の基本技術を実装し、ネットワークセキュリティの重要性を理解します

Course content

17 sections • 124 lectures • 3h 48m total length
  • コース概要と講師紹介5:04
  • 学習教材0:03

Requirements

  • Python の基礎的な文法や構文を理解していること。リストや辞書といったデータ構造、関数、クラスなどが使えるレベルであれば十分です。
  • インターネットに接続できる PC/タブレットとブラウザ。本講座では Google Colab を利用するため、特別なソフトウェアや OS の違いを意識する必要はありません。
  • ネットワークに関する事前知識や実機は不要。ノード・リンク・パケットなどの基本概念から丁寧に解説し、必要なことは全て講座内で学べます。
  • コードを書きながら学習する姿勢。手を動かしてシミュレーションを実装することで理解が深まるため、積極的に演習に取り組んでください。

Description

本講座は、著者の公開しているGoogle Colabノートブックをベースに、コンピュータネットワークの仕組みを実際に手を動かしながら学ぶ実践型の講座です。なお本講座の内容は、講談社の書籍「Pythonで動かしながら学ぶコンピュータネットワーク」にもまとめられています。

OSI参照モデルや TCP/IP といった抽象概念を「読むだけ」で理解するのではなく、ノードやリンク、パケットなどのクラスを自分で実装・拡張することでプロトコルの動作を体験しながら習得します。

使用するネットワークシミュレータは機能を最小限にしたシンプルな設計で、環境構築やライセンス費用が不要なため初学者にも取り組みやすくなっています。Google Colab環境で動作するため、ブラウザさえあればOSの違いを意識せずに学習を始めることができ、複数の実機や複雑なネットワーク設定も必要ありません。


【コースの特徴】

  • Pythonで手を動かしながら学習 – 書籍で紹介されているシンプルなシミュレータとサンプルコードを使用し、ノード・リンク・パケット等のクラスを自分で拡張することで、抽象概念ではなく実際の挙動としてネットワークを理解します。

  • 初心者でも取り組めるシンプルな設計 – 既存の高機能シミュレータと異なり、機能を絞り込んだシンプルな設計なので理解しやすく、コーディングしながらスイッチングやルーティング、TCP ハンドシェイク、輻輳制御などを段階的に実装していきます。

  • 環境構築が容易 – Google Colab上で動作するため、ブラウザがあればOSの違いを意識せずにすぐ学習を開始できます。複数の物理デバイスや複雑な設定は不要で、演習環境の準備も簡単です。

  • 基礎から応用まで体系的に網羅 – プロトコルやアドレスの基礎から、スイッチ・ルータの実装、ルーティングプロトコル、信頼性制御、輻輳制御、キューイングとQoS、アプリケーション層プロトコル、暗号化・鍵交換まで、15章構成で段階的に学びます。

Who this course is for:

  • ネットワークの仕組みを基礎から学びたい大学生・大学院生や初級エンジニア。アルゴリズムやプロトコルを自ら実装することで、理論と実践を結び付けます。
  • Python の基礎文法を理解しており、コードを書きながら学びたい方。シミュレーションを通して抽象概念を具体的な動作として体験したい方に最適です。
  • IT 分野の教員・研修担当者で、実践的なネットワーク教材を探している方。講義用資料や演習問題を参考に、自分の授業や研修に活用できます。
  • CCNA などネットワーク系資格取得を目指す方の基礎固め。ネットワークの基本要素からアプリケーション層、暗号化・鍵交換まで体系的にカバーします。