지난 포스팅에서 Network의 기초적인 개념과 TCP/IP 프로토콜 계층에 대해서 살펴보았다. 

오늘은 이 중 IP protocol을 중점적으로 Network Layer에 대해 알아보자. 

 

"Internet Layer"는 데이터를 신뢰성보다는 성능 중심(Best-Effort)으로 목적지까지 전달한다.

이러한 Internet Layer는 크게 2가지의 서비스를 제공한다. 

  • 패킷화 
  • 포워딩 & 라우팅 

 

Packet

Circuit Switching vs. Packet Switching

우선 Network에서 데이터를 보내는 방식에는 크게 2가지가 있다. 

  • Circuit Swithcing
  • Packet Switching 

Circuit Switching

"Circuit Switching"이란, Connection-Oriented방식으로,

End-to-End간에 전용회선을 할당하여 해당 회선으로만 데이터를 보내는 방식이다. 

 

이 방식은 안정적으로 데이터를 보낼 수 있지만,

회선이 할당되면 데이터 경로가 비슷하더라도 다른 경로를 사용할 수 밖에 없는 비효율성이 존재한다. 

 

Packet Switching

"Packet Switching"이란, Connection-Less방식으로, 

End-to-End간에 회선을 할당하지 않고, 최적의 경로로 다음 라우터로 데이터를 전송한다.

 

이때, 데이터들을 적절한 사이즈 즉, Packet 단위로 짤라서 보내게 되며, 

각 Packet는 Source가 같더라도 다른 경로를 통해 데이터가 전달될 수 있다.

즉, 각 Packet들은 독립적으로 전송된다.

 

10개의 회선이 있다고 가정하면, 

"Circuit Switching"은 10명의 유저를 할당 할 수 있지만, 

"Packet Swithcing"은 훨씬더 많은 유저를 한번에 할당 할 수 있게 된다. 

 

우리가 인터넷을 사용할 때, 웹페이지 로딩과 같이 지속적으로 데이터를 전송하지 않는다. 

따라서, IP Protocol은 Packet Swithing 방식을 사용한다. 

 

Packetizing

IP Protocol은 Packet Swithcing방식으로 통신한다. 

즉, 상위 Layer에서 온 데이터를 "Packet"단위로 짤라 보내게 된다

정확히는 네트워크상에서 한번에 보낼 수 있는 패킷의 사이즈인 MTU(maximum transmission Unit)를 가진다. 

이보다 커지게 되면 패킷을 잘라주어야 한다.

 

이때, 상위 Layer에서 온 데이터를 "Payload" 혹은 "SDU(Service Data Unit)"라 부른다. 

 

source에서 보낼 때는 이 Payload를 쪼개어 IP Header를 붙여서 Packet화를 진행한다. 

반면, Destination에서 온 데이터는 IP Header를 제거하여 상위 Layer로 보내게 된다.

 

이러한 IP계층은 Connection-Less방식으로 패킷을 전송하기 때문에, 

Destination에서는 패킷이 순서대로 도착하지 않는다. 

 

이는 IP Header에는 패킷의 순서가 적혀져 있는데, 

이를 보고 TCP계층에서 Assemble하는 과정에서 순서를 재조립한다.

 

Forwarding & Routing 

"Routing"은 Source부터 Destination까지 경로를 결정하는 작업을 의미한다. 

이때 경로는 Routing 알고리즘에 의해 최소비용이 되는 경로를 선택하게 되며,

Forwarding Table을 업데이트 한다.

 

이 "Forwarding Table"은 Router마다 가지고 있으며, 

데이터가 Routing 알고리즘에 결정난 경로로 가기 위해,

다음으로 데이터를 보낼 Router에대한 정보를 가지고 있다.

 

"Forwarding" 데이터를 Forwarding Table에 의해 다음 Rotuer를 결정하는 작업을 의미한다.

 

즉, "Routing"은 SW적인 알고리즘을 통해 동작하고, 

"Forwarding"은 단순 Forwarding Table을 보고 적절한 포트로 패킷을 이동하기 때문에 HW 영역에서 발생한다.

복사했습니다!