スポンサーリンク

TCP/IPに関するメモ

スポンサーリンク
スポンサーリンク
この記事は約4分で読めます。

コンピュータネットワークにおけるTCP/IPについてのメモ

 

TCP

 

3ウェイハンドシェイク

■概要

・ホスト間でコネクションを確立し、通信を開始するための仕組み

・以下の信号をお互いに送りあう

 

・ホストA

→SYN:1

→Ack:0

→シーケンス番号:ランダムな値

→確認応答番号:0

 

・ホストB

→SYN:1

→Ack:1

→ シーケンス番号:1

→確認応答番号

 

・SYN、AckはTCPヘッダに含まれている情報

 

・確認応答番号は相手から受信したシーケンス番号+自分が送るデータのサイズ

 

・シーケンス番号は

 

順序制御

・シーケンス番号を使う

 

再送制御

・Ackが相手のホストから帰ってきたら自分の送信したデータが届いていると判断できる

・Ackが返ってこなかった場合、自分が送信したデータが届いていないと判断して、もう一度同じ内容を送る。

・データが届いていない場合は再送することで信頼性を担保している

ウインドウ制御

・効率的に通信を行うためにAckによる到達確認の頻度を調整する仕組み

・常にAckを確認してからデータを送るのは効率が悪い。

・そこでウインドウサイズを決めておき、ウインドウサイズで指定された大きさのデータまではAckを待たずにデータを一度に送ることとする

・都度Ackを待たなくても良いので通信効率が上がる

・ウインドウサイズは3ウェイハンドシェイクの際にお互いに伝え合う

スライディングウインドウ

・ウインドウ制御によるAckの待ち時間を減らすための仕組み

・最後にAckを受信したら、その時点からのウインドウサイズまでウインドウをずらす

・ウインドウサイズが30だとすると、10までのデータを送信できたことを示すAckを受信した時点で、40まではAckを待たずにデータを送信する

・このようにすることで、本来は30までデータを送信した時点でAckを待たなければならないが、10の時点でAckを受信したことで40まではまとめてデータを送信できるようになり、どんどんデータを送ることができるようになる

フロー制御

・一度にまとめてデータを送ると、相手側のホストがデータを処理しきれなくなる場合がある

・そこで、ウインドウサイズを小さくすることで受信するデータを調節する

 

UDP((User Datagram Protocol)

・トランスポート層で動作するプロトコル

・TCPのような制御は行わない

・通信の信頼性は下がるが通信速度が高い

・UDPヘッダは8Byteで小さいので、ペイロード部分が大きい。つまり一つのパケットで送信できるデータの量が大きくなる

・パケットの到達確認は行わないので、パケットが通信経路上で失われる可能性がある。

・パケットロスの場合にはアプリケーション側で再送を行うか、パケットロスを許容できるものである必要がある

・UDPの用途に以下がある。

・映像や音声のようにリアルタイムで送られる必要がある場合

・信頼性が求められず、やりとりするデータサイズが小さい場合

・マルチキャスト、ブロードキャストでの通信が必要な場合

 

■UDPヘッダ

・宛先ポート番号

・送信元ポート番号

・パケット長

UDPヘッダとUDPデータの長さの合計

・チェックサム

UDPヘッダとUDPデータのエラーチェックに使われる値

 

ポート番号

・ポート番号はTCP/UDPのサービスを識別する番号

・0〜65535まである

・3種類に分かれる

 

■ウェルノウンポート番号

サーバーアプリケーションに割り当てられる

 

■登録済みポート番号

 

■ダイナミックポート番号

クライアントアプリケーションに割り当てられる

 

データの最大転送量

■MTU(Maximum Transmission Unit)

■MSS(Maximum Segment Size)

■RWIN(Recieve Window Size)

コメント