OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것으로,
7단계 중 특정한 곳에 이상이 생기면 이상이 생긴 해당 단계만 고칠 수 있는 있는 편리함을 갖추고 있다.
1) 물리(Physical)
- Repeater, Cable, Hub, etc
- 데이터 전기적인 신호로 변환해서 주고받는 기능을 진행하는 공간
- 데이터를 전송하는 역할만 진행한다.
- 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다.
2) 데이터 링크(Data Link)
- Bridge, Switch, etc
- 물리 계층으로 송수신되는 정보를 관리하여 안전하게 전달되도록 도와주는 역할
- 포인트 투 포인트(Point to Point) 간 신뢰성있는 전송을 보장하기 위한 계층
- 물리 계층에서 발생할 수 있는 오류를 찾아 내고, 수정하는 데 필요한 기능적, 절차적 수단을 제공
- Mac 주소를 통해 통신한다.
- 프레임에 Mac 주소를 부여하고 에러검출, 재전송, 흐름제어를 진행한다.
- 브릿지나 스위치를 통해 MAC 주소를 가지고 물리계층에서 받은 정보를 전달함.
Mac 주소란?
▶️ 컴퓨터간 데이터를 전송하기 위한 컴퓨터의 물리적인 주소
즉, 하드웨어 주소이다.
IP 주소 vs. MAC 주소
▶️ 다른 컴퓨터와 통신하기 위해서는 IP주소를 사용하는 것이 맞다.
실제로는 IP주소를 MAC 주소로 바꿔 사용하는 것이다.
"IP주소간의 통신은 각 라우터 hop에서 일어나는 MAC 주소와 MAC 주소 통신의 연속적인 과정이다."
IP는 다른 시스템으로 데이터를 보내는 시작점과 끝점에 해당하는 주소라면,
MAC 주소는 물리적으로 연결되어 있는 노드와 통신할 때 사용되는 주소이다.
3) 네트워크(Network)
- Router
- 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
- 여러개의 노드를 거칠때마다 경로를 찾아주는 역할
- 다양한 길이의 데이터를 네트워크를 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단 제공
- 라우터를 통해 이동할 경로를 선택하여 IP 주소를 지정하고, 해당 경로에 따라 패킷을 전달
- 라우팅, 흐름 제어, 오류 제어, 세그먼테이션 등을 수행
- 데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만들어준다.
- 논리적인 주소 구조(IP), 계층적(hierarchical)
4) 전송(Transport)
- TCP, UDP
- TCP와 UDP 프로토콜을 통해 통신을 활성화하는 계층
- 포트를 열어두고, 프로그램들이 전송을 할 수 있도록 제공
- TCP : 신뢰성, 연결지향적
- UDP : 비신뢰성, 비연결성, 실시간
- 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
- 시퀀스 넘버 기반의 오류 제어 방식을 사용
- 연결 기반(connection oriented)
- 전송 계층이 패킷들의 전송이 유효한지 확인하고 전송 실패한 패킷들을 다시 전송한다는 것을 의미
- 종단간(end-to-end) 통신을 다루는 최하위 계층으로 종단간 신뢰성 있고 효율적인 데이터를 전송
- 오류검출 및 복구와 흐름제어, 중복검사 등을 수행
▶️ 패킷 생성(Assembly/Sequencing/Deassembly/Error detection/Request repeat/Flow control) 및 전송
TCP 프로토콜(Transmission Control Protocol)
- IP의 비신뢰적인 최선형 서비스에 신뢰적인 연결지향성 서비스를 제공하게 됨
- 신뢰적인 전송을 보장함으로써, 어플리케이션 구현이 한층 쉬워지게 됨
- 신뢰성(Reliable)
- 패킷 손실, 중복, 순서바뀜 등이 없도록 보장
- 연결지향적(Connection-oriented)
- UDP가 비연결성(connectionless)인 것과는 달리, TCP는 연결지향적
- 느슨한 연결(Loosly Connected)을 갖으므로 강한 연결을 의미하는 가상회선이라는 표현 보다는 연결지향적이라고 표현
- 연결 관리를 위한 연결설정 및 연결해제 필요
- TCP 연결설정, TCP 연결종료
- 양단간 어플리케이션/프로세스는 TCP가 제공하는 연결성 회선을 통하여 서로 통신
UDP 프로토콜(User Datagram Protocol)
- 신뢰성이 낮은 프로토콜로써 완전성을 보증하지 않음
- 가상회선을 굳이 확립할 필요가 없고 유연하며 효율적 응용의 데이터 전송에 사용
- 비연결성, 신뢰성X, 순서화되지 않은 Datagram 서비스 제공
- 메세지가 제대로 도착했는지 확인하지 않음 (확인응답 없음)
- 수신된 메세지의 순서를 맞추지 않음 (순서제어 없음)
- 검사합을 제외한 특별한 오류 검출 및 제어 없음 (오류제어 거의 없음)
- UDP를 사용하는 프로그램 쪽에서 오류제어 기능을 스스로 갖추어야 함
- 데이터그램 지향의 전송계층용 프로토콜 (논리적인 가상회선 연결이 필요없음)
- 비연결접속상태 하에서 통신
- 실시간 응용 및 멀티캐스팅 가능
- 빠른 요청과 응답이 필요한 실시간 응용에 적합
- 여러 다수 지점에 전송 가능 (1:N)
- 헤더가 단순
- UDP는 TCP 처럼 16 비트의 포트 번호를 사용
- 헤더는 고정크기의 8 바이트(TCP는 20 바이트) 만 사용
- 헤더 처리에 많은 시간과 노력을 요하지 않음
5) 세션(Session)
- API, Socket
- 데이터가 통신하기 위한 논리적 연결을 담당
- TCP/IP 세션을 만들고 없애는 책임이 있음
- 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능
- 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공
- 동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신
- 체크 포인팅과 유휴(어떠한 프로그램에 의해서도 사용되지 않는 상태), 종료, 다시 시작 과정 등을 수행
- 통신하는 사용자들을 동기화하고 오류복구 명령들을 일괄적으로 다룸
6) 표현(Presentation)
- JPEG, MPEG , etc
- 데이터 표현에 대한 독립성을 제공하고 암호화하는 역할
- 파일 인코딩, 명령어를 포장, 압축, 암호화
- 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어줌
- TEXT / GIF / JPG 등 구분
7) 응용(Application)
- HTTP, FTP, DNS, etc
- 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스 수행
- 사용자 인터페이스, 전자우편, 데이터베이스 관리 등의 서비스 제공
- 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행
- 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
'CS' 카테고리의 다른 글
[네트워크] 라우터 Router (feat. 스위치) (0) | 2023.01.01 |
---|---|
동기와 비동기 (0) | 2022.12.30 |
[네트워크] 프로토콜 개념 (0) | 2022.12.29 |
MSA(Micro Service Architecture) 마이크로 서비스 아키텍처 개념 (1) | 2022.12.29 |
객체지향 / 절차지향 프로그래밍 (2) | 2022.12.27 |