iEhohs.com

社内SEとウェブ担当を目指す人のメモブログ

株式会社アンク(2013)『TCP/IPの絵本』翔泳社.読書メモ

読書メモ

ネットワークのことを理解するにはTCP/IPを学習する必要があるとのことで、かなり難解そうな本からではなくやさしい本からということで読みました。

メールでテキスト以外を取り扱うMIME

電子メールではテキストデータのみが扱え、件名に利用できるのは半角英数字のみです。

件名を日本語で書いたり写メを添付するのを可能にしているのがMIMEです。

HTTPのやり取りは1回完結

HTTPは要求されたデータを返すことだけを目的に作られ、1回の要求と応答で完結するため過去に行った通信と関連付けられることはありません。1回完結のプロトコルをステートレスプロコルとよびます。

HTTPのやり取りに関する情報をクライアント側に保存して、前回からの続きの通信として扱うのがCookieです。

CookieはHTTPの正規の仕組みではなく、CGIなどクライアントからの要求に応じてWebページを作成する仕組みと組み合わせて使います。

SSL/TLSの仕組み

  1. クライアント(以下C)からサーバー(以下S)へWebページを要求
  2. Sは証明書を取り寄せ公開鍵(ロック用)と秘密鍵(解除用)を用意
    • 鍵や証明書の管理は認証局(CA)が行う
  3. SからCに公開鍵と証明書を発行、Cは証明書が信頼できるものかチェック
  4. 共通鍵を作り、データを共通鍵で暗号化し、共通鍵を公開鍵で暗号化
  5. CからSへ暗号化した鍵とデータを送信
  6. 暗号化された共通鍵を秘密鍵で解除、暗号化されたデータを共通鍵で解除
  7. 以降は共通鍵で暗号化してやり取り

速度重視のUDP

TCPは送信するデータを確実に届ける一方で、速度重視で通信するUDPがあります。

送信するパケットが小さい時やデータを再送する必要のないときに使用します。通信に失敗する可能性もあります。

UDPを利用したサービスとしてIP電話やストリーミングがあります。

ポート番号

ポート番号は0〜65525番まであり、0〜1023番までは通信サービスごとにあらかじめ予約されているウェルノン・ポート番号です。

サービスアプリケーション層のプロトコルポート番号トランスポート層のプロトコル
WWWHTTP80TCP/UDP
WWW(セキュリティ付き)HTTPS443TCP/UDP
電子メール(送信)SMTP25TCP/UDP
電子メール(受信)POP3110TCP/UDP
電子メール(認証付き送信)SMTP587TCP
ファイル転送FTP20/21TCP/UDP
遠隔ログインTELNET23TCP/UDP
遠隔ログイン(セキュリティ付き)SSH22TCP/UDP
ネットニューズNNTP119TCP/UDP
ネットワーク管理DNSDNS53TCP/UDP
ネットワーク管理DHCPDHCP546/547UDP
ネットワーク管理SNMPSNMP161/162UDP

TCPヘッダのコントロールフラグ

通信相手に通信状況を伝える手段として使われるのが、TCPヘッダにある6ビットのコントロールフラグです。

  • URG:1なら緊急データを含んでいる
  • ACK:1なら通信の確認に対して了解した
  • PSH:1ならセグメントをすぐにアプリケーション層へ渡す
  • RST:1なら通信を強制的に切断する
  • SYN:1なら通信の開始を要求する
  • FIN:1なら通信の終了を要求する

相手を確認しながらやり取りすることをハンドシェイクといい、通信を開始する時には

  1. 000010(通信しましょう)
  2. 010010(了解、通信しましょう)
  3. 010000(了解)

以上のようなやり取りが行われ、これを3ウェイハンドシェイクといいます。

グローバルアドレスに変換

プライベートアドレスのままではインターネットに接続できないのでグローバルアドレスに変換させる仕組みがルーターにはあります。

NATはプライベートアドレスとグローバルアドレスを1対1で対応させる仕組みで、保有しているグローバルアドレスの数までなら複数のコンピュータが同時にインターネットへアクセスできます。数を超えた場合はグローバルアドレスが空くまで待ちます。

NAPTは1つのグローバルアドレスで複数のコンピュータを同時に接続できる仕組みで、ポート番号で個々のコンピュータを識別します。グローバルアドレスが222.232.101.125の場合、222.232.101.125:4000、222.232.101.125:4001のようになります。IPマスカレードともいいます。

ipconfig、ping、tracertコマンド

ipconfigを入力すると自分のIPアドレスやサブネットマスクなどがわかります。ipconfig /allでMACアドレスを含むすべての情報を表示します。MACなどUNIX /Linuxではifconfig -aと入力します。

pingコマンドは特定のコンピュータがネットワーク上に存在しているのかチェックし、存在していればネットワーク状況を表示します。ping ドメインor IPアドレスと入力します。

pingコマンドの仕組みとしては相手のコンピュータにICMPメッセージを送り、受け取ったコンピュータはメッセージを返します。悪用される恐れがあるため、管理者によってICMPのやり取りを禁止する場合もあります。

tracertコマンドはあるコンピュータまでの経路を表示します。tracert ドメイン or IPアドレスと入力します。通信相手のコンピュータとそれぞれの通信にかかる時間が表示されます。

NICとMACアドレス

コンピュータをネットワークに接続するためには有線と無線にかかわらず、接続部分にネットワークインターフェースカード(NIC)が必要です。NICはケーブルの接続口が付いた基盤を指します。

NICには製造時にメーカーによってMACアドレスという固有の番号を割り振られます。MACアドレスはネットワーク層におけるIPアドレスのようなものです。

ネットワークのつなぎ方

  • バス型:支線からその先にノードを接続。ノードの着脱が簡単
  • リング型:両隣ノードを接続してリング状にする。ノードも経路の一部になる
  • スター型:ハブを介して他のノードに接続。集中管理ができるがハブが故障すると全体に影響が出る
  • メッシュ型:すべてのノードを1体1でつなぐ。1つが故障しても他に影響が出ない。主にWANで使う

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です