LESSON 26. 포트 번호의 구조
1. 포트 번호란?
•
전송 계층의 역할 : 전송된 데이터의 목적지가 어떤 애플리케이션(웹 브라우저, 메일 등)인지 구분 → 포트 번호를 이용한다
•
일반적으로 unsigned short의 2바이트 정수형을 사용
•
프로세스 식별자로 이해하는게 좋다
출발지 포트 번호, 목적지 포트 번호
•
포트 번호는 출발지 / 목적지 포트 번호가 필요하다.
•
포트 번호가 없으면 컴퓨터에 데이터가 도착하더라도 애플리케이션까지 도착할 수 없다.
•
0 ~ 65535번을 사용
포트의 종류
•
0번 ~ 1023번 : 잘 알려진 포트 (well-known port)
•
1024번 ~ 49151번 : 등록된 포트 (registered port)
•
49152번 ~ 65535번 : 동적 포트 (dynamic port)
잘 알려진(Well-known) 포트
•
주요 프로토콜이 사용되도록 서버 측에 예약되어 있는 포트 (0 ~ 1023번 포트)
•
IANA에서 관리한다. Internet Assigned Numbers Authority
•
Linux, Unix 에서 root 권한으로만 포트를 열 수 있다.
잘 알려진 포트와 애플리케이션
포트 번호에 강제성은 없기에 지정된 포트 번호 말고 다른 번호를 지정할 수 있다.
랜덤 포트
•
클라이언트 측의 송신 포트 (1025번 이상 포트)
•
등록 포트(Registered) (1024 ~ 49151) 잘 알려져 있는 프로그램들이 아닌 다른 용도의 프로그램들이 사용
•
동적 포트(Dynamic) (49152 ~ 65535) - 임시 포트들. 어떤 프로세스들에게 임의로 사용 가능
등록된 포트 예시
•
1433번 : MSSQL : 마이크로소프트(MS)에서 제공하는 데이터베이스 하부 언어(SQL)를 사용하기 위한 포트
•
3306번 : MySQL : SQL을 사용하는 공개 소스의 관계형 데이터베이스 관리 시스템(RDBMS)을 사용하기 위한 포트
•
3389번 : 원격 접속 : 원격 접속을 사용하기 위한 포트
•
8080번 : HTTP 대체 : HTTP 포트(80번)를 대체할 수 있는 포트
포트번호를 통한 애플리케이션 확인
웹 브라우저에 접속 시 임의의 포트가 자동으로 할당된다.
→ 서버 측에서는 포트 번호를 정해 두어야 하지만, 클라이언트(프로그램) 측은 정하지 않아도 된다.
→ 랜덤 포트 중에서 하나를 사용(1024 ~ 65535)
포트 번호에 강제성은 없다
위와 같이 웹 페이지의 포트 번호를 바꿀 수 있다.
하지만 동적 포트는 서버 소켓 포트로는 사용하면 안된다.
→ 누군가 먼저 동적 포트를 사용 시 서버 프로그램이 기동되지 않는다.
LESSON 27. UDP의 구조
1. UDP란?
UDP
•
효율성을 중시하는 비 연결형 통신
•
데이터를 데이터그램 단위로 캡슐처리하는 프로토콜
•
데이터를 서로 다른 경로로 독립적으로 처리
→ 연결을 위해 할당되는 논리적인 경로가 없음
→ 각각의 패킷은 다른 경로로 전송
→ 각각의 패킷은 독립적인 관계
UDP 의 장점
•
데이터를 효율적으로 빠르게 보낸다
→ 스트리밍 방식으로 전송하는 동영상 서비스에 사용
2. UDP 헤더란?
UDP 헤더
올바른 목적지의 애플리케이션으로 데이터를 전송하기 위해 필요한 정보가 기록되어 있다.
•
Source port : 시작 포트
•
Destination port : 도착지 포트
•
Length : 길이
•
Checksum : 오류 검출 - 중복 검사
UDP 데이터그램
UDP 헤더가 붙은 데이터
TCP 송신과 UDP 송신 차이
브로드캐스트 통신
•
랜에 있는 컴퓨터나 네트워크 장비에 일괄로 데이터를 보내는 통신
•
TCP는 확인 응답을 하나씩 보내기 때문에 적합하지 않다.