일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- AWS 로드밸런서
- ios 크로스브라우징
- 자바스크립트 null 병합
- 자바스크립트 중첩함수
- touchmove 이벤트
- EC2 HTTPS로 연결
- 로현 청춘의개발
- 자바스크립트 스코프 체인
- 웹아키텍처
- 리액트 쿼리
- 리액트 가상키보드
- Kafka
- net::R_SSL_PROTOCOL_ERROR
- 사파리 가상키보드
- 자바스크립트 호이스팅
- 자바스
- 모두의시간
- 프론트엔드 웹
- 모던 자바스크립트 Deep Dive
- activeElement
- 자바스크립트 렉시컬스코프
- 자바스크립트
- 퍼듀대학교
- 자바스크립트 변수 호이스팅
- active blur
- but requested an insecure XMLHttpRequest endpoint 'http://~~’. This request has been blocked; the content must be served over HTTPS.
- React Query
- Purdue university
- refetchOnWindowFocus
- K-SW SQUARE
- Today
- Total
개발 여행자, 현
OSI 7계층 본문
OSI 7계층
1. OSI 7계층이란?
물리계층 - 데이터 링크계층 - 네트워크 계층 - 전송 계층 - 세션 계층 - 표현 계층 - 응용계층
OSI 7계층이란 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다.
7계층으로 나눈 이유는 통신이 일어나는 과정을 단계별로 파악하여
흐름을 한 눈에 알아보고, 문제가 생긴 부분만을 해결할 수 있기 때문이다.
2. OSI 7계층
2.1 물리계층(Physical Layer)
-> 데이터 전송
이 계층에서는 주로 전기,기계,기능적인 특성을 이용해 통신 케이블로 데이터를 전송하게 된다.
통신의 단위는 비트이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태라고 생각하면 된다.
이 계층에서는 단지 데이터를 전달만 하고, 어떤 종류의 데이터/에러인지에 대해서는 신경쓰지 않는다.
대표적인 장비로는 '통신케이블, 리피터, 허브' 등이 있다.
허브는 자신과 연결되어 있는 모든 장비에게 데이터를 전부 전달한다.
* 허브를 L1 스위치라고 한다.
2.2 데이터 링크계층(DataLink Layer)
-> 맥주소를 가지고 안전한 정보 전달을 수행할 수 있도록 도와주는 역할
물리계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 전달을 수행할 수 있도록 도와주는 역할
통신에서의 오류도 찾아주고 재전송도 하는 기능을 가지고 있다.
주소 값은 물리적으로 할당 받는데, 이는 네트워크 카드가 만들어질 때부터 맥 주소(MAC address)가 정해져 있다는 뜻이다.
전송되는 단위는 프레임이고, 맥 주소를 가지고 소통하게 된다.
대표적인 장비로는 '브리지, 스위치' 등이 있다.
가장 흔히 볼 수 있는 스위치인 L2 스위치는 2계층(데이터 링크 계층)에서 작동하며,
보통 스위칭 기능이 있는 스위칭 허브를 사용한다.
2.3 네트워크 계층(Network Layer)
-> 데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능
이 계층은 경로를 선택하고 주소를 정한 후 경로에 따라 패킷을 전달해주는 것이 이 계층의 역할이다.
요즘은 2계층의 장비 중 스위치라는 장비에 라우팅 기능을 장착한 Layer 3 스위치도 있다.
L3 스위치
: L3 에서는 3 레이어의 프로토콜인 IP 등에서 스위칭을 수행하므로
자신에게 온 패킷의 destination 이 외부에 존재하는 IP 일 경우
그 패킷을 외부에 연결된 라우터로 보내줄 수 있다. 즉 L3 스위치는
라우터 기능도 갖고 있기 때문에 라우터와의 경계가 모호해진다.
L2 스위치가 MAC 주소만 알고있던 반면, L3 스위치는 IP 주소까지 알고 있다.
즉, L3 스위치란 L2 스위치에 라우팅 기능이 추가된 장비를 얘기한다.
* 참고로, OSI 7계층 중 3계층에서 사용하는 라우터에 붙어있는 네트워크 포트 수가 부족할 때
따로 연결해서 사용하는 기계가 바로 L3 스위치이기도 하다.
(여기서 IP주소를 사용한다.)
여러개의 노드를 거칠 때마다 경로를 찾아주는 역할을 하므로, 다양한 길이의 데이터를 네트워크를 통해 전달하고 그 과정에서 전송 계층이 요구하는 서비스 품질을 제공하기 위한 기능적/절차적 수단을 제공한다.
대표적인 장비로는 '라우터'가 있다.
2.3.1 스위치와 라우터의 차이
스위치는 '내부 네트워크'간의 통신만이 가능하다.
그렇기에 수많은 네트워크끼리 이어주는 인터넷(Internet)을 스위치로만 구현할 수 없다.
내부와 외부 네트워크 신호를 구분할 줄 아는 '라우터'만이 외부 네트워크와의 통신을 가능하게 한다.
즉, 라우팅(Routing) 기능은 서로 다른 내외부 네트워크를 연결하는 기능을 뜻한다.
MAC 주소를 이용하여 스위칭(Switching)을 하는 2계층(데이터 링크 계층)의 장비는 L2 스위치, 즉, 스위치이고,
IP 주소를 이용하여 스위칭(Switching)을 하는 3계층(네트워크 계층)의 장비는 L3 스위치, 즉, 라우터를 뜻한다.
2.4 전송 계층(Transport Layer)
-> 통신을 활성화하기 위한 계층
만약 외부에서 데이터가 들어온다면, 모든 요청들을 먼저 받아들이고 하나로 합쳐서 5계층으로 전달한다.
여기서 L4 스위치가 이용되는데, 요청들을 먼저 받은 후에 내부 서버들에게 적절히 분산시켜준다.
즉, L4 스위치의 주요 역할은 여러 대의 서버를 한 대 처럼 묶을 수 있는 부하 분산(로드 밸런싱) 기능을 제공하는 것이다.
그렇기에 L4 스위치는 IP 주소뿐만 아니라 Port 정보도 참고한다.
예를 들어, IP(125.125.12.5)를 웹 서버로 갖고있는 웹 서비스에서, 한 대의 서버로 모든 요청을 처리한다고 가정한다면
사용자가 늘어남에 따라 트래픽이 감당 안되는 상황이 발생할 것이다.
그래서 IP(125.125.12.6)서버를 증설하게 된다면, 사용자들에게 2개의 서버를 이용할 수 있다고 공지를 올리는 것이 아니다.
이럴 때 필요한 것이 로드밸런싱(부하부산)으로, 사용자들 그리고 서버에 요청을 전달할 필요가 없다.
이러한 기능을 하는 것이 L4 스위치로, 하나의 서버가 죽어 서비스가 중단되는 경우 다른 서버로 대체하는
ACTIVE-ACTIVE / ACTIVE-STANDBY 기능도 한다.
L2 L3 L4 장비의 차이
L2 장비: Layer2 즉, 데이터 계층. 즉 맥 주소를 보고 데이터를 전달하는 장비
L3 장비: Layer3 즉, 네트워크 계층. 즉 IP를 보고 데이터를 전달하는 장비
L4 장비: Layer4 즉, 전송 계층. 즉 L4는 IP + Port(session or connection)를 보고 데이터를 전달하는 장비
2.5 세션 계층(Session Layer)
-> 데이터가 통신하기 위한 논리적인 연결
4계층에서도 통신 연결을 맺거나 종료할 수 있기에, 어느 계층에서 통신이 끊어졌는지 판단하기에는 한계가 존재한다.
그러므로 4계층(전송계층)과 무관하게 응용 프로그램 관점에서 봐야한다.
기능으로는 세션설정, 유지, 종료, 전송 중단 시 복구 등의 기능이 있다.
세션 계층은 또한 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
동시 송수신 방식(duplex), 반이중 방식(half-duplex), 전이중 방식(Full Duplex)의 통신과 함께, 체크 포인팅과 유휴, 종료, 다시 시작 과정 등을 수행한다.
이 계층은 TCP/IP 세션을 만들고 없애는 책임을 진다.
2.6 표현 계층(Presentation Layer)
-> 사용자의 명령어를 완성 및 결과 표현, 포장/압축/암호화
데이터 표현이 상이한 응용 프로세스의 독립성을 제공하고, 암호화 한다.
코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어준다.
MIME 인코딩이나 암호화 등의 동작이 이 계층에서 이루어진다.
예를 들면, EBCDIC로 인코딩 된 문서 파일을 ASCII로 인코딩된 파일로 바꿔 주는 것이 있다.
해당 데이터가 TEXT, JPG, GIF ... 등의 구분이 표현계층의 몫이다.
2.7 응용 계층(Application Layer)
-> 네트워크 소프트웨어 UI 부분, 사용자의 입출력(I/O)부분
최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜이 있다.
해당 통신 패킷들은 방금 나열한 프로토콜에 의해 모두 처리되며 우리가 사용하는 브라우저나, 메일 프로그램은 프로토콜을
보다 쉽게 사용하게 해주는 응용프로그램이다. 한마디로 모든 통신의 양 끝단은 HTTP와 같은 프로토콜이지 응용프로그램이 아니다.
응용 계층(Application layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
일반적인 응용 서비스는 관련된 응용 프로세스들 사이의 전환을 제공한다.
응용 서비스의 예로, 가상 터미널(예를 들어, 텔넷), "Job transfer and Manipulation protocol" (JTM, 표준 ISO/IEC 8832) 등이 있다.