初心者インフラエンジニアが困ったときに試行錯誤するブログ

インフラエンジニアが,開発の勉強をするときのログを残します

【技術書要約】TCP/IPの絵本を3分で理解する

実現したいこと

TCP/IPの絵本という本を読みました.

内容が深いところまでは入っていかないですが,概念的な理解には十分で,とてもいい本だったので,少しでも興味がある人が読んでいただけるように,簡単に要約しました.

やったこと

以下,各目次ごとのポイントを,質疑応答形式でまとめました

TCP/IPの勉強をはじめる前に

プロトコルとは?

  • インターネット通信をする際の規約?
  • コンピュータ同士が問題なくデータをやり取りするためのマニュアル
  • HTTP,FTP,TCP,IP,Ethernetはすべてプロトコルの一つ

LANとWANの違いを説明すると?

  • LANはLocal Area Networkで,WANはWide Area Network.WANは,会社の支店間など,インターネットほどつながっていないが光ファイバーなどでつながっている中間規模のネットワーク

イントラネットとは?

  • インターネットを使った地域限定版のLANのこと

TCP/IPの概要

TCP/IPとは?

  • ネットワーク疎通を確認する通信プロトコル
  • データの送受信に関わる,信号への変換=>伝達=>データの再変換という一連の手続きをまとめたもの.
  • Transmission Control Protocol
  • パケット通信TCP/IPの特徴

TCP/IPの構造はどうなっている?

データの後ろに付加する情報をなんと言う?

  • トレーラ

通信サービスとプロトコル

URLってなんの略?

  • Uniform Resource Locator

メールサーバーの仕組みを2つのプロトコルを用いて説明すると?

  • SMTP(Simple Mail Transfer Protocol)が送信者からメールサーバーへの送信,メールサーバーAからBへの送信を行う.メールサーバーBからPOP(Post Office Protocol)でメールを取得し,受信を完了する

ファイル転送の仕組みをプロトコルを使用して説明すると?

  • FTP(File Transfer Protocol)によって一時的にサーバーにファイルがアップロードされ,通信を許可されたクライアントがダウンロードできる仕組み

遠隔ログインのクライアントを挙げると?

TelnetSSLの違いは?

  • Telnetはコマンドをそのまま流すので,通信の内容が筒抜けになる

IMとは?

アプリケーション層

アプリケーション層の役割は?

  • 実際の処理をするところ?
  • アプリケーションでデータを扱えるように加工,表示,再生する層
  • HTTP,POP3,FTPなどはこの層

アプリケーションヘッダにはどんな情報が入っている?

  • 接続元IP,時刻,URL,リクエストパラメータ,セッションキー,認証パブリックキー?
  • リクエストには,メソッド,ホスト名,対応しているファイルの種類や文字コード,言語など

ヘッダとボディはどうやって分ける?

  • 空行を入れると,その下はボディ.GETメソッドの場合はボディは空になる

HTTPのように,1回の要求と応答で完結する通信のことをなんと言う?

クッキーはなぜ必要?

  • ステートレスでない場合,前回の通信の続きということを証明するため

クッキーはどうやって埋め込む?

  • CGI(Common Gateway Interface)を使ってWebページを作成した後,ヘッダーにクッキーとクッキーを保存させるコマンドをくっつけて返す

クッキーはどこにどれだけの期間保存される?

  • クライアント側のブラウザに保存され,基本はブラウザを閉じたら削除される

SSL/TLSとは?

  • SSLはセキュアな通信のこと?TLSは全くわからない.セキュアな通信だけど公開暗号鍵方式を使っていないとか?
  • Secure Sockets LayerとTransport Layer Securityのことで,インターネット上のデータ通信を暗号化するためのプロトコルSSLを標準化したものがTLS

SSL/TLSの仕組みを流れで説明できる?

  • wwwサーバーがロック専用の公開鍵と秘密鍵を作成
  • CA(認証局)が共通鍵を作成
  • CAは共通鍵でデータを暗号化する.データと共通鍵を安全にわたすため.それを公開鍵で暗号化する
  • wwwサーバーが秘密鍵で共通鍵と暗号化されたデータを取り出す.これにより.共通鍵が暗号化されて渡された.
  • 以後,クライアントとwwwサーバーは共通鍵を使って暗号化・復号を行う

SMTPプロトコルとは?

  • 全くわからん.電子メール系のプロトコル
  • Simple Mail Transfer Protocol だったはず.

SMTPの手順は?

  • コマンドはアルファベット4文字.レスポンスは3桁の数字らしい
  • 通信確立=>220 => HELO => 250 => MAIL FROM<~.jp> => 250 => RCPT TO <~.jp> => 250 => DATA => 354 => メッセージ => 250 => QUIT => 221 => 通信切断という手順

POPプロトコルとは?

  • 全くわからんな.その都度リクエストを送るプロトコル
  • 自分宛てのメールをメールサーバーから受け取るプロトコル.POP3が主流

POPの手順は?

  • コマンドはアルファベット4文字.レスポンスは+OKか-ERRのいずれか
  • 通信確認,ユーザー認証=>メールボックスの状態確認=>メールを取り込む=>通信の切断という感じ

エンコード・デコードとは?

MIMEとは?

  • これもまったくわからん.なんやろ.処理のこと?
  • 本来,メールの件名は英数のみ,本文はテキストのみだが,それを日本語や画像に対応させる仕組みのこと
  • 日本語や画像などをUS-ASCIIの文字列にエンコードし,デコードするときに必要な情報をヘッダーに加える
  • BASE64という方式が有名

トランスポート層

トランスポート層の役割は?

  • これはなんだ?通信を疎通させる役割?
  • 送信されたデータを確実に受信側のアプリケーションに届ける層.
  • パケット分割はこの層の役割.どのポートがどのサービスにつながっているかを判断して振り分けるのもここ
  • TCPUDPはこの層

UDPとは?またどこで使われる?

問題があったときの処理はどうなる?

  • TCP/IPなら,そのパケット自体をキャンセルする.DBならトランズアクションはってループバックする?
  • TCPの場合,通信をやり直したり,再送してだめなら切断する信号を送ったりする
  • UDPの場合,何もしない

TCPヘッダの中身を12個挙げるとしたら?

  • 送信側ポート番号
  • 受信側ポート番号
  • シーケンス番号
  • 確認応答番号
  • データオフセット
  • 予約
  • コントロールフラグ
  • ウィンドウサイズ
  • チェックサム
  • 緊急ポインタ
  • オプション
  • パディング

チェックサムとは?

  • データが無事か判断するヘッダ要素

オプションとは?

  • TCPの機能を拡張するときに使用する

通信状況を調べるコマンドは?

  • netstat -aでTCPや,ポートなど調べられる

ネットワーク層

ネットワーク層の役割は?

  • インターネットとつながる層なのか?
  • 受信側のコンピュータまでデータを届ける層.データが壊れていたり,受信失敗していたりは感知しない
  • IP(Internet Protocol)がこの層
  • IPしかプロトコルがないので,通信手段の違いを吸収できる

IPの通信の確実性を担保する機能は何か?

  • ネットワーク層はセキュリティが問題?
  • IPはコネクションレス型のベストエフォート方式なのでUDPと同じ.ICMP(Internet Control Message Protocol)はIPが直接送信するのではなく,IPのヘッダをつけたIPデータグラムというものに変換してから送信するので,失敗したら送信元に知らせることができる

IPv4のビット数は何列で,どういう意味がある?

相手のPCの接続状況を調べるコマンドは?

自分のPCの接続状況を調べるコマンドは?

  • ifconfig

宛先までの経路を調べるコマンドは?

  • tracert

DHCPとは?

  • Dynamic Host Configuration Protocolで,必要なときだけ自動的にIPを振るプロトコル

ブロードキャストアドレスとは?

  • 255.255.255.255で,LAN内のすべての機器に送信する特殊なアドレス
  • 送信時は,0.0.0.0だが,DHCPサーバーが反応することで,アドレスが振り分けられる

NATとNAPTの違いは?

  • Network Adress Translationは,PIP=>GIPとして振り分けるのでGIPの数だけインターネットにつなげるが,Network Adress Port Translation(IPマスカレードとも言う)は,同じGIPを使用してポートによってPIPを区別するから,何台でも同時につなげる

DNSはなんの略?

  • Domain Name System

データリンク層物理層

データリンク層の役割とは?

  • データリンクというくらいだから,データの入出力をする層?
  • データとビット列をそれぞれに変換する層
  • EthernetやPPPなどがこの層

データリンク層物理層の関係は?

  • リンク層が,情報をやり取りする層で,物理層は読み書きをする層?
  • データリンク層は,データを変換する層に対して,物理層はそのビットデータを電波で送受信する層

データリンクとは?

  • 機器同士が同一の方法でつながったひとかたまりのこと

NICとは?

  • Network Interface Cardで,LANカードやネットワークアダプタとも言う.コンピュータからネットワークに接続するときの玄関口

MACアドレスとは?

  • IPアドレスみたいなやつだが,表記がピリオド区切り?
  • Media Access Controlアドレスで,データリンク層内の個体識別番号.ネットワークまでいくとIPだが,その中で機器を特定する
  • データリンク内ではIPではなくMACアドレスがわかっていないと通信できない
  • 8ビット×6列で示す

MACアドレスを調べる方法は?

  • わからない.ls -llとか?
  • ARP(Address Resolution Protocol)

トークンリングとは?

  • 認証トークン系?
  • リング型のネットワークで,トークンを取得したPCのみが送信できるため,フレーム(データ+ヘッダ)の衝突が起こらない

PPPとPPPoEとは?

  • わからん.personal private portてきな?
  • Point-to-Point Protocol は2点間で1対1の通信を行う.ユーザー認証付きだから,MACアドレスは使わない
  • PPP over Ethernetイーサネット上にある2台のPC間の認証

ブリッジとは?

  • データリンク間をつなぐ機器.宛先MACアドレスが流れてきたのと別のデータリンクであるときのみ送り出す

ルーティング

経路の決めかたを簡単に説明すると?

  • DNSが決めるっていう話?
  • IGP(Interior Gateway Protocol)とEGP(Exterior Gateway Protocol)の2種類があって,ルーティングテーブルを見ながら最適な経路を静的,もしくは動的に決定する

tracertコマンドとは?

  • 通信経路を確認するコマンド

セキュリティ

付録

OSI参照モデルとは?

  • OSのインターフェースの規格を決めるの?
  • 基本的にはTCP/IPの親戚.アプリケーション層が更に3層に分かれているだけ

注意点

参考

以下の記事を参考にさせていただきました.

TCP/IPの絵本 第2版 ネットワークを学ぶ新しい9つの扉

TCP/IPの絵本 第2版 ネットワークを学ぶ新しい9つの扉

本記事について

本記事は,学習を目的に書かれています.

間違い,改良案などございましたら,コメントしていただけると幸いです.

基本的に編集途中ですので,何を書いてほしいかもコメントいただけると,

その情報を中心に追記します.