인터넷 네트워크
포스트
취소

인터넷 네트워크

인터넷 통신

  • 클라이언트와 서버가 가까이에 있다면 단순히 케이블을 연결해서 처리할 수도 있다.
  • 그러나 실제로는 멀리있는 서버와 통신하는 경우가 대부분을 차지한다.
  • 멀리있는 서버와 통신하기 위해서는 인터넷을 통해서 통신해야 한다.
  • 인터넷을 통해서 통신하기 위해서는 여러 종류의 케이블들과 중간 서버 노드들을 거치는 등 복잡한 상황이 자주 등장한다.
  • 인터넷을 통해서 통신할 때는 전송한 데이터가 목적지까지 안전하게 도착했는지 알 수 있는 방법이 필요하다.

IP

IP(Internet Protocol)란?

  • 인터넷이 통하는 네트워크에서 어떤 정보를 수신하고 송신하는 통신에 대한 규약
  • 인터넷에서 가장 중요한 프로토콜 중 하나
  • 모든 인터넷 트래픽의 기반 역할을 한다.
    • 예시 : TCP, UDP, HTTP, HTTPS 등

IP의 역할

  • 데이터 주소 지정
    • IP는 각 컴퓨터와 장치에 고유한 IP 주소를 할당하여 인터넷에서 식별할 수 있도록 한다.
  • 패킷화
    • IP는 데이터를 패킷(Packet)이라고 불리는 작은 단위로 나누어 전송한다.
    • IP 패킷은 다양한 정보를 가지고 있다.
  • 라우팅
    • IP는 각 패킷에 목적지 주소를 지정하여 네트워크를 통해 전송한다.
  • 오류 감지 및 수정
    • IP는 데이터 전송 과정에서 발생하는 오류를 감지하고 수정한다.

IP 프로토콜의 한계점

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 패킷이 도중에 사라지는 경우
    • 패킷이 순서대로 오지 않는 경우
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 어플리케이션이 둘 이상인 경우

IP 패킷의 구성

  • 구성
    • IP 패킷 > 전송 데이터
  • IP 패킷
    • 출발지 IP 주소
    • 목적지 IP 주소
    • 기타 등등
  • 전송 데이터

TCP

TCP(Transmission Control Protocol)란?

  • 네트워크 망에 연결된 컴퓨터 프로그램 간 데이터 교환을 제어해주는 프로토콜
  • IP 프로토콜 위에서 IP 프로토콜을 보완하는 역할을 한다.

TCP의 역할

  • 연결 관리
    • 송신자와 수신자 간에 가상적인 통신 채널을 설정하고 관리한다.
    • 3-way handshake 과정을 통해 연결을 설정한다.
    • 4-way handshake 과정을 통해 연결을 종료한다.
  • 신뢰성 있는 데이터 전송
    • 데이터를 패킷으로 나누어 전송하고, 각 패킷에 순서 번호를 부여하여 순서대로 전달되도록 한다.
    • 오류 검증 체크섬을 사용하여 데이터 손실을 감지하고, 손실된 데이터는 재전송한다.
  • 흐름 제어
    • 송신자와 수신자의 버퍼 크기를 고려하여 데이터 전송 속도를 조절한다.
    • 윈도우 사이즈를 사용하여 송신자가 한 번에 전송할 수 있는 데이터 양을 제어한다.
  • 혼잡 제어
    • 네트워크 혼잡을 감지하고, 혼잡을 줄이기 위해 데이터 전송 속도를 조절한다.
    • 슬로우 스타트 알고리즘과 컨제스션 어보이던스 알고리즘을 사용하여 혼잡을 관리한다.

TCP의 장점

  • 신뢰성
    • TCP는 데이터 전송 과정에서 오류가 발생할 경우 재전송 처리를 하여 신뢰성 있는 데이터 전송을 보장한다.
  • 순서 보장
    • TCP는 데이터 세그먼트가 도착 순서를 보장한다.
  • 흐름 제어
    • TCP는 송신측과 수신측의 버퍼 크기를 고려하여 데이터 전송 속도를 제어한다.
  • 혼잡 제어
    • TCP는 네트워크 혼잡 상황을 감지하여 데이터 전송 속도를 조절하여 혼잡을 완화한다.
  • 보안
    • TCP는 연결 설정 과정을 통해 서로 인증하고 데이터 암호화 등의 보안 기능을 제공한다.

TCP의 단점

  • 느린 속도
    • TCP는 연결 설정 과정과 오류 처리 과정으로 인해 UDP보다 속도가 느리다.
  • 높은 오버헤드
    • TCP는 헤더 정보가 많아 UDP보다 오버헤드가 높다.
  • 복잡성
    • TCP는 구현이 복잡하고 사용하기 어렵다.

TCP/IP 패킷의 구성

  • 구성
    • IP 패킷 > TCP 세그먼트 > 전송 데이터
  • IP 패킷
    • 출발지 IP 주소
    • 목적지 IP 주소
    • 기타 등등
  • TCP 세그먼트
    • 출발지 PORT
    • 목적지 PORT
    • 전송 제어
    • 순서
    • 검증 정보
    • 기타 등등
  • 전송 데이터

UDP

UDP(User Datagram Protocol)란?

  • IP를 사용하는 네트워크 내에서 컴퓨터간 메시지들이 교환될 때 제한된 서비스만 제공하는 프로토콜
  • TCP와 유사하지만 연결 지향이 아닌 비연결 지향 방식으로 데이터를 전송한다.

UDP의 역할

  • 데이터그램 전송
    • UDP는 데이터그램이라는 단위로 데이터를 전송한다.
    • 데이터그램은 헤더와 데이터로 구성되며 헤더에는 소스 포트 번호, 목적지 포트 번호, 길이, 체크섬 등의 정보가 포함된다.
  • 포트 번호 매핑
    • UDP는 포트 번호를 사용하여 애플리케이션을 식별한다.
    • 출발지(소스) 포트 번호는 데이터를 보내는 애플리케이션을 식별한다.
    • 목적지 포트 번호는 데이터를 받는 애플리케이션을 식별합니다.
  • 오류 검사
    • UDP는 체크섬을 사용하여 데이터 전송 오류를 검사한다.
    • 체크섬은 데이터그램의 헤더와 데이터를 기반으로 계산되며 수신 측에서 검증된다.

UDP의 장점

  • 빠른 속도
    • UDP는 연결 설정 과정 없이 데이터를 전송하기 때문에 TCP보다 빠른 속도로 데이터를 전송할 수 있다.
  • 낮은 오버헤드
    • UDP는 TCP보다 헤더 정보가 적기 때문에 오버헤드가 낮다.
  • 간편함
    • UDP는 TCP보다 구현이 간단하고 사용하기 쉽다.

UDP의 단점

  • 신뢰성 부족
    • UDP는 데이터 전송 과정에서 오류가 발생할 수 있다.
    • 오류 발생 시 재전송 처리를 하지 않는다.
  • 순서 보장 부족
    • UDP는 데이터그램이 도착 순서를 보장하지 않는다.
  • 보안 취약점
    • UDP는 연결 설정 과정 없이 데이터를 전송하기 때문에 spoofing 공격 등의 보안 취약점에 취약하다.

PORT

  • 하나의 컴퓨터가 통신할 때 IP 프로토콜만 사용하면 내가 통신을 실행한 프로세스와 응답받은 프로세스가 다를 수 있다.
  • 출발지와 목적지를 명확히 구분하기 위해 TCP/IP 패킷에는 PORT라는 정보가 들어간다.
  • PORT는 같은 IP 내에서 프로세스를 구분하기 위해 사용한다.
  • 0번에서 65535번까지 할당할 수 있다.
  • 0번에서 1023번까지는 잘 알려진 포트이기 때문에 사용하지 않는 것이 좋다.
    • FTP : 20, 21
    • TELNET : 23
    • HTTP : 80
    • HTTPS : 443

DNS

  • IP 주소는 기억하기 어렵고, 변경될 수 있다.
  • IP 주소의 문제를 해결하기 위해 DNS가 도입됬다.
  • DNS란 Domain NAme System의 약자로 인터넷 상의 전화번호부 역할을 한다.
  • 웹 서비스 제공자는 각 서비스의 IP 주소를 고유한 이름으로 DNS 서버에 저장한다.
  • 클라이언트가 특정 도메인에 접근하면 DNS 서버가 해당 도메인을 사용하는 IP 주소를 반환한다.

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

  • 애플리케이션 계층 (4계층)
    • HTTP
    • FTP
  • 전송 계층 (3계층)
    • TCP
    • UDP
  • 인터넷 계층 (2계층)
    • IP
  • 네트워크 인터페이스 계층 (1계층)

출처

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.