계층 구조의 개념
모듈화
- 복잡한 시스템을 기능별로 모듈화하면 시스템 구조가 단순해짐
계층 구조
- 프로토콜을 계층적으로 모듈화
- 특정 모듈이 다른 모듈에 서비스를 제공하는 형식의 계층 구조
- 네트워크에서도 독립적인 고유 기능을 수행하는 모듈들이 상하 위의 계층 구조로 연결되어 동작
계층구조의 장점
- 전체 시스템을 이해하기 쉽고, 설계 및 구현이 용이
- 모듈 간의 표준 인터페이스가 단순하면 모듈의 독립성을 향상시킬 수 있으며, 이는 시스템 구조를 단순화 시키는 장점이 됨
- 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜을 단순화 시킬 수 있음
- 특정 모듈의 외부 인터페이스가 변하지 않으면 내부 기능의 변화가 전체 시스템의 동작에 영향을 미치지 않음
프로토콜 설계시 고려사항
- 주소 표현
- 오류 제어
- 흐름 제어
- 데이터 전달 방식
주소 표현
주소의 역할: indentify
주소의 활용도를 높이기 위하여 구조적 정보를 포함
- 주민번호: yymmdd-abcdefg
- 전화번호: 국가코드-지역코드-번호
1 대 다 통신 지원
- broadcasting: 모든 호스트에게 데이터 전달
- multicasting: 특정 호스트에게 데이터 전달
오류 제어
- 데이터 분실 오류: 데이터가 도착하지 못함 -> 재전송
- 데이터 변형 오류: 데이터가 깨져서 도착 -> 데이터 순서 번호
오류 제어 기능은 통신 프로토콜의 가장 기본적인 기능
오류가 발생했는지 어떻게 아는가? -> ack
흐름 제어
- 수신 호스트의 버퍼 처리 속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 논리적인 데이터 분실 오류가 발생할 수 있음
- 따라서 송신 호스트의 전송 속도를 조절하는 흐름 제어 기능이 필요
데이터 전달 방식
- 단방향: 데이터를 한쪽 방향으로만 전송
- 전이중: 데이터를 양쪽에서 동시에 전송
- 반이중: 양방향으로 전송할 수 있지만, 특정 시점에서는 한쪽 방향으로만 전송
기타 고려사항
서비스 프리미티브
계층 구조 프로토콜
프리미티브
- 상위 계층이 하위 계층에게 명령할 수 있는 최소 단위 동작
데이터 전송 방식
- 연결형 (ex) 전화)
- 비연결형 (ex) 우편)
서비스 프리미티브
- 하위 계층이 상위 계층에게 제공하는 서비스 단위
- 상위 계층이 하위 계층 서비스를 사용하는 정형화된 방법
연결형 서비스 프리미티브 종류
서비스 프리미티브의 기능
- Request
- Indication
- Response
- Confirm
OSI 참조 모델
OSI 7계층 모델
- ISO가 확립한 컴퓨터 네트워크에 대한 계층적 구현 모델
- 계층 구조로 모듈화된 프로토콜 스택
계층 n 프로토콜
동료 프로세스
인터페이스
서비스
헤더
헤더 정보
- 송신 호스트: 데이터가 상위 계층에서 하위 계층으로 갈 수록 헤더 추가
- 수신 호스트: 데이터가 하위 계층에서 상위 계층으로 갈 수록 헤더 제거
중개 기능
- 데이터가 목적지까지 올바르게 전달되도록 경로 배정
- 라우팅 = 경로 배정 기능
- 라우터 = 중개 노드: 헤더 정보를 해석하고 변환
계층별 기능
물리 계층
- 전송 매체의 물리적 인터페이스에 관한 사항 기술
- 데이터 전송 속도, 송수신 호스트 사이의 클록 동기화 방법, 물리적 연결 형태 등
데이터 링크 계층
- 데이터의 물리적 전송 오류를 해결
- 송수신 호스트의 MAC 주소 사용
- 프레임: 전송 데이터의 명칭
네트워크 계층
- 송신 호스트가 전송한 데이터가 어떤 경로를 통해 수신 호스트에 전달되는지 결정하는 라우팅 문제를 처리
- 호스트 구분을 위한 주소 개념 필요 (ex) IP주소)
- 패킷: 전송 데이터의 명칭
- 혼잡 제어: 데이터 전송 경로 선택에 따라 네트워크 혼잡에 영향
전송 계층
- 송신 프로세스와 수신 프로세스를 직접 연결하는 단대단 통신 기능 제공
- 통신 당사자인 프로세스 사이의 통신 담당
- 세그먼트 단위 통신
세션 계층
- 상위 연결 개념: 원격 파일 전송, 원격 로그인 등
- 송수신 호스트 사이의 대화 제어를 비롯, 상호 배타적인 동작을 제어하기 위한 토큰 제어, 일시적인 전송 장애를 해결하기 위한 동기 기능 등 제공
표현 계층
- 데이터의 의미와 표현 방법을 처리, 데이터를 코딩하는 문제를 다룸
- 데이터 암호화, 압축
응용 계층
- 최상위, 다양하게 존재하는 응용 환경에서 공통으로 필요한 기능을 다룸
- 대표적인 인터넷 서비스: FTP, Telnet, 전자 메일
TCP/IP 모델
인터넷
- IP Protocol: 네트워크 계층, 중개 기능 담당
- TCP, UDP Protocol: 전송 계층
구현 환경
사용자 공간
- 응용 프로그램으로 구현
- 소켓마다 포트 번호 할당
- 시스템 콜로 접속
시스템 공간
- 소켓 인터페이스 제공
- 운영체제에 구현
- TCP - 연결형 서비스
- UDP - 비연결형 서비스
LAN 카드: 데이터 링크 계층
프로토콜
- TCP/IP: 목적지까지 데이터 전송 담당
- 여러가지 세부 프로토콜 포함
TCP/IP 계층구조
- TCP/UDP: 전송 계층 프로토콜
- IP: 네트워크 계층 프로토콜
- ARP/RARP: 주소 찾기
- ICMP: 오류 해결
ARP (Address Resolution Protocol)
RARP (Reverse ARP)
ICMP (Internet Control Message Protocol)
- 오류 메시지를 전송하는 프로토콜
- IP 프로토콜에 캡슐화되어 전송됨