일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- uikit
- MVVM
- 대표
- 기초문법
- WeatherKit
- forEach
- SwiftUI
- CS
- 협업
- 토이프로젝트
- 딕셔너리
- RxSwift
- 이론
- 앱개발
- 구름톤 유니브
- 프로토콜
- 스트럭트
- 학과별커뮤니티
- 디자인 패턴
- struct
- 네트워크
- AppStore
- mvc
- 실습
- swift
- 세종대학교
- 반응형
- collectionview
- async
- ios
- Today
- Total
스윞한 개발자
3. 네트워크 본문
이번 포스팅에서는 CS 네트워크의 기초에 대해 공부하고 정리해 보겠습니다!
네트워크는 컴퓨터의 장치들이 통신 기술을 이용하여 구축하는 연결망입니다.
# 네트워크의 기초
노드, 링크가 서로 연결되어 있으며 리소스를 공유하는 집합을 말합니다.
(노드 : 서버/링크/스위치 등 네트워크 장치)
(링크 : 유/무선)
* 처리량과 지연 시간
좋은 네트워크 : 많은 처리량, 짧은 지연시간, 적은 장애 빈도, 좋은 보안을 갖춘 네트워크
- 처리량 : 링크 내 성공적으로 전달된 데이터의 양 ( 대역폭 : 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 )
- 지연 시간 : 요청 처리 시간, 장치 간 왕복 시간. 지연시간은 매체 타입(유/무선), 패킷 크기, 라우터의 패킷 처리 시간에 영향을 받습니다.
* 네트워크 토폴로지와 병목 현상
네트워크 토폴로지
노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태를 의미합니다.
1) 트리(계층형) 토폴로지
트리 형태의 구성, 노드 추가/삭제가 쉬우며 특정 노드에 트래픽이 집중될 때 하위 노드에 영향을 끼칠 수 있습니다.
2) 버스 토폴로지
중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유하는 네트워크 구성을 말하며 근거리 통신망 LAN에 사용됩니다. 설치 비용이 적고 신뢰성이 우수하며 중앙 통신 회선에 노드를 추가하거나 삭제하기 쉽습니다. (단점 : 스푸핑 취약)
* 스푸핑
송수신부의 패킷을 송신과 관련없는 다른 호스트에 가지 않도록 스위치 기능을 마비시켜 특정 노드에 해당 패킷이 오도록 처리하는 것
3) 스타 토폴로지
중앙에 있는 노드에 모두 연결된 네트워크를 말합니다. 노드의 추가, 에러 탐지에 쉽고 패킷 간 충돌 발생 가능성이 적습니다. 어떠한 노드에 장애가 발생해도 쉽게 에러를 발견할 수 있으며 장애 노드가 중앙 노드가 아닐 경우 다른 노드에 영향을 끼치는 것이 적습니다. But, 중앙 노드에 장애가 발생하면 전체 네트워크를 사용할 수 없고 설치 비용이 고가입니다.
4) 링형 토폴로지
각각의 노드가 양 옆의 두 노드와 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식입니다.
데이터가 노드 간 이동하며, 노드 수가 증가 되어도 손실이 적고 고장을 찾기 쉽지만 구성 변경이 어렵습니다.
5) 메시(망형) 토폴로지
그물망처럼 연결되어 있는 구조입니다. 한 단말에 장애가 발생해도 여러 개의 경로가 존재해 네트워크를 계속 사용 할 수 있고 분산처리가 가능합니다. 노드 추가가 어렵고 구축/운용 비용이 고가입니다.
* 병목 현상(bottleneck)
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상입니다.
# 네트워크 분류
1) LAN : 근거리 통시망 ( 전송 속도가 빠르고 혼잡 X )
2) MAN : 대도시 지역 네트워크 ( 전송 속도 평균, LAN 보다 혼잡 )
3) WAN : 광역 네트워크 ( 국가/대륙 넓은 지역에서 운영, 전송 속도 낮으며, MAN 보다 혼잡 )
* 네트워크 성능 분석 명령어
병목현상의 원인
1) 네트워크 대역폭
2) 네트워크 토폴로지
3) 서버 CPU, 메모리 사용량
4) 비효율적 네트워크 구성
'네트워크로부터 발생한 문제점' -> 확인
1) ping : 노드의 패킷 수신 상태와 도달하기까지 시간 체크 가능 (연결 여부 확인) - TCP/IP(ICMP 프로토콜) 사용하기에, ICMP 차단 기기는 사용 불가능
2) netstat : 접속되어 있는 서비스들의 네트워크 상태 표시 (네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트) - 서비스의 포트 열림 확인
3) nslookup : DNS, 특정 도메인 매핑 IP 확인
4) tracert(traceroute) : 목적지 노드까지 네트워크 경로 확인 (어느 구간에 응답 시간이 느려지는지 확인)
# TCP/IP 4계층 모델
인터넷에서 컴퓨터들이 서로 정보를 주고받는 데 쓰이는 프로토콜의 집합입니다. TCP/IP 4계층 모델 or OSI 7계층 모델로 설명하기도 합니다.
- TCP/IP 계층 : 애플리케이션, 전송, 인터넷, 링크 계층
- OSI 7계층 : 애플리케이션, 프레젠테이션, 세션, 전송, 네트워크, 데이터 링크, 물리 계층
1) 애플리케이션 계층 : FTP, HTTP, SSH 등 응용 프로그램이 사용되는 프로토콜 계층
2) 전송 계층 : TCP(패킷), UDP(데이터그램) 등 송수진자 연결 통신서비스 제공. TCP는 연결 과정에서 3-way handshake 작업을 진행합니다.
* 연결 과정 : SYN(ISN) -> SYN + ACK -> ACK
* 연결 해제 과정 : FIN -> ACK ->( TIME_WAIT )-> FIN -> ACK
3) 인터넷 계층 : 장치로부터 받은 네트워크 패킷을 IP 주소로 지정된 목적지로 전송하기 위해 사용되는 계층. 상대방이 제대로 받았는지에 대해 보장하지 않는 비연결형 특징을 가지고 있습니다.
4) 링크 계층 : 전선, 광섬유, 무선 등 실질적 데이터 전달 '규칙'을 정하는 계층.(네트워크 접근 계층)
* 전이중화 통신 : 양쪽 장치가 동시에 송수신할 수 있는 방식
* 반이중화 통신 : 데이터를 보낸 이후 충돌이 발생한다면 일정 시간 이후 재전송(서로 통신 가능, 동시에 통신 불가능)
#계층 간 데이터 송수신 과정
애플리케이션 -> 전송 -> 인터넷 -> 링크 -> 링크 -> 인터넷 -> 전송 -> 애플리케이션 계층
캡슐화 과정 : 상위 계층 헤더와 데이터를 하위 계층의 데이터 부분에 포함시키고 해당 계층의 헤더를 삽입하는 과정
비캡슐화 과정 : 하위 계층에서 상위 계층으로 가며 각 계층의 헤더 부분을 제거하는 과정
*PDU
네트워크의 어떠한 계층에서 계층으로 데이터가 전달될 때 한 덩어리의 단위를 PDU라고 합니다. (헤더+페이로드)
- 애플리케이션 : 메시지
- 전송 : 세그먼트(TCP), 데이터그램(UDP)
- 인터넷 : 패킷
- 링크 : 프레임(데이터 링크), 비트(물리)
이번 포스팅에서는 이 정도까지만 정리해 보겠습니다!
다음 포스팅에서는 네트워크 기기 ~ 쭉 공부하며 정리해 볼게요!!
'CS 이론' 카테고리의 다른 글
6. 운영체제 (0) | 2024.08.17 |
---|---|
5. 네트워크(HTTP) (0) | 2024.08.12 |
4. 네트워크 기기 (0) | 2024.08.11 |
2. 디자인 패턴, 프로그래밍 패러다임 (0) | 2024.08.08 |
1. 디자인 패턴 (0) | 2024.08.06 |