A network is the interconnection of a set of devices capable of communication
통신이 가능한 디바이스의 집합의 상호연결
2개 이상의 노드(node)가 링크(link)로 서로 연결되어 있으며 리소스(데이터 등)를 공유하는 집합
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
네트워크 운영 체제와 같은 네트워크 소프트웨어
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 (위반과 데이터 손실로부터 복구하는 정책이나 절차의 구현이 잘 되어있는가)
1. 많은 throughput을 처리할 수 있으며 latency가 짧고
, 2. 장애 빈도가 적으며
, 3. 좋은 보안
을 갖춘 네트워크를 의미한다. 링크를 통해 성공적으로 전달된 data rate(단위 시간당 데이터양), 보통 얼만큼의 traffic을 처리했는지를 나타냄
단위 : bps(bits per second), 초당 전송 또는 수신되는 비트 수
많은 traffic을 처리한다 = 많은 throughput을 가진다.
throughput은
1. 사용자들이 많이 접속할 때마다 커지는 트래픽
2. 네트워크 장치 간의 대역폭
3. 네트워크 중간에 발생하는 에러
4. 장치의 하드웨어 스펙
에 영향을 받는다.
Traffic : 특정시점에 네트워크 장치(서버와 스위치 등)나 링크 내에 “흐르는” 데이터의 양
EX) 서버에 저장된 파일(문서,이미지,동영상 등)을 클라이언트(사용자)가 다운로드 시 발생되는 데이터의 누적량
EX) 웹사이트에 traffic이 많다는 것 = 사용자 접속이 많아서 전송하는 데이터의 양이 많다는 것
🤔 traffic vs throughput
traffic이 많아졌다 = 흐르는 데이터가 많아졌다.
throughput이 많아졌다 = 처리되는 트래픽이 많아졌다.
🤔 대역폭?(Bandwidth)
- 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수
- 주어진 시간 동안 한 지점에서 다른 지점으로 얼마나 많은 양의 정보를 전송할 수 있는지
1. 매체 타입(무선, 유선)
, 2. 패킷 크기
, 3. 라우터의 패킷 처리 시간
에 영향을 받는다.노드와 링크가 어떻게 배치되어 있는지에 대한 방식이자 연결 형태
계층형 토폴로지라고도 함.
트리 형태로 배치한 네트워크 구성, star 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상에서 송신부의 패킷을 송신과 관련 없는 다른 호스트에 가지 않도록 하는 스위칭 기능을 마비시키거나 속여서 특정 노드에 해당 패킷이 오도록 처리하는 것
- 스푸핑을 적용하면 올바르게 수신부로 가야 할 패킷이 악의적인 노드에 전달됨
🤔 reapeater를 왜 사용함?
- 100개 디바이스로 구성된 ring topology의 마지막 디바이스로 데이터를 보내려면 데이터가 99개 디바이스를 통과해야 100번째 디바이스에 도달할 수 있기 때문입니다. 따라서 데이터 손실을 방지하기 위해 사용
- 한번 송신하면 끝까지 가야하는데 유선이라 할 지라도 거리가 멀어질 수록 신호가 점점 감쇄하기에 Amplifying(증폭) 시켜줘야 함
장점
: 디바이스 수가 증가되어도 네트워크상의 손실이 거의 없음
→ repeater를 통해 신호를 증폭시켜주기 때문
: 충돌이 발생되는 가능성이 적음
→ Token을 가지고 있는 디바이스만 데이터를 전송할 수 있기 때문
: Simple falut identification and isolation - 디바이스의 고장 발견을 쉽게 찾을 수 있음
단점
: 네트워크 구성 변경이 어렵
: 회선 혹은 한 디바이스에 장애가 발생하면 전체 네트워크에 영향을 크게 끼침
Example
IBM LAN, Token Ring
🤔 Link의 개수
N 개의 디바이스가 있는 mesh network에서 fully connected 연결하면 Link의 개수는 다음과 같다
- half duplex 모드(한 디바이스가 데이터를 보낼 때 다른 한 쪽에서는 보낼 수 없음) : n(n-1) 개
- fully duplex 모드(동시에 양쪽 디바이스에서 데이터를 보낼 수 있음) : n(n-1)/2 = nC2 개
🤔 네트워크 병목 현상의 주된 원인
• 네트워크 대역폭
• 네트워크 토폴로지
• 서버 CPU, 메모리 사용량
• 비효율적인 네트워크 구성
애플리케이션 코드상에는 전혀 문제가 없는데 사용자가 서비스로부터 데이터를 가져오지 못하는 상황
→ 네트워크 병목 현상일 가능성이 있음!
→ 네트워크 관련 테스트와 네트워크와 무관한 테스트를 통해 ‘네트워크로부터 발생한 문제점’인 것을 확인
→ 네트워크 성능 분석을 해봐야 함
ping [IP 주소 또는 도메인 주소]
ping www.google.com -n 12
라는 명령어를 구동한 모습-n 12
옵션 : 12번의 패킷을 보내고 12번의 패킷을 받음🤔 DNS
도메인 이름 시스템
사람이 읽을 수 있는 도메인 이름(예: www.amazon.com)을 머신이 읽을 수 있는 IP 주소(예: 192.0.2.44)로 변환
🤔 생각해보자
사람들이 데이터를 주고 받는 방법에는 전화, 편지 등이 있을 것이다.
이렇듯 네트워크에서도 다양한 방법을 통해 데이터를 주고 받을 수 있다.
단, 그 방법을 일치시킬 필요가 있다는 것! == 프로토콜
두 사람이 서로 데이터를 주고 받는데 한 사람이 전화, 다른 사람은 편지를 사용할 수 없으니까~~
EX) HTTP
→ HTTP는 클라이언트와 서버 사이에 이루어지는 요청/응답(request/response) 프로토콜
→ 디바이스들은 W3 상에서 데이터를 주고받을 수 있음
→ 주로 HTML 문서를 주고받는 데에 쓰인다
면접을 위한 CS 전공지식 노트
Basics of Computer Networking
Data Communications and Networking
Elements of Computer Network
[네트워크] 프로토콜 종류