일기

OSI 3계층: 네트워크 계층

Realuda72 2024. 12. 13. 23:46

오늘은 네트워크 계층에 대해 알아보자.

 

0. 네트워크 계층이 뭘까

 네트워크 계층은 OSI 모델의 위에서 다섯번째, 아래서 세번째에 있는 계층으로, 데이터 전송에서 가장 중요한 역할을 하는 계층 중 하나이다. 네트워크 계층의 주요 역할은 데이터의 품질을 유지하고, 출발지에서 목적지까지 데이터를 전달하고 전송하는 것이다. 또 라우팅을 처리하는데, 라우팅은 패킷을 단순히 전달하는게 아니라 출발지에서 목적지까지 가는 최적의 경로를 탐색하는 것을 말한다.

 데이터는 다양한 논리적 네트워크 경로와 다양한 장치들을 통해 패킷 형태로 전송된다. 네트워크 계층은 OSI 7계층 모델의 세번째 계층으로, 네트워크에서 데이터 패킷 전송을 위한 경로를 제공한다. 네트워크 계층은 또 데이터 전송을 위한 경로를 구성하고 제어하는 역할을 한다.

 

  • 네트워크 계층은 OSI 7계층 모델의 세번째 계층이다.

 

1. 네트워크 계층의 기능

 네트워크 계층은 데이터 전송 메커니즘에서 다양한 중요한 기능을 제공한다. 첫번째로 데이터를 출발지에서 목적지까지 전송하는 최적의 경로를 찾는 라우팅 메커니즘을 담당한다. 두번째로 전체 데이터를 작은 패킷으로 나눠 전송과정을 용이하게 한다. 마지막으로 데이터 전송이 이루어지는 양쪽 장치에 논리적 주소를 부여해서 패킷이 올바른 목적지에 도착했는지, 그리고 내가 받은 패킷이 내가 기다리던 패킷이 맞는지를 확인할 수 있게 한다.

1.1. 논리 주소 할당(IP address)

 네트워크 계층은 데이터 패킷을 주고 받는 장치에 논리 주소를 부여하는 유일한 계층이다. 이것은 특정 네트워크 안에서 각각의 장치를 고유하게 식별하는데 유용하다. 주고 받는 데이터 패킷은 송신자와 수신자의 IP주소를 포함한다. 이것은 패킷이 통신 당사자에 의해 송신되거나 수신되었는지 확인하는데 유용하다. IP주소는 호스트ID와 네트워크ID가 있다. 호스트ID를 사용하면 패킷이 권한이 있는 송신자에 의해 보내졌고 원하는 수신자에게 성공적으로 도달했는지 확인할 수 있다.

  • 네트워크 계층은 데이터 전송에 관여하는 장치들에 논리적 주소인  IP주소를 부여한다.
  • IP주소는 데이터 전송에 관여하는 장치들을 식별한다.

 1.2. 라우팅(Routing)

 라우팅은 패킷을 전송하기 위한 최적의 경로를 식별하는 작업이다. 네트워크 계층은 단순히 패킷을 보내기만 하는게 아니라 최적의 경로를 계산한다. 최적의 경로를 계산하기 위해 다양한 알고리즘이 사용된다. 각 데이터 패킷의 헤더에는 목적지까지 가기 위해 따라야 할 라우터들의 경로에 대한 정보가 담겨있다.

  • 네트워크 계층은 라우팅 작업을 통해 패킷 전송을 위한 최적의 경로를 계산한다.

1.3. 호스트 간 전달(Host-toHost delivery, Forwarding)

 호스트 간 전달(포워딩이라고도 함)은 최적의 경로를 계산한 후에 데이터 패킷을 전송하는 작업이다. 패킷이 목적지에 도달하기 위해 하나 이상의 라우터를 거쳐야 하는 경우, 네트워크 계층은 패킷이 목적지에 도착할 때까지 라우터에서 라우터로 패킷을 포워딩한다.

  • 네트워크 계층은 데이터 패킷을 최적의 경로를 따라 라우터에서 라우터로 전송한다.

1.4. 논리적 서브넷팅(Logical Subnetting)

 네트워크 계층은 더 큰 네트워크를 논리적 서브넷이라고 하는 더 작은 네트워크 덩어리로 나눈다. 이는 IP주소를 더 효율적으로 사용하고 낭비되지 않도록 한다.

 

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

 각 장치는 데이터를 수신할 수 있는 최대 수용량이 있다. 이를 최대 전송 단위(Maximum Transmission Unit, MTU)라고 한다. 만약 수신할 데이터의 크기가 너무 크다면 데이터를 더 작은 패킷으로 파편화해서 MTU를 초과하지 않도록 한다. 데이터 패킷을 파편화한 뒤에는 수신자에게 보내지고, 수신자는 파편화된 패킷들을 재조립해 원래의 데이터로 만든다. 파편화는 라우터에서 관리한다.

  • 네트워크 계층은 데이터 흐름이 수신 허용량을 초과하지 않도록 데이터를 작은 조각으로 분해하고 조립한다.

1.6. 오류 처리(Error Handling)

 네트워크 계층은 오류를 확인하고 처리한다. CRC(Cylic Redundancy Check), Checksum 같은 다양한 오류 검출 기술을 사용한다. 오류를 검출하면 FEC(Forward Error Correction), Hamming Code, Reed-Solomon Codes같은 기술로 오류를 수정한다. 그리고 오류가 있거나 도달하지 못한 패킷을 재전송한다. ACK메시지를 통해 수신자가 패킷을 정상적으로 수신했는지 확인한다. 만약 부정적인 ACK 메시지를 받았다면 패킷에 에러가 있었거나 수신자가 패킷을 수신하지 못했기 때문에 재송신을 요청하는 것을 의미한다.

  • 네트워크 계층은 패킷의 오류를 검출하고 수정한다.
  • 패킷 전송 과정에 문제가 발생한다면 재전송한다.

1.7. 서비스 품질(Quality of Service, QoS)

 네트워크 계층은 먼저 보내야 할 중요한 데이터 또는 특정 데이터 품질을 추적한다. QoS 설정에 따라 먼저 보내야 할 데이터의 유형을 정하고 중요도를 매긴다. 이것은 어떤 상황에서라도 중요한 데이터를 수신하는데 지연이 없도록 보장한다.

  • 네트워크 계층은 데이터의 중요도에 따라 지연이 발생하지 않도록 보장한다.

1.8. 네트워크 주소 변환(Network Address Translation, NAT)

 네트워크 계층은 private IP를 public IP로 변환한다.

 

1.9. 혼잡 제어(Congestion Control)

 MTU와 같이, 네트워크에 과도한 부하가 발생하면 정체가 생긴다. 이로 인해 전체 데이터 송수신 과정이 멈추게 된다. 정체는 Leaky Bucket이나 Token Bucket같은 알고리즘을 사용하여 처리할 수 있다.

  • 네트워크 계층은 네트워크의 정체를 관리한다.

1.10. 캡슐화와 캡슐화 해제(Encapsulation and Decapsulation)

 네트워크 계층은 전송 계층(4계층)에서 오는 데이터를 캡슐화하고 패킷 헤더에 출발지IP주소와 목적지IP주소와 같은 중요한 정보를 추가한다. 목적지에서 데이터 패킷을 수신하는 경우에는 해당 패킷을 캡슐화 해제하고 원래의 크기로 만든다.

  • 네트워크 계층은 패킷에 위의 작업들을 수행하기 위한 헤더를 추가하거나 제거한다.

2. 네트워크 계층의 작동

 네트워크 계층은 먼저 전송 계층과 다른 계층들 사이에서 데이터를 받는다. 네트워크 계층은 이 데이터 패킷들에 출발지와 목적지 IP를 추가한다. 그리고 데이터 링크 계층으로 전송하기 위해 네트워크 프로토콜을 통합한다.

 

3. 네트워크 계층의 역할

 네트워크 채널과 통신 채널에서 네트워크 계층은 아래의 역할을 담당한다.

  • 데이터 패킷을 위한 가장 빠른 라우팅 경로를 관리한다.
  • 전송 계층에서 받은 데이터를 패키지화한다.
  • 네트워크 계층 프로토콜을 통해 네트워크 트래픽을 유지한다.

4. 네트워크 계층의 프로토콜

 프로토콜은 서로 다른 장치 간에 통신과 이해를 가능하게 하는 데이터 구조화 약속이다.

  • IP
  • IP보안
  • ICMP
  • IGMP
  • GRE

5. 정리

 네트워크 계층은 장치에 논리적 주소를 부여해 데이터를 송수신 하는 장치를 식별하고, 라우팅을 통해 최적의 경로를 통해 전송되도록 한다. 또, 오류가 생기거나 정체가 생기는 것을 찾아내고 처리한다.

 

 네트워크 계층의 역할을 더 잘 이해하기 위한 자료들

  • IP주소

https://www.geeksforgeeks.org/what-is-an-ip-address/?ref=gcse_outind

  • IPv4의 헤더 데이터그램

https://www.geeksforgeeks.org/introduction-and-ipv4-datagram-header/?ref=header_outind

  • 라우팅

https://www.geeksforgeeks.org/what-is-routing/?ref=header_outind

  • 포워딩

https://www.geeksforgeeks.org/what-is-packet-forwarding/?ref=header_outind

  • 서브넷

https://www.geeksforgeeks.org/introduction-to-subnetting/?ref=header_outind

  • MTU

https://www.geeksforgeeks.org/what-is-mtumaximum-transmission-unit/?ref=header_outind

  • NAT

https://www.geeksforgeeks.org/network-address-translation-nat/?ref=header_outind

 

 

 

 

 

 

참고: https://www.geeksforgeeks.org/network-layer-in-osi-model/

 

Network Layer in OSI Model - GeeksforGeeks

A Computer Science portal for geeks. It contains well written, well thought and well explained computer science and programming articles, quizzes and practice/competitive programming/company interview Questions.

www.geeksforgeeks.org

 

'일기' 카테고리의 다른 글

Classful IP Addressing  (0) 2024.12.14
IP주소  (0) 2024.12.14
(JavaScript) 햄버거 만들기  (0) 2024.12.13
OSI 2계층 : 데이터 링크 계층  (0) 2024.12.12
(JavaScript) 둘만의 암호  (0) 2024.12.12