Skip to content

Commit

Permalink
Create 2024-03-04_OSI복습.md
Browse files Browse the repository at this point in the history
  • Loading branch information
playhuck authored Mar 3, 2024
1 parent 0892d9c commit f62696c
Showing 1 changed file with 189 additions and 0 deletions.
189 changes: 189 additions & 0 deletions docs/playhuck/2024-03-04_OSI복습.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,189 @@
## OSI 7계층

복잡한 데이터 전송 과정에서의 네트워크 프로토콜을 7개의 계층으로 나누고, 일곱 개의 계층으로 나누어 설명하는 개념적인 프레임워크다.

1. Physical Layer / ****리 계층
2. Data Link Layer / ****이터 링크 계층
3. Network Layer / ****트워크 계층
- IPv4
- IPv6
- NAT
- 라우터 / 스위치
4. Transport Layer / ****송 계층
- TCP
- UDP
- Load Balancer / 방화벽(Firewall)
5. Session Layer / ****션 계층
6. Presentation Layer / ****현 계층
- TLS
- SSH
7. Application Layer / ****플리케이션 계층
- HTTP
- SMTP
- FTP

---

## 1계층 (물리 계층)

1계층은 물리적 연결인 전기 신호를 전달하는데 초점이 맞추어져 있다.

비트를 전송하고 물리적 연결을 담당합니다.

주요 장비로는

- 허브
- 리피터

등이 있다.

## 2계층 (데이터 링크 계층)

전기 신호를 모아 사람이 알아볼 수 있는 데이터 형태로 처리합니다.

1계층에서 전기 신호를 잘 보내는 것이 목적이기 때문에 출발지와 목적지를 구분할 수 없지만

2계층에서는 출발지와 목적지의 주소를 확인하고 해당 네트워크에서 처리해야 하는 패킷이

맞는지 확인후 데이터 처리를 수행한다.

물리 주소(MAC 주소)를 사용하여 네트워크 장치를 식별한다.

2계층에서 동작하는 주요 구성 요소는 랜 카드다.

2계층에서 동작하는 랜 카드와 스위치 모두 MAC 주소를 이해할 수 있고, 스위치는 MAC 주소를

forwading 할 수 있는 능력이 있다.

### MAC 주소

랜 카드에 할당된 고유 식별자를 의미한다.

랜 카드는 MAC 주소를 가지고 있고, 전기 신호가 들어오면 2계층에서 전기 신호를

데이터 형태(패킷)로 변경하여 내용을 구분한 후 도착지 MAC 주소를 확인한다.

MAC 주소가 자신이 아니라면 패킷을 폐기한다.

자기자신이거나 브로드캐스트 / 멀티캐스트라면 패킷 정보를 상위 계층으로 넘겨준다.

## 3계층 (네트워크 계층)

3계층에서는 IP 주소와 같은 논리 주소가 정의된다. 일반적인 데이터 통신은 2계층의 물리적인

주소인 MAC 주소와, 3계층의 논리 주소인 IP 주소로 이루어진다.

패킷(Packet)을 라우팅하여 목적지까지 전달한다.

라우터를 사용하여 최적의 경로를 선택하고, IP 주소를 통해 장치를 식별한다.

### IP 주소

1. 변경 가능한 논리 주소다.
2. 주소에 레벨이 있다.

흔히 사용하는 IP 주소는 IPv4 주소다.

## 4계층 (전송 계층)

4계층은 실제 데이터들이 정상적으로 전송되는지 확인하는 역할을 한다.

패킷은 데이터를 분할해 전송하기 때문에 유실되거나 순서가 변경될 수도 있다.

4계층에서는 패킷 유실과 순서가 뒤바끼는 문제를 바로잡는 역할을 한다.

4계층의 장비로는

- 로드 밸런서(Load Balancer)
- 방화벽

등이 있다.

### TCP

TCP는 패킷 전송을 제어하는 프로토콜로 IP와 함께 사용된다.

IP가 패킷을 목적지까지로의 안내를 위해 사용된다고치면, TCP는 패킷의

안정적인 연결을 통한 세션을 안전하게 연결하고 데이터를 분할하고 분할된 패킷이

잘 전송됐는지 확인하는 등의 신뢰성 있는 연결을 위해 사용한다.

3-way handshaking을 통해 연결하고 4-way handshaking을 통해 연결을 해제한다.

이런 연결과 연결해제 방식을 통해 신뢰성 있는 서비스를 제공할 수 있다.

따라서, TCP 통신은 패킷 전달의 연속성보다 신뢰성이 더 중요한 경우에 사용한다.

UDP보다 속도가 느리다.

Sender와 Receiver는 1대1로 연결된다.

패킷에 대한 응답을 해야하기 때문에(시간 지연, CPU 소모) 성능이 낮다.
Streaming 서비스에 불리하다.(손실된 경우 재전송 요청을 하므로)

### UDP

TCP와 달리 비연결형 프로토콜이다. 패킷에 순서를 부여하여 재조립을 하거나 흐름 제어 또는 

혼잡 제어와 같은 기능도 처리하지 않기에 TCP보다 속도가 빠르며 네트워크 부하가 적다는

장점이 있지만 신뢰성있는 데이터의 전송을 보장하지는 못한다.

Sender와 Receiver는 1:1일 수도, 1:N일 수도 N:N일 수도 있다.

음성이나, 동영상 등 시청각과 밀접하게 연결된 데이터를 송신하는데 사용되며,

넷플릭스나 티빙같이 살짝 단절되더라도 괜찮은 경우에는 TCP를 사용하기도 한다.

## 5계층 (세션 계층)

세션 계층은 양 종단의 응용 프로세스가 연결을 성립하도록 도와주고 안정적으로 유지되도록 관리하고 작업 완료 후 이 연결을 끊는 역할을 한다.

또한, 에러로 중단된 통신에 대한 복구와 재전송도 수행한다.

## 6계층 (표현 계층, 프레젠테이션 계층)

표현 방식이 다른 Application이나 System간 통신들 돕기 위해 통일된 구문 형식으로 변환하는

기능을 수행한다.

인코딩, 암호화 압축 코드 변환 등의 동작이 이루어진다.

## 7계층 (Application 계층)

Application 서비스를 수행한다. 실제 사용자와의 UI나 입 출력 등 사용자 인터페이스 및 네트워크 서비스를 제공한다.

---

## 유니캐스트 / 멀티캐스트 / 브로드캐스트 / 애니캐스트

네트워크의 출발지에서 목적지로 데이터를 전송할 때 사용하는 통신 방식은 다음과 같다.

### 유니캐스트

출발지와 목적지가 명확한 1:1 통신 방식이다. 대부분의 통신은 유니캐스트다.

대부분의 웹 브라우징이나 이메일 전송 등이 유니캐스트 방식으로 이루어진다.

### 브로드캐스트

목적지 주소가 모든으로 표기되어 있는 통신 방식이다. 유니캐스트로 통신하기 전 상대방의

정확한 위치를 알기 위해 사용한다.

전체 네트워크에 데이터를 뿌리기 때문에 대역폭을 많이 소모하게 되어 효율성이 낮아지므로, 최근에는 이러한 방식을 최소화하거나 대체하는 방향으로 발전하고 있다.

### 멀티캐스트

멀티캐스트 그룹 주소를 이용해 해당 그룹에 속한 다수의 호스트로 패킷을 전송하는

통신 방식이다.

그룹 내의 멤버들만 해당 데이터를 수신하며, 이는 효율적인 데이터 전송 방식 중 하나입니다. 사내방송이나 온라인 게임 등에서 사용될 수 있다.

### 애니캐스트

주소가 같은 호스트들 중 가장 가깝거나 효율적인 호스트와 통신하는 방식이다.

여러 서버가 동일한 IP 주소를 가지고 있지만, 클라이언트는 자신과 가장 가까운 서버에게만 응답을 받게 된다. 주로 안정성 및 가용성을 향상시키는 목적으로 사용됩니다. DNS 서버의 구성에서나 분산 서비스에서 활용될 수 있다.

0 comments on commit f62696c

Please sign in to comment.