들어가며...
우아한 테코톡에 총 2개의 OSI 7계층 동영상이 있다.
- 10분 테코톡이지만 꼼꼼하게 설명해주셔서 42분까지 강의가 된 히히님의 OSI 7계층.
https://www.youtube.com/watch?v=1pfTxp25MA8&t=3s
- 그리고 파즈의 OSI 7계층.
https://www.youtube.com/watch?v=Fl_PSiIwtEo
10분 테코톡은 우아한테크코스 과정을 진행하며 수강생들이 동료들과 학습한 내용을 공유하는 시간이라고 한다.
[ 코로나로 인해서 현재는 온라인으로 우아한테크코스 과정을 진행한다고 한다. ]
아직 히히님의 OSI 7계층 동영상은 보지 못했다.
파즈님의 발표를 들어보았고 그에 대한 요약글을 남겨보고자 한다.
OSI 7계층은 인터뷰 면접의 단골 문제이니 이렇게 깔끔하게 정리해준 자료를 참고한다면 나중에 공부할 때도 큰 도움이 될 것이다.
OSI(Open System Interconnection) 개방형 상호 시스템을 위한 모델 7계층.
OSI 모델은 구현이 아닌 표준(추상화된 모델)이다.
- IOS(International Organization for Standardization : 표준화 기구)에서 1984년에 발표한 네트워크 모델이다.
[ ISO라는 단어는 isos의 '동일함'이라는 표현에서 유래된 것이다. 국제 표준화 기구의 영문명은 약자를 따면 IOS이다.
(명확하게 하자면!) ]
신생 기술이 등장했을 때 빠르게 표준을 정의하지 않으면 회사 간의 점유율 경쟁으로 인해서 미래에 골치 아픈 상황이 생길 수 있다(누가 표준이 될 것인지에 대한 경쟁!!). 국제 표준화 기구 덕분에 소프트웨어 개발자의 프로토콜 표준이 생기게 된 것이고 이로 인해서 회사별로 프로토콜을 공부해야 하는 수고를 덜게 될 수 있는 것이다.
실제 구현은 OSI에서 제공한 표준 모델을 따르는 것이 바람직할 것이다. 그렇다고 모델에 딱 부합해야 하는 것은 아니다.
[ 현재 범용적으로 활용되는 TCP/IP 모델은 OSI 모델을 완전하게 따르지는 않는다. (너무 오래된 표준(1984년..)이기도 하고 세월이 지남에 따라 네트워크에서도 발전하고 진화해야 하는 부분이 있기 때문이다. OSI 모델은 레거시로 남게 되었지만 OSI 모델에서 사용된 용어와 모델의 대부분은 현재 모델에서도 수용하고 있다. ]
현재의 TCP/IP 모델은 4 계층으로 구분한다. [ 4계층 모델은 미국방성의 통신 표준으로 채택된 모델이다 ]
[ 응용(응용, 표현, 세션을 묶음), -> 전송계층(TCP) -> 인터넷 계층(IP) -> 네트워크 접근(데이터 링크 + 물리계층) ]
OSI 모델 7계층
7개의 계층. 각 계층은 서로가 무엇을 하는지 관여하지 않는다.
계층에서 해야할 역할과 책임을 완수하기만 하면 된다.
각 계층은 자신의 역할을 수행하고 이에 대한 정보를 이전에 받은 정보에 "헤더"를 추가하는 식으로 캡슐화한다.
전송 측은 헤더를 계층별로 캡슐화하면서 정보가 커지게 되고 수신 측에서는 정보를 디캡슐화하면서 헤더를 꺼내서 필요한 정보들을 처리하게 된다.
각 계층은 다음과 같다.
7계층 : 응용 계층(Application Layer) [ 파일 전송, 통신 ] [ 메시지(Message) ]
- 애플리케이션을 위한 네트워크 인터페이스(포트로 지정)를 제공한다.
- 파일 전송, 통신 등을 위한 네트워크 애플리케이션을 지원한다.
대표적인 응용 계층 프로토콜로는 HTTP, HTTPS, SMTP, FTP와 같이 애플리케이션의 사용 목적(서비스)과 부합하는 프로토콜들이다.
6계층 : 표현계층(presentation Layer) [ 암호화 및 데이터 압축을 관리 ]
- 데이터를 표준 형식으로 변환(인코딩)해준다. 암호화 및 데이터 압축을 관리해준다.
5계층 : 세션 계층(Session Layer) [ 세션 관리 ]
- 통신 애프리케이션 간에 세션을 설정한다. 세션을 열고, 닫고, 복구(체크포인트를 활용)하는 역할을 가진다.
4계층 : 전송 계층(Transport Layer) [ 오류 제어 및 흐름 제어 ] [ TCP :세그먼트(Segment), UDP : 데이터그램 ]
- 유명한 TCP/UDP의 영역이다.
- 서로 다른 네트워크 사이에서 "신뢰성" 있는 "전송"을 담당한다.
- 데이터를 세그먼트라는 단위로 나누어 데이터를 전송한다(TCP의 경우).
- 작은 데이터들을 보내는 방식으로 서버나 클라이언트 측에서 순차적으로 데이터를 처리할 수 있게 해준다.
- 세그먼트의 전송 속도는 흐름 제어에 의해서 제어된다.
- 네트워크의 상태(전송 속도)에 맞추어 데이터 전송 속도를 조절하는 흐름제어 메커니즘을 가진다.
- Stop and wait과 sliding window 알고리즘이 쓰인다.
[ 개인적으로 애플리케이션 계층 다음으로 가장 많은 부분이 연구되고 공부되는 계층이라 생각한다. ]
- 게이트웨이에서 처리 (Port 영역)
3계층 : 네트워크 계층(Network Layer) [ 논리 주소(IP) 지정, 라우팅 ] [ Packet ]
- 논리 주소를 지정하고 라우팅(전달)을 지원한다.
- Internet Protocol이 사용되는데 목적지 주소에 데이터를 전송하는 데 사용되는 프로토콜이다.
- 라우터가 처리
2계층 : 데이터 링크 계층(Data link) [ 동일한 네트워크에서의 전송을 처리한다. ] [ Frame ]
- 전송 계층과 같이 오류 제어와 흐름 제어 메커니즘을 가진다.
- 네트워크 어댑터(네트워크 카드)와의 인터페이스를 제공하며, 서브넷의 논리적 링크를 유지한다.
- 브리지와 스위치 하드웨어가 처리
1계층 : 물리 계층 (Physical Layer) [ 현실의 물리적인 계층이다. ] [ 비트스트림 (아날로그 펄스) ]
- 데이터를 실제 전송 매체를 지나는 전기 또는 아날로그 펄스 스트림으로 변환하여 데이터 전송을 감독.
마무리
네트워크 모델에서 각 계층의 주요 역할과 책임에 대해서 살펴보았다. + 사용되는 용어들.
[ 메시지 -> 세그먼트(데이터그램) -> 패킷 -> 프레임 -> 비트스트림 ] 순으로 캡슐화된 데이터 용어들에서 각 계층 사이에서 어떤 헤더가 붙게 되고 해당 헤더가 가진 정보는 무엇인지 공부해볼 수 있었다.
[ 헤더를 세부적으로 살펴보지 않았지만... ]
네트워크의 기초가 되는 지식이었고 각 계층에서 깊게 공부해야 하는 내용들이 존재한다.
특히 응용 계층에서 사용되는 TLS, HTTPS, HTTP와 전송 계층의 TCP/UDP에는 현업에서 활용되는 내용들이 존재한다.
시간이 지나면 네트워크 기초 내용들이 흐릿하게 기억되곤 하는데
그 이유는 영어 -> 한국어 번역 -> 각 계층의 메커니즘 & 용어들이 헷갈리기 시작하기 때문...
그래서 틈틈이 복습하는 것이 좋다.
다음번에는 히히님의 발표를 듣고 내용을 추가해보고자 한다.
'취업준비 > 우아한 테크 리뷰' 카테고리의 다른 글
우아한 테크 -쿠키- [ + 쿠키과 세션 ] [네트워크][웹] (0) | 2021.11.17 |
---|---|
우아한 테크 -Servlet & Spring 리뷰(1) - [ CGI와 Servlet에 대하여 ] (0) | 2021.11.12 |
우아한 테크 -MVC 패턴 리뷰- [레이어, MVC 패턴, 5레이어] (0) | 2021.11.05 |