TCPとは
TCPとは、1対1のセッションによる信頼性の高い通信を行うためのプロトコルである。Transmission Control Protocolの略称で、インターネットの主要なプロトコルの1つである。パケットの再送やエラー訂正などを行う機能を持っているため、確実性をもった通信を行いたい場面で利用される。一般的にTCPによるセッション管理とIP(Internet Protocol)によるPCやサーバ間の通信相手の制御を組み合わせて利用するためTCP/IPと呼ばれる。
TCPはOSI参照モデルのトランスポート層にあたる。ネットワーク層のIPの上位プロトコルである。
TCPの通信は信頼性を重視しているため、データの送信に対して受信した側がパケットの到達を通知する応答を返し、それを送信側が受信することで完了とみなす。これらの応答がない場合は、パケットがロストしたと判断して自動的にパケットの再送を行う機能を持っている。また、ネットワーク上にパケットが送信されたものは、必ずしも送信順に届く保障はされないが、TCPでは、それを適切に並び替えて元のデータ順を再現するようになっている。このため、TCPを利用して通信するアプリケーションは、ネットワーク上でおきる問題を意識することなく利用することができる。
こういった点から、様々なインターネットサービスはTCPを利用しており、例としてWWW(HTTP)、メール(SMTP)などが挙げられる。
アプリケーションからTCPを利用する分には、様々な点が隠蔽されており、使いやすい点があるが、こういった点が障害を引き起こす可能性がある。例えば、パケットをやり取りするためにソケットを利用するが、大量の接続によってソケットを開放しないまま新たなソケットを利用したりすることで、システムのリソースを大量消費する場合がある。このような場合には、Unix系OSでは、netstatなどのコマンドを利用してセッションの状態を調べ、TCPセッションの接続ステータスなどを調査して原因や対策を検討する必要がある。
また、こういった特性を攻撃に利用することができ、DoS攻撃などが行われてしまう場合がある。
技術仕様はRFC793で規定されている。
【カテゴリ】:ネットワーク  プロトコル  
【Webセミナー】自社でOSSを採用しよう!今更聞けないOSSの基本セミナー
日程: | 11月22日(金)Webセミナー「BigBlueButton」を使用します。 |
内容: | OSSを導入したいけど、どこから手をつければいいかわからない方必見! |
ご興味のあるかたはぜひご参加ください。 |