OSI 7계층
표준화된 통신용 규약으로, 네트워크 동작을 나누어 이해하고 개발하는데 필수적인 개념이다.
Last updated
표준화된 통신용 규약으로, 네트워크 동작을 나누어 이해하고 개발하는데 필수적인 개념이다.
Last updated
OSI 7계층을 한눈에 그림으로 나타내면 아래와 같다.
각 레이어의 프로토콜은 하위 레이어의 프로토콜이 제공하는 기능을 사용해 동작한다.
데이터의 앞쪽에 붙는 것은 헤더이고, 뒤쪽에 붙는 것은 트레일러이다.
bit 단위의 사용자 데이터를 전송하는 계층
물리적으로 연결된 장비를 이용해 전기 신호를 전달한다.
주요 장비로는 네트워크 통신을 중재하는 Hub, Repeater와 케이블 장치인 Cable, Connector와 컴퓨터의 랜 카드와 케이블을 연결하는 장치인 Tranceiver, 네트워크 모니터링과 패킷 분석을 위해 전기 신호를 다른 장비로 복제해주는 TAP이 있다.
전기 신호가 들어오면 이 전기 신호를 재생성해 다른 모든 포트에 전송한다.
UTP 케이블을 사용하면 설치가 용이하지만 간섭에 약하다는 점이 있다. (Direct: 서로 다른 계층의 장치 연결, Cross: 동일 계층 장치 연결)
전기 신호를 모아 알아볼 수 있는 데이터 형태로 처리하는 계층
주소 정보를 정의하고 정확한 주소로 통신이 되도록 직접 연결된 네트워크 장치 간의 데이터 전송을 담당한다.
ARP 프로토콜로 IP 주소를 MAC주소로 변환해, MAC 주소 기반으로 통신한다.
프레이밍(Framing), 흐름 제어, 오류 제어, 접근 제어, 동기화
프레임
2계층에서 전송되는 데이터
프레임의 헤더에는 송신 및 수신 장치의 주소가 포함
트레일러에는 오류 검출을 위한 오류 검출 코드 포함
MAC주소(Media Access Control)
스위치가 프레임을 주고받을 때 사용하는 주소
48bit 의 16 진수로 표현됨
소프트웨어적으로만 주소 변경 가능
NIC (Network Interface Card)
PC나 서버에서 네트워크를 연결해주는 카드나 인터페이스를 지칭한다.
고유 MAC 주소를 가지며 목적지 MAC 주소가 NIC의 MAC 주소와 동일하면 올바르게 도착한 데이터이므로 상위 계층에서 처리할 수 있도록 메모리에 적재한다.
동작 방식은 다음과 같다.
전기 신호를 데이터 형태로 만든다.
목적지 MAC 주소와 출발지 MAC 주소, 네트워크 인터페이스 카드의 MAC 주소를 확인한다.
목적지 MAC 주소와 네트워크 인터페이스가 가진 MAC 주소가 맞으면 데이터를 처리하고, 아니면 데이터를 폐기한다.
스위치
단말의 MAC 주소와 연결된 포트 데이터를 기반으로 통신 시 포트를 적절히 필터링하고 포워딩해준다.
스위치의 적절한 필터링과 포워딩 덕분에 통신이 필요한 포트만 사용하고 네트워크 전체에 불필요한 처리가 감소하여 이더넷 기반 네트워크가 급증하는 계기가 되었다.
호스트 간의 통신을 담당하여 IP 주소를 기반으로 패킷을 전달하는 계층
패킷: 네트워크 계층의 데이터
네트워크 간의 최적의 경로를 결정한다.
LAN 구간(라우터와 PC 의 연결구간)과 WAN 구간(라우터와 라우터 연결 구간) 연결
라우터
IP 주소를 사용해 최적의 경로를 찾아 패킷을 전송하는 역할을 하는 장비이다.
최적의 경로는 라우터 프로토콜에 따라 정해진다.
라우터는 LAN 구간의 통신을 위해 MAC 주소를 보유한다.
논리적 링크와 물리적 링크를 함께 사용한다.
네트워크 계층의 프로토콜
IP: v4, v6 보유
ARP: IP 주소를 기반으로 MAC 주소 찾을 때 사용
RARP: MAC 주소 기반으로 IP 주소 찾을 때 사용
애플리케이션 간 통신을 담당하여 실제 데이터가 잘 보내지는지 확인하고, 목적지 애플리케이션으로 데이터를 어떤 방식으로 전송할 지 담당한다.
세그먼트: 전송 계층의 데이터 헤더에는 포트/소켓 주소가 포함된다.
종단간 (End to End) 데이터 통신 보장, 흐름 제어와 오류 제어 등을 통해 데이터 통신 보장
지연에 따른 왜곡 및 대역폭 부족 문제 해결
동시에 여러 개의 논리적 연결 지원
사용자 데이터 분할과 재조립을 통해 과부하를 예방
TCP, UDP
로드 밸런서, 방화벽
애플리케이션 구분자인 포트 번호와 패킷의 시퀀스 번호, ACK 번호를 이용해 부하를 분산하거나 보안 정책을 수립해 패킷의 통과/차단 기능을 수행한다.
애플리케이션 간 통신에서 세션을 관리한다.
세션: 데이터가 실질적으로 이동하는 통로
양 끝단의 응용 프로세스의 연결 성립, 연결 유지, 연결 종료를 관리한다.
에러로 중단된 통신에 대한 에러 복구와 재전송도 수행한다.
메시지: 세션 계층 데이터
RPC
애플리케이션 간 통신에서 메시지 포맷 관리
데이터를 어떻게 표현하는지 정의한다.
응용 계층에서 생성된 데이터를 다른 컴퓨터가 이해할 수 있는 형태로 변환해준다.
MIME 인코딩이나 암호화, 데이터 압축, 코드 변환 등이 수행될 수 있다.
응용 프로그램과 통신 프로그램 사이를 연결
애플리케이션 목적에 맞는 통신 방법 제공
HTTP, DNS, SMTP, FTP가 대표적인 프로토콜이다.
어떻게 데이터가 오고가는지는 관여하지 않는다.
데이터를 전송하고자 할 때 실제 메시지에 7계층부터 1계층까지 헤더를 점차 붙인다. (캡슐화)
라우터에서는 전송받은 데이터를 데이터 링크 레이어를 거쳐 네트워크 레이어까지 올려 목적지의 IP 주소를 확인한 후 다시 물리 계층까지 내려준다.
목적지까지 데이터가 전송되었으면, 각 계층의 헤더를 분리해내면서 레이어 계층을 올린다.(역캡슐화) 최종적으로 목적지 애플리케이션은 순수한 메시지만 받게 된다.