RangA 2023. 6. 1. 20:07

02 인터넷 프로토콜(TCP/IP)

03. TCP 계층

1) TCP(Transmission Control Protocol)

1. TCP의 기능

  • 두 종단 간 연결을 설정한 후 데이터(주소와 정보)를 패킷 단위로 교환하게 함
  • TCP는 전송 데이터의 흐름을 제어하고 데이터의 에러 유무를 검사함
  • 수신 측에서 잘못 전송된 패킷에 대해 재전송을 요구함
  • TCP는 OSI 7계층에서 전송(Transport) 계층에 해당함
  • TCP는 데이터 전송 프로토콜로 연결형(접속형) 프로토콜
  • CRC 체크와 재전송 기능을 통해 신뢰성 있는 전송을 확보함
  • Flow Control 기능을 수행하여 단계별 데이터 전송 상황을 체크함
  • 논리적인 1:1 가상 회선을 지원하여 해당 경로로만 데이터가 전달되도록 함
  • TCP를 이용하는 대표 서비스는 FTP, Telnet, HTTP, SMTP, POP, IMAP 등이 있음

2. TCP 프로토콜의 링크 설정

  • 연결형 프로토콜
  • 데이터 전송 시 상대방과 통신을 수립함
  • TCP의 통신 수립을 3단계(3-Way) 핸드셰이킹이라고 함
  • 핸드셰이킹은 제어 비트 중 SYN과 ACK를 이용함
1단계 : 수신 측에 플래그 비트 중 SYN을 1로 설정하여 전송함
2단계 : 수신 측은 STN을 1로 받았으면 SYN을, ACK를 1로 송신 측에 전달함
3단계 : 송신 측은 다시 ACK를 1로 설정하여 수신 측에 전달하면, 통신 수립된 것
  • 통신 수립 후에 데이터를 전송하므로 신뢰성이 있는 프로토콜
  • 통신 수립 단계 때문에 지연 시간이 생김
  • 수신 측에서 ACK 응답을 수신하지 못하면 재전송 기능을 이용하여 재전송을 해야 함

2) UDP(User Datagram Protocol)

1. UDP의 기능

  • 신뢰성을 보장하지 않는 비접속형 통신을 제공함
  • 메시지가 분실되거나 송신된 순서와 서로 다른 순서로 수신될 수 있음
  • 흐름 제어나 순서 제어가 없어 전송 속도가 빠르지만 신뢰성 있는 데이터 전송에는 부적합함
  • 하나의 송신 정보를 다수의 인원이 수신해야 할 경우 UDP를 사용함
  • UDP를 이용하는 대표 서비스로는 SNMP, DNS, TFTP, NFS, NetBIOS, 인터넷 게임/방송/증권 등이 있음

2. UDP 프로토콜의 링크 설정

  • 비연결형 프로토콜
  • 통신 수립 단계가 없는 프로토콜(보내면 끝)
  • 송신 측은 전송된 데이터의 확인 응답인 ACK가 없음
  • 통신 수립 단계가 없으므로 신뢰적이지 못함
  • 통신 수립 단계가 없으므로 신속함
  • 저용량의 데이터를 신속하게 처리하는 서비스에 적합함
  • UDP 헤더는 송수신 측 포트 주소와 패킷의 길이, 체스섬만 존재함

3) SNMP(Simple Network Management Protocol)

  • 네트워크 장비를 관리 감시하기 위한 목적으로 UDP 상에 정의된 응용 계층 표준 프로토콜
  • 네트워크 관리자가 네트워크 성능을 관리하고 네트워크 문제점을 찾는 것으로, 일반 사용자를 위한 응용 프로토콜이 아닌 망을 관리하기 위한 프로토콜

4) RTP(Real Time transport Protocol)

  • 실시간으로 음성이나 동영상을 송수신하기 위한 전송 계층 통신 규약
  • RTP는 인터넷상에서 실시간 트래픽을 처리하기 위해 설계된 프로토콜로 UDP와 애플리케이션 프로그램 사이에 위치함



04. IP 계층

1) IP(Internet Protocol)

  • IP는 패킷의 주소를 해석하고 경로를 결정하여 다음 호스트로 전송함
  • IP는 여러 개의 패킷 교환망들이 상호 연결을 위한 범용 비연결형 프로토콜
  • IP는 각 패킷의 주소 부분을 처리하여 패킷이 목적지에 도달할 수 있도록 함
  • IP는 OSI 7계층에서 네트워크 계층에 해당함

2) ARP(Address Resolution Protocol)

  • 호스트의 IP 주소를 호스트와 연결된 네트워크 접속 장치의 물리적인 주소(LAN Card 주소)로 번역해주는 프로토콜

3) RARP(Reverse Address Resolution Protocol)

  • 호스트의 연결된 네트워크 접속 장치의 물리적인 주소(LAN Card 주소)를 호스트 IP 주소로 번역해주는 프로토콜

4) ICMP(Internet Control Message Protocol)

  • IP 상태 및 오류 정보를 공유하며 ping에서 사용됨
  • 호스트나 라우터의 오류 상태 통지 및 예상치 못한 상황에 대한 정보를 제공할 수 있게 하는 인터넷 프로토콜
  • IP 패킷을 처리할 때 발생하는 문제를 알려주는 프로토콜
  • ICMP는 TCP/IP 기반의 인터넷 통신 서비스에서 인터넷 프로토콜로 통신 중에 발생하는 오류의 처리와 전송 경로 변경 등을 위한 제어 메시지를 처리하는 비연결성 프로토콜
  • 호스트 서버와 인터넷 게이트웨이의 상태를 알려줌
  • 네트워크 컴퓨터상에서 돌아가는 운영체제에서 오류 메시지를 전송 받는데 주로 쓰이며 인터넷 프로토콜의 주요 구성원 중 하나로 인터넷 프로토콜에 의존하여 작업을 수행함
  • ICMP를 사용하는 명령어는 Ping, Tracert, Echo 등이 있음

5) DNS

1. DNS(Domain Name Server)

  • 도메인 네임은 문자로 구성되어 있어서 숫자로 구성된 IP 주소보다 인터넷 주소를 이해하거나 기억하기 쉬움
  • 도메인 네임은 '호스트명.소속기관명.소속기관의종류.소속국가' 순으로 구성됨
  • 도메인 네임은 한글과 숫자를 섞어서 만들 수 있음
  • 도메인 네임으로 공백은 사용할 수 없음

2. DNS

  • 도메인 네임(Domain Name)을 컴퓨터가 이해할 수 있는 IP 주소로 변환해 주는 데이터베이스 시스템
  • 도메인 주소를 IP 주소로 변환시켜 주는 컴퓨터

3. DNS의 특징

  • 전 세계 모든 국가에서 사용하는 IP 주소 형식은 동일하지만 도메인 형식은 모두 다름
  • 인터넷의 모든 도메인은 전 세계적으로 고유하게 존재해야 함
  • 도메인 네임은 왼쪽에서 오른쪽으로 갈수록 상위 도메인을 의미함

4. 도메인 네임의 관리

  • 인터넷 주소로 사용하는 도메인 네임을 유일하게 관리하며 중재하는 곳이 바로 NTC(Network Information Center)
  • 국제적으로는 InterNIC이 있고 태평양 지역에는 APMIC이 있으며, 한국에는 KRNIC이 있음



05. IPv4 주소

1) IP(Internet Protocol) 주소의 개념

  • IP 주소는 전 세계 컴퓨터에 부여되는 유일한 식별자
  • IP는 각 나라의 공인 기관에서 할당하고 관리하는데, 우리나라의 경우에는 한국인터넷진흥원에서 관리함
  • IPv4는 인터넷 초기부터 현재까지 쓰고 있는 주소 체계이며 000.000.000.000과 같이 12자리 이내로 표시하며 약 43억 개를 부여할 수 있음
  • 최근에는 디바이스의 증가 IPv4가 가진 주소의 양이 부족할 수 있어 IPv6를 공표하였음
  • 현재는 IPv4와 IPv6가 공존하며 두 개의 주소 체계를 변환하여 사용하고 있으며 이를 담당하는 것을 NAT(Network Address Translator)라고 함
  • IPv6는 이전 버전에 비하여 효율적인 패킷을 처리하고 보안이 강화되었음

2) IPv4의 주소 형식

  • IPv4는 32비트 IP 주소 체계로 232개, 대략 43억 개의 IP 주소를 사용함
  • IPv4는 32비트, 8비트씩 4부분으로 구성됨
  • IPv4 주소 체계는 10진수 숫자로 표시되는 4개의 섹션들과 각 섹션 간 구분은 점(.)으로 주소를 표현함
  • 각 자리는 0부터 255까지의 숫자를 사용함

3) IPv4의 클래스(Class)

  • A 클래스

    • 상위 비트 : 0
    • 네트워크 비트 : 7
    • 호스트 비트 수 : 24
    • 호스트 개수 : 224 = 256 × 256 × 256 ≒ 16,000,000
  • B 클래스

    • 상위 비트 : 10
    • 네트워크 비트 : 14
    • 호스트 비트 수 : 16
    • 호스트 개수 : 216 = 256 × 256 ≒ 65,000
  • C 클래스

    • 상위 비트 : 110
    • 네트워크 비트 : 21
    • 호스트 비트 수 : 8
    • 호스트 개수 : 28 = 256
  • D 클래스

    • 상위 비트 : 1110
    • 네트워크 비트 : 28비트의 연속 정의
  • E 클래스

    • 상위 비트 : 1111
    • 네트워크 비트 : 미정의
  • 네트워크 비트는 A클래스인 경우에 7비트를 사용하므로 전 세계적으로 27 = 128개의 네트워크가 있다는 의미

  • 호스트의 개수는 하나의 네트워크에 속해 있는 컴퓨터에 고정 IP를 부여할 수 있는 개수를 말함

  • C 클래스인 경우에는 전 세계적으로 221개의 네트워크가 있고, 하나의 C 클래스는 256개의 고정 IP를 사용할 수 있음


4) IPv4 주소의 클래스 구분

  • A 클래스

    • 상위 비트 : 0
    • 상위 8비트(1번째) : 00000000 ~ 01111111
    • 클래스 범위 : 0.0.0.0 ~ 127.255.255.255
  • B 클래스

    • 상위 비트 : 10
    • 상위 8비트(1번째) : 10000000 ~ 10111111
    • 클래스 범위 : 128.0.0.0 ~ 191.255.255.255
  • C 클래스

    • 상위 비트 : 110
    • 상위 8비트(1번째) : 11000000 ~ 11011111
    • 클래스 범위 : 192.0.0.0 ~ 223.255.255.255
  • 예를 들어 203.123.167.56라는 IP가 있따면, 상위 첫 번째 수가 203으로 시작되는 IP 주소이므로 C 클래스에 해당되며, 네트워크 주소(대표 주소)는 203.123.167.0이 됨

  • 이때 컴퓨터에 부여할 수 있는 IP 주소는 203.123.167.1부터 203.123.167.254까지로 총 254개

  • 첫 번째 주소인 203.123.167.0은 네트워크를 대표하는 네트워크 주소로, 마지막 주소인 203.123.167.255는 네트워크에 속해 있는 모든 컴퓨터에 데이터를 보낼 수 있는 브로드케스트 주소(방송용 주소)로 사용함


5) IPv4의 주소 부족 문제 해결 방안

  1. CIDR(Classless Inter-Domain Routing)
    • 한정된 자원인 IP 주소를 쓸데없이 사용하는 것을 방지하거나 라우터의 처리 부하를 경감시킬 목적으로 개발됨
    • IP 주소 할당 방법의 하나로, 기존 8비트 단위로 통신망부와 호스트부를 구분하지 않고 사용함
  2. DHCP(Dynamic Host Configuration Protocol)
    • 자동이나 수동으로 가용한 IP 주소를 호스트에 할당함
    • 부족한 IP 주소를 해결하기 위해 몇 개의 IP를 여러 사용자가 공유할 수 있도록 인터넷에 접속할 때마다 자동으로 IP 주소를 할당해 주는 기술
    • 유동 IP를 할당함
  3. IPv4
    • 현재 사용되고 있는 32비트 IP 주소 체계인 IPv4의 주소 부족 문제를 해결하기 위해 개발되어 128비트의 주소를 사용함
    • 현재 IPv4에서 IPv6로 변화하는 중
  4. NAT(Network Address Translation)
    • 사설 IP 주소(192.168.0.1 형태)를 공인 IP 주소로 바꿔주는 주소 변환기
    • 인터넷의 공인(고정) IP 주소를 절약할 수 있음
    • 사설 IP 주소를 사용하므로 사설망을 공격자로부터 보호할 수 있음

6) IPv4 - 서브넷 마스크

  1. 서브넷 마스크(Subnet Mask)의 개념
    • 어떤 기관에서 배정 받은 하나의 네트워크 주소를 다시 여러 개의 작은 네트워크로 나누어 사용하는 방식
    • 네트워크 내에 주소에 해당하는 IP 주소 중 네트워크를 식별하기 위해 몇 비트는 네트워크 주소에 사용할 지 정의하는 것
    • 네트워크 ID 부분과 호스트 ID 부분을 구별해 줌
  2. 클래스별 서브넷 마스크
    • A 클래스 : 255.0.0.0
    • B 클래스 : 255.255.0.0
    • C 클래스 : 255.255.255.0
  3. C Class(211.168.83.0)의 네트워크 분할이 없는 경우
    • 네트워크의 논리적인 분할이 없을 경우에 255.255.255.0를 서브넷 마스크로 사용함
    • 211로 시작되었으니 C 클래스 주소이고, 대표 주소인 네트워크 주소는 211.168.83.0이 됨
    • C 클래스를 할당 받은 업체에 속해있는 컴퓨터에 부여할 수 있는 고정 IP는 254개(256개에서 네트워크 주소, 브로드캐스트 주소 제외)
    • C 클래스 전체를 하나의 네트워크로 사용할 수도 있고, 2개, 4개, 8개, 16개의 네트워크로 나누어 사용할 수도 있음
    • 5개의 네트워크로 나누어 사용할 경우, 정확히 5개로 분할해서 사용하지 못하고, 일단 8개로 나누고, 나머지 3개는 사용하지 않는 형태로 분할하는 것
    • 네트워크를 분할하지 않고 그대로 사용할 경우 255.255.255.0을 서브넷 마스크로 사용하면 됨
    • 네트워크 주소 211.168.83.0, 브로드케스트 주소는 211.168.83.255
    • 네트워크 주소는 패킷망에서 해당 네트워크까지 접근하는 주소이고, 네트워크의 대표 주소라고 할 수 있음
    • 브로드캐스트 주소는 해당 네트워크에 속해 있는 모든 컴퓨터에게 동일한 메시지를 보내기 위한 방송용 주소
    • C Class는 256개이므로 위 두 개의 주소를 빼면 254(1~254)개의 고정 IP를 사용할 수 있는 것
    • 사브넷 마스크를 255.255.255.0으로 사용하면 0~255번까지가 모두 같은 결과가 됨
    • 같은 결과가 하나뿐이므로 0~255가 하나의 네트워크에 속한 주소가 되는 것
  4. C Class(211.168.83.0)의 네트워크를 2개로 분할할 경우
    • 네트워크를 2개로 분할하려면 255.255.255.128를 서브넷 마스크로 사용하면 됨
    • 끝자리 0(00000000)에서 최상위 비트를 1로, 즉 128(10000000)로 변경하면 됨
    • 서브넷 마스크를 255.255.255.128로 사용하면 다음과 같이 1번째(0127번)와 2번째(128255번)로 결과가 나누어지므로 2개의 네트워크로 분리된 것
    • 1번째 네트워크 주소는 211.168.83.0, 브로드캐스트 주소는 211.168.83.127
    • 2번째 네트워크 주소는 211.168.83.128, 브로드캐스트 주소는 211.168.83.255