[Network] 네트워크 기초

뚜비·2023년 3월 28일
0

Network

목록 보기
1/6

1. Computer Network

What is network?

A network is the interconnection of a set of devices capable of communication
통신이 가능한 디바이스의 집합의 상호연결

  • 해당 정의에 따르면 디바이스는 host(end-user)가 될 수 있다.
    EX) large computer, desktop, laptop, workstation, cellular phone or security system 등
  • 또한 디바이스는 connecting device(중간 네트워크 장비)가 될 수 있다.
    EX) router, switch, hub, AP, modem that changes the form of data 등

2개 이상의 노드(node)가 링크(link)로 서로 연결되어 있으며 리소스(데이터 등)를 공유하는 집합

  • Node
    : 네트워크 장치
    : 컴퓨터, 서버, 프린터, 라우터, 스위치 및 기타 장치
  • Link
    : 한 장치에서 다른 장치로 데이터를 전송하는 통신 경로
    : 유선 또는 무선

Networking Elements

1. At least two computers
두 대 이상의 컴퓨터


2. Transmission medium either wired or wireless
유선 또는 무선 전송 매체

🤔 Example of transmission medium

  • Wired or Guided: Twisted Pair Cable, Coaxial Cable, and Optical Fiber Cable.


  • Wireless or Unguided: Radiowaves, Microwaves, and Infrared.


3. Protocols or rules that govern the communication
: 통신을 관리하는 프로토콜 또는 규칙
: 디바이스가 서로를 식별하고 연결하는 mechanisms뿐만 아니라 데이터가 송수신된 메시지로 패키징되는 방법을 지정하는 formatting rules(형식 지정 규칙)이 포함

🤔 Protocols of 3 types

  • Internet Protocols
  • Wireless Network Protocols
  • Network Routing Protocols

4. Network software such as Network Operating System

네트워크 운영 체제와 같은 네트워크 소프트웨어


Network Criteria

1. Performance(성능)
: Transit time(전송 시간) and Response time(응답 시간)으로 측정된다.
: Throughput(수율, data rate 중 의미있게 전달한 데이터의 전송률) 혹은 Delay(어떤 데이터를 보내는데 걸리는 시간)로 측정
: 보통 throughput이 좋으면 delay도 짧아진다.

🤔 Transit time vs Response time

  • Transit time : 메세지가 한 디바이스에서 다른 디바이스로 이동하는데 걸리는 시간
  • Response time : 조회와 응답 사이의 경과 시간

2. Reliability(안전성) : 네트워크가 얼마나 자주 오류가 생기는가?
: Frequency of failure(장애의 빈도수)
: The time it takes a link to recover from failures (링크가 장애로부터 복구되는데 걸리는 시간)
: The network's robustness in a catastrophe (재앙 시 네트워크의 견고성, 얼마나 잘 견디는가)

으로 측정된다.

3. Security(보안)
: Protecting data from unauthorized access (인증 받지 못한 사용자로부터 데이터 보호)
: Protecting data from damage and development (손상 및 개발로부터 데이터 보호)
: Implementing polices and procedures for recovery from breaches and data losses (위반과 데이터 손실로부터 복구하는 정책이나 절차의 구현이 잘 되어있는가)



2. Throughput(처리량) & latency(= delay, 지연시간)

  • 네트워크의 성능(performance)의 척도를 의미
  • 좋은 네트워크란 1. 많은 throughput을 처리할 수 있으며 latency가 짧고, 2. 장애 빈도가 적으며, 3. 좋은 보안을 갖춘 네트워크를 의미한다.

Throughput(처리량)

  • 링크를 통해 성공적으로 전달된 data rate(단위 시간당 데이터양), 보통 얼만큼의 traffic을 처리했는지를 나타냄

  • 단위 : bps(bits per second), 초당 전송 또는 수신되는 비트 수

  • 많은 traffic을 처리한다 = 많은 throughput을 가진다.

  • throughput은
    1. 사용자들이 많이 접속할 때마다 커지는 트래픽
    2. 네트워크 장치 간의 대역폭
    3. 네트워크 중간에 발생하는 에러
    4. 장치의 하드웨어 스펙
    에 영향을 받는다.

  • Traffic : 특정시점에 네트워크 장치(서버와 스위치 등)나 링크 내“흐르는” 데이터의 양
    EX) 서버에 저장된 파일(문서,이미지,동영상 등)을 클라이언트(사용자)가 다운로드 시 발생되는 데이터의 누적량
    EX) 웹사이트에 traffic이 많다는 것 = 사용자 접속이 많아서 전송하는 데이터의 양이 많다는 것

🤔 traffic vs throughput
traffic이 많아졌다 = 흐르는 데이터가 많아졌다.
throughput이 많아졌다 = 처리되는 트래픽이 많아졌다.

🤔 대역폭?(Bandwidth)

  • 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
  • 주어진 시간 동안 한 지점에서 다른 지점으로 얼마나 많은 양의 정보를 전송할 수 있는지

latency(= delay 지연시간)

  • 요청이 처리되는 시간
  • 어떤 메시지가 두 장치 사이에서 전송하고 응답하는 데 걸린 시간
  • 지연 시간은 1. 매체 타입(무선, 유선), 2. 패킷 크기, 3. 라우터의 패킷 처리 시간에 영향을 받는다.


3. network topology & 병목 현상

network topology?

노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태


1. Tree topology

  • 계층형 토폴로지라고도 함.

  • 트리 형태로 배치한 네트워크 구성, star topology의 변형임.

  • 계층적인 데이터의 흐름이 있음, 데이터는 중앙 허브에서 보조 허브로 흐르거나 디바이스에서 보조 허브로 흐름

  • 장점
    : 디바이스의 추가, 삭제가 쉬움
    : 단일 중앙 허브에 더 많은 장치를 연결할 수 있으므로 신호가 디바이스로 전달되는 거리를 줄일 수 있음

  • 단점
    : 특정 디바이스에 트래픽이 집중될 때 하위 디바이스에 영향을 끼칠 수 있음
    : 중앙 허브에 장애가 발생하면 전체 시스템에 장애가 발생



2. Bus topology

  • 중앙 통신 회선(backbone cable)에 여러 개의 디바이스가 drop line(connection) 및 tap(connector)을 통해 연결되어 공유하는 네트워크 구성

  • broadcating 된다. (한 디바이스에서 송신하면 연결된 모든 디바이스는 모두 수신할 수 있다)

  • 장점
    : 신뢰성이 우수
    : Ease of installation - backbone cable에 디바이스를 추가하거나 삭제하기 쉽고 설치 비용이 적음

  • 단점
    : 스푸핑이 가능한 문제점 - Security 매우 낮음
    : Difficult reconnection and fault isolation - bus cable에 장애가 발생하면 전체 시스템이 중단
    : 네트워크 트래픽이 많으면 네트워크 내 충돌이 증가 - 동시에 두 디바이스가 송신하면 데이터끼리 collision(충돌)이 일어나서 깨짐

  • Example
    Traditional Ethernet LAN(전통적인 이더넷 LAN)에서 사용(참고로 이론적으로는 bus topology로 동작, 실제 물리적으로는 star topology로 구성)



🤔 스푸핑이 뭔데!?

  • LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
  • 스푸핑을 적용하면 올바르게 수신부로 가야 할 패킷이 악의적인 노드에 전달됨


3. Star topology

  • 각 디바이스는 central controller(보통 hub 라고 부름)에 1:1로 연결된 네트워크 구성
  • 현재 가장 많이 사용되는 구조


  • 장점
    : Less expensive(than a mesh tolpolgy) - N개의 디바이스를 star topology에 연결한다고 하면 cable이 N개 필요함. 또한 디바이스를 추가하기 쉬움
    : Robustness - 장애 디바이스가 hub가 아닐 경우 해당 디바이스에만 영향을 미치고 다른 디바이스에 영향을 끼치지 않음. 또한 패킷의 충돌 발생 가능성이 적다.
    : Easy to fault identification and fault isolation - 어떠한 디바이스에 장애가 발생해도 쉽게 에러를 발견할 수 있음
  • 단점
    : Dependency of the whole topology on hub - hub에 장애가 발생하면 전체 네트워크를 사용할 수 없음
    : More cabling compared with ring and bus - ring과 bus에 비해서 설치 비용이 고가
  • Example
    LAN(local area network)


4. Ring topology

  • 각각의 디바이스가 양 옆의 두 디바이스와 1:1로 연결하여 전체적으로 고리처럼 하나의 연속된 길을 통해 통신을 하는 망 구성 방식
  • 데이터는 디바이스에서 디바이스로 단 방향으로 이동을 하게 되며, 각각의 디바이스는 고리 모양의 길을 통해 패킷을 처리
  • 각 네트워크 디바이스 간에 2개의 연결을 통해 양방향으로 만들 수 있음 == 이중 ring topology
  • 디바이스 수가 많으면 repeater를 사용

🤔 reapeater를 왜 사용함?

  • 100개 디바이스로 구성된 ring topology의 마지막 디바이스로 데이터를 보내려면 데이터가 99개 디바이스를 통과해야 100번째 디바이스에 도달할 수 있기 때문입니다. 따라서 데이터 손실을 방지하기 위해 사용
  • 한번 송신하면 끝까지 가야하는데 유선이라 할 지라도 거리가 멀어질 수록 신호가 점점 감쇄하기에 Amplifying(증폭) 시켜줘야 함
  • 장점
    : 디바이스 수가 증가되어도 네트워크상의 손실이 거의 없음
    → repeater를 통해 신호를 증폭시켜주기 때문
    : 충돌이 발생되는 가능성이 적음
    → Token을 가지고 있는 디바이스만 데이터를 전송할 수 있기 때문
    : Simple falut identification and isolation - 디바이스의 고장 발견을 쉽게 찾을 수 있음

  • 단점
    : 네트워크 구성 변경이 어렵
    : 회선 혹은 한 디바이스에 장애가 발생하면 전체 네트워크에 영향을 크게 끼침

  • Example
    IBM LAN, Token Ring



5. Mesh topology

  • 모든 디바이스가 다른 모든 디바이스와 1:1로 연결되어 있음

🤔 Link의 개수

N 개의 디바이스가 있는 mesh network에서 fully connected 연결하면 Link의 개수는 다음과 같다

  • half duplex 모드(한 디바이스가 데이터를 보낼 때 다른 한 쪽에서는 보낼 수 없음) : n(n-1)
  • fully duplex 모드(동시에 양쪽 디바이스에서 데이터를 보낼 수 있음) : n(n-1)/2 = nC2 개
  • 장점
    : Robust - 한 디바이스에 장애가 발생해도 여러 개의 경로가 존재하므로 네트워크를 계속 사용할 수 있음
    : Eliminating the traffic problems - 트래픽(traffic) 분산 처리 가능
    : Easy fault identification & isolation - 통신 고장을 쉽게 진단할 수 있음
    : Secure
    : Reliable - 데이터는 전용 채널 혹은 링크를 통해 디바이스 간에 전송되므로 신뢰할 수 있음
    : 디바이스 간의 통신 속도가 매우 빠름

  • 단점
    : 디바이스를 설치(Installation)추가 구성(configuration)하기 어려움
    : 구축 비용과 운용 비용이 고가(cable이 많이 필요)이므로 적은 수의 디바이스에 적합함

  • Example
    : 기지국망, 전화망, 사업자망, 인터넷망

Bottleneck (병목 현상)

  • 전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
    EX) 병의 몸통보다 병의 목 부분 내부 지름이 좁아서 물이 상대적으로 천천히 쏟아지는 것에 비유 가능
    EX) 서비스에서 이벤트를 열었을 때 트래픽이 많이 생기고 그 트래픽을 잘 관리하지 못하면 병목 현상이 생겨 사용자는 웹 사이트로 들어가지 못 함.

🤔 네트워크 병목 현상의 주된 원인
• 네트워크 대역폭
• 네트워크 토폴로지
• 서버 CPU, 메모리 사용량
• 비효율적인 네트워크 구성


  • topology가 중요한 이유는 병목 현상을 찾을 때 중요한 기준이 됨

    병목 현상이 일어나서 사용자가 서비스를 이용할 때 지연 시간이 길게 발생하고 있다고 가정해보자
    → 지연 시간을 짧게 만들기 위해 대역폭을 크게 설정
    → 성능이 개선 X

    네트워크 topology를 확인해서 서버와 서버 간 그리고 게이트웨이로 이어지는 회선을 추가하여 병목 현상을 해결


4. 네트워크 분류

  • 네트워크는 규모를 기반으로 분류 가능

LAN(Local Area Network)

  • 근거리 통신망
  • 사무실과 개인적으로 소유 가능한 규모 EX) 같은 건물이나 캠퍼스 같은 좁은 공간
  • 전송 속도가 빠르고 혼잡하지 않음
  • 유선랜(wired LAN) : Ethernet
    무선랜(wireless LAN) : Wifi
  • LAN의 각각의 host는 전부다 주소를 가져야 함! → 여러 개의 연결되어 있는 디바이스 중에서 선별되서 보내겠다는 의미

MAN(Metropolitan Area Network)

  • 대도시 지역 네트워크
  • 도시 같은 넓은 지역에서 운영
  • 전송 속도는 평균이며 LAN보다는 더 많이 혼잡

WAN(Wide Area Network)

  • 광역 네트워크를 의미
  • 국가 또는 대륙 같은 더 넓은 지역에서 운영
  • 전송 속도는 낮으며 MAN보다 더 혼잡


5. 네트워크 성능 분석 명령어

애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황
→ 네트워크 병목 현상일 가능성이 있음!
→ 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 ‘네트워크로부터 발생한 문제점’인 것을 확인
네트워크 성능 분석을 해봐야 함


ping(Packet INternet Groper)

  • 네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
  • 알 수 있는 것
    : 해당 디바이스의 패킷 수신 상태도달하기까지 시간
    : 해당 디바이스까지 네트워크가 잘 연결되어 있는지 확인
  • TCP/IP 프로토콜 중에 ICMP(인터넷 제어 메세지 프로토콜)(네트워크 내 장치가 데이터 전송과 관련된 문제를 전달하기 위해 사용하는 프로토콜)을 통해 동작
    → ICMP 프로토콜을 지원하지 않는 기기를 대상으로는 실행할 수 없음
    → 네트워크 정책상 ICMP나 traceroute를 차단하는 대상의 경우 ping 테스팅은 불가능

ping [IP 주소 또는 도메인 주소]

  • ping www.google.com -n 12라는 명령어를 구동한 모습
  • -n 12 옵션 : 12번의 패킷을 보내고 12번의 패킷을 받음

netstat

  • 접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용
  • 네트워크 상의 트래픽의 양을 결정하기 위해 사용
  • 알 수 있는 것
    : 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 등 리스트
    : 서비스의 포트가 열려 있는지 확인

  • 접속하고 있는 사이트 등에 관한 네트워크 상태 리스트 확인

nslookup

  • DNS에 관련된 내용을 확인하기 위해 쓰는 명령어

    🤔 DNS
    도메인 이름 시스템
    사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환

  • 알 수 있는 것
    : 도메인 네임을
    : 특정 도메인에 매핑된 IP를 확인 혹은 매핑

  • google.com의 DNS를 확인하는 모습

tracert

  • 윈도우에서는 tracert이고 리눅스에서는 traceroute
  • 목적지 노드까지 네트워크 경로를 확인할 때 사용하는 명령어
  • 알 수 있는 것
    : 목적지 노드까지 구간들 중 어느 구간에서 응답 시간이 느려지는지 등을 확인

  • 구글 사이트에 도달하기까지의 경로 추적을 하는 모습

참고

  • ftp : 대형 파일을 전송하여 테스팅 명령어
  • tcpdump : 노드로 오고 가는 패킷을 캡처 명령어
  • 네트워크 분석 프로그램 wireshark, netmon


6. 네트워크 프로토콜 표준화

네트워크 프로토콜

  • 컴퓨터나 원거리 통신 장비 사이에서 메시지를 주고 받는 양식과 규칙의 체계
  • Sender(송신자)와 Receiver(수신자) 및 모든 중간 device가 효과적으로 통신하기 위해 따라야 하는 규칙을 정의
  • 다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스

🤔 생각해보자
사람들이 데이터를 주고 받는 방법에는 전화, 편지 등이 있을 것이다.
이렇듯 네트워크에서도 다양한 방법을 통해 데이터를 주고 받을 수 있다.
단, 그 방법을 일치시킬 필요가 있다는 것! == 프로토콜
두 사람이 서로 데이터를 주고 받는데 한 사람이 전화, 다른 사람은 편지를 사용할 수 없으니까~~

  • 프로토콜은 IEEE 또는 IETF라는 표준화 단체가 정함
    만든 기업이 다른 디바이스라도 서로 데이터를 수신할 수 있음
  • 통신이 단순할 때는 하나의 단순한 프로토콜만 필요할 수 있으나, 통신이 복잡할 때는 각 계층 또는 프로토콜 계층에 프로토콜이 필요하다.

  • IEEE802.3은 유선 LAN 프로토콜로, 유선으로 LAN을 구축할 때 쓰이는 프로토콜

EX) HTTP
→ HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜
→ 디바이스들은 W3 상에서 데이터를 주고받을 수 있음
→ 주로 HTML 문서를 주고받는 데에 쓰인다

프로토콜 종류



😎 참고자료

면접을 위한 CS 전공지식 노트
Basics of Computer Networking
Data Communications and Networking
Elements of Computer Network
[네트워크] 프로토콜 종류

profile
SW Engineer 꿈나무 / 자의식이 있는 컴퓨터

0개의 댓글