여지껏 공부를 했지만, 내내 헷갈려서 계속 봐왔던 OSI 7계층에 대해 정리하고자 글을 작성했다.
우선 OSI란 Open System Interconnection 의 약자로 시스템간의 개방형 접속을 나타낸다.
컴퓨터는 7개의 계층 모두를 포함하며, 이 7계층은 네트워크에서 일어나는 통신을 7단계로 나눈 것을 의미한다.
이렇게 7층으로 나눈 이유는 단계별 파악이 용이하며, 특정한 문제만 있다면 그 곳만 고치면 되는 만큼 흐름을 파악하기가 쉽기 때문이라 한다. ( 그치만 어렵다 .. )
출처 : https://velog.io/@nellholic108/%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-OSI-7-%EA%B3%84%EC%B8%B5
위의 이미지를 토대로 정리해 본다.
말그대로 물리적인 계층이다. 여기서 물리는 전기, 기계등을 의미하며 통신 케이블을 이용해 데이터를 전송한다.
이때 전송하는 단위는 1과 0으로만 이뤄진 비트단위이다. 전기적으로 on, off 상태를 신호로 보낸다고 한다.
데이터를 보내기만 할 뿐 에러 등을 신경쓰진 않으며, 위에서 부터 내려받은 데이터를 전기 신호로 변환하여 통신한데
대표적인 장비 : 통신 케이블, 리피터, 허브
물리 계층을 통해 송수신되는 데이터의 흐름을 관리하여 안전하게 정보가 전달되도록 도와준다. 이때 통신에서 오류가 발생하면 이를 찾고, 재전송하는 기능도 겸하며
오류 검사는 패리티 비트 검사 등이 있다.
이 계층에서는 MAC이라는 주소가 핵심인데 랜카드에 표기된 세계에서 유일한 고유의 번호라고 한다.
프레임이란 단위로 전송을 하며 브릿지와 스위치 라는 장비가 있는데 위의 MAC 주소를 이용한다.
여기선 IP 주소를 이용한다. 전송 단위는 패킷이라 불리우며 최적의 안전하고 빠른 경로를 찾고 이 경로에 따라 패킷을 전송하는 역활을 한다.
여기서 경로를 선택하는 것을 라우터라는 장비를 이용한 라우팅이란 기능을 뜻한다.
TCP, UDP라는 프로토콜이 등장한다.
프로토콜마다 데이터 전송 단위가 다른데,
TCP - Segment
UDP - Datagram 이라 불린다.
여기서는 데이터의 전송 속도를 조절하거나, 오류가 발생하면 다시 맞춰준다.
네트워크 계층이 논리적인 통신을 한다면, 여기선 프로세스간의 논리적인 통신을 도우며, PC에서 동시에 사용중인 프로세스들이 서로 겹치지 않도록 포트 번호를 포함해서 전달한다.
네트워크상 양쪽 연결을 관리하고 연결을 지속 시켜 주는 계층으로, 위의 TCP 프로토콜이 세션을 만들고 유지하거나 종료혹은 전송이 중단시 복구하는 기능을 수행한다.
세션이란 말 자체가 일정 시간 상태를 유지한다는 뜻인데 단어를 통해 이해하면 더 쉽겠다.
송수신 되는 이진수를 형식에 따라 표현하는 역활을 한다.
HTML파일이라면, meta 태그의 charset 어트리뷰트에 따라 인코딩을 하고
이미지라면 확장자에 따라 jpg, webp 등으로 바꿔준다.
사용자가 이용하는 애플리케이션으로 인터페이스를 제공하며, 메일 전송, 인터넷 접속등을 수행한다.