TCP/IP


Study

送受信/ルーティング

TCP/IP*1の標準化団体

  • インターネットやLANで使われるプロトコル
    • 通信プロトコル
      • ネットワークを介して複数のコンピュータ間でデータのやり取り
      • 伝送路・パケットの構成・処理の方法を取り決める

ISOC*2

  • インターネットの普及

IAB*3

  • インターネット技術の標準化
    • 重要なタスクフォースに、下の2つの機関がある

IETF*4

  • 色々なインターネット技術使用の標準化国際機関
  • RFC*5
    • インターネットでその標準化された技術が文書に掲載されて管理され、公開される
    • TCP/IPが絶えず技術的に発展してる所以

IRTF*6

  • 長期的な技術革新

ISO*7

  • 国際標準化機関
    • OSI*8参照モデルとして通信プロトコルを標準化

通信機能の階層化

  • TCP/IPでの階層を基にして,OSI参照モデルでの階層化をまとめる
    • TCP/IPが4層で,それを細かく7層にしたのがOSIというようなイメージ
    • 実際にはTCP/IPがデファクトスタンダード(よく使われるもの)として用いられている
  • それぞれの階層で必要なプロトコルが違う
    • それぞれでのアプリケーションをまとめて「プロトコル・スタック」と呼ぶ

ネットワーク インタフェース層

  • イーサネット
    • MACアドレス宛に送信されるパケット
    • BASEの前の数字が通信速度を示す(Mbps)
    • BASEの後のの文字は到達距離や種類を示す(T:ツイスト)
    • Ethernet
      • 10BASE5(2):同軸ケーブル
      • 10BASE-T:ツイストペア
    • Fast Ethernet
      • 100BASE-TX:ツイストペア
      • 100Mbpsからの通信
    • Gigabit Ethernet
      • 1000BASE-T:ツイストペア
      • 1000BASE-SX(LX):光ファイバ
      • 10GBASE-LX4:光ファイバ
      • 1000BASEは1Gbps,10GBASEは10Gbps
  • LAN
    • VLAN*9
    • 無線LAN
    • CSMA/CA*10
      • 衝突を避けるために他の機器が電波を出してないか確認する

物理層 (第1層)

  • OSI参照モデルでの第1層
    • コネクタケーブル
      • 電気的・機械的な接続条件や手順
  • 通信回線自体についてのレイヤ
    • 電話線
    • 同軸ケーブル
      • 非常に劣化しにくいので長距離に届く
      • 網状のシールドで守られてるから
    • ツイストペアケーブル
    • 光ファイバー
    • 無線
  • 通信制御機器(ネットワーキングデバイス)
    • リピータ(増幅器)
    • ハブ

データリンク層(第2層)

  • OSI参照モデルでの第2層
    • ネットワークには直接的に接続されていない機器間のつながり
    • 同一のサブネットワークの中継に関する仕組み
  • コンピュータ間のつながりについてのレイヤ
    • Ethernet(LANの形式)
    • IEEE*11802.11b
    • PPP*12
      • WAN*13において1対1でつながる為の規格
      • 2点間なので,エンドのMACアドレスまではいらない
    • PPPoE*14
      • イーサネットにコネクション管理や認証などの機能を追加
      • ユーザの管理がラク
  • 通信制御機器
    • ブリッジ
    • スイッチ(スイッチングハブ)

インターネット層

ネットワーク層(第3層)

  • OSI参照モデルでの第3層
    • ネットワーク上の経路や中継作業についてのレイヤ
    • 通信制御機器はルータ
  • IP*15
  • ICMP*16
    • IPパケットのデータ部分に入っている
      • IPには、障害対策の技術は含まれていない
    • エラーや制御のメッセージ通知
      • 特にルータなんかは必須の仕組み
      • エラーの内容に合わせて対処して再送したり
    • ICMPの要素
      • タイプ:どんな状況なのか
      • コード:その状況の、どのパターンなのか
    • コマンドプロンプトのメッセージなんかはこれを利用している
    • pingコマンド
      • 宛先の機器と通信出来るかを調べる
    • traceroute(transrt)コマンド
      • 経路を調べるコマンド
      • IPパケット内のTTLを増やしていって、時間超過せずにちゃんとエコー応答が返るまでを調べてる
  • ARP*17
    • IPアドレスに対応するイーサネットMACアドレスを調べる

トランスポート層

  • 受け取ったデータを適切なプログラムに受け渡す仕組み
    • データグラム
      • トランスポート層でのデータの名称
      • ヘッダに発信元・送信先ポート番号を指定するフィールドがある
  • ポート番号
    • Well-known ports
      • 0〜1023番
      • 基本的な上位プロトコル
      • HTTPやPOPなど
    • 登録済みポート
      • 1024〜49252番
      • ベンダ固有のアプリケーションに割り当てる
    • プライベートポート
      • 419152〜65535番
      • システムにより動的に利用される

トランスポート層(第4層)

  • OSI参照モデルでの第4層
    • プログラム(プロセス)間のデータの受け渡し
    • IPアドレスに加えて、適切なポートを通してパケットが送られるかを管理
      • ポート番号を付加することによってどのアプリケーションかを明確化する
  • ネットワーク通信における転送の信頼性についてのレイヤ
  • TCP
    • ちゃんと遅れるかACK応答を確認して通信する
  • 3wayハンドシェーク
    • 送信側:SYNメッセージの送信でコネクション確立要求
    • 受信側:ACK+SYNメッセージ
    • 送信側:最後のACKメッセージ
  • 4wayハンドシェーク(切断時)
    • 送信側:FIN+ACK
    • 受信側:ACK
    • 受信側:FIN+ACK
    • 送信側:ACK
  • ウィンドウサイズ
    • 受信できる量を通知する事で転送効率を上げる
    • ひとまとまりに送るパケット群の最初の番号を「シーケンス番号」として付加する
    • 受信者側は、ACKに次に送って欲しいパケット群の最初の番号を付加する
  • 高速再転送
    • 受信側はパケットの抜けに気付いたら、抜ける直前のパケットのACKを3回連続で送る
    • 送信者は、それが再送要求の合図だと認識して送りなおす
    • 通常は、ACKが一定時間返ってこないと再送しないので、無駄な時間をかけなくて済むようになる
  • 選択的肯定応答 SACK*18
    • パケットが途中抜けてると、そこの部分だけ受信者から再送要求を出す
  • UDP
    • 単純にポート番号宛の目的のプログラムにデータを受け渡すのみ
      • アプリケーションレベルで、返信が返ってこなければやり直すだけ
      • ヘッダは8Byteと決まっている(必要最小限の情報)
    • 通信の保証はアプリケーションレベルでまかなえば良い
    • コネクションを確立しなくても良いため、ブロードキャスト・マルチキャストに適する
      • 複数の相手と同時にコネクションは確立出来ないから

アプリケーション層


セッション層(第5層)

  • OSI参照モデルでの第5層
    • 通信の流れを管理するための仕組み
  • 実際にコンピュータ同士がつながるかどうかについてのレイヤ

プレゼンテーション層(第6層)

  • OSI参照モデルでの第6層
    • アプリケーションに依存しないデータの表示
  • 送受信するデータの形についてのレイヤ(相互変換)
    • SMTP
    • FTP
    • Telnet

アプリケーション層(第7層)

  • OSI参照モデルでの第7層
    • アプリケーションがデータ通信を利用するための仕組み
  • 実際用いるアプリケーションでやり取りする際のレイヤ
    • HTTP
    • SMTP
    • FTP
    • Telnet

*1 Transmission Control Protocol/Internet Protocol
*2 Internet SOCiety
*3 Internet Architecture Board
*4 Internet Engineering Tasks Force
*5 Request For Comment
*6 Internet Research Tasks Force
*7 いそ・あいそ:International Organization for Standardization
*8 Open Systems Interconnection
*9 Virtual LAN
*10 Carrier Sense Multiple Access with Collision Avoidance
*11 The Institute of Electrical and Electronics Engineers
*12 Point-to-Point Protocol
*13 Wide Area Network
*14 PPP over Ethernet
*15 Internet Protocol
*16 Internet Control Message Protocol
*17 Address Resolution Protocol
*18 Selective ACKnowledgement