본문 바로가기
HTML

인터넷 네트워크 ( IP / TCP / UDP / PORT / DNS )

by 당도-50% 2024. 11. 5.

•  인터넷 네트워크는 복잡하다. •


참고) 인터넷 프로토콜 스택의 4계층

애플리케이션 계층 HTTP, FTP
전송 계층 TCP, UDP
인터넷 계층 IP
네트워크 인터페이스 계층  

 


 

** IP (인터넷 프로토콜) **

복잡한 인터넷 망에서 정보를 목적지까지 전달하기 위해 IP 주소를 부여하여,
네트워크 상의 장치를 식별하고 데이터 전송을 관리한다.

 

* IP의 역할

  • 데이터 전달 : 지정한 IP 주소(IP Address)에 데이터 패킷을 전달
  • 패킷 전송 : 패킷(Packet : Package + Bucket)이라는 통신 단위로 나누어 데이터 전달

 

* IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 전송한다.
  • 비신뢰성 : 도중에 패킷이 사라지거나 (패킷 소실), 패킷 전달 순서에 문제가 발생 할 수 있다.
  •                  (패킷이 약1500byte 이상이되면 나눠서 보내는데 이때 순서에 문제가 생길 수 있다.)
  • 프로그램 구분 불가 : 같은 IP를 사용하는 서버에서 여러 개의 애플리케이션이 동시에 통신할 경우, IP 만으로는 식별할 수 없다.

 

→ 이런 한계를 보완하기 위해 TCP가 사용된다. 

 

 

 


 

**  TCP **

전송 제어 프로토콜 ( Transmission Control Protocol )
연결을 설정하고 데이터 전송 과정에서 안정성을 제공한다.
오늘날 대부분의 애플리케이션에서 TCP를 사용한다.

 

* TCP 특징

  • 연결지향성 : TCP 3 way handshake (가상 연결) - 연결 여부를 확인 후 전송한다.
  • 데이터 전달 보증 : 패킷 손실이 발생한 경우 이를 감지하고, 누락된 패킷을 재전송한다.
  • 순서보장 : 여러 패킷으로 나뉘어 전송된 데이터는 원래 순서대로 도착하도록 보장된다.
  • 신뢰할 수 있는 프로토콜 : 데이터 전송 중 연결 상태와 전송 결과를 지속적으로 확인 → 신뢰성 높은 데이터 전송을 보장한다.

 

  • TCP 3 way handshake (가상 연결)  -  이 연결은 물리적 연결이 아니라 네트워크 상의 논리적 연결로, 중간에 여러 노드가 포함될 수 있다.

  • 데이터 전달 보증 - 패킷 누락시 알 수 있다.

  • 순서 보장

기본적으로 잘못된 순서부터 재요청 하지만, 서버 내부에서 최적화도 가능하다.

 

 

 


 

 

** UDP **

사용자 데이터그램 프로토콜 (User Datagram Protocol)
데이터 전송시 속도와 단순함을 우선시하는 프로토콜로, HTTP/3 등의 최신 네트워크 프로토콜에서도 사용된다.

 

* UDP 특징 (http3)

  • 기능이 거의 없는 간단한 프로토콜로, 흔히 하얀 도화지에 비유된다.
  • 비연결성 : 연결지향 = TCP 3 way handshake 안된다
  • 데이터 전달 보증 안됨 : 데이터가 손실되더라도 UDP는 이를 확인하지 않는다.
  • 순서보장 안됨
  • 속도 우선 : 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠르다. (실시간성이 중요한 애플리케이션에 적합)

 

즉, IP와 거의 같고, PORT체크섬 정도가 추가되어있어,  프로세스 구분과 데이터 오류 검출 정도가 가능하다.

하지만, 신뢰성과 순서 보장 기능이 없기 때문에 애플리케이션에서 추가적인 작업을 통해 보완해야 한다.

 


 

** PORT **

PROT번호는 동일 IP주소 내에서 여러 프로세스 구분해준다.

 

* PORT 사용

  • 포트 번호 범위 : 0 ~ 65535 할당 가능하다.
  • 0 ~ 1023 포트 번호는 잘알려진 포트로, 사용을 지양하는 것이 좋다.
  • 예시
    • FTP: 20번(데이터 전송), 21번(제어)
    • TELNET: 23번 (원격 접속)
    • HTTP: 80번 (웹사이트 접속)
    • HTTPS: 443번 (보안 웹사이트 접속)

 

 


 

 

** DNS **

도메인 네임 시스템 (Domain Name System) : 도메인 명을 해당하는 IP 주소로 변환해주는 시스템이다.
IP는 기억하기 어렵고, 변경될 수 있기에 DNS 사용한다. 

 

* DNS 사용 방법

  1. 도메인 구매 및 등록 : 사용자는 도메인 등록 대행사나 호스팅 제공업체를 통해 도메인을 구매하고 DNS 서버에 등록할 수 있다.
  2. DNS 서버에 등록 : 등록된 도메인은 DNS 서버에 저장되고, 이를 통해 사용자가 웹사이트에 접속할 때 자동으로 IP 주소로 변환다.

 

* DNS 작동 방식

  1. 사용자가 웹 브라우저에 도메인 이름을 입력하면, 로컬 DNS 서버에서 먼저 해당 도메인의 IP 주소를 확인한다.
  2. 만약 로컬 서버에 정보가 없으면 최상위 DNS 서버로 요청이 전송되고, 단계별로 해당 IP 주소를 찾게 된다.
  3. 찾은 IP 주소는 사용자의 컴퓨터로 반환되며, 이를 통해 웹사이트에 연결된다.

 

 

 

 

참고 : 모든 개발자를 위한 HTTP 웹 기본 지식 강의 | 김영한 - 인프런

 

모든 개발자를 위한 HTTP 웹 기본 지식 강의 | 김영한 - 인프런

김영한 | 실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연

www.inflearn.com

 

'HTML' 카테고리의 다른 글

URI & 웹 브라우처 요청의 흐름  (0) 2024.11.06