전공/데이터 통신

[데이터 통신 2-2강]네트워크 모델 __프로토콜 계층화, TCP/IP Protocol Suite , OSI 모델__

뜨거운 개발자 2023. 10. 27. 00:46

네트워크 모델 프로토콜 계층화, TCP/IP Protocol Suite , OSI 모델

프로토콜 계층화(Layering)

👨🏻‍💻
프로토콜은 발신자와 수신자, 그리고 모든 중간 장치가 효과적으로 통신하기 위해 따라야 하는 규칙을 정의합니다
  • 통신이 단순할 때는 하나의 간단한 프로토콜만 필요하지만, 통신이 복잡할 때는 각 계층에 프로토콜, 즉 프로토콜 레이어링이 필요합니다
  • 추상화 : 각각의 layer는 서로 layer에 대해서 몰라도 됩니다.
  • 예시 그림

프로토콜 계층화의 장점

  • 복잡한 작업을 여러 개의 더 작고 간단한 작업으로 나눌 수 있다.
  • 모듈화 : 동일한 입력이 주어졌을 때 두 기계가 동일한 출력을 제공하는 경우, 서로를 대체할 수 있습니다.
  • 서비스와 구현의 분리
  • Intermediate systems, but not all layers
    • 이건 중간에 새로운 층계를 추가하거나 바뀌면 특정 layer가 필요하지 않을 수 있음을 말하는 것이다.

프로토콜 계층화의 단점

  • Cross-layer optimization 을 해야하고 단일 layer보다 더 어려워진다.
  • 필요하지 않게, 성능이 떨어질 수 있다.

프로토콜 계층화의 두 가지 원칙.

  1. 양방향 통신을 원한다면 각 계층이 각 방향에서 하나씩 두 가지 반대되는 작업을 수행할 수 있도록 만들어야 합니다. (예: 암호화/복호화)
  1. 두 사이트의 각 계층 아래에 있는 두 개체가 동일해야 한다

TCP/IP Protocol Suite

  • TCP/IP 프로토콜 제품군의 계층

역사

  • 인터넷은 원래 미군의 국방기술이었다.
  • 이 TCP/IP가 Unix OS에 들어가게 됩니다. 그렇게 인터넷이 보급이 되게 된 것이다.
  • 이후 등장한 게 www가 등장하고 상용화가 됩니다.

계층 이야기

  1. 1계층 은 하드웨어입니다. → wifi의 전기신호를 어떻게 발생시키는 지 등을 결정
    • 주로 회로가 된다.
    • 과거에는 주로 칩으로 구현하였으나 최근에는 소프트웨어 기술로 구현하기도 한다.
    • 그러한 기술을 SDR기술이라고 한다.
  1. 2계층은 신호 중첩 스캐줄링을 담당
    • AP가 있으면 A라는 사용자 B라는 사용자 둘이 있을 때 동시에 접속을 시도할 때 전기 신호가 중첩이 될 수 있는데, Time 스케줄링을 잘 해줘야하고, 그걸 담당하는게 2계층입니다.
    • (인베디드 소프트웨어로 주로 구현이 된다.→ Device driver 보통 c++로 많이 구현한다.)
    • wifi는 1계층과 2계층만을 사용하는 기술인 것을 알 수가 있습니다.
    • LTE기술도 1,2계층이라고 봅니다.
  1. 3계층은 번역해주는 역할 + 라우팅
    • 예시 : wifi(2계층)를 통해서 들어온 값을 3계층에 저장 후 다시 2계층인 이더넷으로 보내는 과정.
    • AP와 이더넷(둘 다 2계층)을 연결시켜주기 위해서는
    1. wifi기술로 패킷을 수신한 이후에 수신 된 패킷을 메모리에 저장을 하고,
    1. 그리고 저장 된 메모리를 이더넷으로 보내도록 해석 후
    1. 이더넷으로 보내줍니다.
    • 사실 layer3은 이전 계층이 이더넷인지, 와이파인지 별로 신경쓰지 않아도 메모리만 할당해주면 알아서 그곳으로 데이터가 들어오게 됩니다.
    • 저장해두기만 하면 알아서 이더넷이 가져가게 됩니다.
    👨🏻‍💻
    layer3는 데이터를 저장하는 역활만 한다고 볼 수도 있습니다. 그렇다면 왜 필요할까요?
    • 만약 실제로 네트워크가 연결 될 때 매우 가까운 지역에만 서로 연결이 필요하면 3계층은 필요가 없을 수 있습니다.
    • 전국망 에서는 layer3까지만 있는 매우 많은 라우터가 존재합니다. 그렇기에 라우팅 선택 알고리즘이 layer3에 들어가 있습니다.
    • 여기서 길을 찾는 주소를 IP주소라고 부릅니다.
  1. 4계층 패킷 소실 담당
    • 패킷은 소실 가능. (라우터가 꺼지는 등) → 이걸 보안 해주기 위해서 있는게 layer4입니다.
    • TCP를 통해서 보안되는 것 입니다.
    • 만약 잘 받았으면 Ack 메세지를 보내는데 그게 안 오면 다시 같은 패킷을 보냅니다.
    • TCP위에 올라가는게 Application layer이라고 보면 됩니다.

    서비스는 항상 위로 해준다고 보면 됩니다.

실제로 서비스에서 데이터를 보내는 예시

  • 만약 어플리케이션에서 메세지를 보내면 그 메세지를 sdu(service data unit) 라고 부르는데, 그걸 TCP에서 앞쪽에 header를 붙혀줍니다. (캡슐화)
  • 이후 IP프로토콜로 이동시킵니다. 이걸 IP입장에서는pdu(protocol data unit)라고 부릅니다.
  • 상위 계층와 주고받는 정보를 sdu라고 부르고 하위 계층으로 보내는 데이터를 pdu라고 부릅니다.

    Layer4 pdu == Layer3 sdu

  • Data link와 Physical 을 합쳐서 Network Interface라고 부릅니다.
  • 과거에는 Main Board에 LAN 포트가 없어서 PCI 슬롯에 카드를 꽂아야 했는데 그 카드 이름이 NIC 였습니다. ⇒ 요즘은 온보드 형태로 들어가있다.

Layered Architecture

인터넷을 통한 커뮤니케이션

  • 링크는 하나의 라우터로 연결됩니다.
    • 다른 기술을 사용하는 망끼리 연결 시키는 기술을 라우터를 통해서 구현합니다.
    • (Wifi, ethernet, 5G 등등으로 서로 다른 프로토콜로 변경하는 것이 라우터의 큰 역할 중 하나이다.)
  • 링크의 링크 레이어 스위치
    • Only two layers
    • Using only one set of protocols
  • 아래 그림에서 LINK1, LINK2 는 AP라고 부르는데 이 친구들은 3계층이 없습니다.
  • 아래 그림에서 Router(3계층)가 있는데 이는 Gateway라고도 부르며 이는 3계층까지 구현되어있습니다.
  • 보통 라우터는 두개의 Access Network를 연결 시켜주는 것이므로, 그렇기에 두개의 네트워크 인터페이스를 다 가지고 있어야만 합니다. (2계층)
  • 3계층에서 길을 찾아주는 역할까지 해준다고 볼 수 있습니다.

TCP/IP 프로토콜 제품군의 계층

  • 레이어 간의 논리적 연결 → 다른 layer와는 독립되게 생각할 수 있다.
  • 따라서 AP는 스위치가 맞습니다.
  • 보통 유무선 공유기를 최소 Layer3까지 올라간 녀석들을 Router라고 부릅니다.(실제로는 layer5까지 올라가있긴 하다.)
  1. End-to-end logical connection (domain: internet)
    • 애플리케이션, 전송 및 네트워크 계층의 의무
    • Network Layer가 왜 End to End냐? 라우터가 목적지인 것 아니냐?

      아니다. 라우터의 목적지를 중간 경유지로 적어주는게 아니라 최종 목적지만 적어주기 때문에 Logical connection 상 End to End Connection인 것 입니다.

  1. Hop-to-hop logical connection (domain: link)
    • 데이터 링크 및 물리적 계층
    • 홉: 호스트 또는 라우터
  • TCP/IP 프로토콜 제품군의 객체
  1. 물리적 계층끼리 연결될 때는 Bit를 통해서 정보를 주고 받는다.
  1. Data link계층에는 Frame으로 정보를 주고 받습니다.

각 layer 별 설명

1. Physical layer or PHY layer

  • 링크를 통해 프레임에 개별 비트 전달하기 (가장 중요한 역활)
  • 논리적인 커뮤니케이션이 있습니다.
    • 숨겨진 계층: 물리 계층 아래의 전송 미디어
    • 전송 매체는 전기적 또는 광학적 신호를 전달합니다.
  • 두 장치에서 두 물리적 계층 사이의 논리 단위는 비트입니다
  • 비트를 신호로 변환하는 여러 프로토콜
    • 사실 이건 LTE, 이더넷, Wifi, 5G 다 들어오는 0과 1이 다를 것이다.

2. Data link layer

  • datagram을 가져와서 link를 통해서 이동한다.
    • 라우터 : 최고의 링크 선택
    • medium access control: 누구한테 데이터를 보낼 지 결정하는 알고리즘.
    • 인터넷은 라우터로 연결된 여려 개의 링크로 구성된다.
  • 예 : 유선 LAN(이더넷), 무선 LAN, 유선 WAN, 무선 WAN(LTE, 5G NR)
    • 데이터 링크 계층도 프로토콜 별로 다 다르게 정의 되어있다고 보면 된다.
  • datagram을 가져와 프레임(frame)이라는 패킷(packet)으로 캡슐화(encapsulates)한다.
  • 일부 링크 계층 프로토콜은 다음을 제공합니다.
    • 와이파이 같이 무선 프로토콜은 패킷이 쉽게 깨져서 재전송 되는 것 까지 보통 구현이 되어있습니다.
    • 그러나 이더넷 같은 유선 네트워크는 패킷이 소실되는 경우가 거의 없기 때문에 재전송 자체가 없습니다.
    • 따라서 프로토콜 마다 다르다!
    • 완벽한 오류 감지 및 수정 또는 오류 수정만 하는 경우도 있다.
    • 오류 감지 예시 → 비트 갯수 감지, 수정까지 가능하긴 합니다.

3. Network layer

  • 호스트 간 통신 및 가능한 경로를 통한 패킷 라우팅 (라우팅 알고리즘 적용되는 층)
    • 네트워크에서의 통신은 호스트 간 통신입니다
    • 각 패킷에 가장 적합한 경로 선택
  • 인터넷의 네트워크 계층입니다: 인터넷 프로토콜(IP)
    • 연결 없는 프로토콜
    • 흐름 제어, 오류 제어, 혼잡 제어 서비스 없음
    • Unicast(일대일), multicast(일대다) 모두 다 지원합니다.
  • IP의 전송 및 라우팅 작업을 지원하는 보조 프로토콜 (여기 프로토콜 딸딸 외우지 마세요~ 있다는 것 정도만 알고 갑시다.)
    • 인터넷 제어 메시지 프로토콜(ICMP) → Ping 명령을 보내거나 control 하는데 사용되는 프로토콜이다.
    • IGMP(인터넷 그룹 관리 프로토콜) - 멀티캐스트 관리 프로토콜
    • DHCP(동적 호스트 구성 프로토콜) → 유동 IP를 사용하는 겁니다.
      • (내가 연결을 맺을 때마다 임시로 서버가 IP를 할당 해주는 방식입니다.)
    • 주소 확인 프로토콜(ARP) → IP주소가 항상 바뀌긴 하지만 하나의 고유한 IP가 있어야하긴 하다.

      그러면 패킷은 IP주소로 보내기 때문에 Mac주소로 translation을 해줘야 하는데, 그것을 우리는 ARP 프로토콜이라고 부릅니다.

    • 우리가 IP 통신을 할 때는 IP주소가 필요한 것이지만, 사실 Layer2 즉 이더넷이나 wifi를 사용하면 IP주소가 아니라 layer2의 주소가 필요하다. 보통 layer2는 유니크한 주소를 사용합니다.

4. Transport layer

애플리케이션 계층에 서비스 제공

애플리케이션 계층에서 메시지를 가져와 전송 계층 packet (called a segment or a user data gram) 으로 캡슐화하여 전송합니다.

  1. 전송 제어 프로토콜(Transmission Control Protocol)(TCP)
    • 연결 지향 프로토콜
    • 바이트 스트림 전송을 위해 두 TCP 사이에 논리적 파이프 만들기
    • 흐름 제어: 소스 호스트의 송신 데이터 속도와 대상 호스트의 수신 데이터 속도를 일치시켜 대상 호스트에 과부하가 걸리지 않도록 합니다.
    • 오류 제어: 세그먼트가 오류 없이 목적지에 도착하도록 보장하고 손상된 세그먼트를 다시 전송합니다.
    • 혼잡 제어: 네트워크 혼잡으로 인한 세그먼트 손실 감소
  1. 사용자 데이터그램 프로토콜(UDP) → 괜히 재전송을 할 필요가 없고 시간이 더 중요한 경우에 사용하는 게 UDP 프로토콜입니다.
    • 비연결 프로토콜, 적은 오버헤드(예: 단문 메시지)
  1. 멀티미디어용 스트림 제어 전송 프로토콜(SCTP)

5. Application layer

  • End-to-End logical connection
  • 프로세스 간 커뮤니케이션
  • HTTP(하이퍼텍스트 전송 프로토콜): 월드와이드웹(WWW)에 액세스하기 위한 수단입니다.
  • SMTP(Simple Mail Transfer Protocol): 이메일에 사용되는 기본 프로토콜입니다.
  • 파일 전송 프로토콜(FTP): 한 호스트에서 다른 호스트로 파일 전송
  • 터미널 네트워크(TELNET), 보안 셸(SSH): 원격으로 사이트에 액세스하는 데 사용됩니다.
  • SNMP(단순 네트워크 관리 프로토콜): 관리자가 글로벌 및 로컬 수준에서 인터넷을 관리하는 데 사용 합니다.
  • DNS(도메인 이름 시스템): 다른 프로토콜에서 컴퓨터의 네트워크 계층 주소를 찾는 데 사용됩니다.

Encapsulation and Decapsulation

그림을 보면 송신측에서 헤더가 하나씩 늘어나는 걸 볼 수가 있는데 이를 encapsulation이라고 부르고, 수신측에서 헤더를 하나씩 줄여가는데 이를 decapsulation이라고 부른다.

  • 인터넷 프로토콜 계층화에서 중요한 개념 중 하나
  • 소스 호스트에서의 캡슐화
  • 대상 호스트에서의 캡슐화 해제
  • 라우터에서의 캡슐화 및 캡슐 해제

계층 별 데이터 이름

  1. 애플리케이션 계층(Application layer): message
    1. 일반적으로 헤더나 트레일러를 포함하지 않습니다
  1. 전송 계층(Transport layer): segment(TCP), user datagram (UDP)
    1. 헤더: 흐름, 오류 제어, 혼잡 제어를 위한 소스 및 대상 프로그램의 식별자
  1. 네트워크 계층(Network layer): datagram
    1. 헤더: 소스 및 대상 주소, 오류 확인 및 조각화를 위한 정보
  1. 데이터 링크 계층(Data link layer): frame
    1. 호스트 또는 next hop의 링크 계층 주소

Addressing

  • 두 당사자가 관련된 모든 커뮤니케이션에는 두 개의 주소가 필요합니다
    • Source address and destination address.
    • 보통 4개만 가지고 있다 왜냐하면 physical layeraddress가 필요없기 때문이다.
    • 물리 계층의 데이터 교환 단위는 비트이므로 주소를 가질 수 없습니다.
  1. data link layer address같은 경우 유니크한 48비트 Mac Address를 가지게 됩니다.
  1. Network Layer 같은 경우 → Logical address 로 IP주소를 가집니다.
  1. Transport Layer 같은 경우 Port Number를 가집니다.
    1. Application layer도 결국 TCP가 서비스를 해줘야 하기 때문에 주소가 필요한데 각 어플리케이션에 미리 매핑에 놓은 주소port번호라고 볼 수 있다.
  1. 어플리케이션 같은 경우 자체적인 변수명이 있습니다.

Multiplexing and Demultiplexing

TCP/IP 프로토콜 제품군(TCP/IP protocol suite)은 일부 계층에서 여러 프로토콜을 사용합니다

멀티플렉싱은 한 계층의 프로토콜이 한 번에 하나씩 여러 상위 계층 프로토콜의 패킷을 캡슐화 할 수 있음을 의미

즉 이게 무슨말이냐 예를 들어 우리가 카카오톡을 하면서 영화를 보는 등 여러가지 일을 한번에 하는 경우 패킷을 하나로 묶는 것을 의미합니다.

Demultiplexing은 프로토콜이 패킷을 캡슐화하여 한 번에 하나씩 여러 상위 계층 프로토콜에 전달할 수 있다.

다음 그림은 3개의 상위 계층에서 멀티플렉싱 및 디멀티플렉싱의 개념을 보여줍니다

OSI Model

  • 국제 표준화 기구(ISO) : 국제 표준에 대한 전 세계적 합의를 전담하는 다국적 기구 → 사실 TCP/IP로 만든 프로토콜을 몰아내고 7계층으로 하려는 시도였으나 결국 몰아내지 못하고 TCP/IP 만 남았다.
  • 개방형 시스템 상호 연결(Open systems interconnection (OSI) model): 네트워크 통신의 모든 측면을 포괄하는 ISO 표준
  • 개방형 시스템 : 서로 다른 두 시스템이 기본 아키텍처에 관계없이 통신할 수 있도록 하는 프로토콜 집합입니다.

OSI versus TCP/IP

Two layers: session and presentation

애플리케이션 계층은 일반적으로 OSI 모델에서 세 가지 계층의 조합으로 간주됩니다.

OSI Model’s Success 실패

  • OSI 모델은 TCP/IP 프로토콜 제품군 이후에 등장했습니다
  • 대부분의 전문가들은 처음에 TCP/IP 프로토콜이 OSI 모델로 완전히 대체될 것이라고 생각 하지만 아님
    • OSI는 TCP/IP가 완전히 자리를 잡았을 때 완성
    • OSI 모델의 일부 계층은 완전히 정의되지 않았습니다.
    • 충분히 높은 수준의 성능이 아님


Uploaded by N2T

728x90