인터넷 네트워크
🙊

인터넷 네트워크

Created
Dec 24, 2023 11:33 AM
Last edited time
Last updated January 23, 2024
Tags
CS
HTTP
Language
None
URL
모바일 앱 개발자, 웹 개발자, 웹 프론트엔드 개발자, 백엔드 개발자는 모두 HTTP를 필수로 잘 알고 있어야한다.

인터넷 통신

인터넷 망은 상당히 복잡하며 이를 이해하기 위해서는 IP 에 대해서 잘 알아야 한다.

IP (Internet Protocol)

IP 패킷 정보 : 출발지 IP, 목적지 IP, 기타 …

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라진다면?
    • 패킷이 순서대로 안온다면?
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?
대략 1500 바이트 크기로 패킷을 구성
 

TCP, UDP

TCP

notion image
  1. 프로그램이 메세지 생성
  1. SOCKET 라이브러리를 통해 전달
  1. TCP 정보 생성, 메세지 데이터 포함
  1. IP패킷 생성, TCP 데이터 포함
notion image
 

TCP 특징 (전송 제어 프로토콜, Transmission Control Protocol)

  • 연결지향 - TCP 3 way handshake (가상 연결)
    • notion image
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

UDP

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결 지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 대신 빠름
  • IP와 거의 같지만 + PORT + 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요
 
최근에는 UDP가 굉장히 뜨고 있다. 근데 기본적으로는 TCP 많이 사용중
 

PORT

간단히 프로세스를 구별하는 것 이라고 생각하면 된다.
IP 만으로는 해결이 불가능 하기 때문에 TCP 세그먼트에 PORT 정보를 담아준다.
아파트 몇동 = IP
몇호 = PORT

DNS

도메인 네임 시스템 (Domain Name System)
IP는 변하기 쉽고 외우기 어려운데 도메인 명을 등록해서 사용할 수 있도록 도와준다.
 

Loading Comments...