K-MOOC
www.kmooc.kr
[K-MOOC] 네트워크 기초/안성진 강의 정리
01. 네트워크의 개요
01.1 네트워크의 구성요소
네트워크는 노드라고 불리는 장치들이 통신 링크로 연결된 집합체를 의미한다.
노드/장치 | PC, 서버, 라우터, 스위치 등 |
링크 | 유선, 무선 (노드가 연결된 선) |
결국 노드들이 있고 노드들을 연결하는 링크들이 존재하여 네트워크를 구성한다.
01.2 좋은 네트워크의 조건
⚠️ 어떤 네트워크가 좋은 네트워크인가?
(1) 성능(Performance)
네트워크의 성능은 처리량과 지연 시간으로 판단할 수 있다.
- 처리량(Throughout): 단위 시간 당 링크를 통해 전달되는 데이터의 양(얼마나 많은 데이터를 빠르게 보낼 수 있는가?)
- 지연 시간(Delay) (데이터를 보냈을 때 상대방에게 얼마나 빨리 도착하는가?)
- 경유 시간: 한 장치 → 다른 장치로 데이터 전달에 걸리는 시간
- 응답 시간: 요청과 응답에 걸리는 시간
- 왕복 시간(RTT; Round Trip Time): 출발지 → 목적지까지 왕복하는 데 걸리는 시간
(2) 신뢰성(Reliability)
장애 빈도, 장애 발생 후 회복 시간, 재난에 대한 견고성 등으로 측정할 수 있다.
(좋은 네트워크는 오래 안정적으로 작동하는 것도 중요하다.)
(3) 보안성
불법 침입이나 정보 유출에 대한 보안을 확보한다.
✅ 좋은 네트워크란 성능이 뛰어나고, 신뢰성이 높고, 보안성을 갖춘 네트워크라고 할 수 있다.
01.3 링크의 연결 형태
네트워크에서 링크(Link)는 데이터를 한 장치에서 다른 장치로 전달하는 통신 경로를 의미한다.
링크의 연결 형태는 크게 두 가지 방식으로 나눌 수 있는데, (1)일대일 연결과 (2)멀티포인트 연결이다.
(1)일대일 연결은 보내는 쪽과 받는 쪽이 1:1로만 연결되어 있는 구조를 말한다. 그 예로 선으로 연결된 컴퓨터와 프린터가 있다. 컴퓨터가 보낸 데이터는 오직 프린터만 받을 수 있고, 다른 장치는 이 선을 절대 공유하지 않는다. 즉 통로 하나가 오직 두 장치만을 위해 존재한다.
(2)멀티포인트 연결은 선 하나를 다수의 장치가 공유한다. 그래서 송신자가 데이터를 보냈을 때, 링크에 연결되어 있는 모든 컴퓨터가 데이터를 받을 수 있다.
01.4 네트워크 구조
✅ 네트워크 토폴로지: 네트워크의 구성 요소인 노드와 링크가 어떻게 배치되어 있는지를 의미한다.
종류 | 설명 |
그물(Mesh)형 | 각 장치가 일대일로 연결되어 서로가 일대일로 통신한다. |
성(Star)형 | 각 장치가 중앙 장치에 일대일 연결되어 통신한다. |
버스(Bus)형 | 케이블 하나에 여러 장치들이 연결되어 각 신호가 전체에 전달된다. |
링(Ring)형 | 장치들이 링 형태로 서로 연결되어 데이터가 링을 따라 한쪽 방향으로 전달된다. |
🎯 현실에서 네트워크는 토폴로지 하나로만 딱 정해져 있지 않다.
한 기관이나 기업 안에서도 상황과 목적에 따라 버스, 스타, 링, 메시 구조가 섞여서 함께 사용되고, 이렇게 만들어진 네트워크들이 서로 연결되면서 지금 우리가 쓰는 큰 네트워크가 완성된다.
01.5 네트워크 분류
크기, 소유권, 구조 등에 의해 분류할 수 있다.
분류 | 설명 |
LAN (Local Area Network) |
보통 사무실, 건물, 캠퍼스 같은 공간에서 여러 장치들이 서로 연결되어 하나의 네트워크를 만든다. 이런 네트워크는 개인적으로 소유할 수도 있다. 네트워크가 닿는 범위를 정해놓을 수는 없으나, 서로 멀리 떨어지지 않고 가까운 거리에서 연결된 컴퓨터와 장치들을 묶어서 보통 LAN(근거리 통신망)이라고 부른다. |
MAN (Metropolitan Area Network) |
LAN보다 범위가 더 넓은, 도시 단위로 여러 건물이나 기관을 연결한 네트워크를 말한다. |
WAN (Wide Area Network) |
MAN보다 훨씬 넓은 범위로, 전국 또는 전 세계 규모의 네트워크를 말한다. 대표적으로 네트워크가 서로 연결된 인터넷을 들 수 있다. |
02. 네트워크 모델과 표준 프로토콜
02.1 계층화의 개념
🤔 왜 네트워크를 계층으로 나눠야 할까?
친구와 대화를 나눌 때를 생각해보면 사실 세 단계를 거치게 된다. (1)머릿속 생각을 정리하고 (2)그 생각을 말로 표현하고 (3)입으로 소리를 내고 → 공기를 매개로 그 소리가 상대방의 귀에 도달한다. 결국 아이디어, 언어, 물리적 송수신 장치라는 세 가지 계층으로 나눌 수 있다.
만약 귀가 잘 들리지 않는다면, 생각이나 말하는 능력을 고칠 필요는 없고 보청기를 끼면 된다. 즉 물리적 계층만 개선하면 된다.
네트워크도 마찬가지로 적용할 수 있다. 예를 들어 10Mbps 속도로 통신하던 컴퓨터에서 100Mbps나 1Gbps 속도를 쓰고 싶다면, 컴퓨터를 다 바꿀 필요 없이 속도와 관련된 장치만 교체하면 된다.
즉 한 계층의 변경이 다른 계층에 영향을 주지 않는다는 것이 계층화의 가장 큰 장점이다. 계층을 나누어 두면 특정 계층만 업그레이드하거나 특정 계층에서 사용하는 프로토콜을 다른 것으로 변경한다고 하더라도 나머지 계층에는 영향을 주지 않기 때문에 훨씬 효율적으로 관리할 수 있다.
02.2 TCP/IP 모델
🤔 그럼 실제로는 몇 계층으로 나누는 게 좋을까?
처음에는 OSI 7계층 모델에서 데이터 통신 과정을 7계층으로 나누었지만 최근엔 거의 사용하지 않는다.
요즘 인터넷에서 사용하는 것은 TCP/IP 5계층으로, TCP/IP 프로토콜을 기반으로 5개의 계층으로 나눈다. 이걸 흔히 인터넷 모델이라고 하는데 이 계층은 무조건 외워두는 것이 좋다.
02.3 물리 계층(Physical Layer)
네트워크의 맨 아래 계층인 물리 계층이다. 이름 그대로 장치가 실제로 연결되는 물리적인 부분을 다룬다.
장치들이 연결될 때 필요한 물리적인 특성을 정의하는데, 비트(0과 1)를 전기 신호나 빛 신호로 바꿔서 전송한다. 이 때 데이터 전송 속도(1Mbps, 100Mbps, 1Gbps…), 신호를 주고받을 때의 비트 동기화 방식, 네트워크 토폴로지 정의, 전송 모드(단방향, 양방향), 선로 구성에 관한 사항을 결정한다.
02.4 데이터 링크 계층(Data Link Layer)
물리 계층에서는 메시지 포맷 없이 단순히 0과 1로 이루어진 비트 신호를 쏘는 단계였다면, 데이터 링크 계층부터는 메시지의 형식(프레임)이 생긴다. 여기서부터는 헤더+데이터 구조를 가진 프레임 단위로 주고받게 된다.
데이터 링크 계층의 주요 기능
- 에러 제어(Error Control)
데이터 링크 계층의 가장 중요한 역할으로, 에러가 발생했는지 확인한다.
[예] 데이터 1을 보냈는데 수신자가 0을 받는 경우를 에러라고 한다. - 흐름 제어(Flow Control)
송신자의 전송 속도와 수신자의 수신 속도가 다를 수 있으므로 데이터를 보내는 속도를 조절해서 데이터가 넘쳐흐르지 않게 한다. - 접근 제어(Access Control)
멀티 포인트(하나의 링크를 여러 장치가 함께 사용)의 경우 동시에 데이터를 보내면 충돌이 발생할 수 있으므로 데이터 링크 계층이 충돌이 발생하지 않도록 조정한다.
02.5 네트워크 계층(Network Layer)
데이터 링크 계층이 같은 네트워크 안에서 데이터를 안전하게 전달하는 역할을 수행했다면, 네트워크 계층은 초기 송신지에서 최종 수신지까지 데이터를 전달한다.
네트워크 계층의 주요 기능
- 송수신 주소 지정: 데이터를 보낼 때 누가 보내고 누가 받는지 명시한다.
- 라우팅(Routing)
네트워크 계층에서 가장 중요한 기능이다. 데이터가 송신지에서 출발했을 때 수신지까지 여러 컴퓨터(노드)를 거쳐갈 수 있다. 그런데 경로가 여러 개일 때 어떤 경로로 보내는 것이 가장 효율적일지를 결정하는 것이 라우팅이다.
🚧 네트워크 계층에서는 아래 계층인 데이터 링크 계층에서 이미 에러를 처리하고 있기 때문에 에러 검사를 하지 않는다. 네트워크 계층의 주 업무는 경로 설정(라우팅)이다.
02.6 전송 계층(Transport Layer)
네트워크 계층이 최적의 경로로 데이터를 수신 컴퓨터까지 전송해주면, 이제 수신 컴퓨터 안에서 여러 프로그램(프로세스) 중에 누가 받을지 결정해야 한다. 이 역할을 하는 계층이 전송 계층이다.
전송 계층의 주요 기능
- 엔드투엔드 전달(End-to-End Delivery)
컴퓨터까지만 데이터를 보내는 것이 아니라 송신지의 특정 프로그램에서 수신지의 특정 프로그램까지 전달한다. 즉 데이터를 송신지의 특정 프로세스에서 수신지의 특정 프로세스로 전달한다. - 메시지 분할과 조립
큰 메시지를 작은 단위(세그먼트)로 분할하여 전송하고, 수신 측에서 순서대로 다시 조합한다. 이 때 중간에 데이터가 깨지는 것에 대해 검사도 수행한다. - 연결 관리
전송하는 형태에 따라 송신 전에 먼저 연결을 설정하고 데이터를 전송하는 연결형(Connection-Oriented)과 연결 없이 바로 데이터를 전송하는 비연결형(Connectionless)에 대한 관리를 수행한다.
02.7 응용 계층(Application Layer)
말 그대로 응용 계층은 다양한 프로그램과 서비스를 포함하는 계층이다. 화상회의, 원격 교육, 이메일, 웹 브라우저 등 실제로 사용하는 대부분의 네트워크 프로그램이 포함된다.
대표적인 응용 계층 프로토콜
- FTP(File Transfer Protocol): 파일을 주고받을 때 사용한다.
- SMTP(Simple Mail Transfer Protocol): 전자우편(이메일)을 주고받을 때 사용한다.
- HTTP (Hypertext Transfer Protocol): 웹 브라우저가 웹페이지를 요청하고 표시할 때 사용한다.
결국 응용 계층은 사용자가 직접 사용하는 서비스 계층이다.
02.8 표준 프로토콜
✅ 프로토콜(Protocol)이란 데이터를 주고받을 때 지켜야 하는 규칙의 집합이다.
즉 프로토콜은 약속된 통신 규칙이며, 서로 다른 장치나 프로그램이 일관되게 통신할 수 있도록 정해놓은 규칙이 바로 표준 프로토콜이다.
프로토콜을 공식적으로 정의하고 관리하는 기관인 표준화 기구로 ISO, ITU-T, ANSI, IEEE, EIA가 있다.
표준 프로토콜의 종류는 공식적으로 표준화 기구가 정한 규칙인 De jure Standard와 사실상 많이 사용되고 있어 표준으로 자리잡은 규칙인 De facto Standard가 있다.
'CS > 네트워크' 카테고리의 다른 글
[k-mooc/네트워크] 05. 이동통신과 인터넷프로토콜 (0) | 2025.09.10 |
---|---|
[k-mooc/네트워크] 04. 무선 LAN과 네트워크 연결장치 (1) | 2025.09.05 |
[k-mooc/네트워크] 03. LAN 매체와 유선 LAN 🌟 (0) | 2025.09.04 |
[k-mooc/네트워크] 02. 스위칭과 다중 접속 프로토콜 (2) | 2025.08.29 |