컴퓨터 네트워크 CHAPTER 3 네트워층 개요

최기환·2022년 4월 10일
0

Internet and Network

목록 보기
2/3

네트워크층 개요

여러 링크를 통하여 전달해야 하는 문제를 해결하기 위하여 네트워크층이 설계되었다. 네트워크층은 호스트-대-호스트 전달과 라우터를 통한 패킷 라우팅(경로지정)을 수행한다. 이 장에서는 네트워크층에 대한 개요를 설명하고 네트워크층이 필요한 이유와 관련된 문제점들을 설명한다.

1.개요

개념적인 수준에서 전체 인터넷은 수백만 대의 컴퓨터를 연결하는 블랙박스 네트워크로 생각할 수 있다. 이 개념적인 수준에서 한 컴퓨터 내의 응용층에서 다른 컴퓨터의 응용층까지 메시지가 전달되는 것에만 관심이있다. 이는 다음 그림과 같이 생각할 수 있다.

그러나 인터넷은 하나의 네트워크로 구성된 것이 아니고 연결 장치를 통하여 연결된 수많은 네트워크(또는 링크)로 구성된다. 즉, 인터넷은 LAN과 WAN들의 조합인 네트워크들이 서로 연결된 네트워크이다. 다음 그림은 적은 수의 네트워크와 연결 장치로 구성된 가상의 작은 인터넷을 보여준다.

이 모델에서 라우터와 같은 연결 장치는 교환기로서 작동한다. 패킷이 라우터의 한 포트(또는 인터페이스)에 도착하면 이 패킷은 다른 포트를 통하여 다음 교환기(또는 최종 목적지)로 전달(Foward)된다. 다시 말하면 교환(switching)이라는 과정이 연결 장치에서 수행된다.

2.교환

앞에서 살펴 보았듯이 메시지를 발신지에서 목적지까지 전달하는 과정에는 많은 결정이 이루어진다. 메시지가 연결 장치에 도착하면 패킷을 송신하는 출력 포트를 결정해야한다. 다시 설명하면 연결 장치는 한 포트를 다른 포트에 연결하는 교환기 역할을 한다.

2.1 회선교환

교환에 대한 한 가지 해결책은 회선 교환(Circuit Switching)이라고 한다. 회선교환에서는 메시지 전달 전에 발신지와 목적지 사이에 물리 회선(또는 채널)이 생성된다. 회선이 생성된 후 전체 메시지가 발신지에서 목적지로 전달된다. 발신지는 메시지 전달이 완료되면, 이를 네트워크에 통보해서 네트워크가 다른 연결을 위하여 사용할 수 있게 한다. 회선 교환은 네트워크층에서는 구현되지 않고 대부분 물리층에서 사용된다.

2.2 패킷 교환

교환에 대한 두 번째 해결책은 패킷 교환(packet switching)이다. 오늘날 인터넷의 네트워크층은 패킷 교환망이다. 이 네트워크에서는 상위 계층의 메시지가 관리 가능한 크기의 패킷으로 분할되고 각 패킷이 네트워크를 토앟여 전달된다. 메시지 발신지는 패킷을 한 개씩 송신하고 목적지는 한 개씩 수신한다. 목적지는 같은 메시지에 속하는 모든 패킷이 도착하면, 메시지를 상위 계층으로 전달한다. 패킷 교환망의 연결 장치는 패킷을 최종 목적지까지 어떻게 보낼 것인지 결정해야 한다. 오늘날 패킷 교환망은 데이터그램과 가상 회선을 사용하여 패킷을 보낸다.

3. 네트워크층에서 패킷 교환

네트워크층은 패킷 교환망으로 설계되어 있다. 이는 발신지에서 메시지가 데이터그램(datagram)이라는 관리 가능한 크기의 패킷들로 분할된다는 것을 의미한다. 각 데이터그램이 발신지에서 목적지로 전달된다. 수신된 데이터그램은 목적지에서 재조립되어 원래의 메시지를 다시 생성하게 된다. 인터넷의 패킷 교환 네트워크층은 원래 비연결형 서비스(connectionless service)로 설계되었으나 최근에 연결형 서비스(connection-oriented service)로 전환되고 있다.

3.1 비연결형 서비스

인터넷이 설계되었을 때 네트워크층은 비연결형 서비스를 제공하도록 설계 되었는데 이 서비스에서 네트워크층은 각 패킷을 상호 독립적으로 다룬다. 한 메시지 내의 패킷은 목적지까지 같은 경로로 전송될 수도 있고 아닐 수도 있다. 인터넷이 시작 되었을 때 네트워크층을 간단하게 비연결형 서비스로 설계하였다. 주된 개념은 네트워크층은 발신지에서 목적지까지 패킷 전달만을 책임진다는 것이다. 다음 그림에 이 개념이 나와있다.

네트워크층이 비연결형 서비스를 제공하는 경우 인터넷에서 전달되는 패킷은 독립적인 개체가 되고, 같은 메시지에 속한 패킷 사이에 아무러 관계가 없다. 이 네트워크 내의 교환기를 라우터(router)라고 한다. 한 메시지에 속한 패킷 뒤에 같은 메시지에 속한 다른 패킷이 따라올 수도 있고 다른 메시지에 속한 패킷이 따라올 수도 있다.
각 패킷은 헤더에 속한 발신지 주소와 목적지 주소를 기반으로 전달된다. 목적지 주소는 어디로 갈 것인지를 결정하고 발신 주소는 어느 곳에서 패킷이 왔는지를 알려준다. 이 경우에 라우터는 목적지 주소를 기반으로 패킷을 전달한다. 패킷이 페기되는 경우 발신지 주소를 사용하여 발신지에 오류 메시지를 보낼 수 있다. 다음 그림은 이 경우 라우터에 전달되는 과정을 보여준다.

3.2 연결형 서비스

연결형 서비스에서 한 메시지에 속한 모든 패킷 사이에는 관계성이 있다. 한 메시지에 속한 모든 데이터그램이 송신되기 전에 데이터그램의 경로를 나타내는 가상회선(virtual circuit)이 생성되어야 한다. 연결이 생성된 후 데이터그램은 같은 경로를 따라 전달된다. 연결형 서비스의 경우 패킷은 발신지 주소, 목적지 주소와 함께 패킷이 전달되는 가상 회선을 지정하는 가상 회선 식별자(virtual circuit identifier)인 흐름 레이블(flow label)도 가지고 있어야 한다. 다음 그림은 연결형 서비스의 개념을 보여준다.

각 패킷은 패킷 내의 레이블을 기반으로 전달된다. 인터넷에서 사용되는 연결형 설계 개념에 따라 라우터에 도착하는 패킷은 레이블을 가지고 있다고 가정한다. 다음 그림은 이러한 개념을 보여준다. 이 경우 전달 결정은 레이블(가상 회선 식별자라고도 함) 값을 기반으로 이루어진다. 연결형 서비스를 생성하기 위해 연결 설정(setup), 데이터 전송(data transfer)과 연결 해제(teardown)로 구성된 세 단계 과정이 사용된다. 설정 단계에서 송신자와 수신자의 발신지와 목적지 주소를 사용하여 연결형 서비스를 위한 테이블 엔트리를 생성한다. 연결 해체 단계에서 발신지와 목적지는 라우터에게 해당하는 엔트리를 삭제하라고 통보한다. 데이터 전송은 이 두 단계 사이에 수행된다.

  • 설정단계
    설정 단계(Setup Phase)에서 라우터는 가상 회선을 위한 엔트리를 생성한다. 예를 들어 발신지a가 목적지 b로 가는 가상 회선을 필요로 한다고 가정하자. 송신자와 수신자 사이에 다음 두 패킷(요청 패킷과 응답 패킷)이 교환되어야 한다.
  • 요청 패킷
    요청 패킷(request packet)은 발신지에서 목적지로 전달된다. 이 요청 패킷은 발신지와 목적지 주소를 전달한다.
  1. 발신지 A가 라우터R1으로 요청 패킷을 보낸다.
  2. 라우터 R1은 요청 패킷을 수신한다. 라우터는 A에서 B로 가는 패킷이 포트 3으로 가야 함을 안다.라우터는 이 가상 회선을 위하여 테이블 내에 엔트리를 생성하는데 네 개의 열 중에서 세 개의 열만 채울 수 있다. 라우터는 입력 포트(1)를 할당하고 사용 가능한 입력 레이블(14)과 출력 포트(3)를 설정한다. 라우터는 출력 레이블은 아직 모르는데 이후 응답 과정에서 알게 된다. 다음 라우터는 포트 3을 통하여 패킷을 라우터 R3에 보낸다.
  3. 라우터 R3이 설정 요청 패킷을 수신한다. 라우터 R1과 같은 과정이 수행되어 테이블 내의 세 열의 값이 채워진다.
  4. 라우터 R4가 설정 요청 패킷을 수신한다. 다시 세 열의 값이 채워진다.
  5. 목적지 B가 설정 패킷을 수신한 후 A로부터 패킷을 수신할 준비가 되어 있으면 A로 부터 온 패킷에 레이블을 할당한다. 이 레이블은 패킷이 A로부터 왔음을 목적지에 알려준다.
  • 확인응답 패킷
    확인응답 패킷(acknowledgement packet)이라는 특별한 패킷이 교환 테이블의 에트리를 완성한다. 이 과정은 다음 그림에 나타난다.
  1. 목적지(B)는 라우터 R4에게 확인응답을 보낸다. 확인응답은 전역 발신지 주소와 목적지 주소가 있으므로 라우터 테이블의 어떤 엔트리가 완서오디어야 하는지 알 수 있다. 패킷은 목적지에 의해 A로부터 오는 패킷에 입력 레이블로 선정된 레이블도 가지고 있다. 이 레이블을 사용하여 라우터 R4는 이 엔트리의 출력 레이블 열을 완성한다. 목적지 B에서는 입력 레이블이지만 라우터 R4에서는 출력레이블이 된다.
  2. 라우터 R4는 설정 단계에서 선정된 자신의 입력 레이블이 포함된 확인응답을 라우터 R3에 보낸다. 라우터R3은 이 레이블을 자신의 테이블에서 출력 레이블로 사용한다.
  3. 라우터 R3은 설정 단계에서 선정된 자신의 입력 레이블이 포함된 확인응답을 라우터 R2에 보낸다. 라우터R2는 이 레이블을 자신의 테이블에서 출력 레이블로 사용한다.
  4. 마지막으로 라우터 R1은 설정 단계에서 선정된 자신의 입력 레이블이 포함된 확인응답을 발신지 A에 보낸다
  5. 발신지(A)는 이 값을 목적지 B로 전송되는 데이터 패킷의 출력 레이블로 사용한다.
  • 데이터 전송 과정
    두 번째는 데이터 전송(data transfer) 단계이다. 모든 라우터는 특정 가상 회선을 위한 라우팅 테이블을 생성한 후 하나의 메시지에 속한 네트워크층 패킷들을 순서대로 전송한다. 아래 그림은 한 개의 패킷이 전송되는 과정을 보여주고 있지만 100개의 패킷도 같은 과정을 통하여 전송된다. 발신지 컴퓨터는 연결 설정 과정에서 라우터로 R1으로부터 받은 레이블 14를 사용한다. 라우터 R1은 패킷을 라우터 R3로 전달하는데 레이블 66을 사용한다. 라우터 R3는 패킷을 라우터 R4로 전달하는데 레이블을 77로 변경한다. 마지막으로 라우터 R4는 레이블을 77로 하여 패킷을 최종 목적지에 전달한다. 메시지 내의 모든 패킷은 목적지에 도달할 때까지 같은 레이블 순서를 따른다. 패킷은 목적지에 순서대로 도달한다.
  • 연결 해제 과정
    연결 해제 과정(teardown phase)에서 발신지 A가 B에게 모든 패킷을 보낸 후 해체 패킷이라는 특별한 패킷을 보낸다. 목적지 B는 확인(comfirmation) 패킷으로 응답한다. 모든 라우터는 자신의 테이블에서 해당하는 엔트리를 삭제한다.

4. 네트워크층 서비스

이 절에서는 네트워크층에서 제공되는 서비스를 소개한다. 설명은 오늘날 인터넷에서 주로 사용되는 비연결형 서비스를 기반으로 한다.

4.1 네트워크층 서비스의 예


위 그림에서 한국 출판사에서 근무하는 철수가 꽃가게인 크로이플라워사의 관리자인 영희에게 꽃가게 광고 책자가 프린트되어 배달될 준비가 되었음을 알리기 위해 메시지를 보내려 한다고 가정한다. 한국출판사는 LAN을 사용하고, 이 LAN은 케이블 WAN을 이용하여
BestNet이라는 지역ISP에 연결되어 있다. 코리아플라워사도 LAN을 이용하는데, 이 LAN은 DSL WAN을 통하여 ServeNet이라는 다른 지역의 ISP에 연결되어 있다. 이 두 지역 ISP는 고속 SONET WAN을 통하여 국가 ISP에 연결되어 있다. 철수가 영희에게 보내는 메시지는 여러 개의 네트워크층 패킷으로 분할될 수 있다. 뒤에서 살펴보듯이 패킷들은 같은 경로를 따라 전송될 수도 있고 그렇지 않을수도 있다. 두 컴퓨터는 TCP/IP 프로토콜 그룹중 다섯 계층에 관여하고 라우터들은 세 계층에 관여한다.

4.2 논리 주소체계

네트워크층은 종단-대-종단(end-to-end) 통신을 제공하므로 상호 통신하는 두 컴퓨터는 네트워크층 주소 또는 논리 주소라는 인터넷 공통의 식별자 시스템이 필요하다. 이 유형의 식별자 시스템은 균일하고 전역적인 주소 시스템을 통하여 네트워크층에서 제공된다. 인터넷은 주소 공간을 사용한다. 인터넷을 사용하는 각 개체는 모두 주소 공간에서 유일한 주소를 할당받는다.

4.3 발신지 컴퓨터에서 제공되는 서비스

발신지 컴퓨터의 네트워크층에서는 총 4개의 서비시를 제공하는데, 이는 패킷화, 다음홉 논리 주소 찾기, 다음홉 물리(MAC) 주소 찾기, 필요한 경우 데이터그램 단편화다. 다음 기림은 이 서비스들을 보여준다.

네트워크층은 상위 계층으로부터 데이터, 데이터 길이, 목적지 논리 주소, 프로토콜 ID(네트워크층을 사용하는 프로토콜 식별자), (뒤에서 설명될) 서비스 유형 정보들을 받는다. 네트워크층은 이 정보들을 처리하여 단편화된 데이터그램과 다음 홉의 MAC 주소를 생성한 후 이를 데이터 링크층에 전달한다.

  • 패킷화
    네트워크층의 첫 번째 임무는 상위 계층으로부터 받은 데이터를 데이터그램으로 패킷화(Packetizing)하는 것이다. 이 과정은 데이터에 패킷 발신지와 목적지 논리 주소, 단편화 정보, 서비스를 요청한 프로토콜 ID, 데이터 길이, (필요한 경우의) 선택 사항을 포함하는 헤더를 추가하는 것이다. 네트워크층은 데이터그램 헤더만을 대상으로 계산된 검사합도 포함한다. 상위 계층 프로토콜은 한 개의 논리 주소만을 제공한다. 모든 호스트는 자신의 논리 주소를 알고 있으므로 발신지의 논리 주소는 네트워크층에 의해 제공된다.
  • 다음홉의 논리 주소 찾기
    준비된 데이터그램은 패킷의 발신지와 목적지 주소를 가지고 있다. 앞에서 살펴보았듯이 데이터그램은 최종 목적지에 도달하기 위하여 여러 네트워크를 통과해야 한다. 목적지 컴퓨터가 발신지와 같은 네트워크에 연결되어 있지 않다면 데이터그램은 다음 라우터로 전송 되어야 한다. 데이터그램의 발신지 주소와 목적지 주소로는 다음 홉의 논리 주소를 알지 못한다. 발신지 컴퓨터의 네트워크층은 라우칭 테이블을 참조하여 다음 홉의 논리 주소를 찾아야 한다.
  • 다음 홉의 MAC 주소 찾기
    네트워크층은 실제로 다음 홉에 데이터그램을 전달하지 않고 데이터 링크층에 전달을 맡긴다. 전달을 위하여 데이터링크층은 다음 홉의 MAC 주소가 필요하다. 다음 홉의 MAC주소를 찾기 위하여 또 다른 테이블을 사용하여 다음 홉의 논리 주소를 MAC 주소로 변환해야한다. 이 임무는 ARP(Address Resolution Protocol)을 이용하는데 ARP는 논리주소를 받아 이를 다음 홉의 MAC 주소로 변환한다.
  • 단편화
    이 과정에서 데이터그램은 아직 데이터 링크층에 전달될 수 없을 수도 있다. 대부분의 LAN과 WAN은 한 프레임에 전달할 수 있는 최대 데이터 크기를 가지고 있고 이 최대 크기를 최대 전송 단위(MTU, Maximum transfer unit)라고 한다. 네트워크층에서 준비된 데이터그램은 MTU보다 클 수 있다. 이럴 때 데이터그램은 데이터 링크층에 전달되기 전에 작은 크기로 단편화(fragmentation)되어야 한다. 단편화 과정에서 데이터그램의 헤더에 필요한 정보는 같아야 한다. 즉, 데이터가 단편화 되어도 헤더는 같은 내용이어야 한다. 게다가 전체 데이터그램 내에서 단편의 위치를 지정하기 위하여 추가 정보도 더해져야 한다.

4.4 각 라우터에서 제공되는 서비스

앞에서 언급한 바와 같이 라우터에서 한 개의 데이터그램 전달을 위하여 입력 인터페이스와 출력 인터페이스가 관여한다. 그러므로 라우터의 네트워크층은 입력 인터페이스의 데이터 링크층과 출력 인터페이스의 데이터 링크층과 상호 작용해야 한다. 네트워크층은 입력 인터페이스의 데이터 링크층으로부터 데이터그램을 받아 필요한 경우 단편화를 수행한 후 출력 인터페이스의 데이터 링크층에 단편들을 전달해야한다. 라우터는 일반적으로 상위 계층에 관여하지 않는다. 아래 그림은 네트워크층에서 라우터에 의해 제공되는 서비스를 보여준다.
다음 홉의 논리 주소 찾기, 다음 홉의 MAC 주소 찾기 그리고 단편화 과정은 발신지에 대한 설명에서 언급된 마지막 세 과정과 같다. 그러나 이 과정을 적용하기 전에 라우터는 검사합을 사용하여 데이터그램의 요효성을 검증해야 한다. 유효성 검사란 데이터그램 헤더가 훼손되지 않았고 데이터그램이 올바른 라우터에 전달되었음을 확인하는 것이다.

4.5 목적지 컴퓨터에서 제공되는 서비스

목적지 컴퓨터의 네트워크층은 간단하다. 전달(포워딩)은 더이상 필요없다. 그러나 목적지 컴퓨터는 데이터를 목적지에 전달하기 전에 단편들을 조립할 필요가 있다. 각 데이터그램의 요효성을 검증한 후 각 단편에서 데이터를 추출하고 저장한다. 모든 단편이 도착하면 데이터가 재조립되고 상위 계층에 전달한다. 네트워크층은 재조립 타이머를 설정한다. 만약 타이머가 만료되면 모든 데이터 단편은 폐기되고 모든 단편을 재전송해야 한다는 오류 메시지가 전송된다. 이 과정은 아래 그림에 나타나 있다. 모든 단편이 도착하고 재조립되기 전까지는 네트워크층이 상위 계층에 데이터를 전달하지 않으므로 단편화 과정은 상위 계층에는 보이지않는다.

5. 네트워크층 문제점들

5.1 오류제어

오류 제어(error control)란 훼손되거나 손실되거나 중복된 데이터그램을 탐지하는 메커니즘을 포함하는 것을 의미한다. 오류 제어는 오류를 탐지한 후 수정하는 메커니즘도 포함한다. 인터넷에서 네트워크층은 오류 제어 메커니즘을 제공하지 않는다. 각 데이터그램은 최종 목적지에 도달하기 전에 여러 네트워크를 경유하므로 표면적으로는 네트워크 계층에서 오류 제어를 제공할 필요가 없는 것처럼 보인다. LAN과 WAN을 포함하는 네트워크의 처리과정을 제어하는 데이터 링크층은 오류 제어를 사용한다. 만약 홉-대-홉(hop-to-hop) 오류 제어가 데이터 링크층에서 구현되어 있다면 왜 네트워크층에서 오류제어가 필요한가? 홉-대-홉 오류 제어가 어느 정도 데이터그램을 보호하지만 완전한 보호를 하지는 못한다. 아래 그림은 오류가 발생했지만 확인되지 못하는 경우를 보여준다. 데이터그램이 라우터에 의해 처리되는 동안 오류가 발생하면 데이터 링크층은 이를 탐지하지 못한다.

5.2 흐름 제어

흐름 제어(flow control)는 수신자의 수신 능력을 초과하지 않도록 발신지의 데이터 전송 양을 조절한다. 만약 발신지 컴퓨터의 상위 계층이 목적지 컴퓨터가 처리할 수 있는 속도보다 빨리 데이터를 생성하면 수신자에서는 데이터가 수신 능력 이상으로 넘치게 된다. 데이터의 흐름을 제어하기 위해 수신자는 데이터가 넘친다는 사실을 송신자에게 알리는 피드백 메커니즘을 가지고 있어야 한다. 그러나 인터넷의 네트워크층은 직접 흐름 제어를 제공하지 않는다. 데이터그램을 송신할 준비가 되면 수신자가 준비 되었는지를 확인하지 않고 즉시 전송된다.

5.3 혼잡 제어

네트워크층 프로토콜에서 또 다른 문제점은 혼잡 제어(congestion control)이다. 네트워크 계층에서 혼자(congestion)이란 인터넷 내부에 데이터그램이 너무 많이 존재하는 상황이다. 발신지 컴퓨터에 의해 송신된 데이터그램의 수가 네트워크나 라우터의 용량을 넘어서는 경우 혼잡이 발생한다. 혼잡이 계속된다면 시스템이 붕괴되어 데이터그램이 전혀 전송되지 못하는 경우까지도 발생할 수 있다.

  • 비연결형 네트워크에서 혼잡제어
    비연결형 네트워크에서 혼잡을 제어하는 방법에는 몇 가지가 있다. 해결책 중의 하나는신호방식(signaling)이다. 후향 신호방식(backward signaling) ,전향 신호방식(forward signaling)이 있다.
  • 연결형 네트워크에서 혼잡제어
    한 가지 방법은 혼잡이 발생하는 겅우 추가 회선을 설치하는 것이다. 더 나은 해결책은 설정 과정에서의 진보된 협상(advanced negotiation)이다.

5.4 서비스 품질

인터넷이 (오디오와 비디오의 실시간 통신을 포함하는) 멀틷미디어 통신과 같은 새로운 응용을 허용함에 따라 통신의 서비스 품질(QoS: Quality of Service)은 점점 더 중요한 문제가 되고 있다.

5.5 라우팅

인터넷 계층에서 매우 중요한 사항은 라우팅(routing, 경로지정)으로 비연결형 서비스에서 데이터그램을 전달하는 것을 돕기 위해 또는 연결형 서비스에서 설정 단계에 가상 회선의 생성을 도울 수 있도록 라우터가 어떻게 라우팅 테이브릉ㄹ 생성하는 가의 문제이다.

5.6 보안

네트워크층에서 통신과 관련된 다른 중요한 사항은 보안(security)이다.

profile
꾸준히 한걸음씩

0개의 댓글