네트워크란?
컴퓨터 등의 장치들이 통신 기술을 이용하여 구축하는 연결망
노드(node)와 링크(link)가 서로 연결되어 있으며 리소스를 공유하는 집합
링크 내에서 성공적으로 전달된 데이터의 양
많은 트래픽을 처리한다 = 많은 처리량을 가진다
트래픽이란?
특정 시점에 링크 내에 '흐르는' 데이터의 양
ex ) 서버에 저장된 파일을 클라이언트가 다운로드할 때 발생되는 데이터의 누적량대역폭이란?
주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
요청이 처리되는 시간을 말하며 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태
네트워크를 설계할 때 고려한다.
계층형 토폴로지
근거리 통신망(LAN)에서 사용하는, 중앙 통신 회선 하나에 여러 개의 노드가 연결되어 공유되는 형태
스푸핑이란?
LAN상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드(악의적인 노드)에 해당 패킷이 오도록 처리하는 것
중앙에 있는 노드에 모두 연결된 네트워크 구성
데이터는 노드에서 노드로 이동하게 되며, 각각의 노드는 고리 모양의 길을 통해 패킷을 처리하는 형태
망형 토폴로지
전체 시스템의 성능이나 용량이 하나의 구성 요소로 인해 제한을 받는 현상
ex ) 서비스에서 이벤트를 열었을 때 트래픽이 많이 생기고 그 트래픽을 잘 관리하지 못하면 병목 현상이 생겨 사용자가 웹 사이트로 들어가지 못함.
네트워크 구조인 토폴로지가 중요한 이유는 병목 현상을 찾을 때 기준이 되기 때문이다.
네트워크가 어떤 토폴로지인지, 서버 - 게이트웨이 - 사용자 간 어떠한 경로로 이루어져 있는지 알아야 병목 현상을 잘 해결할 수 있다.
네트워크는 규모를 기반으로 분류할 수 있다.
근거리 통신망.
대도시 지역 네트워크.
광역 네트워크.
코드 상 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 경우, 네트워크 병목 현상일 가능성이 있다.
테스트를 통해 네트워크로부터 발생한 문제점인 것을 확인한 후 네트워크 성능 분석을 해야 한다.
사용할 수 있는 명령어는 아래와 같다.
네트워크 상태를 확인하려는 대상 노드를 향해 일정 크기의 패킷을 전송하는 명령어
접속되어 있는 서비스들의 네트워크 상태를 표시하는 데 사용되며 네트워크 접속, 라우팅 테이블, 네트워크 프로토콜 종류 등 리스트를 보여준다.
DNS에 관련된 내용을 확인하기 위해 쓰는 명령어
목적지 노드까지 네트워크 경로를 추적할 때 사용하는 명령어
네트워크 프로토콜이란?
다른 장치들끼리 데이터를 주고받기 위해 설정된 공통된 인터페이스 (IEEE 표준화)
예를 들어, HTTP는 웹을 접속할 때 쓰인다. 서로 약속된 인터페이스인 HTTP라는 프로토콜을 통해 노드들은 웹 서비스를 기반으로 데이터를 주고받을 수 있다.
Reference
- 면접을 위한 CS 전공지식노트 (주홍철 저)
- https://m.blog.naver.com/hilineisp/10169694570?view=img_6