네트워크

#7 IP 프로토콜

bomoto 2021. 11. 14. 12:28

01 네트워크 계층의 기능

   ▷ 주요 기능

       - 라우팅

       - 혼잡 제어

       - 패킷의 분할과 병합

 

  1. 연결형 서비스와 비연결형 서비스

        ▷ 비연결형 서비스

           - 신뢰성 낮음 -> 자체적으로 오류 제어와 흐름 제어 더 많이 수행해야 함

           - 패킷이 서로 다른 경로로 전달됨 -> 순서 재조정기능 필요

           - ex) IP 프로토콜, UDP

       ▷ 연결형 서비스

           - 상대적으로 신뢰성 높음. 연결 미리 설정하여 송신

           - ex) TCP

                * UDP와 TCP는 둘 다 IP 프로토콜 위에서 동작하는 전송 계층 프로토콜이지만 UDP는 비연결형, TCP는 연결형 서비스

 

  2. 라우팅

      - 가상 회선 방식을 사용하는 연결형 서비스 - 모든 패킷 동일 경로 거침, 패킷 전달 순서도 일정.

      - 비연결형인 데이터그램 - 연결 설정 과정 없어 고정 경로 존재 X -> 패킷마다 독립적인 전달 경로

 

   ▷ 정적 & 동적 라우팅

      -  정적 라우팅: 패킷 전송 전 경로를 라우터에 미리 저장하여 중개. 정보 갱신 어려움. 혼잡도 반영 불가

      -  동적 라우팅: 경로를 네트워크 상황에 따라 변경. 획득한 경로 정보를 다른 라우터와 공유

 

  ▷ HELLO/ECHO 패킷

      - HELLO패킷: 이웃에 연결된 라우터에 HELLO패킷 전송 => 경로정보 얻음

      - ECHO패킷: ECHO패킷 전송->즉각 회신->이 과정 반복  => 평균값으로 라우터 사이 지연시간 유추

 

  ▷ 라우팅 테이블

     - 필수 정보: 목적지 호스트, 다음 홉(여러 경로 중 효과적 경로)

 

  ▷ 라우팅 정보의 처리

     - 소스 라우팅: 패킷 전송 호스트가 경로를 스스로 결정

                       모든 라우팅 정보를 송신 호스트가 관리 => 중간의 라우터들은 라우팅 테이블 관리 필요 X

     - 분산 라우팅: 전송 경로의 각 라우터가 경로 선택에 참여(데이터그램 방식에서 많이 사용)

                        장점: 호스트 수가 많아질수록 효과적

     - 중앙 라우팅: RCC(Routing Control Center)라는 특별 호스트가 모든 정보 관리

                        일반 호스트의 부담 줄임. but 네트워크 규모가 커지면 RCC에 부담-> 효율 떨어짐

     - 계층 라우팅: 분산 라우팅+중앙 라우팅. 네트워크 규모가 커지는 환경에 효과적

 

 

  3. 혼잡 제어

        - 혼잡: 패킷 수 많아져 네트워크 성능 감소한 현상

           ㄴ 발생 원인: 네트워크 처리 능력보다 지나치게 많은 패킷이 입력되면 발생

        - 혼잡 제어: 혼잡 문제 해결 방안

        - 흐름 제어: 송신 호스트와 수신 호스트 사이 점대점 전송 속도 다룸

 

    ▷ 혼잡의 원인

  1. 타임아웃 기능을 통해 패킷들이 재전송되어 쌓임 => 타임아웃 시간 늘리기 필요
  2. 패킷 도착 순서 뒤바뀌어서 수신 호스트가 패킷 버림 => 패킷 재전송해 혼잡 높임
  3. 송신 호스트에 패킷 수신했다고 바로 응답하면 개별 응답 패킷 발생함 -> 혼잡 우려 / 피기배킹 방식으로 응답 패킷 모아 응답하는 방식은 타임아웃 기능으로 재전송 유발해 혼잡 가중시킬 우려
  4. 라우팅 알고리즘: 혼잡 발생 경로보다 트래픽 적은 경로로 패킷 전송하면 혼잡 줄일 수 있음

    ▷ 트래픽 성형: 버스트(트래픽이 특정 시간에 집중) -> 혼잡 => 예측할 수 있는 전송률로 이루어지게 하는 기능 필요

              ㄴ 유명한 알고리즘: 리키 버킷(과도한 트래픽? 패킷 처리 거부, like깔때기)

    ▷ 혼잡 제거

          방법 1) 가상 회선 방식인 서브넷에서 혼잡 사라질 때까지 연결 허락 x

                      -> 근데 보통 특정 지역에서만 혼잡함. 혼잡한 곳 안 거치게 하는 방안 필요

        방법 2) 자원 예약: 전송 과정에서 사용하는 대역을 미리 할당받아 트래픽 사전 예방

                -> 단점: 그동안 다른 사용자 못씀. 통신 자원 낭비 염려 있음

        방법 3) ECN패킷(Explicit Congestion Notification) 사용: 모니터링으로 혼잡 부분에 주의표시. 이곳은 특별관리

 

 

 

 

 

02 라우팅 프로토콜

  1. 간단한 라우팅 프로토콜

        ▷ 최단 경로 라우팅: 패킷이 목적지까지 거치는 라우터 수가 최소화되도록 경로 선택. 장) 간단한 형식으로 적용 쉬움

         플러딩(Flloding): 라우터가 모든 경로로 중개

 

  2. 거리 벡터 라우팅 프로토콜

        : 자신과 직접 연결된 이웃 라우터와 라우팅 정보 교환

           [관리할 정보]

             - 링크 벡터: 이웃 네트워크 연결 정보 보관

             - 거리 벡터: 전체 네트워크에 소속된 개별 네트워크까지 거리 정보 관리

             - 다음 홉 벡터: 패킷을 전송하는 경로에 있는(개별 네트워크로 가기 위한) 홉 정보

 

RIP프로토콜(Routing Information Protocol)

   - 거리 벡터 방식인 내부 라우팅 프로토콜 중 가장 간단. 소규모에 적합

   - RIP패킷은 UDP사용 -> 비신뢰성이라 RIP패킷이 사라질 수도 있음

        => 그래서 개별 거리 정보다 라우팅 테이블에 순차적으로 적용되도록 함

  - 첫 번째, 두 번째는 자신이 관리하는 거리 벡터 정보. 세 번째는 다른 라우터로부터 받는 거리 벡터 정보

 

  3. 링크 상태 라우팅 프로토콜

       - 개별 라우터가 이웃 라우터까지 거리를 구한 후 이를 네트워크의 모든 라우터에게 통보(플러딩 기법)

       - 라우터 간의 정보 교환 원리가 거리 벡터 방식과 반대

       - 거리 벡터 방식은 정보가 주기적으로 전달됨. 이를 극복하기 위한 방식

             => 이웃 라우터와 연결된 상황에 변화가 있을 때만 정보 전달함

       - ex) TCP/IP 기반에서 사용하는 OSFP(Open Shortest Path First)

 

  4. 외부 라우팅 프로토콜

      - 거리 벡터 방식과 링크 상태 방식은 내부 용도였음

      - 이 방식의 경로 벡터 프로토콜은 경로 거리 정보 값 필요 없음. 어느 네트워크가 연결 가능한지만 제공

      - 경로 벡터 방식이 거리 벡터 방식과 다른 점

              1) 거리에 대한 처리과정 없음

              2) 관리하는 라우팅 정보에는 목적지 네트워크에 도착하기 위한 내용만 포함

      - ex) BGP(Border Gateway Protocol): 인터넷에서 많이 사용. 종류가 다른 환경에서 동작(=게이트웨이)

 

 

 

 

03 IP 프로토콜

   - 비연결형

   - 패킷을 분할&병합

   - 데이터 체크섬 제공 X 헤더 체크섬만 제공

   - Besf Effor원칙을 따른 전송 기능

 

  1. IP 헤더 구조

  1. DS/ECN: 8비트의 Service Type필드를 QoS 지원 위해 6비트의 DS필드와 2비트 ECN필드로 새로 정의
  2. 패킷 분할: 패킷 하나로 전송하기 너무 크면 분할해 전송 (관련 필드: Identification, DF, MF, Fragment Offset)
  3. 주소 관련 필드: 클래스 A, B, C(유니캐스팅)는 주소를 network와 host필드로 구분해 관리
  4. 기타 필드: Version Number, Header Length, Packet Length, Time to Live, Transport, Header Checksum, Options, Padding

  2. 패킷 분할

     ▷ 하부 계층 관점에서 TCP에서 설정되는 가상 연결은 여러 종류 네트워크 걸쳐 설정됨

         -> 그러나 TCP에선 패킷 크기 조절 쉽지 않음 -> IP 프로토콜에서 수행해야 함

 

     ▷ 분할 기능은 전송 경로에 위치한 라우터에 의해 수행됨

         ->라우터에 연결된 LAN이 서로 다를 수 있어 데이터 링크 계층 프레임 크기가 프로토콜마다 달라짐

        => LAN에 맞도록 프레임 분할

 

  3. DHCP 프로토콜

      - IP부족 등의 사유로 고정 IP주소 할당 못하고 자동 할당해야 할 수도 있음 -> DHCP사용

 

      ● DHCP 메시지

          : IP주소를 원하는 클라이언트는 DHCP 서버에 요청 메시지 전송하고 서버는 응답 메시지 회신함

      - DHCP 동작 과정에 필요한 주요 메시지 - UDP데이터그램에 캡슐화되어 전송. 클라포트번호:68, 서버:67

      - 과정: 클라이언트에서 DHCP_DISCOVER메시지 전송 -> DHCP 서버에서 IP주소 받음(DHCP_OFFER)

               -> 클라이언트에서 DHCP_REQUEST로 IP주소 사용하겠다 의사표시 -> DHCP로 긍정 응답(DHCP_ACK)

'네트워크' 카테고리의 다른 글

#6 데이터 링크 계층  (0) 2021.11.07
#5 MAC 계층  (0) 2021.09.15
#4 데이터 전송의 기초  (0) 2021.09.14
#3 네트워크 기술  (0) 2021.09.14
#2 네트워크 모델  (0) 2021.09.14