네트워크 상에서 통신을 할 때 IP를 토대로 해당 서버가 있는 컴퓨터에 접근한다.
그런데 대부분의 경우 하나의 컴퓨터에는 여러 개의 서버가 실행될 수 있다.
컴퓨터에 여러 개의 서버가 실행되고 있다면, 어느 서버에 접속해야 하는지 컴퓨터에게 알려주어야 한다.
이 때 사용되는 것이 포트 번호이다.
프로토콜별 포트 번호 정리
[번호/이름/역할]
20 / FTP / 데이터전송포트
21 / FTP / 제어포트
22 / SSH / ssh,sftp 같은 프로토콜 및 포트 포워딩
23/ Telnet / 암호화 되지 않은 텍스트 통신
25 / SMTP / 이메일 전송 프로토콜
80 / HTTP / 웹 페이지 전송 프로토콜
443 / HTTPS / HTTP에 보안 기능을 추가한 프로토콜
514 / Syslog / 시스템 로그 전송 프로토콜
123 / NTP / 시간동기화 프로토콜
53 / DNS / Domain Name System (클라이언트와 서버의 통신에 중요한 역할)
위와 같이 특정 프로토콜로 통신을 하는 서버 프로그램은 특정 포트 번호를 사용하도록 정해져 있기 때문에
https://www.google.com을 입력해도 https://www.google.com:443로 입력이 되어진다.
원래는 포트번호를 써주어야 맞는데, 포트 번호를 생략해도 된다.
즉, http, https 같은 프로토콜 정보를 보고 브라우저는 자동으로 그에 맞는 포트 번호를 설정하고 서버에 접속을 시도한다.
포트리스닝
포트리스닝이란, 포트가 해당 연결에 대한 반응을 하고 있는지를 의미한다.
기본적으로 웹 서버는 80번 포트를 리스닝하고 있다.
사용자가 http://www.naver.com을 입력하면, 해당 컴퓨터의 80번 포트로 자동 연결된다.
http://www.naver.com:1337 을 입력하였을 때는 반응을 하지 않는다.
이 때, 웹서버가 응답해주기 위해서는 웹서버가 1337번 포트를 리스닝하게 설정 해주면 된다.
인바운드 / 아웃바운드
인바운드는 메시지가 서버로 가는 것이다.
아웃바운드는 모든 처리가 끝난 뒤, 메시지가 클라이언트로 오는 것이다.
'CS > 네트워크' 카테고리의 다른 글
3-tier architecture (0) | 2024.06.26 |
---|---|
DHCP (0) | 2023.01.05 |
네트워크 CS 예상 문제 (0) | 2022.08.05 |
네트워크 계층, 패킷, Domain (0) | 2022.04.09 |
서버 언어, 구조, WAS (0) | 2022.03.29 |