- 모듈화
복잡하고 큰 시스템의 기능을 특정 단위의 모듈로 나누어 설계한 것
각 모듈은 독립적인 기능 수행
- 장점
시스템 구조가 단순해져서 전체 시스템 이하하기 쉬움
고장이나 업그레이드 등의 상황에 손 쉽게 대처
- 계층 구조
모듈 구조에서 특정 모듈이 다른 모듈에 서비스를 제공하는 계층 구조 이룸
상위 계층이 하위 계층에 특정 서비스를 요청하는 방식으로 동작함
- 장점
전체 시스템을 이해하기 쉽고, 시스템 설계와 구현이 편리함
모듈의 독립성은 전체 시스템의 구조 단순하게 만들어줌
전송 매체 양단에 있는 호스트가 수행하는 프로토콜이 좌우 대칭 구조라 동일 계층 사이의 프로토콜 단순화 할 수 있음
각 계층의 수정 시 전체 시스템 재작성할 필요 없이 해당 계층의 모듈만 교체하면 됨
- 프로토콜 설계 시 고려 사항
- 주소의 표현
여러 호스트가 연결된 환경에서 특정 호스트끼리 통신 시 상대방을 구분할 수 있는 개념 필요함
- 주소
시스템을 구분하여 지칭하기 위해 이름을 부여하는 것
- 일대다 통신
다수의 호스트를 묶어 하나의 그룹 주소로 표기하고 통신하는 방법
- 브로드 캐스팅
네트워크에 연결된 모든 호스트에 데이터를 전송할 수 있는 표기 방식
- 멀티 캐스팅
특정 사용자를 그룹으로 묶어서 지칭하는 표기 방식
- 오류 제어
데이터 송수긴 과정에서 오류 발생 시 해결하는 기능 필요함
해결하는 일반적인 방법은 송신 호스트가 원래 데이터를 재전송 하는 것
- 데이터 분실 오류
데이터가 수신 호스트에 도착하지 못 하는 오류
송신 호스트가 오류를 감지하는 방법 사용
- 데이터 변형 오류
데이터의 내용이 변경되어 도착하는 오류
- 흐름 제어
송신 호스트의 전송 속도를 조절하는 기능 필요
수신 호스트의 버퍼 처리 속도보다 송신 호스트가 데이터를 전송하는 속도가 빠르면 논리적인 데이터 분실 오류가 발생할 수 있음
- 데이터 전달 방식
데이터가 어떻게 전달되느냐 고려 필요
- 단방향
데이터를 한쪽 방향으로 전송하는 방식
- 양방향
양쪽에서 데이터를 동시에 전송하는 것
- 반이중
데이터가 양뱡향으로 전송되지만 특정 시점에는 한쪽 방향으로만 전송할 수 있는 방식
- 서비스 프리미티브
프로토콜은 계층 구조로 이루어져 있고 하위 계층이 상위 계층에 서비스를 제공하는 방식이 프리미티브 형태로 구현되는 것
- 연결형 서비스
서비스를 이용하는 절차를 거쳐 서비스를 사용하는 것
프리미티브를 전부 지원해야 함
- 프리미티브 종류
- CONNECT
연결 설정
- DATA
데이터 전송
- DISCONNECT
연결 해제
- 서비스 프리미티브 기능
각 프리미티브가 아래 기능 포함하도록 설계해야 함
클라이언트가 서버에 전달하는 요청은 Request, Indication 으로 구현됨
서버의 응답은 Response 와 Confirm 으로 구현됨
- Request
클라이언트가 서버에 서비스 요청
- Indication
서버에 서비스 요청이 도착했음을 통지
- Response
서버가 클라이언트에 서비스 응답 회신
- Confirm
클라이언트에 응답이 도착했음을 통지
- 비연결형 서비스
연결을 설정하고 해제하는 단계가 필요없는 서비스
데이터는 독립적인 경로 선택 과정에 의해 전달되므로 도착하는 순서가 보낸 순서와 일치하지 않을 수 있음