콘텐츠로 건너뛰기
Home » Blog » 1. 인터넷 네트워크

1. 인터넷 네트워크

  • http
  • 출발지 아이피 → 목적지 아이피 까지 서버 패킷을 노드에 던지면서 최종목표까지 전달

프로토콜

  • 컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규약
  • 프로토콜에는 신호 처리법, 오류처리, 암호, 인증, 주소 등을 포함한다.

IP

  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달
    • IP 패킷 정보 : 출발지 IP, 목적지 IP, 기타…
    • 패킷(Packet) : Package + Bucket

IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성 : 중간에 패킷이 사라질 수도 있고 패킷이 순서대로 안올 수 도 있음
  • 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 수 있음

기존 IP 프로토콜의 한계 → TCP 활용으로 극복

TCP/IP 패킷 정보

TCP (전송 제어 프로토콜 = Transmission Control Protocol)

  • 연결 지향 – TCP 3 way handshake (가상 연결)
    1. 클라이언트 → 서버 = SYN
    2. 서버 → 클라이언트 = SYN + ACK
    3. 클라이언트 → 서버 = ACK
      • – 이후 데이터 전송-
  • 데이터 전달 보증
    1. 데이터 전송
    2. 데이터 잘 받았다는 응답 보냄
  • 순서 보장
    • 클라이언트가 서버에 패킷을 순서대로 전송
    • 패킷이 순서가 다르게 도착할 경우
    • 순서가 달라진 부분부터 패킷을 다시 보내라는 응답을 클라이언트에게 리턴
    • 위 사진에 나온 것 처럼 전송 제어, 순서 정보가 TCP 내부에 있기에 가능한 것!
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

UDP (사용자 데이터그램 프로토콜 = User Datagram Protocol)

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 – TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 순서가 보장되지 않지만, 단순하고 빠름
  • 정리
    • IP와 거의 같다. +PORT +체크섬 정도만 추가
    • 애플리케이션에서 추가 작업 필요할 때 활용
  • TCP에는 규칙이 많아서 속도가 UDP에 비해 느리다. → 최적화를 위해 손을 이미 댈 수 없다 ⇒ UDP 활용

PORT(= 항구)

  • 서버 안에서 돌아가는 애플리케이션을 구분하는 용도
  • 같은 IP 내에서 프로세스 구분
  • 구분! : IP = 목적지 서버를 찾는 용도
  • TCP/IP 패킷 안에는 출발지 IP와 PORT, 목적지 IP와 PORT, 전송데이터 등이 포함되어 있다.
  • IP 가 아파트라면 포트는 호수이다.
  • 0 ~ 65535 할당 가능
  • 0 ~ 1023 : 잘 알려진 포트, 사용하지 않는 것이 좋다.
  • FTP – 20, 21
  • TELENET – 23
  • HTTP – 80
  • HTTPS – 443

IP는 기억하기 어렵다.

IP는 변경될 수 있다. → DNS 로 한계 극복


DNS (도메인 네임 시스템 = Domain Name System)

  • 전화번호부 같은 서버를 제공
  • 도메인 명을 IP 주소로 변환
    • 클라이언트가 도메인명 google.com을 요청
    • DNS 서버는 200.200.200.2 라는 IP 를 리턴
    • 향후 아이피가 변경되어도 도메인명으로 접근하기 때문에 용이하다.

정리

  • 인터넷 통신
  • IP(Internet Protocol)
    • 복잡한 인터넷 망에서 메세지를 보내기 위해서 IP가 필요하다.
    • IP에는 여러가지 한계점이 있다. (메세지 도착했는지 확인하기 어렵고 포트라는 개념이 없다)
  • TCP
    • 위의 문제를 해결해준다.
  • UDP
    • 거의 IP와 유사하다. 포트정도만 추가된 백지 상태이다. 필요하다면 기능 확장에 유리하다.
  • PORT
    • 같은 IP 안에서 통신하는 애플리케이션을 구분하기 위해서 사용
    • IP = 아파트 / PORT = 호수
  • DNS
    • IP는 외우기 어렵고 변할 수 있다.
    • 도메인 명을 등록해서 사용할 수 있게 해준다.