OSI 7 계층
OSI 7 계층 (Open Systems Interconnection 7 Layers)
- 통신을 수행할 때 처리되어야 할 작업을 순차적으로 7단계로 정의한 국제 통신 표준 규약
- 모든 시스템들의 상호 연결에 있어 문제없도록 표준을 정한것
(만약 표준 규약이 없다면 타업체 상품끼리 규격이 맞지 않아 호환성에 어려움이 있을 것임)
7계층은 왜 나눌까?
💡 통신이 일어나는 과정을 단계별로 파악할 수 있게 되면, 특정한 곳에 이상이 생겼을 때 그 단계만 고칠 수 있기 때문이다. (다른 단계의 장비나 소프트웨어를 건들이지 않고도 troubleshooting이 쉽다)
1) 물리(Physical) 계층
리피터, 케이블, 허브 등
단지 데이터를 전기적인 신호(0,1 비트)로 변환해서 주고받는 기능을 진행하는 공간
즉, 단지 데이터를 전송하는 역할만 진행한다.
- 단위: Bit
💡 리피터: 신호를 세게해주는 역할. 그러나 특정지점에 전달하기보다 무분별하게 전파하기 때문에 효율이 떨어짐
2) 데이터 링크(Data Link) 계층
브릿지, 스위치 등
물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할
Mac 주소를 통해 통신한다. 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다.
- 단위: Frame
💡 Mac(Media Access Control) 주소
- 컴퓨터의 고유한 주소
- 컴퓨터 간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소 또는 하드웨어 주소
💡 IP address VS. MAC address
- IP(Internet Protocol): 논리적인 주소. 임시적으로 다른 주체에 의해 할당되는 것.
- MAC: 통신기기의 하드웨어 자체에 부여된 고유한 식별번호. 네트워크 인터페이스 컨트롤러 (NIC)의 제조업체가 할당하며 LAN 카드에 저장된다.
💡에러검출: 신호가 전달되는 동안 오류가 포함되는지, 감지 오류가 있다면 해당 데이터를 폐기한다.
(+)오류 검출 기법: 패리티 비트 검사, 해밍 부호 검사 등
3) 네트워크(Network) 계층
라우터, IP
데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능(라우팅)을 담당한다.
라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달해준다.
라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행한다.
- 단위: Packet
- 전달 해야하는 데이터는 출발지 정보, 목적지 정보가 부가적으로 필요하며 해당 정보는 IP로 처리하고, IP정보를 붙인 데이터를 패킷이라고 한다.
- 포워딩
- 경로가 결정되면 전달해야할 데이터를 다음 라우터에게 맡긴다. N개의 라우터가 지속적으로 정보를 전달을 하면서 최종 목적지 까지 전달하는 방법을 포워딩이라고 표현한다.
- Route VS. Router VS. Routing VS. Routing Protocol
Route | Router | Routing | Routing Protocol |
경로 - 서로 다른 네트워크 간 데이터를 전송하고 전송한 데이터를 받는 경로 |
경로를 지정해주는 장비 - 네트워크 간에 데이터 패킷을 전송하는 네트워크 장치 - 한 개의 인터넷 회신을 여러개의 네트워크가 사용할 수 있도록 쪼개주는 중계 역할을 하는 장치 |
최적의 경로를 선택하는 과정 - 엔드 포인트의 정의 - 해당 엔드포인트에 대한 클라이언트 요청에 애플리케이션이 응답하는 방식 |
패킷이 목적지까지 가는 방법을 결정해주는 프로토콜 - 라우터 간 통신 방식을 규정하는 통신 규약 |
라우팅 프로토콜에서 만들어진 것 (라우팅에 의한 결과) | 하드웨어 장치 | 목적에 따라 효율적인 라우팅 프로토콜을 선택하는 것 | 최적의 경로 계산 |
💡 라우터: 리퍼터의 단점을 해결하기 위해 사용되는 장비로 내장된 알고리즘을 통해 전달할 수 있는 가장 가까운 라우터까지의 경로를 결정하고 이를 테이블로 저장(라우팅)한다.
4) 전송(Transport) 계층
TCP, UDP
TCP와 UDP 프로토콜을 통해 통신을 활성화한다. 포트를 열어두고, 프로그램들이 전송을 할 수 있도록 제공해준다.
- TCP : 신뢰성, 연결지향적
- UDP : 비신뢰성, 비연결성, 실시간
사용자들이 신뢰성있는 데이터를 주고 받을 수 있게 해주며, 패킷들의 전송이 유효한 지 확인하고 전송 실패한 패킷들을 다시 전송한다.
- 단위: TCP - Segment / UDP - Datagram
💡 네트워크 계층 VS. 전송 계층
- 네트워크 계층: 호스트 간의 논리적 통신을 돕는다
- 전송 계층: 응용 프로세스 간의 논리적 통신을 돕는다.
💡 전송계층은 데이터를 전송하고, 전송 속도를 조절하며, 오류가 발생된 부분은 다시 맞춰주는 계층이다. 데이터를 전송받으면 전송계층에서 데이터를 합산해서 세션 계층으로 보내주게 된다. 통신 과정에서 헤더에 포트번호를 포함하여 전달한다.
- 포트: 컴퓨터끼리 정보를 교환하기 위해 사용하는 가상의 논리적 접속 위치
- 포트번호: 하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수 값
[참고] 등록된 포트 목록: https://ko.wikipedia.org/wiki/TCP/UDP의_포트_목록
💡 호스트: 네트워크에 연결 되어 있는 컴퓨터들
5) 세션(Session) 계층
API, Socket
데이터가 통신하기 위한 논리적 연결을 담당한다. 네트워크 상 양쪽 연결을 관리하고 연결을 지속 시켜 주는 계층이다.
TCP/IP 세션을 만들고 없애는 책임을 지니고 있다.
또한, 통신하는 사용자들을 동기화한다는 특징이 있다.
- 단위: Data / Message(Token)
💡 세션: 일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술. 즉, 사용자가 접속되어있는 시간 동안의 상태를 세션이라고 볼 수 있다.
6) 표현(Presentation) 계층
JPEG, MPEG 등
데이터 표현에 대한 독립성을 제공하고 암호화하는 역할을 담당한다.
(코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식 상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다)
파일 인코딩, 명령어를 포장, 압축, 암호화한다.
예) 특정 데이터의 형식이 text인지, gif, jpg인지 등의 구분, EBCDID로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔주는 것 등
- 단위: Message
7) 응용(Application) 계층
HTTP, FTP, DNS 등의 프로토콜
최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스를 제공한다.
- 단위: Data
💡 HTTP: TCP/IP 프로토콜을 가지고 서버와 클라이언트 사이 파일전송을 하기 위한 프로토콜
💡 FTP: 서버/클라이언트 모델을 따라 데이터를 주고 받기 위한 프로토콜이다. 애플리케이션 레벨의 프로토콜로 TCP/IP 위에서 작동한다.
[참고1] TCP/IP 계층 vs. OSI 계층
TCP/IP 계층
OSI 7계층 이론을 기반으로 단순화된 실제 사용하는 인터넷 표준
실무적으로 사용하기 위해 OSI 7 계층보다 단순화시킨 인터넷 표준 모델이라고 보면 된다.
- 네트워크 인터페이스(물리+데이터링크 계층) : Node-to-Node간의 신뢰성 있는 데이터 전송을 담당하고 물리적인 주소로 MAC를 사용
- 인터넷(네트워크 계층) : 호스트간의 라우팅을 담당, 상위 트랜스포트 계층으로부터 받은 데이터에 IP패킷 헤더를 붙여 IP패킷을 만들고 이를 전송
- 전송(전송 계층) : 통신 노드 간의 연결을 제어하고 자료송수신을 담당
- 응용(세션+표현+응용 계층) : 사용자와 가장 가까운 계층, 서버나 클라이언트 응용프로그램이 이 계층에서 동작한다.
[참고2] MAC 주소 외에 IP주소가 존재하는 이유
맥 주소는 물리적인 주소, IP 주소는 논리적인 주소이다.
그렇다면 물리적 주소 외에 논리적 주소가 왜 필요할까?
한마디로 간단히 말하자면,
"물리적 주소 하나만으로는 그 주소까지 찾아갈 수 없기 때문"이다.
물리적 주소를 찾아가기 위한 논리적 주소가 바로 IP주소라고 볼 수 있다.
예를 들어 김뿌뿌에게 우편을 보낸다고 생각해보자.
우리는 우편물을 들고 우체국에 가 "김뿌뿌에게 보내줘!" 라고만 요청하면 우편을 보낼 수 없다.
김뿌뿌가 어디에 위치해있는지 모르기 때문이다. 김뿌뿌의 집은 분명 어딘가에 물리적으로 위치해있다. 하지만, 이 물리적 주소까지 가는 길과 방법이 설명된 집 주소를 알아야만 김뿌뿌가 있는 곳까지 찾아갈 수 있을 것이다.
즉, 김뿌뿌의 집 위치는 Mac 주소이고, 김뿌뿌의 집 위치를 설명해주는 "서울특별시 ㅇㅇ구 ㅇㅇ동..."과 같은 집 주소가 IP주소이다.
인터넷 망에는 무수히 많은 노드들이 존재하고, Mac 주소만으로는 이러한 노드 간의 연결을 타고타고 찾아갈 수 없기에 IP주소가 필요한 것이다.
참고자료
'CS > Network' 카테고리의 다른 글
DNS(Domain Name System)란? | DNS 정의, 구성 요소, 동작 과정 (0) | 2022.09.10 |
---|---|
CORS(Cross-Origin Resource Sharing) 란? | cors가 필요한 이유, 동작 원리, preflight, 에러 해결법 (0) | 2022.09.07 |
SSL/TLS 란 무엇일까? | SSL/TLS 인증, SSL과 TLS의 차이점, TLS Handshake (0) | 2022.09.03 |