@network Cisco・アライド実機で学ぶ > TCP/IP入門 > FTPの通信(アクティブモード)その2

 Amazon
@network Cisco・アライド実機で学ぶ
◆FTPの通信(アクティブモード)その2

※ネットワークの学習は、TCP/IPを学ぶことから始めることをオススメします。TCP/IPは、今日のLANやインターネットを支えている重要な技術になっています。ここでは、これからネットワークを学ぼうとする方に必要なネットワークの用語やテクノロジーの紹介、そして、TCP/IPプロトコルの基礎知識を中心に説明してゆきます。
 資格取得が就職、転職、派遣に有利なのは確かですが、「資格=即戦力」とは言えません。実機を操作して資格取得と同時に就職・転職・派遣後に求められるエンジニア(仕事・ジョブ・ワークの達人)としての即戦力を養いましょう。

スポンサードリンク

◆FTPの通信(アクティブモード)その2

 ここでは、「FTPの通信(アクティブモード)その1」より、さらに詳しくFTPのアクティブモードの動作について、説明してゆきます。

 アクティブモードでは、ファイルのダウンロード、アップロードにかかわらず、下図のようにFTPサーバ側からコネクションが確立されるようになっています。


 データ転送時、クライアントは、PORTコマンドで、自分の接続を待ち受けるIPアドレスとポート番号をFTPサーバに通知します。

PORTコマンドは、以下のように指定するようになっています。

 PORT aaa,bbb,ccc,ddd,ee,ff

 aaa,bbb,ccc,ddd ・・・ クライアントの待ち受けIPアドレスを指します。
 ee,ff          ・・・ クライアントの待ち受けポート番号を指します。

上の図のポート番号の場合のPORTコマンドは次のようになります。

 PORT 192,168,1,1,11,185

ここで、疑問が生じてきます。なぜ、ポート番号の「3001」が、「11」と「185」になるのかです。

そのからくりは、このようになっています。

10進数の3001を16進数に変換すると下記のようになります。

 (3001)10=(0BB9)16

16進数の(0BB9)16をオクテットに分割し、その各々を10進数に変換します。

 (0B)16=(11)10

 (B9)16=(185)10

また、(11)10は、8ビットシフト移動させたものなので、次のことが成り立ちます。

 3001=11×256+185

 アクティブモードのデータ転送の様子をもう少し詳しく見てゆくと、クライアントとサーバのシーケンスは、下表のようになります。

クライアント 内容 サーバ
任意 ---> PORT aaa,bbb,ccc,ddd,ee,ff ---> 21
任意 <--- PORT command successfull <--- 21
任意 ---> RETR filename ---> 21
ee*256+ff <--- ( SYN ) <--- 20
ee*256+ff ---> ( SYN , ACK ) ---> 20
ee*256+ff <--- ( ACK ) <--- 20
任意 <--- Opening ASCII mode data connection <--- 21
ee*256+ff ( ファイルのダウンロード )


20
任意 <--- Transfer complete. <--- 21


◆アクティブモードは、ファイアウォールとNATとの相性が悪い

 クライアントが、ファイアウォールの内側に位置する場合、アクティブモードのFTPは、失敗する場合がほとんどです。それは、多くのファイアウォールは、セキュリティの問題から外部からのSYNを拒否する設定を行っている場合があるからです。

また、クライアントがNATルータの配下にある場合も問題になってきます。

 NATやIPマスカレードでは、IPアドレスやポート番号が変換されます。そのため、PORTコマンドで渡される値も書換える必要があります。

 その理由は、PORTコマンドで通知されるIPアドレスとポート番号では、クライアントと通信を行うことができないからです。変換される前の内部のIPアドレスとポート番号を使って通信することができません。NATで変換されるIPアドレスとポート番号で通信する必要があります。

 そのため、PORTコマンドの引数を書き換える必要があります。PORTコマンドの引数は10進表記であり、IPアドレスとポート番号の値の文字列の長さが変わるので、チェックサムを書き換える必要も出てきます。

 このような、複雑な処理が必要なため、PORTコマンドの書換えに対応していないNATルータも存在し、NATルータの配下にクライアントがある場合、FTP通信が行えないという問題があります。

FTPの通信(アクティブモード)その1」 ← 前項 | 次項 → 「FTPの通信(パッシブモード)その1



スポンサードリンク


<ネットワーク資格の練習問題に挑戦>
CCNA練習問題に挑戦!(650問)
Network+練習問題に挑戦!(393問)
テクニカルエンジニア(ネットワーク)試験

Copyright(c)2006- @network Cisco・アライド実機で学ぶ All rights reserved.