트랜스포트 계층
컴퓨터 안까지 들어온 데이터를 각 프로그램가지 전달하는 역할을 한다.
여러 기기로부터 받은 데이터는 트랜스포트 계층에서 포트 번호를 기준으로 분류되어, 애플리케이션 계층에 전달된다.
애플리케이션 계층에는 다양한 프로토콜이 있었지만, 트랜스포트 계층의 대표적인 프로토콜은 TCP와 UDP 두 가지가 존재한다.
TCP : 웹, 이메일과 같이 데이터가 정확하게 전달되어야 하는 통신에 사용
-> 수신지에 데이터가 정확하게 전달되도록 전송 속도 조절, 도달하지 않은 데이터 재전송
UDP : Voip, 동영상 스트리밍과 같이 빠르게 전달해야 하는 통신에 사용
-> 동영상 스트리밍 등 실시간 통신이나 전송 속도가 중요한 통신에 사용
트랜스포트 계층의 역할
-애플리케이션 계층과 인터넷 계층 사이에 위치
-인터넷 계층 : 데이터를 수신지 컴퓨터까지 전달
-트랜포트 계층 : 컴퓨터가 받은 데이터를 애플리케이션까지 전달(이 때, 애프리케이션의 구분은 포트 번호로 한다.)
포트 번호
트랜스포트 계층에는 인터넷 계층에서 전달한 다양한 종류 패킷이 들어온다.
이 패킷들은 애플리케이션 계층에 있는 각각의 애플리케이션들에게 전달되며, 이 때 포트 번호를 통해 어느 애플리케이션으로 보내져야 할지 결정된다.
포트 번호의 범위 : 0번지~65535번지.
-> Well-known ports(웰 노운 포트) : 0~1023번. 서버 프로그램이 수신 대기할 때 사용하는 포트. 애플리케이션 계층에서 가장 많이 사용됨.
-> Registered ports(레지스터드 포트) : 1024~49151번. 벤더가 할당받아 사용하는 포트
-> Dynamic ports(다이내믹 포트) : 49152~65535번. 클라이언트 프로그램이 사용하는 포트. 클라이언트는 그때그때 비어있는 포트번호를 할당받아 사용하기 때문에, 매번 다르다.
주요 Well-known ports
포트 번호 |
프로토콜 |
20 |
FTP (액티브 모드에서는 데이터 커넥션, 패시브 모드에서는 랜덤 포트를 사용) |
21 |
FTP (컨트롤 커넥션) |
22 |
SSH (원격 제어. 보안 기능 있음) |
23 |
Telnet (원격 제어) |
25 |
SMTP (이메일 전송) |
80 |
HTTP (웹) |
110 |
POP3 (이메일 수신) |
클라이언트와 서버의 접속 과정
클라이언트와 서버가 서로 통신하기 위해 [클라이언트가 사용할 포트 결정] -----> [서버의 포트에 접속]
서버의 클라이언트 식별 방법
서버 측 포트 번호는 고정되어 있기 때문에, 여러 클라이언트에서 서버의 포트로 요청이 몰릴 수 있다.
즉, 서버는 같은 포트를 사용하는 반면, 접속을 요청한 클라이언트는 서로 다른 IP 어드레스와 포트 번호를 사용한다.
서버는 클라이언트의 [IP 어드레스 + 포트 번호]를 조합하여 클라이언트를 식별하기 때문에, 여러 클라이언트와 통신해도 혼선이 발생하지 않는다.