CS/네트워크

[네트워크] Network Layer - (1) VC가 뭔데요

sunwoo0111 2025. 5. 22. 00:35

항공대학교 최차봉 교수님의 강의를 참고하여 작성하였습니다.

 

이제 기말고사 준비를 해야겠지요...Transport Layer 까지 학습 및 평가를 마쳤고, 이제 저희가 배울 5가지 Layer

Application - Transport - Network - Link - Physical 

중 Network/Link Layer 두가지 남았습니다. 화이팅 한번 외칠까요 하나 둘 셋 화이팅 야홋!

 

 

용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용용

 

 

 

네트워크 레이어?

: 간단히 말해서 트랜스 포트 레이어가 사용하는 레이어

 

 

트랜스 포트 → 프로세스 간의 통신이었다면,,

네트워크 레이어 → IP 주소로 되어있는 호스트 간의 통신 

이라고 인지하고 시작해보자.

 

Network Layer

  1. Data Plane
  2. Control Plane

두가지가 있다. 나온지 꽤 오래되었음

이번 글에서 배울 것은?

"Virtual 서킷이 무엇인지, 또 Internet Network에서 사용되는 Datagram과는 무엇이 다른지 배워보자"

오키요

 

호스트에는 5가지 레이어가 존재. (우리가 익히 알고있는 app-transport-net....)

But, 라우터에는 상위 2개의 레이어가 존재하지 않는다.(app, transport)

그저 길을 찾아주는 역할만 하기 때문에, 네트워크 레이어와 그 하위 레이어만 존재

 

Network Layer → 트랜스포트 레이어에서 주는 세그먼트에 Encapsulation을 함. → Header를 붙임.

예시) ⇒ 편지를 보낼때, 그 편지를 편지 봉투에 넣고, 그 봉투들을 모아 박스에 Encapsulation을 해서 주소를 붙이고, …..

그렇게 해서 만들어 지는게 Datagram(PDU =  Packet Data Unit 의 종류)

받는 쪽에서는 Header를 떼겠지 (포장을 뜯고) → 그럼 그게 세그먼트 → 그걸 transport 레이어에 올려줌.

Network Layer 구조

+ Network Layer는 호스트에도 있지만 라우터에도 존재한다!

 

 

네트워크 레이어의 2가지 기능

  1. Forwarding : 라우터의 입력에 도착한 패킷을 몇번 링크에 보낼지 골라서 그 링크로 전송하는 과정.
  2. Routing : 루트를 골라서 보내는 것.

?????????????? 뭐가 다른거지 헷갈릴 수 있음.

 

정리하자면..

 

라우팅은 계획을 세우는 것. 라우팅 알고리즘으로 포워딩 테이블을 만들어 줌

 

포워딩은 라우팅을 통해 만들어진 테이블을 보고 적절하게 패킷들을 전송하는 행위

 

그림으로 확인하시져

빨간색 화살표가 포워딩, 저 테이블을 만드는건 라우팅. 이젠 이해할 수 있다 야호

 

<Connection? Connectionless?>

여기도 Tranport 처럼 conneection, connectionless 가 있음 ( Transport Layer의 TCP, UDP 처럼)

ATM, frame relay, X.25 → 커넥션을 맺음 → 안정적인 전송을 보장.

ATM은 ABR(이거 전에 했음) → 비트레이트를 보장해주면서 컨제스쳔 정보를 주고, 이를 통해 안정적으로 데이터를 보내도록 보장

⇒ 이들은 virtual connection 이라고도 한다.

network : host간의 커넥션을 맺는다.

transport : process 간의 커넥션을 맺는다.

 

<Network Service Model>

date integrity, throughput 등등 어플리케이션이 트랜스포트에게 원하는게 있는 것처럼, 트랜스포트도 네트워크에게 원하는것이 있다.

각 데이터 그램 기준

  • 전송 보장 해줘
  • 40 sec delay보다 적게 걸리도록 전송 보장해줘 (timing)

데이터 그램 플로우 (Flow Control) 기준

  • 순서 맞게 전송 해줘 (in-order)
  • Throughput, 처리 용량 보장 해줘 ( minimum bandwidth )
  • 보이스톡 → 내가 말한 내용이 감 → 물론 전송되는 것도 중요하긴 한데, 이게 딜레이가 너무 길어버리면 전화라는 소통방식 특성상 소통이 힘듬 (inter-packet spacing 패킷과 패킷사이의 space) -> 뭐 디스토션이 생긴다. 소리가 깨짐.

이에 대한 표도 있긴한데, 교수님께서 그냥 알고만 있으라고 하셨음. 궁금하긴 하니까 알려는 드릴게

 

<Virtual Circuit and Datagram network>

  • 데이터 그램(네트워크 레이어의 PDU) 는 Connectionless service를 제공한다.
  • virtual-circuit 네트워크는 Connection service를 제공. (ATM에서 사용)

인터넷을 기준으로..

Network layer vs Transport layer

Host-to-host → 집에서 집

Process-to-process → 방에서 방

Transport는 TCP, UDP 이렇게 두가지 통신 방식이 있어서 그 상황에 따라 선택이 가능하다. 하지만 Network는 하나밖에 없다. → 인터넷 기준 설명이기도 하고, virtual circuit은 인터넷에서 안쓰이기 때문에 Only one(IP) 라는 뜻

Transport는 엔드시스템에서만 구현이 됨.

Network는 엔드시스템 + NW core, 즉 라우터에도 구현되어있음!

 

<Virtual circuits>

우리의 주 관심사는 아니지만, 그래도 뭔지는 짚고 넘어가자.

 

VC는 사실 물리적으로는 서킷이 아님. 물리적으로는 패킷인데, virtual 하게 서킷처럼 제공을 한다.

  • 사실은 패킷망을 사용
  • 하지만 서킷이 동작하는 것처럼 함.

 

Source to dest path → 이미 갈길이 생겨버린거임

  • call setup → 네트워크 상에서 이걸 함. virtual circuit을 만듬
  • Verutal Circuit identifier를 사용해서 씀. 원래는 destnation(ip+port)를 가지고 라우팅을 함 하지만 vc는 id가지고 함. Destination으로 하는게 아니다.
  • 대전역에서는 12시가 되면 1번 라인을 2번으로 해놓아라 뭐 이런게 있단 말이야. 그 시점에 allocation 하는건데, 그래서 그 state를 라우터가 가지고 있다는거임
  • ** 패킷은 state가 없음 **
  • 리소스를 allocation 해서, 그 시간만큼은 정해진 애가 쓴다. predictable하다.
  • 그냥 패킷은 예측 불가능, 하지만 VC는 어느시간에 어느라인으로 지나가는지 다 이미 allocation 되어있음. 다른 애가 그 루트를 그 시간에 쓰려고 할 때 allocate 되어있다는 사실을 알고 그 루트를 사용하지 않음. 그래서 스케줄링이 매우쉽다 (쓰고? 안쓰고? 가 다 계획이 되어있으니까)
이는 기차와 같음.
서울에서 부산까지 가는데
승용차를 타고 가면 라우팅을 하면서 쭉 감.
톨게이트에 딱 갔을때, 상황에 따라서 원래 내가 1번을 타기로 했는데, 그때 가가지고 트래픽 상황이 바뀌어서 3번으로 가는것으로 결정할 수도 있음.(1번의 교통상황이 안좋으면)
음음 그르치
패킷도 그렇게 동작함. 어플리케이션이 메세지를 보낼떄 여러개의 세그먼트로 나누고, 이는 한 집이 여러 자동차를 타고 부산을 간다고 치자. 근데 이 모든 자동차가 다 똑같은 루트로 가진 않음. 하지만 목적지는 같음.
패킷은 순서가 있다. 그래서 부산에 도착했을 때 순서에 맞게 1,2,3 이렇게 서야됨
하지만 virtual circuit은 기차라고 생각하자. 기차역이 중간중간 있는데,
내가 서울역에서 부산으로 기차를 타고 감. 12시에 대전역을 지난다고 했을 때, 레일을 호남→경부쪽으로 바꿔놓아야 , 기차는 그냥 달리기만 하면 길이 알아서 전환되어있겠지. 무지무지 빠르겠지. virtual circuit이 이런 로직
그래서 미리 링크를 좀 change 해놓아야됨

 

 

<VC 구현>

<구성요소>

  1. 내리 달릴수 있는 path가 있음.
  2. **VC number(VC identifier)**를 각 링크에서 number를 붙여줘서 길을 알려줌
  3. Forwarding table이 라우터에 있겠지 ( 그냥 패킷이나 Virtual Circuit이나 다 필요하겠지?)
  4. Virtual circuit에서는 dest 정보가 아닌 VC number로 루트를 결정함. 이게 훨씬 빠르게 동작 가능하다.
  5. 각 링크를 지날 때마다 VC number는 달라짐. By 2번!

라우터를 거치며 달라지는 VC Number의 모습

라우터가 VC를 보고 바로 forwarding 가능.

1번 Interface로 VC number 가 12번인 서킷이 input되면? → 3번 Interface로 보내고, 이의 VC number를 22로 수정한다.

그럼 저 VC는 어케 정해짐? call setup을 통해서 결정됨.

그리고 이미 리소스들이 정해져 있어서 예측이 가능하겠지. 이미 할당된건 못쓰니까.

커넥션이 끊어지면 저 테이블에 있는 한 커넥션을 끊겠지. 그럼 그 커넥션을 다른것이 쓸 수 있음.

 

그럼 그 set-up은 어떻게 하는건데..?

Virtual circuits은 set-up을 하기 위해 시그널링을 해야함.

setup 과정

initiate call 이 발생하고 Incoming call 이 들어갈적에 거쳤던 라우터들에 대하여, 3.aceept call 은 “그래 지금까지 지나온 라우터들을 우리 통신 경로로 쓰자” 라는 의미를 내포함.

그래서 계속 저 라우터들만 거쳐서 Communication함.

Path가 정해져 있으니 속도가 엄청나게 빠르겠지.

 

그러나 VC가 아닌 Datagram networks 의 경우는?

Datagram communication 과정

call-up 따위 하지 않는다.

VC 처럼 path를 정해놓는것이 아니라, 그때 그때 traffic 상황에 따라서 path가 달라진다. 이는 VC와 가장 큰 차이점이라고 할 수 있겠다.

 


Datagram-> 기차(VC)가 아니라 자동차이다. 기차와 같이 정해진 선로가 있는게 아니라, 하이패스를 지나갈때 처럼 상황판단 하에 path가 정해진다.

 

 

Datagram forwarding table

Datagram 이야기를 계속 해보자. 

위 그림은 Datagram의 Forwarding table인데, IPv4 기준 32bit이기 때문에 4 billion 개의 IP address가 존재한다. 그런데 모든 라우터에 이 수많은 IP address를 집어넣는것은 불가능. 이를 다 쓰는게 아니라 range를 쓴다. 그에대한 설명은 아래 그림으로...

왼쪽은 prefix 적용 X, 오른쪽은 prefix 방식 O

왼쪽과 같이 모든 주소를 저런식으로 넣어두면 너무 보기 복잡할 뿐더러, 빠른 커뮤니케이션도 불가능해진다. 그래서 오른쪽처럼 prefix matching 방식을 이용한다.

*는 0도 가능하고 1도 가능한 don’t-care.

앞쪽 주소 = prefix ↔ postfix

똑같은 부분까지는 넣고, 달라지는 부분부터 * 처리를 하면 쉽게 표기가 가능하다.

otherwise는 prefix가 0 이라고 할 수 있다.

예시)

만약 똑같은 DA가 주어졌다면, prefix가 더 긴 쪽의 DA를 보고 거기에 보냄.

= Logest address prefix matching. 정보가 더 많은 쪽으로 결정.

왜? → 더 자세하다고 판단하기 떄문.

오른족 그림의 2번 예시는 interface 1번으로 보내야겠지?

 

자, 이로써 Datagram도 자세히 살펴보았으니, 이제 VC와 비교를 한번 해보도록 하자.

Datagram vs VC

<Datagram?>

1. 인터넷은 데이터 그램을, 패킷을 쓰고, ATM은 Virtual Circuit을 쓴다.

2. 인터넷은 elastic, 탄력적으로 서비스하고, 링크에 여러가지 종류가 있다.

3. 인터넷의 smart end system → 단말 디바이스가 좀 똑똑해버리니까 네트워크의 일이 줄어든다. ( 예를 들어 컴퓨터 )

4. Edge는 복잡, but Network는 단순

 

<VC?>

전화와 유사함. ATM의 dumb end system → set-up 관련해서 네트워크가 해야할 일이 많음..그래서 End system이 좀 멍청해도됌. (전화기가 그 유래) Edge는 단순, but Network는 복잡

 

 

 

지금까지 VC와 데이터그램을 비교해보았다! 

 

다음 챕터에선 라우터의 구조에 대해서 알아보자..