School Lecture Study/컴퓨터 통신

18. 인터네트워킹 (Internetworking) 기본

vㅔ로 2022. 12. 27. 21:22
728x90

인터넷 서비스 모델

  • internet : 인터네트워크를 위한 서비스. 모든 것이 전화와 반대.
  • 인터네트워크
    • 네트워크의 연속
    • Concatenation of Networks
  • 네트워크 계층 에서 표준화
    • 다양한 네트워크들을 링크(link)로 간주해서 그대로 사용 (이질적 네트워크 연결)
    • 전역 주소 체계 (Global Addressing Scheme) 필요

  • 프로토콜 스택

패킷 전달 서비스 모델

  • 전역 주소 체계 (Global Addressing Scheme)
  • 비연결성 (데이터그램 - 기반)
  • 최선 노력 전달 (신뢰성 없는 서비스 - 안 가면 말고 식) - best-effort
    • 패킷이 손실될 수 있다.
    • 패킷이 순서가 바뀌어 전달될 수 있다.
    • 중복된 패킷이 올 수 있다.
    • 패킷이 오랜 시간 지연될 수 있다.
  • 단편화 및 재조립
    • 서로 다른 크기의 패킷이 전달된다. (네트워크마다 크기 표준이 다름)
    • 패킷의 크기를 맞춰서 잘라주는 역할

IP의 구조 및 동작 원리

  • IP는 양 끝 호스트와 네트워크 경계가 되는 지점에 존재해야 한다.
  • 네트워크 안의 노드에는 IP 계층 포함 X (자기가 포함된 네트워크이기 때문에)
  • L, M은 대칭 구조를 따르면서 IP가 반드시 필요하다.
    • 양쪽끼리 연결만 잘 되면 된다.
  • Router는 IP 계층 필요

Router, Bridge, Repeater

  • IP
    • IP와 독립적인 계층 사용 가능
    • IP 밑의 3계층이 어떻든지 신경쓰지 않고 단순하게 논리적 링크로 생각
    • 아래 구조를 독립적으로 구성할 수 있고, 한 노드 내에서 대칭일 필요가 없다.
  • Bridge
    • 필터링을 수행하기 때문에 2계층 장비
    • 한 노드 내에서 대칭일 필요 없다.
  • repeater
    • 1계층 장비
    • 신호 → 데이터 → 신호 변환 수행
    • 반드시 물리적으로 대칭 구조를 이루어야 한다.

IP 패킷 헤더 형식

  • 버전 Version (4) : 현재 값은 4. IPv4
  • Hlen (4) : 헤더의 32-bit 워드 길이
  • TOS (8) : 서비스의 priority / 서비스의 종류 (현재는 보편적으로 사용되지 않음) priority는 동일하게 설정한다.
  • Length (16) : 데이터그램 전체의 바이트 단위 길이
  • Identification (16) : 단편화 (fragmentation)에 사용된다.
  • Flags / Fragment Offset (16) : 단편화 (fragmentation)에 사용된다.
  • TTL (8) : 데이터 그램이 최대로 방문할 수 있는 홉(hops) 개수
    • 총 hops = router의 총 개수
    • 마지막 router인 경우 패킷을 버린다.
  • Protocol (8) : 역다중화 키 (TCP=6, UDP=17)
    • IP의 상위 계층이 여러 개이기 때문에 demux 키가 필요하다.
    • 계층 구조의 관점에서 중요하다.
  • Header Checksum (16) : 헤더에만 적용
    • 헤더의 Address나 TTL 등의 속성이 변경되는 오류를 검출하기 위한 Checksum
  • DestAddr & Src Addr (32): 발신지 및 목적지 주소
  • Options (24)
    • 추가할 값
    • Option 값으로 인해 헤더 길이는 가변
  • Padding : Option 값에 맞춰 32 bit 맞춰주기

단편화와 재조립 (Fragmentation and Reassembly)

  • 각 네트워크는 나름대로의 MTU (Maximum Transmission Unit)를 가짐
  • 방법
    • 필요할 때만 분할 (MTU < Datagram. 실제 데이터가 최대 전송 가능한 크기보다 길 때)
    • 발신지에서의 단편화는 지양 ↔ IPv6에서는 발신지에서 (PathMTU)
      • IPv4는 패킷을 발신지에서 잘라서 보내지 않는다.
      • PathMTU : 요즘에는 노드가 병목 지점이 되어 너무 느려지므로 Fragment를 보낼 때 자른다.
    • 재단편화 (refragmentation) 가능
    • 분할된 단편은 독립적인(self-oriented) 데이터그램
    • 목적지까지 재조립을 미룸
    • 상실된 단편이 있으면 재조립 불가

  • MTU 1500이므로 최대로 전송
  • R1-R2의 MTU도 1500이므로 그대로 forward
  • R2-R3의 MTU는 512이므로 자르기
    • 자를 때 나중에 합치기 위한 정보를 삽입해주어야 한다. (뒤에 언급됨)
  • R3-H8에서 MTU가 다시 1500이지만 중간에 재조립을 하면 각각 패킷 단편들이 하나의 노드에 모여야 하므로 제약 사항이 생긴다. 따라서 재조립 X
    • 패킷들이 여러 경로로 다양하게 이동할 수 있음
  • H8에서 재조립을 한다.

단편화와 재조립 : 예시

  • a 패킷을 b 처럼 분리했다.
  • Ident : 같은 패킷을 구분할 수 있는 ID값
  • more bit : 뒤에 패킷이 더 존재하는지 여부
    • 1이면 존재
    • 0이면 해당 패킷이 마지막 패킷
  • Offset : 지금까지 도착한 나와 같은 패킷들의 길이 저장
    • 첫 번째는 0
    • 두 번째는 0+512인 512
    • 세 번째는 0+512+512인 1024

전역 주소 (Global Addresses)

  • 특성
    • 전역적으로 유일하다.
    • 계층적 (hierarchical): 네트워크 + 호스트
      • 주소의 각 부분이 의미를 갖는다.
      • 주소 ↔ 위치
      • 같은 네트워크에 있는 노드들의 네트워크 주소 부분은 같아야 한다.
  • 형식 
    • a class : IP 주소가 0~127으로 시작. 2^7개의 네트워크 주소, 2^24개의 Host 주소
    • b class : IP 주소가 128~191으로 시작. 2^14개의 네트워크 주소, 2^16개의 Host 주소
    • c class : IP 주소가 192~로 시작. 2^21개의 네트워크 주소, 2^8개의 Host 주소
    • 주로 B class를 선호한다.
    • 당연히 주소가 금방 부족하게 된다.
  • 점 표기법 (Dot notation) 사용

데이터그램 포워딩 : IP의 실제 동작

  • 방법 (호스트, 라우터 동일 동작)
    • 모든 데이터그램은 목적지의 주소를 포함한다.
    • 데이터그램을 받은 IP가 목적지 네트워크가 직접 연결되어 있다면, 호스트로 직접 포워드 한다.
      • 직접 연결 : 목적지 네트워크 주소 == 나의 네트워크 주소 (기계적 판단 가능)
      • 호스트로 직접 포워드 : 목적지의 MAC / 링크 주소를 찾아서 send down으로 전달
    • 데이터그램을 받은 IP가 목적지 네트워크가 직접 연결되어 있지 않다면, 다른 라우터에게 포워드 한다.
      • 간접 연결 : 목적지 네트워크 주소 ≠ 나의 네트워크 주소
      • 라우터의 MAC 주소를 찾아서 전달
    • 포워딩 테이블은 네트워크 주소(번호)에 대한 다음 홉(라우터)을 가리키고 있다.
    • 각 호스트는 디폴트 라우터를 가지고 있다.
      • 디폴트 라우터 : 나머지 입력을 모두 포워드하는 곳
    • 각 라우터는 포워딩 테이블을 유지한다.
      • Network Number & Next Hop 정보 저장
      • Interface 는 직접 연결되어 있는 것 (LAN 카드)

    • H1에서 H7로 보내는 경우, H1은 R1으로 포워드
    • H1에서 H3으로 보내는 경우, H3의 MAC 주소를 찾아 직접 send down으로 전달

데이터 그램 포워딩 : IP의 실제 전달 동작?

  • IP는 네트워크 계층 위의 프로토콜
    • IP는 실제 네트워크를 하나의 링크로 간주한다.
    • IP 노드들과 가상 링크로 구성되는 가상 네트워크 (실제 네트워크 위의 네트워크)
  • 따라서 IP 패킷의 전달은 실제 네트워크 계층에게 위임된다.
    • 위임을 하려면 service interface 필요
    • 어떤 인자의 정보가 필요한가 → 어디로 보낼 것인지 실제 주소가 필요하다. ethernet이 DA, SA 주소를 알아야 패킷 전달 가능하다.

데이터그램 포워딩 : 예시

H7 → H8

  • IP 헤더의 SA : H7의 네트워크 번호 + Host 번호 (출발지)
  • IP 헤더의 DA : H8의 네트워크 번호 + Host 번호 (목적지)

→ Ethernet으로 send down

  • Link / Network 헤더
    • H7 MAC 주소
    • H8 MAC 주소 (직접 연결 가능하므로)
    • 헤더 encapsulation
    • SA, DA는 그대로 포함

H7 → H1

  • H7의 Default router : R3
  • IP 헤더의 SA : H7의 네트워크 번호 + Host 번호 (출발지)
  • IP 헤더의 DA : H1의 네트워크 번호 + Host 번호 (목적지)

→ Ethernet으로 send down. 간접 연결 + R3의 MAC 주소 전달

  • Link / Network 헤더
    • H7 MAC 주소
    • R3 MAC 주소
    • 헤더 Encapsulation
  • R3에 도착했을 때도 SA, DA는 변하지 않는다.
  • R3 Link / Network 헤더
    • R3 MAC 주소 (현재 전송하는 발신지)
    • R2 MAC 주소 (현재 전송하는 수신지)
    • SA / DA 그대로 포함

패킷 전달 과정 중에 변경되는 헤더 항목?

  • TTL : router에 갈 때마다 1씩 감소
  • Header Checksum : 헤더가 변경되었으므로 Header Checksum도 새로운 값으로 변경
728x90