인터넷 네트워크 기본 지식

헤일리의 개발 일지·2024년 4월 2일

인터넷 네트워크

  • 인터넷 통신
  • IP(Internet Protocol)
  • TCP, UDP
  • PORT
  • DNS

인터넷 통신

멀리 떨어져있는 두 컴퓨터끼리 통신할 때, 인터넷을 통해서 통신합니다.

복잡한 인터넷 망을 통하여 메시지가 서로에게 전달이 되어야 합니다.
인터넷은 수많은 노드들로 복잡하게 이루어져 있는데 목적지까지 어떻게 잘 도착할 수 있을까요?


IP(Internet Protocol)

복잡한 인터넷 망을 통해 통신하는데 사용되는 최소한의 규칙이 바로 IP입니다.

IP의 역할은 아래와 같습니다.

  • 지정한 IP 주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달

여기서 잠깐.
패킷은 또 무엇일까요?

통신 메시지를 보낼 때, 그냥 보내는 것이 아니라 IP Packet이라는 형식에 맞추어서 보냅니다.
Packet에는 출발지, 목적지 주소 등 정보를 포함하고 있고,
이를 통해 정보를 확인하며 목적지까지 메시지가 잘 전달되는 것입니다.

IP 프로토콜의 한계

  • 비연결성
    - 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    - 인터넷 상의 중간 노드가 갑자기 꺼져버린다든가 하는 문제로 패킷 유실될 수 있음
    - 전송하려는 패킷 용량이 큰 경우 쪼개서 보내지는데 각 패킷들이 다른 경로로 전달될 수 있다.
  • 프로그램 구분
    - 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

TCP, UDP

위에서 확인한 IP 프로토콜의 한계를 TCP 프로토콜이 해결해줍니다.
UDP도 이에 도움을 줍니다.

우선, 프로토콜 계층 관점에서 메시지가 어떻게 전달되는지 살펴 봅시다.

위 사진에서 볼 수 있듯이, 메시지에 IP 정보, TCP 정보들을 포함하여 전달합니다.

그렇다면 각 정보가 포함되어 생성된 패킷을 한 번 살펴보시죠.

IP 패킷에는 출발지, 목적지 IP에 대한 정보를
TCP 패킷에는 출발지, 목적지 PORT 및 전송 제어, 순서, 검증 정보들이 포함됩니다.

TCP에 포함된 정보를 보니 감이 오시나요?!
바로 IP 프로토콜에서 확인한 문제들을 해결에 주는데 도움을 줍니다.

TCP는 전송 제어 프로토콜로 아래와 같은 특징이 있습니다.

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

그렇다면 UDP(User Datagram Protocol)는 어떤 특징이 있을까요?

  • 기능이 거의 없음
  • 연결지향 X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
    -> IP와 거의 같음 + Port, 체크섬 정도만 추가
    -> 애플리케이션에서 추가 작업 필요 (원하는대로 최적화 가능)

Port

Port는 서버 안에서 돌아가는 애플리케이션을 구분하는 값입니다.
쉽게 얘기하면 IP는 거주하는 아파트 이름, Port는 동,호수라고 생각할 수 있습니다.

DNS

IP를 가지고 통신을 할 때, 기억하기 어렵다는 문제점이 있습니다.
또 어느 순간 IP가 바뀔 수도 있습니다.
이런 경우에 어떻게 접근을 해야 할까요?

그래서 DNS(Domain Name Service)가 존재합니다.

이는 전화번호부 같은 역할을 합니다.
DNS에 구글 IP를 달라고 요청하여 전달받고, IP를 확인한 후 통신합니다.

0개의 댓글