네트워크가 수행해야 하는 기능들
1. 애플리케이션 목적에 맞는 통신 방법 제공
2. 신뢰할 수 있는 데이터 전송 방법 제공
3. 네트워트 간의 최적의 통신 경로 결정
4. 목적지로 데이터 전송
5. 노드 사이의 데이터 전송
위와 같은 통신 기능이 제대로 동작하기 위해서는 참여자들 사이에서 약속된 통신 방법이 있어야함
바로 네트워크 프로토콜!
※ 네트워크 프로토콜 : 네트워크 통신을 하기 위해서는 통신에 참여하는 주체들이 따라야하는 형식, 절차, 규약
그럼 네트워크 기능을 하나의 프로토콜로 구현할 수 있을까? No!
이는 코드를 하나의 클래스에 전부 구현한다는 얘기와 같음, 유지보수와 변화에 대응하기가 너무 어려워짐
그래서 위와 같이 네트워크가 수행하는 기능들을 모듈화를 해서 프로토콜을 설정해야함
바로 계층화 (≒모듈화), OSI 7 Layer 를 해야함
참고로 TCP/IP stack은 인터넷에 특화된 네트워크 계층화 구조
OSI 7 Layer
7. application layer
애플리케이션 목적에 맞는 통신 방법 제공
(Ex : HTTP (인터넷), DNS, SMTP (이메일 주고 받을 때, 쓰는 프로토콜), FTP (파일 전송))
6. presentation layer
애플리케이션 간의 통신에서 메시지 포맷 관리
- 인코딩 ↔ 디코딩 : 보내는 쪽에서 어떤 character set으로 인코딩하느냐에 따라 받는쪽에서 그 set으로 디코딩해야함
- 암호화 ↔ 복호화
- 압축 ↔ 압축 풀기
5. session layer
애플리케이션 간의 통신에서 세션을 관리
(RPC remote procedure call)
→ 위 3개의 layer는 어플리케이션과 관련된 기능을 담당
그러므로 하나로 묶어서 application layer으로 통합할 수 도 있음
-----------------------------------------------------------------------------
4. transport layer
애플리케이션 간의 통신 담당
목적지 애플리케이션으로 데이터 전송 (보내는 데이터를 목적지까지 어떻게 보낼 것인지는 이 Layer에서는 관심없음)
데이터를 어떤방식으로 보낼지 결정하는 layer
- 데이터 전송 방법 (세그먼트)
(1) 안정적이고 신뢰할 수 있는 데이터 전송 보장 (TCP)
(2) 필수 기능만 제공 (UDP)
3. network layer
호스트 간의 통신 담당 (IP)
목적지 호스트로 데이터를 전송해야하기 때문에 라우터와 같은 장치들에 network layer이 구현되어있음
네트워크 간의 최적의 경로 결정
2. data link layer
직접 연결된 노드 간의 통신 담당, 장치와 장치 사이에서 데이터를 전달해야하기 때문에 IP 주소가 아닌 Mac 주소 기반으로 통신해야함
- MAC 주소 기반 통신 (ARP) : IP주소를 MAC주소로 변환
1. physical layer
bits 단위로 데이터 전송
(Ex: 케이블, 전선 등...)
인터넷에 작성한 댓글이 어떻게 전송이 될까?
아래 그림과 같이 어플리케이션에서 메세지 (M)을 작성해서 보내면,
메세지는 각 layer의 프로토콜에 맞게 담겨지면서 Header가 추가되고 그 다음 layer로 보내짐
그러면 해당 layer의 프로토콜에 맞추기 위해 위의 작업이 반복됨
host에서 보내려는 데이터가 pysical layer까지 다 거쳐갔으면
이를 host와 연결된 라우터로 보냄, 그러면 라우터에서 physical, data link, network layer 의 헤더를 확인하면서
데이터를 어디로 어떻게 보낼지를 파악하며 받을 IP와 가까운 라우터로 차근차근 데이터를 전송함
받을 IP 주소를 가진 네트워크와 연결된 라우터에서 보낼 때, 다시 physical layer까지 헤더를 붙여서 보냄
헤더를 붙이고 푸는 과정을 encapsulation 과 decapsulation이라고 함
인터넷을 택배 배송에 비유하면
1. 발신자/ 수신자 -> 호스트 Host
2. 소포 -> 패킷 Packet
3. 물류 창고 -> 라우터 Router
4. 택배회사 -> 인터넷 제공자 (ISP)
집에있는 공유기도 라우터의 종류
Packet 패킷
OSI 7 Layer ()
Application 응용 ---------
Presentation applicaion
Session --------
Transport ------- transport
network ------- internet (network)
data link !!!!!!!!
physical !!!!!!!! link layer
'네트워크' 카테고리의 다른 글
3-1. 프로토콜 표준 스펙에서 정의한 소켓, 포트, TCP 연결 (0) | 2023.07.19 |
---|---|
TCP/IP와 OSI 7계층 (0) | 2023.03.04 |
CORS (Cross Origin Resource Sharing) (0) | 2023.03.04 |
CSRF (Cross Site Request Forgery)란? (0) | 2023.03.04 |
HTTP 상태코드 (0) | 2023.03.04 |