TCP 
 機能 
 動作 
 システムコール 
 フォーマット 
 ヘッダIPv6 


 TCPプロトコル
 ・トランスポート層に属す(IPプロトコルのすぐ上層に存在)
 ・ステートフル (stateful) なプロトコル
 ・データがもう一方のホストまで届いたかどうかを確認する機能を自ずから持つ
 ・主な目的は、データが信頼性を損なうことなく受送信されたかを確認すること
データがインターネット層とアプリケーション層との間で正しく伝搬されたかどうか
パケットデータがアプリケーション層において適切なプログラムにきちんと渡ったか
プログラムに正しい順序で届いたかを確認する
 ・データを、開始の合図と終了合図を持つ、一続きのデータストリームとして捉える

 TCPプロトコルの機能
 ・通信を確実に行う受信確認と再送
データストリームの活動中の、パケットが相手にきちんと届いたかを確かめる仕組み
データのパケット化と、パケットを正しい順に並べる再構築
ストリームとコネクション

 TCPプロトコルの動作
 ・新たなストリームが通路の開くのを待っている
 ・TCPコネクション中変わらず使われる ECN、SACK 等の特有なオプション
最初のハンドシェイクで話し合って取り決め(negotiate)がなされる
 ・コネクションのクローズ

 TCP通信のシステムコール
 ・通信接続の確立
サーバプログラム、クライアン トプログラムがソケット作成
ソケット間の接続の確立
システムコール
accept() 通信接続要求を待つ(サーバ)
bind() 通信方式の登録(サーバ)
connect() ソケット接続(クライアント)
listen() 通信接続待機の準備(サーバ)
socket() ソケット生成
 ・ソケット間のデータ送信
サーバ、クライアントの基本的な動作は同じ
システムコール
read()
write()
 ・通信接続の切断
システムコール
close()

 TCPヘッダフォーマット
 ・送信元ポート番号(ビット 0-15)
それを送信したシステム上のプロセスと直接結びついている
ひとつのアプリケーションに結びつけるポートの一意性を確保する
IPアドレスと宛先と送信元ポートのハッシュ値を使用
 ・送信先ポート番号(ビット 16-31)
これは受信側システム上のプロセスと直接結びついている
より多くのコネクションを同時に張れるようにするため、ハッシュ値を用いることが多い
送信元への返答時には、元の宛先ポートが送信元ポート、送信元ポートが宛先ポートになる
 ・シーケンス番号(ビット 32-63)
 ・ACK番号(ビット 64-95)
 ・データオフセット(ビット 96-99)
TCPヘッダの長さと、パケットのデータ部がどこから始まっているのかを示す
 ・予約
 ・フラグ
 ・ウインドウサイズ
 ・ヘッダチェックサム
 ・アージェントポインタ

 ヘッダIPv6
 ・基本ヘッダ
バージョン
トラフィッククラス
フローラベル
ペイロード
次のヘッダの種類
許容するホップ数
送信元IPアドレス
送信先IPアドレス
 ・拡張ヘッダ