TCP/IP - FTP, 3-way Handshaking
- 호스트 to 호스트로 데이터를 전송하는데 사용되는 표준 프로토콜
- TCP를 사용하며 서버-클라이언트 모델을 구성
- FTP 클라이언트 프로그램을 이용하여 FTP 서버에 접속 후 파일을 송수신
- FTP는 사용자 ID와 패스워드를 입력 받아 인증을 수행(암호하 되진 않음)
클라이언트에서 한 프로세서는 서버에서 한 프로세스로부터 서비스를 제공받음
- 각 프로세스를 구분하기 위해 Port Number 사용
잘 알려진 포트(Well-Known Port Number)
- 0 ~ 1023 번호 사용
- TCP/IP에서 사용되는 보편적인 포트 번호
- ICANN에서 할당되고 관리 됨
등록된 포트 (Registered Ports)
- 1024부터 49,151 사이의 번호는 ICANN에 의해 사전에 할당되거나 관리되진 않음
- 중복을 방지하기 위해 ICANN에 등록될 수 있음
동적 포트 (Dynamic Ports)
- 49,152 ~ 65,535 사이의 번호는 관리되지 않고 등록되지도 않음
- 개인적인 포트 번호로 사용 가능
포트 번호를 사용한 연결
- 랜덤 포트 번호를 사용하는 클라이언트가 잘 알려진 포트 번호를 사용하는 서버에 연결을 요청
- 서버는 클라이언트가 보낸 정보에 있는 포트 번호를 사용해 응답 생성
소켓 주소
- 전송 계층 프로토콜에선 연결을 만들기 위해 IP 주소와 포트 번호가 모두 필요함
- IP 주소와 포트 번호를 결합한 주소를 소켓 주소라고 함
- 인터넷 상에서 전송 계층의 서비스를 이용하기 위해 한 쌍의 소켓 주소가 필요
TCP에서의 연결
- 발신지와 목적지 사이의 논리적 연결을 수립
- 전체 메시지에 대한 ACK 프로세스를 명확히 하고 파손되거나 손실된 패킷을 재전송 가능하게 함
- IP 서비스를 이용해 개별 세그먼트를 수신 프로세스로 전송, 이때 연결은 TCP가 제어
- 세그먼트가 손실되거나 파손되면 재전송
- 세그먼트 순서가 바뀐 채로 도착하면 TCP는 세그먼트를 임시 저장 후에 잃어버린 세그먼트가 도착하면 순서에 맞춰서 전달
3-Way Handshaking
연결하고자 하는 두 장치 간의 논리적 접속을 성립하기 위해 사용하는 연결 확인 방식
- Passive Open: 서버에서 프로세스를 시작하면서 연결을 받을 준비가 되었음을 알림
- Active Open: 클라이언트가 서버에 연결할 때 특정 서버로 TCP 연결을 하도록 함
- TCP는 세 번의 세그먼트를 주고 받아 연결
- 클라이언트가 [SYN] 세그먼트를 서버로 전송
- 클라이언트 -> 서버 방향의 통신을 위한 시퀀스 번호를 서로 동기, 이때 시퀀스 번호 하나 소비
- 서버는 두 번재 세그먼트인 [SYN + ACK] 세그먼트를 클라이언트에 전송
- 서버 -> 클라이언트 방향의 통신을 위한 새로운 시퀀스 번호 전달
- 클라이언트는 세 번째 세그먼트인 [ACK] 세그먼트를 서버로 전달
- 서버 -> 클라이언트 방향의 통신을 위한 새로운 시퀀스 번호에 대한 확인 응답 (이 때 시퀀스 번호 소비 X)
4-Way Handshaking
두 장치 간의 연결을 해제할 때 주고받는 확인 작업
'정보보안 > 정보보안 기사' 카테고리의 다른 글
WebHacking - OWASP Top 10(2019.ver), 웹 보안 (0) | 2022.04.19 |
---|---|
이메일 보안 기술 (0) | 2022.04.15 |
FTP 보안 위협 및 대책 (0) | 2022.04.13 |
FTP - TFTP (0) | 2022.04.13 |
FTP 연결의 종류 - Active, Passive (0) | 2022.04.12 |