네트워크 모델
계층적 모듈 구조
- 모듈화
- 크고 복잡한 시스템을 기능별로 여러 개의 작고 단순한 모듈로 독립화
- 모듈 사이의 적절한 인터페이스가 필요
- 예) C 프로그래밍 언어의 함수 개념
- 계층 구조
- 상위 모듈이 하위 모듈에게 서비스를 요청
- 하위 모듈은 서비스를 실행하고 그 결과를 상위 모듈에 통보
- 장점
- 전체 시스템을 이해하기 쉽고, 설계 및 구현이 용이
- 모듈간의 표준 인터페이스가 단순하면 모듈의 독립성을 향상시킬 수
있으며, 이는 시스템 구조를 단순화시키는 장점이 됨
- 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜을 단순화시킬
수 있음
- 특정 모듈의 외부 인터페이스가 변하지 않으면 내부 기능의 변화가 전체
시스템의 동작에 영향을 미치지 않음
프로토콜 설계 시 고려 사항
- 주소 표현, 오류 제어, 흐름 제어, 데이터 전달 방식
- 주소 표현
- 주소의 역할: 서로를 구분
- 주소의 활용도를 높이기 위하여 구조적 정보를 포함
- 전화번호: 국가 코드 - 지역 코드 - 번호
- 주민번호: yymmdd-abcdefg
- 1:다 통신을 지원
- 브로드캐스팅: 모든 호스트에 데이터 전달
- 멀티캐스팅: 특정 호스트에게 데이터 전달
- 오류 제어
- 데이터 변형 오류: 데이터가 깨져서 수신자에게 도착
- 데이터 분실 오류: 데이터가 수신자에게 도착하지 못함
- 흐름제어
- 수신자의 처리 능력에 비해 너무 빨리 데이터를 전송하지 못하도록 제어
- 수신 버퍼가 부족하면 수신자는 데이터를 분실 처리함
- 데이터 전달 방식
- 단방향: 데이터를 한쪽 방향으로만 전송
- 전이중: 데이터를 양쪽에서 동시에 전송
- 반이중: 양방향으로 전송할 수 있지만, 특정 시점에서는 한쪽 방향으로만 전송
서비스 프리미티브
- 프리미티브의 종류
- 연결형 서비스: 데이터 전송 전에 미리 연결을 설정하는 방식
- CONNECT: 연결 설정
- DATA: 데이터 전송
- DISCONNECT: 연결 해제
- 비연결형 서비스: DATA
- 기능
- Request: 클라이언트가 서버에 서비스 요구
- Indication: 서버가 서비스 요구가 도착했음을 통지
- Response: 서버가 클라이언트에 서비스 응답
- Confirm: 클라이언트에 응답이 도착했음을 통지
- 프리미티브의 동작원리
- CONNECT.Request, DATA.Request, DISCONNECT.Request
- CONNECT.Indication, DATA.Indication, DISCONNECT.Indication
OSI 참조모델
OSI 7 계층 모델
- 용어정의
- 계층n 프로토콜: 계층 n 모듈끼리 사용하는 통신 규칙
- 동료 프로세스: 동일 계층에 위치한 통신 양단 프로세스
- 인터페이스: 상하위 계층 사이의 접속 방법
- 서비스: 상위 계층이 하위 계층을 사용하는 방법
- 헤더 정보
- 송신 호스트: 데이터가 상위 계층에서 하위 계층으로 갈수록 헤더 추가
- 수신 호스트: 데이터가 하위 계층에서 상위 계층으로 갈수록 헤더 제거
계층별 기능
- 물리 계층
- 데이터 전송 속도, 클록 동기화 방법, 물리적 연결 형태등
- 데이터 링크 계층
- 물리 계층의 물리적 전송 오류 문제를 해결
- 프레임: 전송 데이터의 명칭
- 네트워크 계층
- 데이터의 전송 경로를 결정
- 호스트 구분을 위한 주소 개념 필요(예: IP주소)
- 패킷: 전송 데이터의 명칭
- 혼잡 제어: 데이터 전송 경로의 선택에 따라 네트워크 혼잡에 영향을 미침
- 전송 계층
- 송수신 프로세스 사이의 단대단 통신 기능을 지원
- 프로세스 구분을 위한 주소 개념 필요(포트번호)
- 세션 계층
- 송수신자 사이에 상위적 연결 개념인 세션을 지원
- 표현 계층
- 데이터의 의미와 표현 방법을 처리
- 암호화/압축 기능도 처리
- 응용 계층
- 대표적인 인터넷 서비스: FTP, Telnet, 전자메일
TCP/IP 모델
TCP/IP 구현 환경
- 시스템 공간(계층1~4): 운영체제에서 동작
- 사용자 공간(계층5~7): 사용자 프로그램으로 동작
프로토콜
- TCP/UDP: 사용자 데이터를 전송하는 전송 계층 프로토콜
- IP: 사용자 데이터를 전송하는 네트워크 계층 프로토콜
- ARP와 RARP
- ARP: IP 주소를 MAC 주소로 변환
- RARP: MAC 주소를 IP 주소로 변환
- ICMP
- 오류 메세지를 전송하는 프로토콜
- IP 프로토콜에 캡슐화되어 전송됨