⚡참고: 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
- 물리 계층(Physical Layer): 비트(Bit)
- 헤더: 없음
- 데이터 링크 계층(Data Link Layer): 프레임(Frame)
- 패킷 순서와 직접적 관련 정보는 없음
- 네트워크 계층(Network Layer): 패킷(Packet)
- 패킷 순서와 관련된 특정 헤더 없음
- 전송 계층(Transport Layer): 세그먼트(Segment)
- 헤더: 송신지 포트 번호(Sender), 수신지 포트 번호(Receiver), 시퀀스 번호, 프로토콜 타입
- 이때, 전송계층의 헤더는 패킷 순서 지정에 중요한 역할을 함
✔️ TCP의 경우, 헤더에 시퀀스 번호가 포함되어 수신자가 패킷을 올바르게 재정렬
✔️ UDP의 경우, 패킷 순서 지정에 대한 규정이 없으며 수신자는 패킷이 도착하면 처리함
- 세션 계층(Session Layer): 메시지(Message)
- 패킷 순서와 관련된 특정 헤더 없음
- 표현 계층(Presentation Layer): 데이터(Data)
- 패킷 순서와 관련된 특정 헤더 없음
- 응용 계층(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를 사용하면 어떻게 되는 걸까?
- host2(목적지) IP 주소를 갖고 있는 Host1은 Host2의 Mac주소를 알아내야 한다
- host2의 MAC주소를 알아내기 위해 ARP 요청 패킷을 전송한다
- ARP 요청 패킷이 네트워크 상의 모든 Host에게 broadcast한다
- 목적지 호스트가 자신의 MAC주소를 포함한 ARP응답 패킷을 보낸다
- MAC주소 알아내기 성공