OSI 7계층
OSI 7계층은 네트워크 데이터 통신을 설명할 때 반드시 있어야 하는 중요한 개념입니다.
OSI 7계층이 네트워크 동작을 나누어 이해하고 개발하는 데 많은 도움이 되므로 네트워크의 주요 레퍼런스 모델로 활용되고 있지만, 현재는 대부분의 프로토콜이 TCP/IP 프로토콜 스택 기반으로 되어 있습니다.
데이터 전송 과정을 OSI 7계층으로 나누어 보면 계층별로 표준화된 프로토콜 템플릿을 통해 네트워크 프로토콜을 전부 개발하는 대신, 계층별로 프로토콜을 개발해 네트워크 구성 요소들을 모듈화할 수 있습니다.
모듈화된 요소는 기존에 개발된 프로토콜과 연동해 사용할 수 있습니다.
OSI 7계층은 다시 두 계층으로 나눌 수 있습니다.
- 1~4계층 : 데이터 플로 계층(Data Flow Layer) / 하위 계층(Lower Layer)
- 5~7계층 : 애플리케이션 계층(Application Layger) / 상위 계층(Upper Layer)
OSI 7계층별 이해하기
1계층(피지컬 계층)
- 물리 계층으로 물리적 연결과 관련된 정보 정의
- 주로 전기 신호 전달에 초점
- 주요 장비 : 허브(Hub), 리피터(Repeater), 케이벌(Cable), 커넥터(Connector), 트랜시버(Tranceiver), 탭(TAP)
- 허브와 리피터는 네티워크 통신을 중재하는 네트워크 장비
- 케이블과 커텍터는 케이블을 연결하는 장치
- 트랜시버는 컴퓨터의 랜 카드와 케이블을 연결하는 장치
- 탭은 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제하는 장치
- 들어온 전기 신호를 그대로 잘 전달하는 것이 목적
- 전기 신호가 들어오면 이 전기 신호를 재생성하여 내보냄
- 주소의 개념이 없으므로, 전기 신호가 들어온 포트를 제외하고 모든 포트에 전기 신호를 전송
-> 전체 네트워크에서 동시에 오직 하나의 장비만 데이터를 보내 수 있음
2계층(데이터 링크 계층)
- 전기 신호를 모아 데이터 형태로 처리
- 주소 정보를 정의하고, 정확한 주소로 통신이 되도록 하는데 초점
- 출발지와 도착지 주소 확인 후 내게 보낸 것이 맞는지, 내가 처리해야하는지에 대해 검사한 후 데이터 처리 수행
- 주소 체계가 생기면서 여러 통신이 한꺼번에 이루어지는 것을 구분하기 위한 기능 정의
- 전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지하거나 고치는 역할 수행 가능
- 주소 체계를 통해 동시에 여러 명과 통신 가능
-> 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업 필요
-> 이 역할을 플로 컨트롤(Flow Control)이라 함
- 2계층에서 동작하는 네트워크 구성 요소: 네트워크 인터페이스 카드, 스위치(Switch)
- MAC 주소 체계가 있다는 중요한 특징
- 네트워크 인터페이스 카드와 스위치 모두 MAC 주소 이해 가능
- 스위치는 MAC 주소를 보고 통신해야 할 포트를 지쟁해 내보낼 수 있음
- 네트워크 인터페이스 카드에는 고유 MAC 주소 존재
- 입력되는 전기 신호를 데이터 형태로 만들고 데이터에서 도착지 MAC 주소를 확인해 자신에게 들어오는 전기 신호가
맞는지 확인
- 자신에게 들어오는 전기 신호가 아니면 버림
- 자신에게 들어오는 전기 신호가 맞으면 이 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재
- 스위치는 단말(Terminal)이 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 습득(Adress Learning)과정에서 알 수
있음
- 이 데이트럴 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고, 정확한 포트로 포워딩함
- 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리 감소
-> 이더넷 효율성 향상, 이더넷 기반 네트워크 급증
3계층(네트워크 계층)
- IP 주소와 같은 논리적인 주소가 정의됨
- 데이터 통신을 할 때는 두 가지 주소 사용 : 2계층의 물리적인 MAC 주소와 3계층의 논리적인 IP 주소
- IP 주소는 사용자가 환경에 맞계 변경 가능하며, 네트워크 주소 부분과 호스트 주소 부분으로 나뉨
- 3계층을 이해할 수 있는 장비나 단말
- 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크 구분 가능
- 원격지 네트워크를 가려면 어디로 가야 하는지 경로 지정
- 3계층에서 동작하는 장비는 라우터
- 라우터는 3계층에서 정의한 IP 주소 이해 가능
- IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송
4계층(트렌스포트 계층)
- 데이터들이 정상적으로 잘 보내지도록 확인하는 역할
- 패킷 네트워크는 데이터를 분할해 패킷에 실어 보내므로 중간에 패킷이 유실되거나 순서가 바뀌는 경우 발생
- 4계층에서 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주는 역할 담당
- 패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신
-> 패킷이 유실되면 재전송 요청, 순서가 뒤바뀌더라도 정정 가능
- 패킷에 보내는 순서를 명시한 것 : 시퀀스 번호(Sequence Number)
- 받는 순서를 나타낸 것 : ACK 번호(Acknowledgement Number)
- 포트 번호를 사용해 상위 애플리케이션 구분 : 장치 내의 많은 애플리케이션 구분 가능
- 4계층에거 동작하는 장비 : 로드밸런서와 방화벽
- 이 장비들은 4계층에서 볼 수 있는 애플리케이션 구분자(포트 번호)와 시퀀스, ACK 번호 정보를 이용해 부하를 분산하
거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능 수행
5계층(세션 계층)
- 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고, 연결이 안정적으로 유지되도록 관리하며, 작업 완료 후에는
연결을 끊는 역할
- TCP/IP 세션을 만들고 없애는 책임
- 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행
6계층(프레젠테이션 계층)
- 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 통일된 구문 형식으로 변환시키는 기능 수행
- 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어줌
- MIME 인코딩, 암호화, 압축, 코드 변환과 같은 동작이 이루어짐
7계층(애플리케이션 계층)
- 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행
- 네트워크 소프트웨어의 UI부분이나 사용자 입출력 부분을 정의
- 대표적 프로토콜 : FTP, SMTP, HTTP, TELNET 등
<참고문헌>
IT 엔지니어를 위한 네트워크 입문