네트워크의 기능
컴퓨터 네트워크는 외형상 호스트 시스템과 전송 매체로 구분된다. 이런 물리적인 형태와는 별도로, 그들이 수행하는 내부 기능을 기초로 다양한 구조로 구분할 수 있다. 특히 호스트가 제공하는 서비스를 사용하는 방식에 따라서 계층 모델로 나눠 설명할 수 있다.
계층 모델
특징이 다른 여러 호스트들을 서로 연결해 통신하려면 연결 방식을 표준화해야 한다 -> ISO에서 OSI 7계층 모델 제안
OSI 7계층 모델 소개
OSI 7계층 모델
일반사용자 -> 맨 위에 있는 응용 계층을 통해 데이터의 송수신을 요청, 이 요청은 하위 계층으로 순차적으로 전달되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에 전송. 요청이 각 계층으로 하달되는 과정에서 계층별로 담당하는 기능을 수행해 데이터에 안전하게 전달.
데이터를 수신한 호스트에서는 송신 호스트와 반대 과정으로 처리. 즉 물리 계층으로 들어온 데이터는 순차적인 상향 전달 과정을 거쳐 응용 계층으로 올라간다. 그리고 처리가 완료된 결과를 회신할 때는 반대 과정을 순차적으로 밟아서 송신 호스트로 되돌아 간다.
따라서 데이터 송수신의 최종 주체는 호스트 양쪽에 위치한 응용 계층이며, 하부의 계층은 데이터 전송에 필요한 기능만 나누어 처리.
물리 계층
네트워크에서 호스트가 데이터를 전송하려면 반드시 전송 매체로 연결되어 있어야 한다. 물리계층은 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성을 다룬다.
데이터 링크 계층
물리 계층으로 데이터를 전송하는 과정에서 잡음 같은 여러 외부 요인에 의해 물리적 오류가 발생 가능.
데이터링크 계층은 물리적 전송 오류를 감지하는 기능을 제공해 송수신 호스트가 오류를 인지할 수 있게 해준다.
발생 가능한 물리적 오류의 종류 -> 데이터가 도착하지 못하는 데이터 분실과 내용이 꺠져서 도착하는 데이터 변형이 있다. 일반적으로 컴퓨터 네트워크에서의 오류 제어는 송신자가 원 데이터를 재전송하는 방법으로 처리한다.
네트워크 계층
송신 호스트가 전송한 데이터가 수신 호스트까지 도착하려면 여러 중개 시스템을 거친다. 이 과정에서 데이터가 올바른 경로를 선택할 수 있도록 지원하는 게층이 네트워크 계층(Network Layer)이다. 중개 시스템의 기능은 일반적으로 라우터가 수행한다. 네트워크 부하가 증가하면 특정 지역에 혼잡이 발생할 수 있는데, 이것도 데이터의 전송 경로와 관계가 있으므로 네트워크 계층이 제어한다.
전송 계층
컴퓨터 네트워크에서 데이터를 교환하는 최종 주체는 호스트 시스템이 아니고, 호스트에서 실행되는 프로세스다. 전송 계층은 송신 프로세스와 수신 프로세스 간의 연결 기능을 제공하기 떄문에 프로세스 사이의 안전한 데이터 전송을 지원한다. 계층 4까지의 기능은 운영체제에서 시스템 콜 형태로 상위 계층에 제공하며, 계층 5~7 기능은 사용자 프로그램으로 작성된다.
세션 계층
세션 계층은 전송 계층의 연결과 유사한 세션 연결을 지원하지만 이보다 더 상위의 논리적 연결이다. 즉, 응용 환경에서의 사용자 간의 대화개념의 연결로 사용되기 때문에 전송 계층의 연결과는 구분된다.
표현 계층
표현 계층은 전송되는 데이터의 의미(semantic)를 잃지 않도록 올바르게 표현하는 방법(Syntax)을 다룬다. 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있도록 해주는 역할을 한다. 표현 계층의 주요 기능은 압축과 암호화다. 동영상과 같은 대용량의 멀티미디어 데이터를 압축해 전송 데이터의 양을 줄일 수 있다. 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하는 기능인데, 전자상거래가 증가하면서 중요성이 커지고 있다.
응용 계층
사용자의 다양한 네트워크 응용 환경을 지원한다. 기능은 한 분야에 한정되지 않고 매우 광범위하다.
프로토콜과 인터페이스
- 네트워크 사용자가 통신한다 -> 데이터를 주고받을 수 있음을 의미.
- 최종 사용자가 데이터를 보내고 받으려면 양쪽 호스트에서 실행되는 OSI 7계층의 모듈이 유기적으로 연동이 되어야 한다.
- 호스트끼리 통신하는 과정에서는 각 계층의 모듈이 상대 호스트의 동일 계층과 개별적으로 논리적 통신을 수행해야 한다.
-
ex) 한 호스트의 계층 n 모듈은 상대 호스트의 계층 n 모듈과 통신한다. 각 계층은 정해진 방식으로 통신하는데, 이 과정에서 필요한 규칙을 프로토콜이라 한다.
- 호스트 계층 사이에는 이터페이스라는 규칙이 존재, 하위 계층이 상위 계층에 제공하는 인터페이스를 서비스라고 부른다.
이 원리 -> 7개 계층에 모두 적용. 상대 호스트에 데이터를 실제로 전송하는 것은 맨 아래의 물리 계층이다. 물리 계층에 위치한 계층 프로토콜은 정해진 기능을 수행하기 위한 논리적인 통신을 하는 것이다.
인터넷 계층 구조
- FTP 프로그램을 이용하는 경우를 예로 들어 계층 구조를 설명.
- 인터넷에서는 IP가 네트워크 계층의 기능을 수행. TCP와 UDP가 전송 계층의 기능을 수행.
- 전송 계층 이하의 기능은 호스트의 운영체제에서 구현
- FTP, 텔넷, 전자 메일 같은 응용프로그램은 사용자 프로그램 환경에서 계층 5~7이 함께 구현
양쪽 호스트에는 동일한 기능을 하는 프로토콜 스택이 각각 존재. 그림에 표시되지 않았지만 호스트 사이에는 중개 기능을 수행하는 라우터가 존재. 인터넷에서는 IP 프로토콜이 중개 기능을 하므로 라우터에는 계층 3까지의 기능이 구현되어 있다.
FTP 클라이언트가 FTP 서버에 데이터를 전송하려면 먼저 하위의 TCP에 데이터를 보내야 한다. TCP로 보내진 데이터는 IP 프로토콜과 LAN 카드를 거쳐서 FTP 서버가 위치하는 호스트에 전달된다. 서버 호스트에 도착한 데이터는 송신 순서의 반대인 LAN 카드, IP, TCP를 거쳐서 FTP 서버 프로그램에 도착한다.
인터네트워킹
네트워크와 네트워크의 연결을 인터네트워킹이라 한다. 연결하는 네트워크 수가 증가할수록 복잡도가 커진다. 인터넷은 IP 프로토콜을 지원하는 전 세계의 모든 네트워크가 연결된 시스템을 의미하며, 라우터라는 중개 장비를 사용해 네트워크를 연결한다.
네트워크의 연결
서로 독립적으로 운영되는 두 네트워크가 연동되어 정보를 교환하려면, 이를 적절히 연결하여 데이터를 중개할 수 있는 인터네트워킹 시스템이 필요. 여기서** 네트워크를 연동한다는 의미는 물리적인 연결뿐만 아니라, 데이터 중개에 필요한 상위 통신 프로토콜을 모두 지원함**을 뜻한다.
(프로토콜 스택 : 계층 구조로 이루어진 통신 프로토콜의 집합)
인터네트워킹 시스템에 의해 연결된 두 네트워크는 물리적으로 같은 종류일 필요는 없다. 상위 계층 프로토콜이 지원하는 논리적 기능이 달라도 된다. 하지만 인터네트워킹 시스템은 양쪽 네트워크에 대한 서로 다른 물리적 ・ 기능적 인터페이스를 모두 지원해야 한다. 또한 이 과정에서 데이터 표현 방식을 포함해 프로토콜이 다르면 필요한 변환 작업을 수행해야 한다.
게이트웨이
인터네트워킹 기능을 수행하는 시스템을 일반적으로 게이트웨이라 부른다. 게이트웨이는 기능에 따라 종류가 다양하지만 리피터, 브리지, 라우터 등이 가장 일반적
리피터
물리 계층을 지원. 물리적 신호는 전송 거리가 멀면 감쇄되기 때문에 이를 보완해주어야 한다. 리피터는 한쪽에서 입력된 신호를 물리적을 단순히 증폭하여 다른 쪽으로 중개하는 역할을 한다.
브리지
브리지는 리피터 기능에 데이터 링크 계층이 추가된 게이트웨이다.
라우터
라우터는 물리계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원한다. 네트워크 계층은 경로 선택 기능을 제공해야 함으로 임의의 네트워크에서 들어온 데이터를 어느 네트워크로 전달할지 판단할 수 있어야 한다. 이를 지원하기 위하여 라우터는 자신과 연결된 네트워크와 호스트 정보를 유지하고 관리함으로써, 어떤 경로를 이용할 수 있고, 어떤 경로를 이용해야 빠르게 전송할 수 있는지를 판단한다. 이런 판단을 위한 정보는 일반적으로 라우팅 테이블에 보관한다.
프로토콜
프로토콜은 통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙. OSI 7계층 모델에서는 각 계층에서 수행되는 프로토콜이 서로 독립적이라고 간주 따라서 계층 1에는 계층 1끼리 통신할 수 있는 프로토콜이 존재하고, 계층 2에는 계층 2끼리 통신할 수있는 프로토콜이 존재.
ex) 휴대폰으로 상대방과 통화하는 순서 규칙과 비슷
데이터 단위
네트워크 프로토콜을 사용해 데이터를 교환할 때는 먼저 데이터를 특정 형태로 규격화하는 작업이 필요하다.
OSI 7계층의 모델의 각 계층에서 규격화된 데이터는 다음과 같이 고유 명칭이있다. 계층에 상관없이 사용할 때는 통칭하여 PDU라고 부른다.
- APDU : 응용 계층에서 사용하는 데이터의 단위
- PPDU : 표현 계층에서 사용하는 데이터의 단위
- SPDU : 세션 계층에서 사용하는 데이터의 단위
- TPDU : 전송 계층에서 사용하는 데이터의 단위. 인터넷에서 사용하는 전송 계층인 TCP에서는 세그먼트라고 부르고 , UDP에서는 데이터그램이라고 부른다.
- NPDU : 네트워크 계층에서 사용하는 데이터의 단위. 보통 패킷이라고 부른다.
- DPDU : 데이터 링크 계층에서 사용하는 데이터의 단위. 보통 프레임이라 부른다.
네트워크 주소의 표현
- 유일성
- 확장성
- 편리성
- 정보의 함축
주소와 이름
참고자료