2주차 - 네트워크
38. 네트워크 기초 #1
네트워크란?
노드와 링크가 서로 연결되어 있으며 리소스를 공유하는 집합을 의미함.
- 노드 : 서버, 라우터, 스위치 등 네트워크 장치
- 링크 : 유선 또는 무선과 같은 연결매체 (와이파이나 LAN)
트래픽
특정 시점에 링크 내에 흐르는 데이터의 양
- 트래픽이 많아졌다 → 흐르는 데이터가 많아졌다.
- 처리량이 많아졌다. → 처리되는 트래픽이 많아졌다.
대역폭(bandwidth)
- 주어진 시간 동안 네트워크 연결을 통해 흐를 수 있는 최대 비트 수 (최대 트래픽)
- 대역폭이 높을 수록
- 사용자에게 빠른 서비스를 서빙할 수 있음.
- 대역폭이 높을 수록
- 대략적인 최대 동시 접속자 수 유추의 척도가 됨.
Q. 100Mbps 라는 대역폭을 가진 서버가 존재하고, 한 사용자당 100kbps로 동영상 파일을 요청한다고 가정할 때, 최대 동시 접속자 수는?
\[\frac{100 \text{ Mbps}}{100 \text{ kbps}} = {\text{약 1000명}}\]RTT(Round Trip Time)
왕복지연시간은 신호를 전송하고 해당 신호를 수신확인에 걸린 시간을 더한 값이자 어떤 메시지가 두 장치 사이를 왕복하는 데 걸린 시간
39-40. 네트워크 기초 #2~3. 네트워크 토폴로지
네트워크 토폴로지
토폴로지란? 노드와 링크가 어떠한 구조로 연결되어 있는 지를 도식화한 것.
버스 토폴로지
회선 하나에 여러 개의 노드가 연결된 구조
하나의 중앙 통신 회선을 백본 또는 버스라고 부름
- 장점
- 설치 비용 적음
- 유지보수 쉬움
- 한 노드에 장애 발생해도 전체 네트워크에 영향 안줌
- 단점
- 회선에 많은 트래픽이 생기면 정체 현상 발생 가능 (패킷 손실율 높음)
- 회선이 망가지먼 전체 네트워크에 영향을 줌
- 패킷 도청(스니핑)이나 위조(스푸핑) 등의 보안 위협에 취약
스타 토폴로지
하나의 중앙 노드(허브나 스위치)를 중심으로 여러 개의 말단 노드가 별 모양 처럼 각각 독립적인 구조로 연결 된 구조
- 모든 통신은 항상 중앙 노드를 통해서만 이루어짐
- 노드의 추가 및 삭제가 간단
- 장점
- 모든 통신이 중앙 노드를 통과하므로 방화벽, 침입 탐지 시스템(IDS)등 보안 장비를 중앙에 집중 적용 가능
- 단점
- 중앙 노드 에러 시에 큰 문제 발생
트리 토폴로지
계층 구조를 가진 토폴로지 → 트리형태
- 장점
- 리프 노드로의 확장 용이
- 리프노드의 에러는 나머지 부분의 영향을 미치지 않음
- 단점
- 특정 노드 트래픽 집중시 그 하위 모든 노드이 병목 현상 발생 가능
- 로프 노드에 문제 생기면 전체 네트워크 문제 발생
링 토폴로지
- 장점
- 노드 고장 위치 쉽게 파악 가능
- 각 노드가 앞 뒤 두 노드랑만 연결되므로 이론상으로 추가 및 삭제가 용이하지만
- 실제 물리적 네트워크에서는 일시적 중단 발생할 수 있으므로 이중 링 설계 필요
- 단점
- 데이터 전송시 다른 노드들을 거쳐야하므로 전송지연(latency)가 발생 가능
메시 토폴로지
- Full Mesh : 모든 노드가 서로 1:1로 연결된 구조
- Partial Mesh: 일부 노드만 연결된 구조
- 장점
-
안정성이 높음
→ 한 노드에 장애가 나도 다른 노드에 영향을 주지 않음
-
트래픽 분산 가능
-
- 단점
- 기본적으로 연결되는 회선(링크)가 많기 때문에 초기 구축 비용, 설계 비용, 관리 비용이 많아짐
41. 네트워크 기초 #4. 병목 현상과 네트워크 토폴로지의 필요성
병목현상
병목(bottleneck)현상은 네트워크에서 트래픽이 특정 구간에 집중되어 데이터 흐름 속도가 제한되는 상황을 말한다. → 핫스팟이라고도 함.
병목현상 원인
- 대역폭 부족 : 라우터, 스위치, 특정 링크가 감당할 수 있는 트래픽보다 많은 데이터가 몰릴 때
- 예) 본사와 지사 간 연결 선이 100Mbps로 제한되어 있는데, 동시에 여러 지사에서 대용량 파일을 전송하면 포화상태 발생
- 서버/애플리케이션 처리 능력 한계 : 서버 CPU, 메모리, 스레드 풀 부족으로 패킷 처리가 지연
- 네트워크 토폴로지 문제(구조 문제): 여러 클라이언트가 하나의 경로를 공유할 때 특정 구간에서 발생
토폴로지의 필요성
토폴로지를 파악함으로써 병목현상을 해결하는 척도
💬 어떻게 해결?
위 그림처럼 중간에 로드 밸런서 부분에서 병목현상이 일어난다는 것을 파악, 서버, DB로 부터 회선을 더 추가하여 병목현상 해결 가능
42. 네트워크 기초 #5. 유니캐스트 / 멀티캐스트 / 브로드 캐스트
유니캐스트
1:1 통신을 말함. (가장 일반적인 통신)
멀티캐스트
1:N 통신,
다만 연결된 모든 노드들에게 데이터를 전달하지는 않고 특정 그룹에게만 데이터를 전달함
브로드캐스트
1:N 통신,
43. 네트워크 분류 : LAN, MAN, WAN
네트워크는 LAN, MAN, WAN 순으로 분류됩니다. LAN이 가장 작은 단위, WAN이 가장 큰 단위이며 보통은 반경, 속도의 크기를 기반으로 분류
LAN
LAN(local area network, 근거리 통신망)은 MAN, WAN보다 높은 안정성, 속도를 가짐.
- 보통 허브나 스위치로 연결된 네트워크
MAN
MAN(metropolitan area network, 대도시 통신망)은 도시와 도시의 통신망을 뜻하며 2개 이상의 LAN이 연결되어 구성됨
- 라우터, 브리지 등으로 연결됨
WAN
WAN(wide area network)은 국가와 국가와의 통신망을 뜻함.
→ 인터넷이라고도 함.
→ 수많은 라우터를 거쳐 다른 국가와도 연결되는 범위를 말함.
44. TCP/IP 4계층 #1 개요
TCP / IP 4계층은 장치들이 인터넷 상에서 데이터를 주고받을 때 쓰는 프로토콜의 집합입니다. 4계층 혹은 7계층으로 나누어집니다.
애플리케이션 계층(Application)
애플리케이션 계층은 OSI 7계층 또는 TCP/IP 4계층 모델에서 가장 최상단에 위치한 계층이다.
- 사용자가 웹사이트를 열거나 이메일을 보내는 등의 작업을 수행할 때, 그 데이터를 어떻게 보내야 하는지 결정하는 프로토콜들이 모여있는 계층
- HTTP, HTTPS, SMTP, SSH, FTP, SSH가 대표적
전송 계층(Transport)
TCP, UDP가 대표적이며 애플리케이션계층에서 받은 메시지를 기반으로 세그먼트(TCP) 또는 데이터그램(UDP)으로 데이터를 쪼개고 데이터가 오류없이 순서대로 전달되도록 도움을 주는 계층
인터넷 계층(network)
IP, ICMP, ARP가 대표적이며 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터그램을 패킷화하여 목적지로 전송하는 역할
링크 계층(link) – Network Access 계층
링크 계층은 전선, 광섬유, 무선 등으로 데이터가 네트워크를 통해 물리적으로 전송되는 방식을 정의
- 데이터링크 + 물리 계층을 합친 계층
메시지 전송과정 예시
Checksum (체크섬)
체크섬은 데이터를 전송할 때 오류가 발생했는지 확인하기 위해 덧붙이는 추가 데이터 조각이며 “받은 데이터가 손상됐는지 판별하는 값
- 각 계층에 따라 사용되는 체크섬 알고리즘이 다름
| 사용 위치 | 체크섬 알고리즘 |
|---|---|
| IPv4 헤더 | 1의 보수합 |
| TCP/UDP 헤더 | 1의 보수합 |
| Ethernet 프레임(FCS) | CRC-32 |
1의 보수합
모든 데이터를 16비트 단위로 더한 뒤, 그 합의 1의 보수를 취해 체크섬으로 사용한다는 것.
- 수신 측은 데이터 + 체크섬의 합이 0xFFFF가 되는지 검사하여, 데이터가 손상되었는 지를 판별
🧐 1의 보수란?
1의 보수는 이진수의 모든 비트를 반전 시킨 값
0 → 1로, 1 → 0으로 바꿈
\[01001011\] \[10110100\]🧐 순환캐리
1의 보수합을 계산할 때는 단순히 16비트 이상으로 넘치는 값을 잘라내는 것이 아닐, 넘친 비트(carry)를 다시 아래쪽으로 더해줌. 이것을 순환 캐리(end-around carry)라고 함.
16진수 0xFFFF는 10진수로는 65535이며 2진수로는 16비트가 모두 1인 1111 1111 1111 1111를 의미한다.
🧐 CRC(Cyclic Redundancy Check)
원본 데이터에 0을 다항식 차수만큼 덧붙이고 해당 비트를 왼쪽부터 차례대로 XOR 기반 이진 나눗셈을 수행한다.
45. TCP/IP 4계층 #2. MTU & MSS
MTU
MTU는 네트워크 계층에서 IP 패킷 전체 크기(헤더 + 데이터)의 최대값이고 보통 1500바이트임.
- MSS(Maximum Segment Size)는 TCP에서 페이로드 최대 크기만을 가리킴.
데이터는 전송 전에 패킷 단위로 쪼개진다. 이때 MTU를 기준으로 크기가 결정된다.
따라서 네트워크 경로에 있는 어떤 장치의 MTU보다 패킷의 크기가 클 경우, 해당 패킷은 더 작은 단위로 분할되어 전송된다.
패킷이 분할 되지 않는 경우
패킷은 항상 분할되지는 않음.
→ IP 버전에 따라 MTU에 따라 분할되거나 분할되지 않을 수 있음
IPv6
- 패킷의 크기가 MTU보다 클 경우, 라우터가 해당 패킷을 폐기하고 Packet Too Big ICMPv6 메시지를 보냄
IPv4
- IPv4 헤더에는 flags라는 필드가 있는데 여기서 bit이 1이되면 “Don’t Fragment” 플래그가 활성화된다는 의미
46. 애플리케이션 계층 (application)
HTTP, SMTP, SSH, FTP가 대표적이며 웹 서비스, 이메일 등 서비스를 실질적으로 사람에게 제공하는 층이다.
HTTP
HTTP(Hypertext Transfer Protocol)은 처음에는 서버와 브라우저 간에 데이터를 주고 받기 위해 설계된 프로토콜이다. 하지만 지금은 브라우저 뿐 아니라 서버간의 통신할 때도 사용한다.
SSH
SSH(Secure Shell Protocol)은 보안되지 않은 네트워크에서 네트워크 서비스를 안전하기 위한 암호화 네트워크 프로토콜
1
ssh <pem> <user>@<serverIP>
- 보통 프라이빗 키가 있는 경로에서 이런 식으로 키를 명시하고 실행함.
FTP (File Transfer Protocol)
노드와 노드간의 파일을 전송하는데 사용하는 프로토콜
- FileZilla (예시)
- 로컬 PC에서 원격 PC로 파일을 전송할 때 사용하는 프로토콜
SMTP
인터넷을 통해 메일을 보낼 때 사용되는 프로토콜(Simple Mail Transfer Protocol)
47. 전송계층 (Transport)
애플리케이션 계층에서 받은 메시지를 기반으로 세그먼트 혹은 데이터그램으로 데이터를 쪼개고 데이터가 오류없이 순서대로 전달되도록 도움을 주는 층
TCP / UDP 차이점
| 항목 | TCP (전송 제어 프로토콜) | UDP (사용자 데이터그램 프로토콜) |
|---|---|---|
| 패킷 교환방식 | 가상회선 방식 | 데이터그램 방식 |
| 신뢰성 | O | X |
| 오류검사 | 재전송, 체크섬 | 체크섬 |
| 순서 보장 | O | X |
| 헤더 길이 | 20~60 바이트 (가변) | 8 바이트 (고정) |
| 연결 | 연결 지향 (3-way / 4-way handshake) | 비연결 |
| 브로드캐스트 | X | O |
| 속도 | 느림 | 빠름 |
48. 인터넷 계층(network)
인터넷 계층
IP, ICMP, ARP가 대표적이며 한 노드에서 다른 노드로 전송 계층에서 받은 세그먼트 또는 데이터 그램을 패킷화하여 전송
ICMP
ICMP는 노드와 노드 사이에서 통신이 잘되나를 확인할 때 쓰는 프로토콜
49. TCP : 3-way handshake
- SYN 단계: 클라이언트는 서버에 클라이언트의 ISN을 담아 SYN을 보낸다.
- SYN + ACK 단계: 서버는 클라이언트의 SYN을 수신하고 서버의 ISN을 보내며 승인번호로 클라이언트의 ISN + 1을 보낸다.
- ACK 단계: 클라이언트는 서버의 ISN + 1한 값인 승인번호를 담아 ACK를 서버에 보낸다.
🧐 ISN이란?
TCP(Transmission Control Protocol) 기반 데이터 통신에서 각각의 새 연결에 할당된 고유한 32비트 시퀀스 번호
SYN
- Synchronization의 약자 - 연결 요청 플래그
ACK
- acknowledgement의 약자 - 응답 플래그
50. TCP: 4-way handshake & TIME_WAIT
TIME_WAIT이 필요한 이유
- 지연 패킷을 받기 위함 → 데이터의 무결성을 지킴
51. 라우팅 #1 . 개념
라우팅(routing)이란?
네트워크에서 데이터를 전송할 때 최적의 경로를 선택하는 과정
- 라우터가 이를 수행함.
- 데이터는 보통 출발지에서 목적지로 가는 동안 여러 개의 라우터를 거치며 여러 번의 라우팅을 수행
- 보통 초당 수백만번 일어남.
라우터(router)
라우터는 네트워크 사이에서 데이터를 전달하는 장치
- 보통 둘 이상의 서로 다른 네트워크에 연결됨
- 데이터를 목적지로 보낼 때 최적의 경로를 결정하고, 경로가 결정되면 해당 경로로 데이터를 넘겨주는 일(라우팅)을 수행
라우팅 테이블
라우팅 테이블은 IP 주소를 기반으로 라우터의 위치를 저장한 테이블 또는 데이터베이스 이며 다양한 네트워크에 대한 정보와 해당 네트워크에 연결하는 방법이 포함되어 있음
52. 라우팅 #2. 라우팅테이블
라우팅 테이블
예) PC 1 → 101.25.67.7로 데이터를 보내려고 할 때
- 101.25.67.7은 101.25.67.0 과 같은 클래스 내의 네트워크임
라우팅 테이블은 IP 주소를 기반으로 라우터의 위치를 저장한 테이블 또는 데이터베이스 이며 다양한 네트워크에 대한 정보와 해당 네트워크에 연결하는 방법이 포함되어 있음
라우팅 테이블의 구성요소
- 네트워크 대상 (Network Destination): 목적지 네트워크의 IP 주소
- 서브넷 마스크(Netmask): 대상 주소를 설명할 때 쓰이는 값.
- 게이트웨이(Gateway): 이 장치와 연결되어 있는 홉, 패킷이 전달되는 다음 IP 주소(외부 네트워크와 연결된 장치)
- 만약 목적지가 로컬 네트워크라면 연결됨(connected)라고 표기되며, 다른 네트워크라면 해당 네트워크의 게이트웨이를 가리킴
- 인터페이스(Interface): 게이트웨이로 가기 위해 거치는 장치
- 10.0.0.2는 eth3을 통해 접근 가능
- 메트릭(Metric): 우선순위라고도 불리며 패킷 전송을 위해 최적의 경로가 선택되도록 참고되는 값
- 일반적으로 홉 수(hop count), 처리량이 들어감
게이트웨이(Gateway)
게이트웨이는 프로토콜 변환기라고도 하며 네트워크와 네트워크를 잇는 장치이다. 라우터와 하는 기능 자체가 비슷
홉(hop)
- WorkStation 1 → 2로 이동한다고 가정할 때,
- hop count = 2 (→ 건너 뛴 Router의 개수)
- Q) hopcount가 낮은게 좋을까?
- YES (적을 수록 빠름)
홉(hop)은 네트워크에서 출발지와 목적지 사이에 위치한 장치를 의미함
- 홉 카운트(hop count)는 데이터가 출발지와 목적지 사이에서 통과해야 하는 홉의 개수를 의미
라우팅 테이블 실습
1
netstat -r
53. IP주소, MAC주소, ARP, RARP
IP 주소
논리적 주소이며 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신을 하기 위해서 사용하는 특수한 번호
- 논리적? (⇒ 변한다)
MAC 주소
MAC 주소(Media Access Control Address)는 네트워크 인터페이스에 할당된 고유 식별자이며 보통 장치의 NIC에 할당됩니다.
48비트로 이루어져있으며 24비트의 OUI와 24비트의 UAA로 이루어져있다.
- OUI: IEEE에서 할당한 제조사 코드
- UAA: 제조사에서 구별되는 코드
- windows 명령어
1
ipconfig /all
- mac 명령어
1
2
ifconfig
ifconfig en0 | grep ether
en: 네트워크 인터페이스 prefix
| 인터페이스 | 의미 |
|---|---|
en0 |
보통 Wi-Fi |
en1 |
유선 Ethernet (또는 반대일 수도 있음) |
en2+ |
추가 네트워크 (USB 랜, 가상 어댑터 등) |
ARP와 RARP
MAC주소는 어떻게 찾아야할까?
→ ARP (프로토콜)을 통해 확인
ARP의 과정
- IP주소에 맞는 MAC주소를 찾기 위해 해당 데이터를 ‘브로드캐스팅’을 통해 연결된 네트워크에 있는 장치한테 모두 보냄
- 맞는 장치가 있다면 해당 장치는 보낸 장치에게 유니캐스트로 데이터를 전달하여 주소를 찾게됨
54. IP주소 체계 #1: 이진수 이해하기
십진법 표현
\[123_{10} = 1 \times 10^2 + 2 \times 10^1 +3\times 10^0\]이진법 표기
- $0\rm{b}100101$
- $100101_{2}$
- $100101_{\rm b}$
55. IP주소체계 #2: IPv4와 IPv6
IP주소 체계는 IPv4와 IPv6로 나누어짐
IPv4
IPv4는 32비트로 표현되는 주소체계이며 $2^{128}$개의 주소(41억 9천만 주소)를 표현할 수 있다.
IPv6
IPv6는 128비트로 표현되는 주소체계이며 $2^{128}$개의 주소$(3.4 * 10^{38})$를 표현
- IPv4보다 더 넓은 주소 체계를 가짐
- IPv4에서 쓰였던 NAT, 서브네팅이 필요하지 않음
- 콜론(:)으로 구분함
- 연속되는 0(zero)는
:(콜론으로 치환가능)
- 연속되는 0(zero)는
- 보안
- IPv6에는 데이터통신을 암호화할 수 있는 IPSec이 내장
Q. IPv4와 IPv6 중 어떤게 더 나을까?
IPv6는 IPv4보다 많은 주소를 표현할 수 있다. 또 불필요한 헤더가 삭제되어서 빠르고 IPSec도 있어 보안적인 측면에서도 좋다. 보통은 IPv6를 사용하는 것이 IPv4보다 속도가 더 빠르지만 일부 사례는 그렇지 않을 수도 있다.
56. IP주소체계 #3 Classful IP Addressing
IP주소는 인터넷 주소로 네트워크 주소, 호스트주소 즉, 두 부분으로 나뉜다.
- 네트워크 주소 → 호스트들을 모은 네트워크 지칭
-
호스트(Host)란?
컴퓨터 네트워크에 연결된 컴퓨터나 기타 장치
-
Classful IP Addressing 정의
네트워크 주소를 매기고 그에 따라 네트워크의 크기를 다르게 구분하여 클래스를 할당하는 주소체계
- 구분 기준 ⇒ 서브넷마스크(Netmask)
| Class | First Octet (decimal range) | First Octet (binary range) | IP range | Subnet Mask | Hosts per Network ID | # of networks |
|---|---|---|---|---|---|---|
| Class A | 0–127 | 0XXXXXXX | 0.0.0.0–127.255.255.255 | 255.0.0.0 | 2^24 - 2 | 2^7 |
| Class B | 128–191 | 10XXXXXX | 128.0.0.0–191.255.255.255 | 255.255.0.0 | 2^16 - 2 | 2^14 |
| Class C | 192–223 | 110XXXXX | 192.0.0.0–223.255.255.255 | 255.255.255.0 | 2^8 - 2 | 2^21 |
| Class D | 224–239 | 1110XXXX | 224.0.0.0–239.255.255.255 | - | - | - |
| Class E | 240–255 | 1111XXXX | 240.0.0.0–255.255.255.255 | - | - | - |
Class A
- 한 네트워크당 16,777,214 호스트 ID(약 1600만개)
- 0.0.0.0은 특수 주소
- 127.x.x.x은 루프백 주소임
- 루프백 주소 : 자기 자신(로컬 호스트)을 가리키는 IP 주소
- 예) 127.0.01
- 루프백 주소 : 자기 자신(로컬 호스트)을 가리키는 IP 주소
Class B
- 2^16 – 2 = 한 네트워크당 65534 호스트 ID(6만 5천개)
- 네트워크 주소 범위 : 128 ~ 191 로 시작
Class C
- 2^8 – 2 = 한 네트워크당 254 호스트 ID
- 네트워크 주소 범위 : 192 ~ 223 로 시작
🧐 ‘-2’를 왜하나?
- 맨 앞자리는 네트워크 주소(n.x.x.x)로 남겨두며 마지막 주소는 브로드캐스팅(x.x.x.255) 주소
🧐 클래스풀의 문제점
- 네트워크의 크기가 작은 경우 큰 네트워크를 필요로 하는 조직은 여러개를 확보해야 하는 어려움
57. IP주소체계 #4. 클래스리스와 서브넷마스크, 서브네팅
기존 Classful의 문제점
- 네트워크 크기가 작은 경우 큰 네트워크로 필요로하는 조직은 여러 개 확보 필요
- 또, 남는 네트워크가 생김
⇒ Classless 등장
서브넷마스크를 중심으로 어디까지가 네트워크 주소고 어디까지가 호스트주소인지를 나눔
- 서브네팅 : 네트워크를 나눈다는 의미
- 서브넷 : 서브네트워크, 쪼개진 네트워크
- 서브넷마스크 : 서브네트워크를 위한 비트마스크
58. IP주소 체계 #5 Public IP 와 Private IP
IP주소의 부족을 해결하기 위해 Public IP와 Private IP로 나누고 중간에 NAT라는 기술을 통해 해결한다.
NAT
- NAT(Network Address Translation)은 패킷이 트래픽 라우팅 장치를 통해 전송되는 동안 패킷의 IP 주소를 변경, IP주소를 다른 IP주소로 매핑하는 방법
- NAT를 통해 내부 네트워크 IP가 노출되지 않는다는 점 (장점)



















