전에 OSI 7계층을 프로토콜과 함께 간단히 설명했습니다.
이번에는 OSI 7계층을 각 계층별로 설명하겠습니다.
아래의 이미지는 OSI 7계층을 나타내며, OSI 7계층은 참조형 모델이고 실제로 사용하는 프로토콜은 TCP/IP 프로토콜 스택으로 구현되어 있습니다.
물리 계층은 물리적 연결과 관련된 정보를 정의합니다. 주로 전기 신호를 전달하는 데 초점이 맞추어져 있습니다.
주요 장비로는 허브, 리피터, 케이블, 커넥터, 트랜시버, 탭이 있습니다.
물리 계층에서는 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이므로 전기 신호가 물리 계층 장비에 들어오면 이 전기 신호를 재생성하여 내보냅니다.
물리 계층 장비는 주소의 개념이 없으므로 전기 신호가 들어온 포트를 제외하고 모든 포트에 같은 전기 신호를 전송합니다.
데이터 링크 계층으로 전기 신호를 모아 우리가 알아볼 수 있는 데이터 형태로 처리합니다.
물리 계층과는 다르게 전기 신호를 정확히 전달하기 보다는 주소 정보를 정의하고 정확한 주소로 통신이 되도록 하는 데 초점이 맞추어져 있습니다.
이 계층에서는 출발지와 도착지 주소를 확인하고 내게 보낸 것이 맞는지, 또는 내가 처리해야 하는지에 대해 검사한 후 데이터 처리를 수행합니다.
이 계층에서 주소 체계가 생기면서 여러 통신이 한꺼번에 이루어지는 것을 구분하기 위한 기능이 주로 정의됩니다.
전기 신호를 모아 데이터 형태로 처리하므로 데이터에 대한 에러를 탐지
하거나 고치는 역할
을 수행할 수 있습니다.
주소 체계가 생긴다는 의미는 한 명과 통신하는 것이 아니라 동시에 여러 명과 통신할 수 있다는 것이므로 무작정 데이터를 보내는 것이 아니라 받는 사람이 현재 데이터를 받을 수 있는지 확인하는 작업부터 해야 합니다.
이 역할을 흐름 제어(Flow Control)
이라고 부릅니다.
가장 중요한 특징은 MAC 주소
라는 주소 체계가 있으며, 네트워크 인터페이스 카드와 스위치 모두 MAC 주소를 이해할 수 있고 스위치는 MAC 주소를 보고 통신해야 할 포트를 지정해 내보내는 능력이 있습니다.
🔎 네트워크 인터페이스 카드(NIC)와 스위치(Switch)?
- 네트워크 인터페이스 카드(NIC) : 고유 MAC 주소가 있으며, 입력되는 전기 신호를 데이터 형태로 만들고 데이터에서 도착치 MAC 주소를 확인한 후 자신에게 들어오는 전기 신호가 맞는지 확인합니다. 자신에게 들어오는 전기 신호가 아니면 버리고 자신에게 들어오는 전기 신호가 맞으면 이 데이터를 상위 계층에서 처리할 수 있도록 메모리에 적재합니다.
- 스위치(Switch) : 어떤 MAC 주소인지, 연결된 포트는 어느 것인지 주소 습득 과정에서 알 수 있습니다. 이 데이터를 기반으로 단말들이 통신할 때 포트를 적절히 필터링하고 정확한 포트로 포워딩해줍니다.
네트워크 계층에서는 IP 주소
와 같은 논리적 주소가 정의됩니다.
데이터 통신할 때는 두 가지 주소가 사용되는 데이터 링크 계층의 물리적인 MAC 주소
와 네트워크 계층의 논리적인 IP 주소
입니다.
IP 주소는 사용자가 환경에 맞게 변경해 사용할 수 있고 네트워크 주소
부분과 호스트 주소
부분으로 나뉩니다.
이 네트워크 계층에서 사용하는 장비나 단말은 네트워크 주소 정보를 이용해 자신이 속한 네트워크와 원격지 네트워크를 구분할 수 있고 원격지 네트워크를 가려면 어디로 가야 하는지 경로를 지정하는 기능이 있습니다.
네트워크 계층에서 라우터라는 장비를 사용하며, 정의한 IP 주소를 이해할 수 있습니다. IP 주소를 사용해 최적의 경로를 찾아주고 해당 경로로 패킷을 전송하는 역할을 합니다.
물리, 데이터 링크, 네트워크 계층은 신호와 데이터를 올바른 위치로 보내고 실제 신호를 잘 만들어 보내는데 집중했다면 이 전송 계층은 실제로 해당 데이터들이 정상적으로 잘 보내지도록 확인하는 역할을 합니다.
패킷 네트워크는 데이터를 분할해 패킷에 실어보내다 보니 중간에 패킷이 유실되거나 순서가 바뀌는 경우가 있을 수 잇습니다. 이 문제를 해결하기 위해 패킷이 유실되거나 순서가 바뀌었을 때 바로잡아주는 역할을 이 계층에서 해줍니다.
패킷을 분할할 때 패킷 헤더에 보내는 순서와 받는 순서를 적어 통신하므로 패킷이 유실되면 재전송을 요청할 수 있고 순서가 뒤바뀌더라도 바로잡을 수 있습니다.
패킷에 보내는 순서를 명시한 것이 시퀀스 번호(Sequence Number)
이고 받는 순서를 나타낸 것이 ACK 번호(Acknowledgement Number)
입니다.
이뿐만 아니라 장치 내의 많은 애플리케이션을 구분할 수 있도록 포트 번호(Port Number)
를 사용해 상위 애플리케이션을 구분합니다.
이 전송 계층에서 동작하는 장비는 로드 밸런서와 방화벽이 있으며, 포트 번호나 시퀀스, ACK 번호 정보같은 것을 이용해 부하를 분산하거나 보안 정책을 수립해 패킷을 통과, 차단하는 기능을 수행합니다.
세션 계층은 양 끝단의 응용 프로세스가 연결을 성립하도록 도와주고 연결이 안정적으로 유지되도록 관리하고 작업 완료 후에는 이 연결을 끊는 역할을 합니다.
세션을 관리하는 것이 주요 역할인 세션 계층은 TCP/IP 세션을 만들고 없애는 책임을 집니다. 또한, 에러로 중단된 통신에 대한 에러 복구와 재전송도 수행합니다.
이 표현 계층은 표현 방식이 다른 애플리케이션이나 시스템 간의 통신을 돕기 위해 하나의 통일된 구문 형식으로 변환시키는 기능을 수행합니다.
한마디로 말하자면 번역기나 변환기 역할을 수행하는 계층이고 이런 기능은 사용자 시스템의 응용 계층에서 데이터의 형식상 차이를 다루는 부담을 덜어줍니다.
응용 계층은 애플리케이션 프로세스를 정의하고 애플리케이션 서비스를 수행합니다.
네트워크 소프트웨어의 UI 부분이나 사용자 입,출력 부분을 정의하는 것이 이 계층의 역할입니다.
응용 계층의 프로토콜은 엄청나게 많은 종류가 있지만 대표적인 프로토콜로는 FTP
, SMTP
, HTTP
, TELNET
이 있습니다.
계층 | 주요 프로토콜 | 장비 |
---|---|---|
응용 계층 | HTTP, SMP, SMTP, STUN, TFTP, TELNET | ADC, NGFW, WAF |
표현 계층 | TLS, AFP, SSH | |
세션 계층 | L2TP, PPTP, NFS, RPC, RTCP, SIP, SSH | |
전송 계층 | TCP, UDP, SCTP, DCCP, AH, AEP | 로드 밸런서, 방화벽 |
네트워크 계층 | ARP, IPv4, IPv6, NAT, IPSec, VRRP, 라우팅 프로토콜 | 라우터, L3 스위치 |
데이터 링크 계층 | IEEEE 802.2, FDDI | 스위치, 브릿지, 네트워크 카드 |
물리 계층 | RS-232, RS-449, V.35, S 등의 케이블 | 케이블, 허브, 탭(TAP) |
이상으로 OSI 7계층에 대해서 간단히 알아봤습니다.