///////
Search
🐙

OSI 전송계층 2

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는 확인 응답을 하나씩 보내기 때문에 적합하지 않다.

LESSON 27. 정리