안녕하세요.
방프개입니다.
오늘은 Chapter 02. 네트워크 모델에 관해 적어보려고 합니다.
책에선 전화 시스템과 데이터 통신 비교를 많이 했었습니다.
전화 시스템이 데이터 통신을 위한 프로토콜의 동작 원리를 이해하는데 많은 도움이 된다고 하는데요.
예를 들면 데이터 전송 단계인 통화 과정에서는 묵시적인 규칙에 따라 대화를 주고받는 과정이 진행됩니다.
양쪽이 동시에 말할 수 있는 양방향 통신 기능을 지원하나, 실제로 두 사람이 동시에 말하는 경우는 거의 없고,
느낌이나 말의 내용 등에 따라 번갈아가며 대화를 합니다.
또한 상대방이 한 말을 이해하지 못했거나 제대로 듣지 못한 경우에는
다시 묻는 방식을 통해 오류를 바로잡기도 합니다.
네트워크에서 데이터 전송 원리도 이와 비슷하다고 합니다.
인터넷의 동작 원리를 이해하려면 계층 구조로 설계된 OSI 7 계층 모델에 대한 학습이 선행되어야 합니다.
특히, 모듈화 설계 개념의 원리와 상하위 계층의 역할 분담을 통해 각 프로토콜의 역할을 이해해야 합니다.
따라서 오늘은 인터넷의 구조가 7계층 모델의 계층 구조와 어떤 관계가 있는지,
주요 프로토콜인 TCP/IP는 어떻게 구성되어 있는지 살펴보도록 하겠습니다.
01. 계층 구조의 개념
1. 계층적 모듈 구조
1.1 모듈화
> 크고 복잡한 시스템을 기능별로 여러 개의 작고 단순한 모듈로 만들어 시스템 구조를 단순하게 만듦.
> 모듈 사이의 적절한 인터페이스가 필요하다.
1.2 계층 구조
> 상위 모듈이 하위 모듈에게 서비스를 요청
> 하위 모듈은 서비스를 실행하고 그 결과를 상위 모듈에게 통보.
* 모듈화 된 계층 구조의 장점
> 전체 시스템을 이해하기 쉽고, 시스템을 설계하고 구현하기 편리함.
> 모듈 간의 인터페이스가 단순하면 독립적으로 동작하도록 해주고 전체 시스템의 구조를 단순하게 만들어줌.
> 대칭 구조에서는 동일 계층 사이의 인터페이스인 프로토콜은 단순화할 수 있음.
> 특정 모듈의 외부 인터페이스가 변하지 않으면 내부 기능의 변화가 전체 시스템의 동작에 영향을 미치지 않음.
2. 프로토콜 설계 시 고려 사항
1) 주소 표현
> 주소의 활용도를 높이기 위해 구조적 정보를 포함한다.
2) 오류 제어
> 데이터 변형 오류 - 데이터가 깨져서 수신자에게 도착함.
> 데이터 분실 오류 - 데이터가 수신자에게 도착하지 못함.
> 오류제어는 데이터 링크 계층의 주요 기능으로 재전송 방식을 사용한다. 물리적인 오류 외에도
알고리즘의 성격에 의해 오류가 발생하기도 하는데, 이 경우 수신 호스트에서 도착 순서를 바로잡으려면
데이터의 논리적인 순서를 의미하는 순서 번호 기능이 필요하다.
3) 흐름 제어
> 일반적으로 수신 호스트에 데이터가 도착하면 내부 버퍼에 보관했다 처리를 하는데
버퍼에 보관할 공간이 없으면 데이터를 분실하는 경우가 있음. 즉, 수신 호스트의 버퍼 처리 속도보다
송신 호스트가 데이터를 전송하는 속도가 바르면 논리적인 데이터 분실 오류가 발생할 수 있는데
이 경우 송신 호스트의 전송 속도를 조절하는 흐름 제어가 필요하다.
4) 데이터 전달 방식
> 단방향 방식 - 데이터를 한쪽 방향으로만 전송
> 전이중 방식 - 데이터를 양쪽에서 동시에 전송
> 반이중 방식 - 양방향으로 전송할 수 있지만, 특정 시점에서는 한쪽 방향으로만 전송
02. OSI 참조 모델
1. 용어 정의
> 계층 n 프로토콜 - 계층 n 모듈끼리 사용하는 통신 규칙
> 동료 프로세스 - 동일 계층에 위치한 통신 양단 프로세스
> 인터페이스 - 상하위 계층 사이의 접속 방법
> 서비스 - 상위 계층이 하위 계층을 사용하는 방법
2. 중개 기능
3. 계층별 기능
> 물리 계층
- 데이터 전송 속도, 클록 동기화 방법, 물리적 연결 형태 등
> 데이터 링크 계층
- 물리 계층의 물리적 전송 오류 문제를 해결
- 데이터 링크 계층을 이용해 전송되는 데이터를 프레임이라 부른다.
> 네트워크 계층
- 데이터의 전송 경로를 결정
- 전달 경로 선택은 미리 정해지는 정적인(Static) 방식과
네트워크의 현재 부하 상태에 따라 결정되는 동적인(Dynamic) 방식으로 구분
- 네트워크 계층에서는 전송 데이터를 패킷이라 부르며, 중개 과정에서 경로 선택의 기준이 되는 호스트 주소 필요
- 네트워크의 트래픽이 과도하게 증가하는 문제를 조절하는 혼잡 제어 기능 역할
> 전송 계층
- 송신/수신 프로세스를 직접 연결하는 단대단(End-to-End) 통신 기능 제공
- 전송 오류율, 전송 속도 등과 같은 일반 사용자의 서비스 요구 유형에 대한 고려와 흐름 제어 기능 제공
> 세션 계층
- 전송 계층과 유사하나 사용자에게 원격 파일 전송이나 원격 로그인 등과 같은 상위적 연결 개념인 세션 기능 제공
> 표현 계층
- 데이터의 의미(Semantic)와 표현 방법(Syntax)을 처리
- 데이터를 암호화 및 대용량 데이터의 크기를 줄여주는 압축 기능 제공
> 응용 계층
- FTP, Telnet, 전자 메일 등 인터넷 서비스 제공
03. TCP/IP 모델
* 인터넷은 데이터의 중개 기능을 담당하는 네트워크 계층으로 IP(Internet Protocol) 프로토콜을 사용하는 네트워크.
따라서 인터넷에 연결하고자 하는 호스트는 반드시 IP 프로토콜을 지원해야 하며,
전송 계층은 TCP(Transmission Control Protocol)나 UDP(User Datagram Protocol)를 사용한다.
현재 인터넷에서 주로 사용하는 IP 프로토콜은 버전 4(IPv4)이다.
1. 구현 환경
1.1 시스템 공간
> TCP와 UDP는 시스템 운영체제인 커널(Kernel) 내부에 구현되므로 일반 사용자가 직접 이용할 수 없음.
대신 소켓(Socket) 인터페이스라는 전송 계층의 프리미티브를 이용해야 하는데
소켓은 운영체제에서 시스템 콜 기능으로 구현되므로 사용자 프로그램에서 이를 호출하는 방식으로 사용.
> TCP는 연결형 서비스를 제공하고, UDP는 비연결형 서비스를 제공.
> 프로그램에서 소켓을 사용할 때는 소켓마다 부여되는 고유 주소인 포트 번호를 관리해야 함.
2. 프로토콜
2.1 TCP/IP 계층 구조
> TCP
- 송신지에서 수신지까지 문자 스트림을 전송하는데, 서로 대화하는 것을 허용하는 신뢰성 있는 프로토콜
> UDP
- 흐름 제어 및 오류 검출 등의 기능이 없어 패킷을 빠르게 전송할 수 있는 비신뢰성 프로토콜
> ARP(Address Resolution Protocol)
- 인터넷에서 통신하려면 자신의 로컬 IP 주소와 MAC 주소, 원격 호스트의 IP 주소와 MAC 주소가 필요함
ARP는 원격 호스트의 주소 변환 기능을 제공하는데, 사용자가 입력한 IP 주소를 이용해 MAC 주소를 제공.
> RARP(Reverse Address Resolution Protocol)
- 로컬 호스트의 주소 변환 기능을 제공하는데, LAN 카드에 보관된 MAC 주소를 이용해 IP 주소를 제공.
> ICMP(Internet Control Message Protocol)
- 사용자 데이터의 전송 과정에서 오류가 발생해 생성된 오류 메시지를 전송하는 기능 제공.
이상으로 네트워크 모델에 관해 정리해봤습니다.
나름 정리는 했지만 추가적인 정보가 필요한 부분도 있을 것으로 생각돼
여러번 읽어보고 보충할 수 있는 건 보충해보도록 하겠습니다.
감사합니다.
'IT > 네트워크' 카테고리의 다른 글
[네트워크 개념정리] 01. 네트워크의 기초 용어와 기능 (0) | 2020.09.09 |
---|