기본 구조
- 노드와 간선으로 이루어진 자료구조 → 그래프의 형태
- 네트워크 기기 : 노드 , 정보 교환에 필요한 통신 매체 : 간선
네트워크 토폴로지
- 네트워크 상 노드와 노드 사이의 연결 구조
- 망형, 트리형, 링형, 성형, 버스형(선형) 등이 있음
- 네트워크를 통해 주고 받는 정보를 최초로 송,수신하는 노드를 호스트라고함.
- ex. 노트북의 웹 브라우저를 통해 구글 홈페이지 접속 했다면?→ 노트북, 구글 홈페이지 서버가 각각 호스트
- 노트북은 요청(request)을 보냈으니 클라이언트, 구글은 응답(response)을 보내니까 서버라고 함!
망형(Mesh) 토폴로지
- 특징
- 모든 노드가 서로 직접 연결된 구조
- 모든 노드가 다른 모든 노드와 연결되면 완전 망형, 그게 아니면 부분 망형이라 불림.
- 장점
- 장애 발생 시 우회 경로가 존재 → 신뢰성이 높음.
- 데이터 전송이 빠름 → 병목 현상이 없음.
- 네트워크 트래픽 분산 → 안정적
- 단점
- 연결선과 포트가 많이 필요 → 네트워크 구성 비용이 많음.
- 설정 및 유지보수가 어려움.
- 연결 노드 수가 증가하면 복잡도가 증가함.
트리형(Tree) 토폴로지
- 특징
- 계층적인 구조로 중앙 노드(루트)에서 여러 개의 하위 노드(브랜치)로 확장됨.
- 주로 기업 네트워크 및 대형 네트워크에서 사용됨.
- 장점
- 확장성이 뛰어나 대규모 네트워크 구축에 적합.
- 특정 그룹(부서)별로 네트워크를 구분하여 관리 가능.
- 계층 구조로 인해 네트워크 트래픽을 효율적으로 관리 가능.
- 단점
- 루트 노드에 장애가 발생하면 전체 네트워크가 마비될 위험이 있음.
- 네트워크 구성 및 관리가 복잡함.
- 상위 노드에 부하가 집중될 가능성이 있음.
링형(Ring) 토폴로지
- 특징
- 노드들이 원형으로 연결되며, 데이터가 한 방향(또는 양방향)으로 순환하면서 전달됨.
- 토큰 패싱(Token Passing) 방식으로 데이터 충돌을 방지함.
- 장점
- 데이터 충돌이 적어 안정적인 데이터 전송이 가능.
- 일정한 데이터 전송 속도를 유지할 수 있음.
- 상대적으로 설치 및 유지보수가 용이함.
- 단점
- 한 노드에 장애가 발생하면 전체 네트워크에 영향을 미칠 수 있음
- 새로운 노드를 추가하거나 제거할 때 네트워크를 중단해야 할 가능성이 높음
- 데이터 전송 지연이 발생할 수 있음(특히 단일 방향 링일 경우)
성형(Star) 토폴로지
- 특징
- 중앙 허브(Hub) 또는 스위치(Switch)에 모든 노드가 개별적으로 연결됨.
- 가장 많이 사용되는 네트워크 구조.
- 장점
- 특정 노드가 장애를 일으켜도 전체 네트워크에는 영향이 적음.
- 설치 및 유지보수가 용이함.
- 네트워크 관리 및 확장이 쉬움.
- 단점
- 중앙 장치(허브 또는 스위치)에 장애가 발생하면 전체 네트워크가 마비됨.
- 네트워크 케이블의 길이에 따라 성능 저하 가능.
- 많은 케이블이 필요하여 비용이 증가할 수 있음.
버스형(선형, Bus) 토폴로지
- 특징
- 모든 노드가 하나의 중앙 통신 선로(버스)로 연결
- 초기에 구축이 쉬워 소규모 네트워크에서 사용
- 장점
- 케이블 사용량이 적고 설치 비용이 저렴함.
- 구조가 단순하여 구축이 쉬움.
- 적은 수의 장치가 있을 때 효율적.
- 단점
- 중앙 버스(케이블)에 장애가 발생하면 전체 네트워크가 마비됨.
- 데이터 충돌이 자주 발생할 수 있음.
- 네트워크 확장이 어렵고, 노드를 추가할 때 성능이 저하될 수 있음.
LAN 과 WAN
LAN (Local Area Network)
- 근거리 네트워크
- 가정 및 기업처럼 가까운 거리를 연결하는 네트워크
WAN (Wide Area Network)
- 원거리 네트워크
- LAN간 통신을 이뤄질수 있도록 함
- 인터넷을 가능하게 만드는 네트워크.
- ISP(Internet Service Provider)라는 인터넷 서비스 업체가 구축 및 관리 (KT, LG, SK 등등)
WAN, LAN 연결 방식
CAN (Campus Area Network)
- 학교 또는 회사의 여러 건물 단위로 연결되는 규모의 네트워크
MAN (Metropolitan Area Network)
- 도시나 대도시 단위로 연결되는 규모의 네트워크
패킷 교환 네트워크
- 패킷
- 네트워크를 통해 송수신되는 데이터의 단위
- 패킷의 구조
- 페이로드 : 패킷에서 송수신하고자 하는 데이터 (ex. 택배)
- 헤더 & 트레일러 : 패킷에 추가되는 부가 정보 (ex. 택배에 붙이는 송장)
주소의 개념 및 전송 방식
- 주소 : 패킷의 헤더에 명시되는 정보 (서로를 특정할수 있는 정보) (ex. IP address, MAC address)
- 유니캐스트 : 송신지와 수신지가 1:1로 메시지를 주고받는 전송 방식
- 브로드캐스트 : 네트워크상의 모든 호스트에게 메시지를 전송하는 전송 방식
- 브로드캐스트 도메인 : 브로드캐스트가 전송되는 범위, 호스트가 같은 브로드캐스트 도메인에 속해있는경우, 같은 LAN에 속해 있다고 간주함.
- 멀티캐스트 : 네트워크 내의 동일 그룹에 속한 호스트에게만 전송하는 방식
- 애니캐스트 : 네트워크 내의 동일 그룹에 속한 호스트 중 가장 가까운 호스트에서 전송하는 방식
두 호스트가 패킷을 주고받는 과정
프로토콜
- 네트워크에서 통신을 주고받는 노드 간의 합의된 규칙이나 방법
- 패킷을 주고받는 호스트와 네트워크 장비들이 주고받는 정보를 이해하기위해서는 같은 프로토콜을 이해, 같은 프로토콜로 통신해야함!
프로토콜의 종류 및 목적
IP
- 네트워크 간의 주소를 지정하는 목적을 지닌 프로토콜
ARP
- IP 주소와 MAC 주소를 대응시킨다는 목적을 지닌 프로토콜
HTTPS, HTTP
- HTTPS는 보안상 HTTP에 비해 안전함.
TCP, UDP
- TCP는 UDP에 비해 신뢰성이 높음.
네트워크 참조 모델
OSI 모델
- 국제 표준화 기구인 ISO에서 만든 네트워크 참조 모델
- 통신 단계를 7개의 계층으로 나눠져 있음
- 네트워크의 이론적 기술을 목적으로 사용함
1. 물리 계층 (physical layer)
- 가장 최하위 계층
- 비트 신호를 주고 받는 계층
- 0, 1로 이루어진 신호를 유무선 통신 매체를 통해 운반하는 계층
2. 데이터 링크 계층 (data link layer)
- 같은 LAN에 속한 호스트끼리 올바르게 정보를 주고받기 위한 계층
- 같은 네트워크에 속한 호스트를 식별할수 있는 주소(MAC 주소)를 사용
- 물리 계층을 통해 주고받은 정보에 오류가 없는지 확인
- 하드웨어와 연결되어 있는 계층
3. 네트워크 계층 (network layer)
- 네트워크 간 통신을 가능하게 하는 계층
- LAN을 넘어 다른 네트워크와 통신을 주고받기 위해 필요한 계층 → 네트워크간 통신 과정에서 호스트를 식별할 수 있는 주소(IP 주소)가 필요함
4. 전송 계층 (transport layer)
- 패킷의 유실 및 순서의 오류를 대비해 신뢰성 있는 전송을 가능하게 하는 계층
- 포트(port)라는 정보를 통해 특정 응용 프로그램과의 연결 다리 역할을 수행하는 계층
- TCP, UDP가 대표적인 프로토콜
5. 세션 계층 (session layer)
- 응용 프로그램 간의 연결 상태(세션)을 관리하기 위한 계층
- 응용 프로그램 간의 연결 상태를 유지하거나 새롭게 생성하고, 필요시 연결을 끊는 역할
6. 표현 계층 (presentation layer)
- 인코딩과 압축, 암호화와 같은 작업 수행
- 세션 계층과 표현 계층은 대체로 응용계층에 포함하여 간주는 경우도 많음
7. 응용 계층 (application layer)
- user와 가장 가까이에서 여러 네트워크 서비스를 제공하는 계층
- 중요한 프로토콜들이 다수 포함되어 있음 (HTTP, HTTPS, DNS)
TCP/IP 모델
- TCP/IP 4계층이라고도 불림
- 네트워크 액세스 계층, 인터넷 계층, 전송 계층, 응용 계층으로 구성됨
- 구현과 프로토콜에 중점을 둔 네트워크 참조 모델
캡슐화와 역캡슐화
- 패킷의 송신 과정에서 캡슐화 이루어짐
- 패킷의 수신 과정에서 역캡슐화가 이루어짐
- 이해하기전 한번더 학습하기! (네트워크 계층 구조를 통한 송수민, 패킷의 구조)
- 패킷을 송신하는 쪽 : 상위(숫자 큰거) → 하위(숫자 작은거) 계층으로 정보 보냄
- 패킷을 수신하는 쪽 : 하위 → 상위 계층으로 정보 받음
- 네트워크 계층 구조를 이용하면 프로토콜을 계층별로 구성할 수 있음
- 하나의 패킷은 헤더와 페이로드(+트레일러)를 포함하며, 프로토콜의 목적 및 특징에 따라 헤더의 내용은 바뀐다!
- 각 계층에서 정보를 송신할때, 상위 계층에서 받은 패킷을 페이로드로 삼아서, 여러 프로토콜의 목적과 특징에 따라 헤더 or 프레일러를 덧붙인 뒤 하위 계층으로 전달. 즉, 상위 계층의 패킷이 하위 계층의 페이로드로 간주되는것!! → 송신 과정에서 헤더(및 트레일러)를 추가해나가는 과정 → 캡슐화(encapsulation)
- 수신 과정에서 헤더(및 트레일러)를 각 계층에서 확인한 뒤 제거하는 과정 → 역캡슐화(decapsulation)
계층에서 주고받는 패킷을 지징하는 이름 ( 다 알고 계세요)
계층 | 패킷의 이름 | |
그 이상의 계층 | 데이터(data) or 메시지(message) | |
전송계층 | TCP 기반 패킷일 경우 | 세그먼트(segment) |
UDP 기반 패킷일 경우 | 데이터그램(datagram) | |
네트워크 계층 | 패킷(이하 IP 패킷) or 데이터그램 | |
데이터 링크 계층 | 프레임(frame) | |
물리 계층 | 심볼(symbol) or 비트(bit) |
네트워크에서 배울것들^^
'CS > 기타' 카테고리의 다른 글
(CS) 네트워크 - 네트워크 계층 IP (0) | 2025.03.22 |
---|---|
(CS) 네트워크 - 물리 계층과 데이터 링크 계층 (0) | 2025.03.19 |
(CS) 정렬 - 퀵 정렬 (0) | 2025.01.21 |
(CS) 의존성 주입 (0) | 2025.01.09 |
(CS) SOLID 원칙 (0) | 2025.01.07 |