[네트워크] OSI 7계층 - Packet, PacketOrder, ARP

 

 

참고: VSFe/Tech-Interview/Network 

 

 

🤐 세부 질문


1️⃣ Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.

2️⃣ L3 Switch와 Router의 차이에 대해 설명해 주세요.

3️⃣ 각 Layer는 패킷을 어떻게 명칭하나요? ex. Transport Layer의 경우 Segment라 부릅니다.

4️⃣ 각각의 Header의 Packing Order에 대해 설명해 주세요.

5️⃣ ARP에 대해 설명해 주세요.

 

📢 키워드별 설명 


👻 OSI 7계층이란


OSI7계층의 정의

  • 네트워크 통신에서 데이터가 어떻게 전달되는지를 이해하는 데 도움되는 개념적 모델
  • 각 계층의 목적 존재 -> 각자가 명확한 인터페이스 정의를 포함

 

 

 

 

 

 

 

 

 

(위 요약본에서 aH, pH 등은 각 계층의 헤더를 의미한다, )

 

🧚🏻‍♀️: 이 OSI7계층이 왜 필요한 걸까요?

🍊 SW, HW는 서로 이질적인 시스템이에요! 그러한 시스템 간의 상호 접속을 규정할 필요성이 해당 모델의 등장배경이 되었답니다.

 

🧚🏻‍♀️: 그럼 이 OSI7 계층의 의의가 무엇일까요?

🍊 OSI7계층은 개발자의 시스템 개발에 대한 가이드라인이 되어줘요. 이 표준규약(가이드라인)를 다같이 준수하니 타 제조사, 기기, Application 사이에서도 원할한 통신을 가능하게 해주죠. 즉, 상호 운용성과 호환성을 보장할 수 있게 한다고 말할 수 있죠!

 

🧚🏻‍♀️: 이 OSI 7계층은 정확히, 어떻게 이용되는 걸까요?

🍊 프로토콜 개발자의 입장에선 OSI 7계층을 참고하여 프로토콜을 개발해요. 위의 프로토콜을 지원할 HW, SW도 OSI7계층 모델을 기준으로 개발합니다. 서로 같은 규약을 참고로해서 개발하니, 각 계층의 문제를 사전 파악하여 예방하고 서로 다른 시스템 간의 통신도 가능하게 될거예요!

 

OSI의 각 계층

1. 물리계층 (Physical Layer)

물리적으로 데이터를 전송하기 위한 물리적인 특성을 정의

  • 물리적인 특성: 전송 속도/거리, 신호의 강도/크기, 케이블의 굵기/길이/재질 등
  • 정의에 따른 개발물: 케이블, 라우터, 허브 등
    • 이들은 그 내용에 따르면서 (전기 신호, 광 신호 → 물리적인 형태)로 변환함

2. 데이터 링크 계층 (Data Link Layer)

물리적 전송 매체 상의 프레임 생성 방법, 전송 방법, 오류 제어, 흐름 제어 등을 정의

  • 이더넷, MAC 주소 등을 이용한 물리적인 연결 수행에 대한 내용을 포함함
    • 이더넷: LAN 기술, MAC주소를 이용한 통신 수행
    • MAC주소: 특정 값을 통해 특정 장치를 식별하는 주소
  • 정의에 따른 개발물(물리적 전송매체): 이더넷 케이블, 광섬유 케이블, 스위치

🍊 '프레임', '스위치' 이라는 용어는 Packet과 관련하여 이후 언급 예정

3. 네트워크 계층 (Network Layer)

네트워크 상에서 데이터를 전송하기 위한 논리적 주소체계와 패킷 전송 관련 규약을 정의

  • IP로 치면, 각 네트워크 장치들이 통신하기 위해 필요한 주소를 지정하고 데이터 전송을 담당
  • IP는 또한 라우팅기능으로 다른 네트워크의 패킷 전송을 가능하게 함
  • 정의에 따른 개발물: 라우터, IP Protocal, Broadcast Protocol, IP Address

4. 전송 계층 (Transport Layer)

데이터 전송을 위한 오류 검출, 복구 및 흐름 제어를 수행하고, TCP 및 UDP 등의 프로토콜을 정의

  • TCP, UDP 각 프로토콜이 해당 계층에 존재

5. 세션 계층 (Session Layer)

데이터 교환 세션의 설정, 유지, 종료를 위한 규약을 정의

6. 표현 계층 (Presentation Layer)

응용 프로세스에서 사용하는 데이터의 형식을 변환하고, 압축 및 암호화 등의 데이터 표현을 정의

7. 응용 계층 (Application Layer)

사용자에게 제공되는 응용 프로그램 및 서비스를 위한 프로토콜을 정의

 

 

 

1️⃣ Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.


두 레이어의 역할을 명확히 구분해 봅시다.

- 한 놈은 ‘경로’에 대한 프토토콜 (for. 목적지에 대한 설정: 주소, 라우팅)

- 한 놈은 ‘전송방법’에 대한 프로토콜 (for. 안정적인 데이터 전송: TCP, UDP)

 

각 레이어의 정의 비교

Network Layer: 데이터를 목적지로 전달하기 위한 경로를 결정하고, 경로를 설정 (IP, Router)

Transport Layter: 데이터를 종단 간에 안정적으로 전송하기 위한 메커니즘을 제공 (TCP, UDP)

 

차이점

  Network Transport
대표예시 IP, 라우터 TCP, UDP 등
사용하는 것 IP주소(경로결정), 라우터(패킷전달) Port번호
역할 전송 경로 선택, 패킷 전송 담당
⇒ IP주소를 통해 목적지로 패킷을 전달한다
패킷의 분할, 합치기 기능 수행
(TCP, UDP가 이를 규정하고 있음)
  • Network계층의 예시로 IP가 있다는 말의 의미
    : IP는 ‘규약’이면서 컴퓨터의 ‘식별정보’임 IP는 패킷의 전송 경로를 선택하는 라우팅 기능을 수행하는 내용이 명세되어 있음
  • Network계층이 IP주소를 사용한다는 말의 의미
    : IP는 ‘규약’이면서 컴퓨터의 ‘식별정보’임 전송 경로로 식별정보인 IP주소를 이용
  • Transport에서 Port번호를 사용한다는 말의 의미
    : Transport계층의 대표 예인 TCP, UDP는 port에 대한 규정을 포함하기 때문

 

 

//TODO: 2, 3

2️⃣ L3 Switch와 Router의 차이에 대해 설명해 주세요.


🧚🏻‍♀️ 위 질문에서 뭐가 중요할까요?

우선, L3 Switch와 Router가 수행하는 기능이 겹칩니다.

같은 기능의 수행일지라도, 특화된 특징이 무엇인지에 따라 적절한 경우를 따질 수 있는 게 좋을 것 같네요!

 

✔️Router

  • IP주소를 이용하여 데이터를 위한 최적의 경로(라우팅)를 결정
  • 서로 다른 네트워크 간에 라우팅 수행

✔️ L3 Switch

: Router와 Switch의 기능을 결합한 장비

Switch기능을 가졌다고?

  • Switch기능은 기본적으로 DataLink Layer(2계층)에 속한다 : DataLink Layer(2계층)에서 Mac주소 기반 패킷 전달을 담당
  • Mac주소를 이용하여 스위칭 결정
  • 동일한 네트워크 내에서 스위칭을 수행

Router기능을 가졌다고?

  • IP주소를 이용하여 라우팅 결정

🍊 그럼 두 가지의 기능을 다 하는 L3 Switch가 더 우수한 것이 아닌가?

: Nop, Router가 라우팅 기능에 더욱 특화되어 있음

✔️ Router와 L3Switch 비교

  • 속도: L3Switch > Router (Mac주소 덕분에)
  • 🍊 Router가 최적의 경로를 결정한다했으면서 속도가 느리다, 이를 ‘최적의 경로’ 라고 말할 수가 있는가? → Router는 경로의 대역폭, 비용, 지연시간, 제공되는 서비스 등 여러 요소를 더 많이 고려한다. 시간상으로는 더 소요가 되더라도, 더 나은 성능과 보안을 제공
  • 지원가능한 프로토콜 : Router > L3Switch
  • 🍊 지원 가능한 프로토콜이 많다는 건, 더 복잡한 라우팅 기능과 더 많은 프토로콜을 처리할 수 있다는 것이다.
  • IP주소 설정여부: L3Switch( X ), Router( O )
    🍊 L3Switch는 IP주소를 이용하여 라우팅을 결정한다고 했는데, IP주소 설정은 하지 않는다. 어떻게 IP를 이용한다는 걸까?
    → 패킷의 목적지 IP주소를 확인(설정X) 하여 어느 포트로 패킷을 전송할지 결정하는데 쓰임. (라우팅에 쓴다구, 이후 실제론 MAC주소 기반으로 전달)
    → +) 원래 같으면 패킷자체는 IP주소를 설정해야가능한 작업인데, L3Switch는 내부적으로 라우팅 테이블이라느 시스템을 통해 이에 따라 적절한 포트로 전달하는 방식임
  • OSI 7계층의 2layer(data Link)에서 동작하는 것 : L3Siwtch
    🍊 DataLinkLayer에 속하는 Mac주소 학습 및 전달 기능 덕분
  • OSI 7계층의 3Layer(Network)에서 동작하는 것: L3Switch, Router
    🍊 NetworkLayer에 속하는 IP주소 기반 경로 선택-패킷 라우팅 기능 덕분

어떤 경우에 더 적절할까?

Router

  • 대규모의 복잡한 네트워크 : ‘최적의 경로’를 통하여 안정성과 보안기능을 제공하고, 보다 다양한 프로토콜을 케어할 수 있으므로. : 서로 다른 네트워크 간의 패킷 전달이 가능함.

L3 Switch

  • 라우터 성능이 크게 필요하지 않고, 대규모 네트워크 자체에서 VLAN을 관리하는 경우 : 라우터 보다는 기능이 많지 않은 게 L3 Switch의 특징이므로. (그러나 빠름, 대역폭 확장성이 더 뛰어남) : L3 Switch는 저렴한 가격높은 성능을 가지고 있고, VLAN관리도 되면서 라우팅을 동시에 수행할 수 있으니 얘를 쓰는 게 더 효율적임
  • : 덧붙이자면 Router도 VLAN관리는 되는데, 상대적으로 가성비가 안 좋다~

 

3️⃣ 각 Layer는 패킷을 어떻게 명칭하나요?


🧚🏻‍♀️ 뭐가 중요할까요?

그냥 각 레이어가 패킷 이름을 다 다르게 해놨네! 외우자! 보다는, 패킷 이름을 달리하는 이유가 있을 거예요. 그 부분을 체킹해봅시다.

왜 패킷 이름을 달리하고 있을까?

  • 데이터 전송 과정에서 각 레이어를 통과할 때마다, 각 계층에서 사용하는 프로토콜 데이터 단위가 다르기 때문이다
  • 가령, 질문에서 제시된 ‘패킷’이라는 단위는 NetworkLayer에서 처리하는 데이터의 단위 이름이다.

→ 각 데이터에서 처리하는 데이터의 단위 = 프로토콜 데이터 단위 = PDU, Protocal Data Unit

각 계층의 처리 데이터의 단위(PDU의 이름)

  • 물리계층의 PDU: bit
  • 데이터링크의 PDU: frame
  • 네트워크의 PD: packet
  • 전송계층의 PDU: segment || datagram
  • 응용계층의 PDU: message

:다만 packet이 PDU중에서 대표적인 값이고, 그게 전 계층에 있는 PDU들을 일컫게 되는 대체어가 되기도 한다

 

4️⃣ 각각의 Header의 Packing Order에 대해 설명해 주세요.


각 계층의 Header에 대해

앞선 질문에서, PDU라고 해서 각자가 처리하는 데이터 처리 단위가 있었다

그러한 단위의 데이터 말고도, 부가정보를 담기 위한 Header가 필요하다

ft. Packet Order:데이터가 처리되는, 네트워크를 통해 장치 간에 데이터 패킷이 송수신 되는 순서

 

각 계층의 PDU, Header, Packet Order

  1. 물리 계층(Physical Layer): 비트(Bit)
    • 헤더: 없음
  2. 데이터 링크 계층(Data Link Layer): 프레임(Frame)
    • 패킷 순서와 직접적 관련 정보는 없음
  3. 네트워크 계층(Network Layer): 패킷(Packet)
    • 패킷 순서와 관련된 특정 헤더 없음
  4. 전송 계층(Transport Layer): 세그먼트(Segment)
    • 헤더: 송신지 포트 번호(Sender), 수신지 포트 번호(Receiver), 시퀀스 번호, 프로토콜 타입
    • 이때, 전송계층의 헤더는 패킷 순서 지정에 중요한 역할을 함
      ✔️ TCP의 경우, 헤더에 시퀀스 번호가 포함되어 수신자가 패킷을 올바르게 재정렬
      ✔️ UDP의 경우, 패킷 순서 지정에 대한 규정이 없으며 수신자는 패킷이 도착하면 처리함
  5. 세션 계층(Session Layer): 메시지(Message)
    • 패킷 순서와 관련된 특정 헤더 없음
  6. 표현 계층(Presentation Layer): 데이터(Data)
    • 패킷 순서와 관련된 특정 헤더 없음
  7. 응용 계층(Application Layer): 데이터(Data)
    • 헤더: 없음

 

 

5️⃣ ARP에 대해 설명해 주세요.


ARP(이더넷 통신의 꽃이라구요?, Address Resolution Protocal)

: IP주소(논리적주소)와 MAC주소(물리적주소)를 매칭 시키기 위한 프로토콜

이더넷

: 유선 LAN기술을 사용하는 통신 기술

 

LAN기술은 뭔데?

LAN케이블을 이용하여 물리적인 케이블 연결이 된 후, 그 물리적 연결로 컴퓨터/네트워크 기기 간 데이터를 주고받는 지역 네트워크 통신 기술

🍊 이때, LAN은 ARP패킷이 미치는 범위가 될 예정이랍니다~

 

왜 이더넷 통신에서 ARP를 사용할까?

Ethernet에서는 각 네트워크 인터페이스에 MAC주소를 부여하여 통신해요!

문제는 대부분의 사용자는 다른 호스트의 IP만 알지 MAC주소는 몰라서 어떻게 찾느냐인데, 이에 대해 ARP방식으로 브로드캐스트 하게 된답니다.

 

🧚🏻‍♀️ 그럼, IP와 MAC주소는 항상 1:1주소 매칭이고, IP가 마치 Key값처럼 이용되어 MAC주소를 알 수 있단 건가요?

🍊그건 아님다, 아예 시리즈를 Ethernet으로 지정해서 다음에 다루도록 하죠!

 

 

ARP를 사용하면 어떻게 되는 걸까?

  1. host2(목적지) IP 주소를 갖고 있는 Host1Host2의 Mac주소를 알아내야 한다
  2. host2의 MAC주소를 알아내기 위해 ARP 요청 패킷을 전송한다
  3. ARP 요청 패킷이 네트워크 상의 모든 Host에게 broadcast한다
  4. 목적지 호스트가 자신의 MAC주소를 포함한 ARP응답 패킷을 보낸다
  5. MAC주소 알아내기 성공