네트워크(9) | 4계층 프로토콜(UDP) + 포트

Jihun Kim·2021년 10월 26일
0

네트워크

목록 보기
9/13

포트번호

컴퓨터 프로그램끼리 데이터를 어떻게 주고 받을까?

컴퓨터끼리 데이터를 주고 받는다는 말은 무엇일까?

  • 이는 클라이언트-서버 개념이라 할 수 있다.
    👉 예를 들면 게임 서버와 게임(클라이언트)가 데이터를 어떻게 주고 받는 것을 생각할 수 있다.

4계층에서 하는 일

  • 4계층은 '전송계층'이며 송신자의 프로세스와 수신자의 프로세스를 연결하는 서비스이다.
    👉 프로세스: 메모리에서 동작중인 프로그램
    👉 예를 들면 내 컴퓨터의 카톡과 상대방 컴퓨터의 카톡이 통신을 하도록 만드는 일이다.
  • 프로토콜 종류
  1. TCP 프로토콜: 연결을 지향함(연결이 된 다음 데이터를 보냄)
  2. UDP 프로토콜: 비연결 지향형 프로토콜(연결을 지향하지 않음)

포트 번호

  • 포트 번호: 4계층에서 사용하는 주소
  • 특정 프로그램이 '포트 번호'를 사용하게 된다.
    👉 프로그램 하나가 포트 번호 하나만 사용할 수 있다. 다시 말해, 하나의 포트는 하나의 프로세스만 사용 가능하다.
    👉 상대방의 여러가지 프로그램들은 내 포트 번호 하나와 연결이 가능하다.

포트 번호의 큰 분류 3가지

Well-known 포트

잘 알려진 유명한 프로그램들이 쓰는 포트 번호이다.(0~1024)

웹툰을 보려고 네이버에 접속하려면 80번 포트를 이용해 네이버 서버(http)에 접근하게 된다.

Registered 포트

예약된 포트번호

Dynamic 포트

일반 사용자들이 사용하는 포트 번호이다.
시작 포트 번호~ 마지막 포트 번호 중 아무거나 하나 사용하게 된다.

  • 시작 포트 번호: 49152
  • 마지막 포트 번호: 65535

👉 내 프로그램은 시작~ 마지막 중 하나 골라서 상대방의 서버(80 혹은 443)와 연결할 수 있다.
👉 크롬으로 네이버에 접속할 때 나는 가령 웹 브라우저에 49153 포트를 사용하고 웹 서버 접근을 위해 80번을 쓸 수 있다.

프로그램의 연결 정보 확인하기

활성 연결 테이블

  • 현재 포트 활성 여부를 확인할 수 있다.
  • 연결 정보 확인시 아래의 명령어를 이용한다.(CMD)
netstat -ano


UDP 프로토콜(비연결 지향형)

  • User Datagram Protocol의 약자로 전송 방식이 단순하고 연결된 상태로 데이터가 전달되는 것이 아니어서 서비스의 신뢰성이 낮다.
  • 데이터가 손실될 수 있어 큰 파일을 전송하지는 않는다.

UDP 프로토콜 구조

  • 8바이트로 이루어져 있다.
  1. 출발지 포트번호
  2. 목적지 포트번호
  3. 길이: UDP 프로토콜 헤더 길이 + 페이로드

UDP 프로토콜을 사용하는 프로그램

  • DNS 서버가 UDP 프로토콜을 사용한다.
    👉 "www.naver.com"이라 검색하면 DNS가 IP 주소를 알려주게 되는데, 이 때 UDP 프로토콜을 사용해서 알려준다.
  • tftp 서버: UDP로 파일을 공유한다.
  • RIP 프로토콜: 라우팅 정보를 공유한다.
    👉 라우터들끼리 서로 정보를 공유해서 최신 라우팅 테이블을 알 수 있게 해준다.

profile
쿄쿄

0개의 댓글