공부방
응용계층 프로토콜-FTP 본문
- 네트워크 21번 포트 : 데이터 전송을 제어하기 위한 신호를 주고 받기 위함
- 네트워크 20번 포트 : 실제 데이터(파일) 전송에 사용
- FTP는 데이터(파일)를 전송함에 있어, 수동 모드와 능동 모드 두가지를 지원한다.
능동 모드
- 클라이언트에서 FTP 서버의 21번 포트로 접속을 시도한다. 이 연결을 통해 FTP 명령을 주고 받는다.
- PORT 명령을 보내어 데이터 연결을 위한 포트를 서버에 알린다.
- 서버는 클라이언트에게 이 정보를 받아 20번 포트에서 클라이언트가 알려준 포트로 데이터 연결을 시작한다.
포트에서 포트로 데이터 연결을 한다?- FTP에서 "포트에서 포트로 데이터 연결을 시작한다"는 말은 네트워크 연결을 설립하는 과정을 설명하는 것
- 클라이언트는 자신의 IP 주소와 데이터 연결에 사용할 포트 번호를 서버에 알린다. 그 후 서버는 자신의 20번 포트에서 클라이언트가 알려준 포트로 데이터 연결을 시작한다.
- 예를 들어 "227 Entering Passive Mode (h1,h2,h3,h4,p1,p2)" 이런 응답이 왔다고 하면
- h1, h2, h3, h4는 서버의 IP 주소를 나타내며, p1과 p2는 데이터 연결에 사용할 포트 번호를 나타낸다.
- 이 포트 번호는 p1*256+p2 계산으로 얻을 수 있다.
- 227 Entering Passive Mode (192,168,1,1,200,14) 이런 응답을 보냈다고 가정해보면
IP 주소는 192.168.1.1이고, 포트 번호는 200*256+14=51214이다. - 이후 서버는 자신의 IP주소와 20번 포트에서 클라이언트의 51214 포트로 연결을 시작한다.
- 클라이언트는 이 연결을 확인(ACK)하고 그 후 파일 전송 등의 데이터 교환을 시작한다.
능동 모드의 문제점 : 서버가 클라이언트에게 데이터 연결을 시도할 때 내부적인 환경 요인(방화벽)과 외부적인 환경 요인(FTP를 제대로 인지하지 못하는 공유기)으로 FTP가 접속이 제대로 되지 않거나, 접속이 제대로 된다 하더라도 이 후 데이터 목록을 받아오지 못하는 에러가 발생할 수 있다.-> 수동 모드
수동 모드
- 클라이언트는 서버의 21번 포트로 컨트롤 연결을 수립
- 클라이언트는 서버에게 PASV(Passive Mode) 명령을 보낸다.
- 서버는 이 명령에 대한 응답으로 데이터 연결을 위한 비특권 포트 번호(1024~65535 사이)를 클라이언트에게 알려준다.
- 클라이언트는 서버가 알려준 포트로 새로운 연결을 시작하여 데이터 연결을 한다.
- 이제 클라이언트와 서버는 데이터 연결을 통해 파일 전송 등의 데이터 교환을 시작한다.
'CS > 네트워크' 카테고리의 다른 글
응용계층 (0) | 2023.06.27 |
---|---|
컴퓨터 네트워크 (0) | 2023.06.20 |
컴퓨터 네트워크의 계층 (0) | 2023.06.19 |
컴퓨터 네트워크 (0) | 2023.06.19 |
컴퓨터 네트워크의 소개 (0) | 2023.06.13 |