본문 바로가기

인터넷 통신 (TCP/IP 4계층)

by 커피는아아 2021. 6. 28.
반응형

TCP/IP 4계층

  • OSI 7계층 보다 보다 간소화 된 모델
  • 애플리케이션 계층 - HTTP, FTP
  • 전송계층 - TCP, UDP
  • 인터넷 계층 - IP
  • 네트워크 인터페이스 계층(랜카드, Mac등) (마지막 포장)

인터넷 통신

  • 클라이언트, 서버가 인터넷 환경에서 통신하는 것
  • 굉장히 복잡하므로 각자의 주소(IP)가 필요하다.

패킷

  • 패키지와 , 버킷의 합성어
  • 다중 포장한 선물 상자라 생각

IP (인터넷 프로토콜)

  • 복잡한 인터넷 망에서 목적지를 찾을 수 있게 하는 주소다
  • 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달
    • 100.100.100.1(클라이언트 패킷 전달) → 200.200.200.2 (서버 패킷 전달) → 100.100.100.1
  • 한계
    • 비 연결성
      • 패킷을 받을 대상이 없거나 서비스 불능 상태에서도 패킷 전송 (우편 보내듯이)
    • 비 신뢰성
      • 중간에 패킷이 사라지면?
      • 패킷이 순서대로 전달 되지 않으면? (world hello)
    • 프로그램 구분
      • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

TCP (전송 제어 프로토콜)

  • IP 프로토콜의 한계를 보완하며 신뢰할 수 있는 프로토콜이다. 현재 대부분 TCP를 사용한다.
  • 연결지향 - 3 way handshake (논리적인 연결, 가상 연결)
    1. Sync (클라)
    2. Syn + Ack (서버)
    3. Ack (클라)
    4. 데이터 전송
  • 데이터 전달 보증
    • 데이터 전송 → 데이터잘 받았음을 서버에서 보내줌
  • 순서 보장
    • 패킷 1, 패킷2 패킷3 순서로 전송 → 패킷1, 패킷3, 패킷2로 도착
    • 패킷 2부터 재전송 요청

UDP

  • 3way, 데이터 전달 보증, 순서보장 하지 않음
  • TCP 대비 단순하고 빠름
  • IP프로토콜에서 PORT 체크섬만 된다
    • 하나의 IP에서 프로그램을 구분해준다.
  • 영상전달시 사용하는 것이었으나 최근에는 이마저도 TCP
  • http3 스펙에 오면서 각광받고 있다.

PORT

  • 하나의 IP에 게임, 화상통화, 웹브라우저 요청을 한번에 하려면?
  • IP 목적지에서 어플리케이션을 구분하기 위해 존재함
  • 같은 IP 내에서 프로세스 구분 (IP가 아파트면, PORT는 호수)

DNS (도메인 네임 시스템)

  • IP는 변경될 수 있다. (100.100.100.1)
  • 전화번호부, 도메인 명을 IP 주소로 변환 시켜준다.
  • IP기억하기 어려운 문제와 IP변경시 문제를 해결해준다.

Socket 라이브러리

  • 애플리케이션 계층에서 전송계층으로 전달할 때 이용된다.

Reference

  • 모든 개발자를 위한 HTTP 웹 기본 지식 (김영한)