해당 글은 VSFe 깃허브 레포를 참고하여 작성한 글입니다. (아래 출처에 표기)
✅ OSI 7계층에 대해 설명해 주세요.
OSI 7계층 모델은 교육적인 목적으로 사용되는 이론적 모델이다.
OSI(Open Systems Interconnection) 모델은 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명하기 위한 모델로, 네트워크 통신을 7개의 계층으로 나눈다.
7. Application(응용) 계층
- 개념: 사용자가 네트워크에 접근할 수 있도록 응용 프로그램과 직접 상호작용하는 계층
- 특징:
- 다양한 네트워크 서비스와 응용 프로그램을 제공한다. (응용 프로그램은 Application 계층의 일부가 아니다.)
- 최종 사용자와 가장 가까운 계층으로, 사용자가 볼 수 있는 유일한 계층이다.
- 데이터 단위(PDU): 메시지(message)
- 프로토콜: HTTP, FTP, SMTP(이메일 통신 프로토콜), DNS
6. Presentation(표현) 계층
- 개념: 데이터의 변환 작업(인코딩, 디코딩, 암호화, 복호화)을 하는 계층
- 특징:
- 수신 장치의 Application 계층이 이해할 수 있는 형식으로 수신 데이터를 변환한다.
- Application 계층에서 수신한 데이터를 전송하기 전에 압축해 준다.
- 장치가 암호화된 연결을 통해 통신을 하는 경우, 최종 송신자에게 암호화를 추가할 뿐만 아니라 최종 수신자에게 암호화를 디코딩하여 암호화되지 않은 데이터로 변환해 준다.
- 프로토콜: JPEG, MPEG, ASCII, XML
5. Session(세션) 계층
- 개념: 응용 프로그램 간의 논리적 연결인 세션을 지원하는 계층
- 특징:
- 세션을 설정, 유지, 종료, 전송 중단 시 복구 등의 기능이 있다.
- TCP/IP 세션을 만들고 없애는 책임을 진다.
- Transport 계층에서도 연결을 맺고 종료할 수 있기 때문에, 세션 계층은 응용 프로그램 관점에서 봐야 한다.
- 프로토콜: NetBIOS
4. Transport(전송) 계층
- 개념: 종단 간(end to end) 통신과 데이터 전송 방식을 담당하는 계층
- 특징:
- 송신 기기의 Transport 계층에서는 데이터를 세그먼트(segment)로 분할하고, 수신 기기의 Transport 계층에서는 Session 계층이 이용할 수 있는 데이터로 재조립한다.
- 신뢰성 있는 데이터 전송을 위해 흐름 제어(전송 속도 조절), 오류 제어(수신되지 않은 경우 재전송), 혼잡 제어, 중복 검사 등을 지원한다.
- 포트(port) 번호를 사용하여 데이터 전송을 수행한다.
- 데이터 단위(PDU):
- TCP: 세그먼트(segment)
- UDP: 데이터그램(datagram)
- 장비: 게이트웨이
- 프로토콜: TCP(전송 제어 프로토콜), UDP(사용자 데이터그램 프로토콜)
3. Network(네트워크) 계층
- 개념: 라우팅을 통해 서로 다른 두 네트워크 간 데이터를 전달함으로써 인터넷이 가능하게 만드는 계층
- 특징:
- 데이터에 논리적인 주소인 IP 주소를 부여하고, 데이터를 출발지에서 목적지까지 가장 효율적으로 전달하기 위한 경로를 지정(라우팅)한다.
- 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(internetworking) 등을 수행한다.
- 통신하는 두 장치가 동일한 네트워크에 있는 경우 네트워크 계층이 필요하지 않다.
- 데이터 단위(PDU): 패킷(packet)
- 장비: 라우터, 스위치(L3)
- 프로토콜: IP, ICMP(인터넷 제어 메시지 프로토콜), IGMP(인터넷 그룹 메시지 프로토콜)
라우팅: 네트워크에서 데이터 패킷을 출발지에서 목적지까지 전달하기 위해 최적의 경로를 선택하는 과정
2. Data Link(데이터 링크) 계층
- 개념: 물리 계층을 통해 전송된 데이터의 오류를 검출하고 흐름을 관리하여 신뢰성 있는 전송을 보장하는 계층
- 특징:
- MAC 주소를 사용하여 네트워크 내 장치 간의 통신을 관리한다.
- 재전송, 흐름 제어, 오류 검출 및 수정 기능을 포함한다.
- 데이터 단위(PDU): 프레임(frame)
- 장비: 스위치(L2), 브리지, 랜카드
- 프로토콜: MAC, PPP
MAC(Media Access Control) 주소: 네트워크 인터페이스 카드(NIC)에 할당된 고유 식별자, 네트워크에서 데이터를 주고받는 데 사용되며, 하드웨어에 고정된 주소이므로 네트워크 구성 요소마다 주소가 다르다.
1. Physical(물리) 계층
- 개념: 전송 매체를 통해 데이터를 물리적으로 전송하는 계층
- 특징:
- 전기적, 기계적, 기능적 특성을 이용하여 통신 케이블로 데이터를 전송한다.
- 단지 데이터를 전기적인 신호로 변환해서 전달만 한다. (데이터 유형, 에러 유무 등을 확인하지 않는다.)
- 데이터 단위(PDU): 비트(bit) (0과 1로 나타내어지는, 전기적 on/off 상태)
- 장비: 네트워크 케이블, 리피터, 허브
- 프로토콜: Ethernet
✅ Transport Layer와, Network Layer의 차이에 대해 설명해 주세요.
Transport (전송) 계층 | Network (네트워크) 계층 | |
기능 | 데이터의 신뢰성 있는 전송, 흐름 제어, 오류 감지 및 복구 | 데이터의 경로 결정, 패킷 라우팅 및 전달 |
프로토콜 | TCP, UDP | IP, ICMP |
데이터 단위 | TCP: 세그먼트(segment) UDP: 데이터그램(datagram) |
패킷(packet) |
주소 지정 | 포트 번호 | IP 주소 |
✅ L3 Switch와 Router의 차이에 대해 설명해 주세요.
▶ 스위치
스위치(Switch): 목적지로 출발한 데이터를 중간에 적합한 경로로 스위칭해 주는 역할을 한다.
🔽 스위치 특징
- MAC 주소 기반으로 데이터를 전달한다.
- 동일 네트워크 내의 장비를 연결한다.
- Data Link 계층에 속한다.
▶ 라우터
라우터(Router): 데이터가 올바른 목적지로 가는 적합한 경로를 찾아주는 라우팅 기능을 한다.
🔽 라우터 특징
- IP 주소 기반으로 데이터를 전달한다.
- 서로 다른 네트워크를 연결한다.
- Network 계층에 속한다.
▶ L3 Switch
L3 Switch: 스위치와 라우터의 기능을 결합한 장비
🔽 L3 Switch 특징
- 스위칭과 라우팅 기능이 결합되어 있다.
- 스위칭 기능:
- MAC 주소를 이용하여 스위칭을 결정한다.
- 동일한 네트워크 내에서 패킷을 스위칭한다.
- 라우터 기능:
- IP 주소를 이용하여 라우팅을 결정한다.
- 스위칭 기능:
- 데이터 처리가 빠르다.
- VLAN을 지원한다.
VLAN(Virtual Local Area Network): 물리적인 네트워크를 논리적으로 분할하여 각 VLAN에 속하는 장비들이 서로 다른 네트워크 환경처럼 동작하도록 한다.
▶ 차이점
- 속도: L3 Switch > Router
- L3 Switch: MAC 주소를 기반으로 패킷을 빠르게 처리하므로 상대적으로 빠르다.
- Router: 여러 요소를 고려하여 최적의 경로를 결정하기 때문에 속도는 느릴 수 있지만, 보안과 성능 면에서 더 나은 결과를 제공한다.
- 지원 가능한 프로토콜: Router > L3 Switch
- Router: 다양한 라우팅 프로토콜을 지원하여 복잡한 네트워크에서도 유연한 라우팅을 가능하게 한다.
- L3 Switch: 비교적 적은 수의 프로토콜을 지원하며, 주로 VLAN 간 라우팅을 처리한다.
지원 가능한 프로토콜이 많다는 것은 더 복잡한 라우팅 기능을 제공할 수 있음을 의미한다.
- IP 주소 설정 여부: L3 Switch(X), Router(O)
- L3 Switch: IP 주소를 설정하지 않고, 패킷의 목적지 IP 주소를 참조하여 라우팅 테이블을 기반으로 패킷을 포워딩한다.
- Router: IP 주소를 설정하여 네트워크를 구성하고 다양한 네트워크 기능을 제공한다.
- 주요 사용처:
- L3 Switch: LAN 환경에서 VLAN을 관리하고 빠른 스위칭 성능이 필요한 경우 적합하다. 기능은 많지 않지만 빠르고, 대역폭 확장성이 뛰어나기 때문이다.
- Router: 대규모의 복잡한 네트워크에서 안정성과 보안성을 제공하며, 다양한 프로토콜을 지원하여 최적의 경로를 통해 네트워크를 관리한다.
- WAN 인터페이스 지원 여부: L3 Switch(X), Router(O)
- L3 Switch: 일반적으로 WAN 인터페이스를 지원하지 않는다.
- Router: WAN 인터페이스를 지원하여 넓은 지역의 네트워크 연결이 가능하다.
L3 Swtich | Router (라우터) | |
속도 | 비교적 빠름 | 비교적 느림 |
지원 가능한 프로토콜 | 비교적 적음 | 비교적 빠름 |
IP 주소 설정 여부 | X, 패킷의 목적지 IP 주소를 확인하여 라우팅 | O, IP 주소를 설정하여 네트워크 관리 |
주요 사용처 | LAN 환경에서 VLAN 관리와 빠른 스위칭 성능이 필요한 경우 | 안정성과 보안성이 필요한 대규모의 복잡한 네트워크 |
WAN 인터페이스 | X | O |
이론적으로는 이러한 차이점이 있지만, L3 스위치와 라우터 모두 발전함에 따라 기능이 유사해져 실제로 사용하는 제품 간에는 차이가 거의 없을 수도 있다고 한다.
✅ 각 Layer는 패킷을 어떻게 명칭하나요? 예를 들어, Transport Layer의 경우 Segment라 부릅니다.
▶ 프로토콜 데이터 단위 (PDU)
프로토콜 데이터 단위(PDU, Protocol Data Unit)는 각 계층에서 전송되는 데이터 단위를 말한다.
계층 | 데이터 단위 | 설명 |
Application (응용) |
메시지 (message) |
Application 계층에서 주고받는 데이터 |
Presentation (표현) |
- | 데이터 형식을 변환표현 계층은 PDU가 없음 |
Session (세션) |
- | 통신 세션을 관리 세션 계층은 PDU가 없음 |
Transport (전송) |
TCP: 세그먼트(segment) UDP: 데이터그램(datagram) |
- 메시지에 세그먼트 헤더를 결합하여 세그먼트가 생성 - 세그먼트 헤더에는 전송 제어 정보와 포트 번호를 포함 |
Network (네트워크) |
패킷 (packet) |
- 세그먼트에 데이터그램 헤더를 결합하여 데이터그램이 생성 - 데이터그램 헤더에는 네트워크 주소(IP 주소 등)가 포함 |
Data Link (데이터 링크) |
프레임 (frame) |
- 데이터그램에 프레임 헤더를 결합하여 프레임이 생성 - 프레임 헤더에는 물리적 주소(MAC 주소 등)와 에러 검출 정보가 포함 |
Physical (물리) |
비트 (bit) |
- 프레임을 구성하는 비트 단위의 데이터 변조: 비트 단위를 유선/무선으로 전송하기 위한 신호로 변환 복조: 수신 측에서는 이들을 다시 비트로 원복 |
패킷(packet): 네트워크를 통해 전송되는 데이터의 기본 단위로, 여러 계층에서 사용되는 데이터 단위를 총칭하는 데 쓰인다. 메시지, 세그먼트, 데이터그램, 프레임, 비트와 같은 데이터 단위들을 모두 포괄한다.
✅ 각각의 Header의 Packing Order에 대해 설명해 주세요.
▶ 헤더 (Header)
계층 | 헤더 (Header) |
Application (응용) |
X |
Presentation (표현) |
X |
Session (세션) |
X |
Transport (전송) |
TCP 헤더: 소스 포트, 목적지 포트, 시퀀스 번호, 확인 응답 번호, 플래그(ACK, SYN 등), 윈도우 크기, 체크섬 등 UDP 헤더: 소스 포트, 목적지 포트, 길이, 체크섬 등 |
Network (네트워크) |
IP 헤더: 소스 IP 주소, 목적지 IP 주소, 버전, 헤더 길이, TTL(Time to Live), 프로토콜, 체크섬 등 |
Data Link (데이터 링크) |
Ethernet 프레임 헤더: 목적지 MAC 주소, 소스 MAC 주소, 이더타입(프로토콜 식별자), FCS(Frame Check Sequence) |
Physical (물리) |
X |
▶ 패킹 오더 (Packing Order)
계층 | 패킹 오더 (Packing Order) |
Application (응용) |
사용자 애플리케이션에서 생성된 데이터(data)는 Applcation 계층으로 전달된다. |
Presentation (표현) |
Application 계층의 데이터가 Presentation 계층에서 압축 또는 암호화된다. |
Session (세션) |
Presentation 계층의 데이터가 Session 계층으로 넘어가 세션 관리 정보가 추가된다. |
Transport (전송) |
Session 계층의 데이터가 Transport 계층으로 넘어가 세그먼트(segment)로 나뉘고, 전송 관련 헤더와 같은 제어 정보가 추가된다. |
Network (네트워크) |
Transport 계층의 세그먼트(segment)가 Network 계층으로 넘어가 패킷(packet)으로 나뉘고, 네트워크 주소와 라우팅 정보를 포함한 헤더가 추가된다. |
Data Link (데이터 링크) |
Network 계층의 패킷(packet)이 Data Link 계층으로 넘어가 프레임(frame)으로 나뉘고, 물리적 주소 및 오류 검출 정보와 같은 헤더가 추가된다. |
Physical (물리) |
Data Link 계층의 프레임(frame)이 Physical 계층으로 넘어가 비트(bit) 스트림으로 변환되어 물리적 매체를 통해 전송된다. |
🔽 OSI 7계층 모델을 통해 데이터가 전송되는 과정 예시
- 상황: A가 B에게 이메일을 보낸다.
- 캡슐화 과정:
- A가 자신의 노트북에 있는 이메일 애플리케이션에서 메시지를 작성하고 발송을 누른다.
- A의 이메일 애플리케이션이 메시지를 Application 계층으로 넘기면, Application 계층은 프로토콜(SMTP)을 선택하고, 데이터를 Presentation 계층으로 전달한다.
- Presentation 계층이 압축한 데이터는 Session 계층에 전달되어 세션을 시작한다.
- 데이터가 발신자의 Transport 계층으로 넘어가 세그먼트(segment)로 나뉘어 Network 계층으로 전달된다.
- 해당 세그먼트(segment)는 Network 계층에서 패킷(packet)으로 나뉘어 Data Link 계층으로 전달된다.
- 해당 패킷(packet)은 Data Link 계층에서 프레임(frame)으로 나뉘어 Physical 계층으로 전달된다.
- 해당 프레임(frame)은 Physical 계층에서 데이터를 비트(bit) 스트림으로 변환하고 물리적 매체(예: 케이블)를 통해 전송한다.
- 역캡슐화 과정:
- B의 컴퓨터가 물리적 매체(예: 와이파이)를 통해 비트(bit) 스트림을 수신하면, 데이터는 반대 순서로 계층을 지난다.
- 해당 비트(bit) 스트림은 Physical 계층에서 프레임(frame)으로 변환되어 Data Link 계층으로 전달된다.
- 해당프레임(frame)은 Data Link 계층에서 패킷(packet)으로 재조립되어 Network 계층으로 전달된다.
- 해당 패킷(packet)은 Network 계층에서 세그먼트(segment)로 변환되어 Transport 계층으로 전달된다.
- 해당 세그먼트(segment)는 Transport 계층에서 재조립되어 하나의 데이터로 전달된다.
- 이 데이터는 수신자의 Session 계층으로 전달된 후 Presentation 계층으로 전달되면, 통신 세션이 종료된다.
- Presentation 계층은 압축을 제거하고 원본 데이터를 Application 계층으로 넘기고, Application 계층은 사람이 읽을 수 있는 데이터를 B의 이메일 소프트웨어에 제공한다.
- B는 자신의 노트북 화면에서 이메일 소프트웨어를 통해 B의 이메일을 읽을 수 있게 된다.
캡슐화(Encapsulation): 캡슐화는 송신 측에서 데이터를 전송할 때, 각 계층을 거치면서 해당 계층의 프로토콜 헤더를 추가하는 과정이다. 각 계층은 자신만의 헤더를 추가하여 데이터를 하위 계층으로 전달한다.
역캡슐화(Decapsulation): 역캡슐화는 데이터가 수신 측에서 수신될 때, 각 계층을 거치면서 해당 계층의 프로토콜 헤더를 제거하고 원래 데이터를 추출하는 과정이다. 각 계층은 자신의 헤더를 제거하고 데이터를 상위 계층으로 전달한다.
✅ ARP에 대해 설명해 주세요.
ARP(Address Resolution Protocol): 네트워크에서 IP 주소를 물리적 주소(주로 MAC 주소)로 변환하는 프로토콜이다. 주로 이더넷 같은 LAN(Local Area Network)에서 사용된다.
▶ 이더넷 (Ethernet)
이더넷(Ethernet): 유선 LAN 기술을 사용하는 통신 기술이다.
▶ LAN
LAN(Local Area Network): 제한된 지역 내에서 컴퓨터와 기타 네트워크 장비들을 연결하여 데이터를 공유하고 자원을 공동으로 사용할 수 있도록 하는 네트워크이다. LAN은 일반적으로 사무실, 가정, 학교, 연구소 등과 같은 상대적으로 작은 지리적 범위에서 사용된다.
- 여기서 LAN은 ARP 패킷이 미치는 범위가 된다.
LAN과 이더넷에 관련된 자세한 설명은 여기를 참고하면 좋을 것 같다.
▶ ARP 주요 역할
이더넷(Ethernet)에서는 각 네트워크 인터페이스에 고유한 MAC 주소를 부여하여 통신한다. 그러나 사용자는 보통 다른 호스트의 IP만 알고 있고, MAC 주소는 모르는 경우가 많다. 이 문제를 해결하기 위해 ARP를 사용한다.
▶ ARP 작동 과정
- ARP 요청:
- 장비가 특정 IP 주소를 가진 장비의 MAC 주소를 알아야 할 때 APR 요청 패킷을 브로드캐스트한다.
- ARP 요청 패킷에는 요청하는 장비의 IP 주소와 MAC 주소가 포함된다.
- ARP 응답:
- ARP 요청을 받은 장비는 자신이 요청된 IP 주소를 가지고 있다면, 해당 IP 주소와 자신의 MAC 주소를 포함한 ARP 응답 패킷을 송신 장비에게 전송한다.
- 응답 패킷은 송신 장비에게 직접 전송되며, 해당 IP 주소와 MAC 주소의 매핑 정보를 제공한다.
🔽 예시 상황
- Host2(목적지) IP 주소를 가지고 있는 Host1은 Host2의 MAC 주소를 알아내야 한다.
- Host2의 MAC 주소를 알아내기 위해 ARP 요청 패킷을 전송한다.
- ARP 요청 패킷이 네트워크 상의 모든 Host에게 브로드캐스트(Broadcast)된다.
브로드캐스트(Broadcast): 네트워크에서 모든 장비에 동시에 데이터를 전송하는 방식이다.
📍 문제 출처
Tech-Interview / 03-NETWORK.md
📍 참고 자료
'Programming > Network' 카테고리의 다른 글
[Network] 4-Way Handshake (0) | 2024.08.14 |
---|---|
[Network] 3-way Handshake (0) | 2024.08.14 |
[Network] IP (0) | 2024.08.06 |
[Network] DHCP (0) | 2024.08.05 |
[Network] 프로토콜 스택 (0) | 2024.08.05 |