owned this note
owned this note
Published
Linked with GitHub
# 네트워크 기초
## 네트워크란

- 네트워크의 정의: 컴퓨터와 다른 장치들이 통신할 수 있도록 연결된 시스템
- 네트워크의 목적: 데이터 공유, 자원 공유, 통신 등
- 네트워크의 장점: 효율성, 접근성, 속도, 비용 절감
- 네트워크의 구성요소
1. 노드 (컴퓨터, 휴대폰 등)
2. 전송 매체 (랜선, 와이파이 등)
3. 네트워크 장비 (스위치, 라우터 등)

---
## 네트워크 유형

- PAN (Personal Area Network): 개인이 사용하는 가까운 거리의 기기들을 연결하는 네트워크 (예: 스마트폰, 스마트 워치, 블루투스 헤드셋)
- LAN (Local Area Network): 건물 내부나 가까운 거리에 위치한 기기들을 연결하는 소규모 네트워크 (예: 가정, 사무실)
- MAN (Metropolitan Area Network): 도시 전체를 커버하는 네트워크 (예: 케이블 TV, 도시 내 고속 인터넷 연결)
- WAN (Wide Area Network): 지리적으로 떨어진 네트워크들을 연결하는 대규모 네트워크 (예: 인터넷, 기업의 여러 지점 연결)
### 네트워크의 구성요소와 기본 용어
- 노드(Node): 네트워크에 연결된 컴퓨터나 장치 (예: PC, 스마트폰, 프린터)
- 링크(Link): 노드들을 연결하는 통신 경로 (예: 이더넷 케이블, 무선 신호)
- 프로토콜(Protocol): 노드 간 통신 규약 (예: HTTP, TCP/IP)
- 대역폭(Bandwidth): 네트워크에서 전송할 수 있는 최대 데이터 용량 (예: 100Mbps, 1Gbps)
- 지연 시간(Latency): 데이터가 한 노드에서 다른 노드로 전송되는데 걸리는 시간
## 네트워크 토폴로지

1. 버스(Bus) 토폴로지
- 특징: 모든 노드가 버스라는 하나의 공통 케이블에 연결된 형태, 전송 데이터는 모든 노드에 전달되며 각 노드에서 전달된 데이터의 수신 여부를 결정, 둘 이상의 노드가 동시에 데이터를 전송할 때 발생하는 충돌에 대한 관리가 요구됨
- 장점: 구축이 간단하고 설치 비용이 저렴함
- 단점: 네트워크를 확장할수록 많은 트래픽이 발생하여 성능이 급격히 저하됨, 장애 발생 시 문제점의 발견과 해결이 어려움, 공통 케이블에 장애가 발생하면 네트워크 통신이 부분적으로 불가능해짐
2. 링(Ring) 토폴로지
- 특징: 모든 노드가 이웃한 두 노드에만 연결되어 루프 형태를 이루는 형태, 데이터는 링크를 따라 한 방향으로만 전달되며 데이터를 전달하기 전에 신호를 증폭함, 데이터 전송 권리를 나타내는 토큰을 이용하여 매체 접근을 제어
- 장점: 거리 제약이 적어 네트워크 범위를 넓힐 수 있음, 충돌이 발생하지 않음
- 단점: 노드의 추가 및 삭제가 어려움, 설치와 관리가 어렵고 설치 비용이 많이 들어감, 특정 노드에 장애 발생 시 전체 네트워크 사용 불가
3. 스타(Star) 토폴로지
- 특징: 모든 노드가 중앙의 집속 장치에 연결된 형태, 전송 데이터는 항상 중앙의 집속 장치를 통하여 각 노드로 전달됨, 현재 LAN 구축 시 가장 많이 사용하는 방식
- 장점: 특정 노드나 링크에 장애가 발생해도 전체 네트워크 사용에는 영향을 주지 않음, 노드의 추가 및 삭제가 쉬움, 장애 발생 시 문제점의 발견과 해결이 쉬움
- 단점: 집속 장치와 케이블링에 상대적으로 높은 비용 발생, 중앙의 주 노드에 장애 발생 시 전체 네트워크 사용 불가
4. 메시(Mesh) 토폴로지
- 특징: 모든 노드가 서로 일대일로 연결된 그물망 형태. LAN보다는 WAN 환경에서 주로 이용됨
- 장점: 여분의 경로(Redundant Path)가 있어 장애에 유연한 대처가 가능하고 안정성이 높음, 경로 선택이 가능하여 가용성과 효율성이 좋음
- 단점: 설치 비용이 비싸고 관리가 어려움, 새로운 노드 추가 시 비용 부담 발생
5. 트리(Tree) 토폴로지
- 특징: 다수의 스타형 네트워크를 서로 연결한 형태, LAN보다는 WAN 환경에서 주로 이용됨, 분산 처리 시스템에 이용됨
- 장점: 네트워크 관리가 쉽고 확장이 편리함, 노드를 분류하여 관리하거나 우선순위를 부여할 수 있음
- 단점: 네트워크를 너무 확장하여 특정 노드에 트래픽이 집중되면 병목 현상 발생, 상위 계층에 장애 발생 시 하위 계층에 연결된 모든 노드에 영향을 줌
---
# 인터넷과 주소 그리고 포트
## 인터넷
- 전 세계의 컴퓨터 네트워크들이 서로 연결되어 정보와 자원을 공유할 수 있도록 설계된 글로벌 네트워크 시스템
- 터넷은 원래 미국 국방부의 연구 프로젝트로 시작되었으며, ARPANET이라는 이름으로 1960년대 후반에 처음 개발되었다
- 인터넷은 TCP/IP라는 표준 프로토콜을 사용하여 서로 다른 네트워크들을 연결하고, 데이터를 주고받을 수 있게 한다
## Mac 주소 (Media Access Control Address)
- **네트워크 인터페이스 카드(NIC)에 할당**된 고유한 식별자
- 이더넷과 같은 LAN(Local Area Network)에서 사용되는 주소
- MAC 주소는 OSI 모델의 데이터 링크 계층에서 사용되며, 네트워크상에서 장치들 간의 통신을 가능하게 한다.
- MAC 주소는 48비트의 길이로 구성되어 있으며, 보통 12자리의 16진수로 표시된다 (예: AA:BB:CC:11:22:33).
- 이 주소는 네트워크 **하드웨어 제조사에 의해 할당**되며, 각 네트워크 장치에 고유한 값이 지정된다.
- 데이터 링크 계층에서 통신을 위해 사용되며, 같은 네트워크 내에서 장치 간 식별과 데이터 전송을 관리한다.
- MAC 주소는 물리적 네트워크 연결에서 중요한 역할을 하지만, 데이터 링크 계층을 벗어나 라우터를 통해 다른 네트워크로 전달될 때는 사용되지 않는다. (이 경우 IP 주소가 사용된다.)
## IP 주소 (Internet Protocol Address)
- **네트워크**에 연결된 장치에 할당된 고유한 숫자 주소.
- 인터넷 상의 장치들은 IP 주소를 할당 받는다
- 네트워크 계층에서 통신을 위해 사용되며, 인터넷을 통한 장치 간 데이터 전송 및 라우팅을 관리한다.
- IP 주소는 인터넷에 연결된 장치들을 식별할 수 있도록 해주고, 인터넷상의 다른 장치들이 특정 장치를 찾을 수 있도록 해준다
- IPv4는 32비트 주소로, 4개의 0~255 사이의 숫자로 구성되며, 점으로 구분된다 (예: `192.168.1.1`).
- IPv6는 128비트 주소로, 8개의 4자리 16진수 그룹으로 구성되며, 콜론으로 구분된다 (예: `2001:0db8:85a3:0000:0000:8a2e:0370:7334`).
## 포트 번호(Port Number)
- 네트워크 통신에서 특정 **프로세스 또는 서비스**를 구분하기 위한 16비트 숫자.
- 포트 번호의 범위는 0 ~ 65535이며, 이 중 0 ~ 1023번은 잘 알려진 포트(well-known ports)로 예약되어 있다.
- 예를 들어, HTTP 통신은 TCP 포트 80을 사용하고, HTTPS 통신은 TCP 포트 443을 사용한다.
- 전송 계층에서 사용되며, TCP(Transmission Control Protocol) 및 UDP(User Datagram Protocol) 통신을 통해 데이터가 올바른 프로세스나 서비스로 전달될 수 있도록 관리한다.
---
# 스위치 / 라우터

## 스위치 (Switch)
- 여러대의 단말을 연결하여 하나의 네트워크를 만들고, 그 네트워크 안에서 데이터를 전송하는 장치.
- 데이터 링크 계층 (OSI 2계층)에서 작동하는 네트워크 장치.
- LAN (Local Area Network) 내에서 통신하는 장치들을 연결하며, 프레임 단위의 데이터 전송을다 처리한다.
- MAC 주소를 사용하여 연결된 장치들을 식별하고, 데이터를 올바른 목적지로 전송한다.
- 목적지 MAC 주소를 기반으로 데이터를 전달하기 때문에, 허브와 달리 불필요한 트래픽을 줄여 네트워크의 효율성을 높인다.
## 라우터 (Router)
- 네트워크와 네트워크를 연결하여 서로 다른 네트워크 간에 데이터를 전송하는 장치.
- 네트워크 계층 (OSI 3계층)에서 작동하는 네트워크 장치.
- 서로 다른 네트워크 간의 연결을 중계하며, 패킷 단위의 데이터 전송을 처리한다.
- IP 주소를 사용하여 연결된 장치들을 식별하고, 데이터를 올바른 목적지로 전송한다.
- 라우팅 테이블과 라우팅 알고리즘을 사용하여 가장 효율적인 경로로 패킷을 전달한다. 이를 통해 네트워크 내에서 트래픽 관리와 데이터 전송 속도를 최적화한다.

### 라우팅 테이블
- 라우터는 **각 데이터 패킷이 목적지 IP 주소에 따라 어디로 보내져야 하는지**를 알 수 있도록 만들어져 있다.
- 이 정보들은 대체로 **라우팅 테이블**에 저장되어 있으며, 라우터는 **IP 주소의 앞 숫자들을 보고, 패킷을 어느 방향으로 보내야 할지를 판단**한다.
> - 라우터는 데이터 패킷이 목적지까지 도달하는 데 필요한 정확한 경로 정보를 갖고 있지 않아도 된다.
> - 라우터는 그저 패킷을 목적지까지 한 단계 더 가까이 보내주고 나머지 일은 다음 라우터에게 맡긴다. 또한 일반적으로 데이터가 인터넷의 한 지점에서 다른 지점으로 가기 위한 경로는 하나가 아니다. 라우터는 같은 목적지의 데이터 패킷들을 서로 다른 경로로 보낸다.
---
> **인터넷 공유기**
> 스위치, 라우터, 무선 AP의 기능을 1대에 내장한 기기
>
> 
---
> Q : 우리는 전국의 인터넷 사이트를 오갈 수 있다. 바다 너머의 다른 대륙은 어떻게 인터넷으로 통신할 수 있는 걸까?
>
> 
>
> A : 전 세계를 연결시켜 놓았습니다. (마법은 없다..)
---
# 네트워킹 프로토콜과 OSI 모델, TCP/IP 모델
## 네트워킹 프로토콜
- 네트워크에서 데이터를 주고 받기 위해 컴퓨터와 네트워크 장비들이 지켜야 하는 규칙
- 네트워크에서 데이터를 성공적으로 전송하기 위해서는 컴퓨터와 네트워크 장비들이 같은 프로토콜 조합을 사용해야 한다.

## OSI 모델과 TCP/IP 모델
OSI 모델과 TCP/IP 모델은 네트워크 통신을 계층별로 설명하기 위한 두 가지 대표적인 모델이다.
### OSI 모델 (Open Systems Interconnection Model)
- OSI 모델은 7개의 계층으로 구성되어 있다 (응용 계층, 표현 계층, 세션 계층, 전송 계층, 네트워크 계층, 데이터 링크 계층, 물리 계층)
- OSI 모델은 국제 표준화 기구 (ISO)에서 개발되었으며, 네트워크 프로토콜과 서비스를 계층별로 분리하여 이해하기 쉽게 설명한다.
- 이 모델은 네트워크 통신의 각 단계를 명확하게 정의하며, 각 계층에서 사용되는 프로토콜과 기술을 분리하여 설명한다.
### TCP/IP 모델 (Transmission Control Protocol/Internet Protocol Model)
- TCP/IP 모델은 4개의 계층으로 구성되어 있다 (응용 계층, 전송 계층, 인터넷 계층, 네트워크 인터페이스 계층)
- TCP/IP 모델은 인터넷을 기반으로 한 통신에서 사용되는 프로토콜들을 설명하는 데 초점을 맞추고 있다.
- 이 모델은 인터넷의 기반 프로토콜인 TCP와 IP를 중심으로 하여 네트워크 통신을 단순화하여 설명한다.
### OSI 모델과 TCP/IP 모델의 주요 차이점
1. OSI 모델은 7계층 구조로, 통신 프로세스를 더 세분화하여 설명하며, TCP/IP 모델은 4계층 구조로, 인터넷 기반 통신에 초점을 맞춘 단순화된 구조를 가진다.
2. OSI 모델은 표준화 및 **이론적인 설명**에 중점을 두는 반면, TCP/IP 모델은 인터넷 프로토콜 중심의 **실제 네트워크 통신**에 중점을 둔다.
3. 네트워크 전송 시 데이터 표준을 정리한 것이 OSI 7계층. 이 이론을 실제로 사용하는 인터넷 표준이 TCP/IP 4계층이다.

**OSI 모델의 계층 구조**
- 물리 계층 (Physical Layer): 비트 단위의 데이터 전송과 물리적 연결을 관리한다.
- 데이터 링크 계층 (Data Link Layer): 프레임 단위의 데이터 전송과 오류 제어를 수행하며, 물리 주소(MAC 주소)를 사용한다.
- 네트워크 계층 (Network Layer): 패킷 단위의 데이터 전송과 경로 선택을 수행하며, IP 주소를 사용한다.
- 전송 계층 (Transport Layer): 세그먼트 단위의 데이터 전송과 신뢰성 있는 통신을 관리하며, 포트 번호를 사용한다.
- 세션 계층 (Session Layer): 통신 세션을 생성, 관리 및 종료한다.
- 표현 계층 (Presentation Layer): 데이터 포맷과 인코딩, 암호화 등의 처리를 수행한다.
- 응용 계층 (Application Layer): 사용자와 네트워크 간의 인터페이스를 제공하며, 프로토콜 및 서비스를 지원한다.
**TCP/IP 모델의 계층 구조**
- 네트워크 인터페이스 계층 (Network Interface Layer): OSI 모델의 물리 계층과 데이터 링크 계층에 해당하는 역할을 수행한다.
- 인터넷 계층 (Internet Layer): OSI 모델의 네트워크 계층과 동일한 역할을 수행하며, IP 주소를 사용하여 패킷 전송과 경로 선택을 관리한다.
- 전송 계층 (Transport Layer): OSI 모델의 전송 계층과 동일한 역할을 수행하며, 포트 번호를 사용하여 신뢰성 있는 통신을 관리한다.
- 응용 계층 (Application Layer): OSI 모델의 응용 계층, 표현 계층, 세션 계층에 해당하는 역할을 수행하며, 사용자와 네트워크 간의 인터페이스를 제공한다.
---
## TCP/IP 모델과 주요 프로토콜


> TCP/IP 모델과 데이터 통신 과정
>
> 
# 인터넷의 데이터 전송 과정

1. 데이터 생성: 컴퓨터나 기기에서 생성된 데이터가 패킷으로 나누어진다.
2. 패킷 인코딩: 패킷에 헤더와 트레일러가 추가되어, 패킷의 출발지와 목적지, 순서 등 정보가 포함된다.
3. 패킷 전송: 라우터와 스위치를 거쳐 패킷이 목적지로 전송된다.
4. 패킷 도착 및 재조립: 패킷이 목적지에 도착하면, 헤더와 트레일러가 제거되고 원래 데이터로 재조립된다.
5. 데이터 처리: 재조립된 데이터가 수신한 기기에서 처리된다.
---
## 데이터와 캡슐화/역캡슐화

- 응용 계층 (Application Layer)
- 데이터 생성: 사용자가 생성한 원본 데이터는 응용 계층에서 처리되어 프로토콜에 맞게 포맷팅된다.
- 캡슐화: 데이터가 전송 계층으로 전달되기 전에 응용 계층 헤더가 추가된다.
- 전송 계층 (Transport Layer)
- 데이터 분할: 전송 계층에서 데이터는 세그먼트로 분할되어 관리된다.
- 캡슐화: 각 세그먼트에 전송 계층 헤더가 추가되며, 이 헤더에는 **포트 번호**와 관련된 정보가 포함된다.
- 인터넷 계층 (Internet Layer)
- 경로 선택: 인터넷 계층에서는 패킷 전송을 위한 최적의 경로를 결정한다.
- 캡슐화: 각 세그먼트에 인터넷 계층 헤더 (**IP 헤더**)가 추가되어 패킷이 생성된다.
- 네트워크 인터페이스 계층 (Network Interface Layer)
- 캡슐화: 각 패킷에 네트워크 인터페이스 계층 헤더 (이더넷 헤더)가 추가되어 프레임이 생성된다.
- 물리 전송: 프레임은 물리 계층을 통해 전송되며, 실제로 전기 신호로 변환되어 네트워크를 통해 전송된다.

---
## Mac주소, IP주소 Port 번호가 식별하는 것

---
## 과제 : 야구 게임
**요구사항**
- 1~9 사이의 중복되지 않는 3개의 정수를 생성한다.
- 사용자는 3개의 숫자를 입력한다.
- 생성된 3개의 숫자를 맞추는데 위치까지 정확히 맞춰야 한다.
- 숫자와 숫자의 위치까지 일치하면 strike 로 판정한다.
- 숫자는 맞지만 위치가 틀렸다면 ball 로 판정한다.
- 숫자3개가 모두 일치하지 않으면 out 으로 판정한다.
- 3 strike 가 되면 유저가 이기고 게임이 종료된다.
- 유저가 10번 안에 맞추지 못하면 패배하고 게임이 종료한다
---
###### tags: `과외(하희영)`