본 글은 '이것이 취업을 위한 컴퓨터 과학이다 with CS 기술 면접' 책을 읽고 정리한 글입니다.
네트워크란?
네트워크(Network)는 Net + Work의 합성어로, 그물처럼 서로 긴밀하게 연결되어 있는 것을 의미한다. IT에서 사용되는 컴퓨터 네트워크는 두 대 이상의 컴퓨터가 서로 연결되어 통신할 수 있는 것을 말한다.
✔️ 네트워크의 기본 구조
네트워크는 노드와 간선으로 이루어진 그래프의 형태이다. 네트워크 기기가 노드, 네트워크 기기 간 정보를 주고받는 통신 매체가 간선이다.
위 그림과 같이 네트워크 상에서 노드와 노드 사이의 연결 구조를 네트워크 토폴로지라고 하며, 아래 다섯 가지 유형이 있다.
네트워크를 통해 주고받는 정보를 최초로 송신하고 최종으로 수신하는 노드를 호스트라고 하는데, 우리가 흔히 접하는 대부분의 네트워크 기기가 호스트에 해당된다. `ex. 노트북, 데스크탑, 스마트폰`
만약, 내가 노트북으로 구글 홈페이지에 접속하면 나의 노트북과 구글의 서버 컴퓨터가 호스트로서 정보를 주고받게 된다. 이 과정에서 요청을 보내는 호스트를 클라이언트, 응답을 보내는 호스트를 서버라고 한다.
LAN과 WAN
네트워크는 규모에 따라 LAN과 WAN으로 나뉜다.
근거리 네트워크를 의미하는 LAN(Local Area Network)은 가정이나 기업처럼 비교적 가까운 거리를 연결하는 소규모 네트워크이다. LAN은 기기가 물리적으로 가까이 연결되어 있기 때문에 비교적 간단히 구현할 수 있으며, 통신에 필요한 선이 짧으므로 데이터를 주고받는데에 오류가 적다.
원거리 네트워크를 의미하는 WAN(Wide Area Network)은 지역이나 국가와 같이 넓은 영역을 연결하는 광역 네트워크이다. LAN을 연결한 것을 WAN이라고 부르기도 하며, 인터넷을 가능하게 만드는 네트워크가 WAN이다.
WAN은 물리적으로 범위가 넓어서 개인이 구현하기는 어렵고, 일반적으로 ISP(Internet Service Provider)라고 하는 인터넷 서비스 업체가 구축하고 관리한다. 대표적인 ISP 업체는 KT, LG U+, SK브로드밴드가 있다.
패킷 교환 네트워크
네트워크를 통해 주고받는 데이터는 한 번에 송수신되지 않고, 패킷이라고 하는 단위로 쪼개져서 송수신된다. 즉, 패킷은 네트워크를 통해 데이터를 주고받을 때 사용하는 데이터의 단위이다.
하나의 패킷은 페이로드(payload)와 헤더(header)로 구성되어있으며, 트레일러(trailer)가 붙기도 한다. 페이로드는 패킷에서 송수신하고자 하는 데이터이며, 헤더와 트레일러는 페이로드의 앞 또는 뒤에 붙는 부가정보이다.
네트워크에서 패킷 단위로 데이터를 주고받을 때,
페이로드에 부가정보를 붙여서 보내고(캡슐화), 받을 때 제거하는 방식으로 통신을 하게 되는데(역캡슐화)
이처럼 패킷을 주고받는 네트워크 방식을 패킷 교환 네트워크라고 한다.
주소와 전송 방식
네트워크 상의 두 호스트가 데이터를 주고받을 때, 요청과 응답을 어디로 보낼 지, 즉 목적지를 알아야 한다. 이때 주소(address)라는 것을 사용하며, 이 정보는 패킷의 헤더에 명시된다. 네트워크에서 사용하는 대표적인 주소로는 `IP주소`와 `MAC주소`가 있다.
- IP주소 : 네트워크 전체에서 장치를 식별할 수 있는 주소
- MAC주소 : 특정 하드웨어를 식별하는 주소
주소를 바탕으로 패킷을 보내는 방식에는 1:1, 1:N 등 몇 가지 방식이 있다.
- 유니캐스트: 1:1 방식
- 브로드캐스트: 네트워크 상 모든 호스트에 전송
- 멀티캐스트: 네트워크 내 동일 그룹에 속한 호스트에 전송
- 애니캐스트: 네트워크 내 동일 그룹에 속한 호스트 중 가장 가까운 호스트에 전송
✔️ 두 호스트가 패킷을 주고받는 과정
프로토콜
두 호스트가 패킷을 주고받을 때 각 호스트는 패킷의 내용을 이해할 수 있어야 한다. 그래서 패킷을 구성할 때 같은 규칙을 가지고 만들게 되는데, 이 규칙이 프로토콜이다. 다시 말해 프로토콜은 데이터를 송수신하기 위해 호스트 간에 합의된 규칙이다.
`ex. IP, ARP, TCP, UDP, HTTP`
네트워크 참조 모델
패킷을 주고받는 과정을 계층적으로 표현한 것을 네트워크 참조 모델이라고 한다.
송신부는 패킷을 상위 계층에서 하위 계층으로 정보를 보내고, 수신부에서는 하위 계층에서 상위 계층으로 정보를 전달한다.
OSI 7계층
OSI 7계층은 국제 표준화 기구 ISO가 만든 네트워크 참조 모델로, 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성되어 있다.
1) 응용 계층
사용자와 가장 밀접하게 맞닿아 있어 여러 네트워크 서비스를 제공하는 계층이다. 응용 계층에 속하는 대표적인 프로토콜은 `HTTP`, `HTTPS`, `DNS` 등이 있다.
2) 표현 계층
인코딩과 압축, 암호화와 같이 데이터를 표준화된 형식으로 변경하는 계층이다.
3) 세션 계층
세션의 유지 및 해제 등 응용 프로그램 간 통신 제어와 동기화를 하는 계층이다.
세션: 응용 프로그램 간의 연결 상태
4) 전송 계층
패킷의 순서 보장, 유실 방지와 같이 신뢰성 있는 전송을 가능하게 하는 계층이다. 포트(port)로 특정 응용 프로그램과 연결하기도 한다. 대표적인 프로토콜은 `TCP`, `UDP`가 있다.
5) 네트워크 계층
LAN을 넘어 다른 네트워크와 통신을 가능하게 하는 계층이다. 호스트를 식별하기 위해 IP주소가 필요하다.
6) 데이터 링크 계층
같은 LAN에 속한 호스트끼리 정보를 주고받기 위한 계층이다. 이를 위해 MAC주소를 사용하고, 데이터에 오류가 없는지 확인한다.
7) 물리 계층
물리 계층은 가장 최하위 계층으로, 데이터를 비트(bit) 단위의 0과 1로 변환한 후 장비를 사용하여 전송하는 계층이다.
TCP/IP 4계층
OSI 모델은 네트워크의 이론적 기술이 목적인 반면, TCP/IP 모델은 구현과 프로토콜에 중점을 둔 네트워크 참조 모델이다.
1) 응용 계층
사용자와 소프트웨어를 연결해주는 계층으로, OSI 모델의 응용, 표현, 세션 계층을 합친 것과 유사한다. `ex. HTTP, HTTPS, DNS`
2) 전송 계층
OSI 모델의 전송 계층과 유사하며 데이터 단위는 세그먼트이다.
3) 인터넷 계층
OSI 모델의 네트워크 계층과 유사하다.
4) 네트워크 액세스 계층
OSI 모델의 데이터 링크 계층과 유사하며, 링크 계층 또는 네트워크 인터페이스 계층이라고도 한다.
캡슐화와 역캡슐화
잠깐 상기시켜보자면, 네트워크 통신에서 송신부는 상위 -> 하위로, 수신부는 하위 -> 상위로 데이터를 전달한다고 했다.
송신 과정에서 패킷에 헤더 또는 트레일러를 추가하게 되는데 이를 캡슐화라고 한다. 반대로, 수신부에서는 받은 데이터에서 헤더와 트레일러를 분석하여 제거하게 되는데 이를 역캡슐화라고 한다.
참고할 점은, 각 계층에서 주고받는 패킷은 지칭하는 이름이 다르다.
다시 돌아와서, 캡슐화와 역캡슐화 과정을 살펴보면 아래 그림과 같다.
각 계층에서 헤더+페이로드로 이루어진 데이터는 다음 계층에서 페이로드가 되고, 다시 다른 헤더 또는 트레일러가 붙게 된다.
출처
https://whatap.io/bbs/board.php?bo_table=blog&wr_id=166&page=4
'CS > 네트워크' 카테고리의 다른 글
[네트워크] 3. 네트워크 계층 - IP (2) | 2025.05.19 |
---|---|
[네트워크] 2. 물리 계층과 데이터 링크 계층 (1) | 2025.05.15 |