テンプレートに沿ってない初心者の質問で申し訳ありません

FTPについて教えてください
FTPってどういう仕組みなんでしょうか?

同一LANに繋がっているPC同士であれば実装出来るものですか?

もしくは、同一LANなくても接続出来るのでしょうか?

FTPに関するプログラミングのコードを少し見てみたところ、ユーザー名とパスワードとURL程度しか入力する項目がないため、IPアドレスなどを入力する必要もないため、どのように繋がっているのか不思議です。

インターネットのWEBサイトにファイルをアップロードするようなものなのでしょうか?