[네트워크] OSI 7 계층
cs-study에서 스터디를 진행하고 있습니다.
개념
OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
계층을 나눈 이유
통신이 일어나는 과정을 단계 별로 파악할 수 있기 때문이다. 흐름을 한 눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 고칠 수 있다.
PC방에서 오버워치를 하는데 연결이 끊겼다. 어디에 문제가 있는지 확인해 보자.
모든 PC에 문제가 있다면, 라우터의 문제(3계층 네트워크 계층)이거나
광랜을 제공하는 회사의 회선 문제(1계층 물리 계층)일 가능성이 높다.
한 PC만 문제가 있다면, 오버워치 소프트웨어에 문제(7계층 애플리케이션 계층)일 수 있다.
오버워치 소프트웨어에 문제가 없고, 스위치에 문제(2계층 데이터 링크 계층)일 수 있다.
이렇듯 다른 계층에 있는 장비나 소프트웨어를 건드리지 않고 문제를 해결할 수 있다.
계층 구조도
1계층 - 물리 계층 (Physical Layer)
물리 계층에서는 주로 전기적, 기계적, 기능적인 특성을 이용한 통신 케이블로 데이터를 전송하게 된다. 사용되는 통신 단위는 비트이며 1과 0으로 나뉘어지는 즉, 전기적으로 On, Off 상태라고 생각하면 된다. 이때 단지 데이터를 전달만 할 뿐 전송하거나 받으려는 데이터가 무엇인지, 어떤 에러가 있는지 등에는 전혀 신경 쓰지 않는다. 데이터를 전기적인 아날로그 신호로 변환해서 주고 받는 기능을 하며, 이 계층에서 쓰이는 대표적인 장비는 통신 케이블, 리피터, 허브 등이 있다.
2계층 - 데이터 링크 계층 (DataLink Layer)
물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와준다. 따라서 통신에서의 오류도 찾아주고, 오류가 있다면 데이터를 재전송하는 기능을 가지고 있다. 오류 검사는 패리티 비트 검사, 해밍 부호 검사 등이 있다.
데이터 링크 계층은 맥 주소를 가지고 통신하며, 전송되는 단위를 프레임이라고 하고, 대표적인 장비로는 브릿지와 스위치 등이 있다. 브릿지와 스위치 등에서 맥 주소를 활용한다.
3계층 - 네트워크 계층 (Network Layer)
네트워크 계층은 경로를 선택하고 주소를 정한 뒤, 경로에 따라 패킷을 전달해 주는 역할을 한다. 이 계층의 대표적인 장비는 라우터이며, 요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다. 라우터에서 IP 주소를 활용하며, 위에서 언급한 주소를 정한다는 것이 바로 IP 주소를 의미한다. 참고로 네이버나 구글 같은 도메인 주소를 55.10.54.75 같은 IP 주소로 변환하는 행위를 DNS라고 한다.
B라는 지점에 IP 주소인 55.10.54.75를 부여하고, A에서 B까지 경로를 찾기 위한 라우팅 기술을 사용하는 것이다.
4계층 - 전송 계층 (Transport Layer)
전송 계층에서는 데이터를 전송하고, 전송 속도를 조절하며, 오류가 발생된 부분은 다시 맞춰 주는 계층이다. 데이터를 전송 받은 경우, 전송 계층에서 데이터를 합산하여 세션 계층으로 보내주게 된다.
주로 TCP, UDP 프로토콜을 사용하며, 헤더에 송신지와 수신지의 포트 번호를 포함하여 전달하는 계층이다. 참고로, TCP의 데이터 전송 단위는 Segment, UDP의 데이터 전송 단위는 Datagram이라고 부른다.
포트 번호란?
하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수 값이다.
네트워크 계층 vs 전송 계층
네트워크 계층은 호스트 간의 논리적 통신을 돕지만, 전송 계층은 응용 프로세스 간의 논리적을 통신을 돕는다.
5계층 - 세션 계층
세션 계층은 네트워크상 양쪽 연결을 관리하고 연결을 지속 시켜 주는 계층이다. 주로, TCP/IP 세션을 만들고 유지하며, 세션이 종료되거나 전송이 중단될 시 복구하는 기능이 있다. 더불어, 통신하는 사용자들을 동기화한다는 특징이 있다.
통신 연결은 포트 기반으로 구성하여 연결하며, 운영 체제가 통신을 하기 위한 세션 확립/유지/중단 과정을 해 준다.
세션이란?
세션이란 일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술을 말한다. 여기서 일정 시간이란, 방문자가 웹 브라우저를 통해 웹 서버에 접속한 시점으로부터 웹 브라우저는 종료함으로써 연결을 끝내기 까지의 기간을 말한다. 즉, 방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 세션이라고 부른다.
6계층 - 표현 계층
표현 계층은 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식 상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.
예를 들어, EBCDID로 인코딩된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이나 특정 데이터가 text인지, gif인지, jpg인지 등의 구분을 해 준다.
7계층 - 응용 계층
응용 계층은 사용자 또는 애플리케이션이 네트워크 접근할 수 있도록 해 준다. 사용자를 위한 인터페이스를 제공하며, 사용자에게 보이는 유일한 계층이라고 할 수 있다. 메일 전송, 인터넷 접속 등의 작업을 수행할 수 있다. 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
데이터의 흐름 정리
1계층
2계층
3계층
4계층
5 ~ 7 계층
출처
https://www.youtube.com/watch?v=1pfTxp25MA8&ab_channel=우아한Tech
https://shlee0882.tistory.com/110
https://blog.naver.com/PostView.nhn?isHttpsRedirect=true&blogId=pst8627&logNo=221670903384
https://movefast.tistory.com/24
https://pinelover.tistory.com/180
예상 면접 질문과 답변
OSI 7계층만 단독으로 질문하기 보다는 각 계층의 프로토콜이나 사용되는 기술들과 연관 지어서 나올 확률이 높다.
OSI 7 계층이란?
OSI 7 계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.
OSI 7 계층으로 나눈 이유가 무엇인가?
통신이 일어나는 과정을 단계 별로 파악할 수 있기 때문이다. 흐름을 한 눈에 알아보기 쉽고, 사람들이 이해하기 쉽고, 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건드리지 않고도 이상이 생긴 단계만 고칠 수 있다.
[물리 계층] 물리 계층이 하는 역할은 무엇인가?
데이터를 전기적인 아날로그 신호로 변환하여 주고 받는다.
[데이터 링크 계층] 데이터 링크 계층이 하는 역할은 무엇인가?
물리 계층을 통해 송수신되는 데이터의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 돕는다.
[데이터 링크 계층] 데이터 링크 계층에서 오류를 검출하는 기법을 아는 대로 설명해 보시오.
패리티 비트 검사, 해밍 부호 검사 등이 있다.
[데이터 링크 계층] Mac 주소란 무엇인가?
Mac 주소란 컴퓨터 간 데이터를 전송하기 위해 있는 컴퓨터의 물리적 주소 또는 하드웨어 주소라고 한다.
[네트워크 계층] 네트워크 계층이 하는 역할은 무엇인가?
각 호스트에 IP 주소를 부여하고, 라우팅 기술을 활용하여 데이터를 특정 목적지까지 가장 안전하고 빠르게 전달한다.
[네트워크 계층] 호스트란 무엇인가?
네트워크에 연결 되어 있는 컴퓨터들을 호스트라고 부른다.
[네트워크 계층] DNS란 무엇인가?
네이버와 구글과 같은 도메인 이름을 IP 주소로 변환하는 기법을 말한다.
[네트워크 계층] IP 주소는 무엇인가?
IP 주소는 컴퓨터 네트워크에서 장치들이 서로를 인식하고 통신하기 위해 사용하는 논리적 주소다.
[데이터 링크 계층 + 네트워크 계층] Mac 주소와 IP 주소의 차이는 무엇인가?
추후 정리할 예정.
[네트워크 계층] 라우팅이 무엇인가?
네트워크 안에서 통신 데이터를 보낼 때 최적의 경로를 선택하는 과정이다.
[전송 계층] 전송 계층이 하는 역할은 무엇인가?
포트를 열어서 응용 프로그램들이 통신할 수 있게 만든다.
[전송 계층] 포트란 무엇인가?
하나의 컴퓨터에서 동시에 실행되고 있는 프로세스들이 서로 겹치지 않게 가져야 하는 정수 값이다.
[전송 계층] 전송 계층에서 사용하는 프로토콜은 무엇이 있는가?
대표적으로 TCP와 UDP 프로토콜을 사용한다.
[전송 계층] TCP와 UDP 프로토콜의 특징과 차이점을 설명하라.
추후 정리할 예정.
[세션 계층] 세션 계층이 하는 역할은 무엇인가?
네트워크 상 양쪽 연결을 관리하고 연결을 지속 시켜 주는 계층이다. 주로, TCP/IP 세션을 만들고 유지하며, 세션이 종료되거나 전송이 중단될 시 복구하는 기능이 있다. 더불어, 통신하는 사용자들을 동기화한다는 특징이 있다.
[세션 계층] 세션이 무엇인가?
세션이란 일정 시간 동안 같은 사용자로부터 들어오는 일련의 요구를 하나의 상태로 보고 그 상태를 일정하게 유지하는 기술을 말한다.
[세션 계층] 세션과 쿠키의 차이는 무엇인가?
추후 정리할 예정.
[표현 계층] 표현 계층이 하는 역할은 무엇인가?
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식 상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다. MIME 인코딩이나 암호화 등의 동작을 수행한다.
[응용 계층] 응용 계층이 하는 역할은 무엇인가?
사용자 또는 애플리케이션이 네트워크 접근할 수 있도록 해 준다. 사용자를 위한 인터페이스를 제공하며, 사용자에게 보이는 유일한 계층이라고 할 수 있다. 메일 전송, 인터넷 접속 등의 작업을 수행할 수 있다.
[응용 계층] 응용 계층에서 사용되는 프로토콜을 아는 대로 설명하라.
HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
[응용 계층] HTTP 프로토콜이 무멋인가?
추후 정리할 예정.
'스터디 > CS 스터디' 카테고리의 다른 글
[네트워크] TCP/IP 흐름 제어 & 혼잡 제어 (0) | 2021.11.18 |
---|---|
[네트워크] HTTP & HTTPS (0) | 2021.11.18 |
[네트워크] TCP 3 way handshake & 4 way handshake (0) | 2021.11.13 |
[운영체제] PCB & Context Switching (1) | 2021.11.13 |
[운영체제] 프로세스 & 스레드 (0) | 2021.11.13 |
댓글