목차
네트워크의 기능
네트워크는 다수의 시스템을 전송 매체로 연결해 구성한 시스템들의 집합체임.
소규모의 네트워크들은 전송 매체로 연결되어 더 큰 네트워크로 확장 가능.
컴퓨터 네트워크는 외형상 호스트 시스템과 전송 매체로 구분.
하지만 이런 물리적인 형태와는 별도로, 그들이 수행하는 내부 기능을 기초로 하여 다양한 구조로 세분 가능.
특히, 호스트가 제공하는 복잡한 네트워크 기능을 연관된 그룹으로 묶어 계층 모델로 설명할 수 있다.
계층 모델
특징이 다른 여러 호스트를 서로 연결해서 통신하려면 연결 방식을 표준화해야 함.
국제 표준화 단체인 ISO International Standard Organization 에서는 OSI Open System Interconnection 7계층 모델을 제안하여, 네트워크에 연결된 시스템이 갖추어야 할 기능을 상세히 정의하고 있음.
OSI 7계층 모델 소개
OSI 7계층 모델 OSI 7 Layer Model 에 따르면, 네트워크에 연결된 호스트들은 7개 계층으로 모듈화된 통신 기능을 갖추어야 한다.
일반 사용자는 OSI 7계층 맨 위에 있는 응용 계층을 통해 데이터의 송수신을 요청하며, 이 요청은 하위 계층에 순차적으로 전달되어 맨 아래에 있는 물리 계층을 통해 상대 호스트에 전송된다.
그리고 요청이 각 계층으로 하달되는 과정에서 계층별로 자신이 담당하는 기능을 수행하여 데이터를 안전하게 전달해준다.
데이터를 수신하는 호스트에서는 송신 호스트와는 반대 방향으로 처리가 이루어진다.
즉, 물리 계층으로 들어온 데이터는 순차적인 상향 전달 과정을 거쳐 응용 계층으로 올라간다.
수신 호스트에서 처리가 완료된 결과를 회신할 때는 반대 과정을 순차적으로 밟아서 송신 호스트로 되돌아간다
- 데이터를 송수신하는 최종 주체: 송수신 호스트 양쪽에 위치한 응용 계층
- 하부의 계층: 들은 응용 계층을 지원하기 위하여 데이터 전송에 필요한 기능을 나누어 처리함.
- 이와 같은 원리는 모든 계층에 대하여 상대적으로 적용됨.
[OSI 7 계층을 나눈 이유]
- 통신이 일어나는 과정이 단계별로 파악할 수 있기 때문
- 흐름을 한눈에 알아보기 쉬움
- 사람들이 이해하기 쉬움
- 7단계 중 특정한 곳에 이상이 생기면 다른 단계의 장비 및 소프트웨어를 건들이지 않고도 이상이 생긴 단계만 고칠 수 있음
OSI 7계층 모델의 계층별 기능
OSI 7계층 모델의 각 계층은 독립적인 고유 기능을 수행하며, 하위 계층이 바로 위 계층에 서비스를 제공하는 형식으로 동작한다.
네트워크에 연결된 컴퓨터들이 데이터를 주고받으려면 서로 연동할 수 있게 표준화된 인터페 이스를 지원해야 한다. 일반적으로 컴퓨터 네트워크에서는 계층 구조로 모듈화된 프로토콜 스택 Stack 을 사용한다.
국제 표준화 기구인 ISO가 확립한 OSI Open Systems Interconnection 7계층 모델은 개방 Open 화된 데이터 통신 환경에 적합한 계층적 구현 모델의 표준이다.
아래 그림은 ISO International Standard Organization 에서 제시한 OSI 7계층 모델 OSI 7 Layer Model 이다.
- 연결된 두 호스트가 각각 7개 계층으로 구성된 모듈을 수행함으로써 데이터 송수신이 가능.
- 전송 데이터는 송신 호스트의 응용 계층에서 시작해 하위 계층으로 순차적으로 전달 되어, 최종적으로 물리 계층에서 수신 호스트에 전달됨.
- 수신 호스트에서는 데이터를 상위 계층으로 순차적으로 이동시켜 응용 계층까지 보내줌.
- 데이터가 하위 계층으로 내려갈 때는 각 계층의 프로토콜에서 정의한 헤더 정보가 추가됨.
- 물리 계층을 제외한 모든 계층에서 헤더 정보가 추가되고, 데이터를 수신하는 호스트에서는 반대로 상위 계층으로 올라가며 순차적으로 헤더 정보를 제거하고 해석함
[물리 계층: Physical Layer]
- 네트워크에서 호스트들이 데이터를 전송하려면 반드시 전송 매체로 연결되어 있어야 한다.
- 호스트를 전송 매체와 연결하기 위한 인터페이스 규칙과 전송 매체의 특성을 다룸.
[데이터 링크 계층: Data Link Layer]
- 물리 계층으로 데이터를 전송하는 과정에서는 잡음 Noise 등과 같은 여러 외부 요인에 의하여 물리적인 오류가 발생할 수 있음.
- 데이터 링크 계층 은 물리적 전송 오류를 감지 Sense 하는 기능을 제공 ➡️ 송수신 호스트가 오류를 인지할 수 있도록 해줌.
- 대표적인 물리적 오류로는 데이터가 도착하지 못하는 데이터 분실과 내용이 깨져서 도착하는 데이터 변형이 있음.
- 일반적으로 컴퓨터 네트워크에서 오류 제어 Error Control 는 송신자가 원래의 데이터를 재전송 Retransmission 하는 방식으로 처리.
[네트워크 계층: Network Layer]
- 송신 호스트가 전송한 데이터가 수신 호스트까지 안전하게 도착하려면 여러 개의 중개 시스템을 거쳐야 함.
➡️ 이 과정에서 데이터가 올바른 경로를 선택할 수 있도록 지원해줌 - 중개 시스템의 기능은 일반적으로 라우터 Router 가 수행.
- 네트워크 부하가 증가하면 특정 지역에 혼잡 Congestion 이 발생할 수 있는데, 혼잡 제어 Congestion Control 도 데이터의 전송 경로와 관계되므로 네트워크 계층이 담당함.
[전송 계층: Transport Layer]
- 컴퓨터 네트워크에서 데이터를 교환하는 최종 주체는 호스트 시스템이 아니고, 호스트 내부에서 실행되는 네트워크 프로세스임.
- 전송 계층은 송신 프로세스와 수신 프로세스 간의 연결 Connection 기능을 제공하기 때문에 프로세스 사이의 안전한 데이터 전송을 지원함.
- 전송 계층은 데이터가 전송되는 최종적인 경로상의 양 끝단 사이의 연결이 완성되는 곳임.
- 일반적으로 계층 4까지의 기능은 운영체제에서 시스템 콜 System Call 형태로 상위 계층에 제공하며, 계층 5~7의 기능은 사용자 프로그램으로 작성됨.
[세션 계층: Session Layer]
- 세션 계층은 전송 계층에서 제공하는 연결의 개념과 유사한 세션 연결을 지원하지만, 이보다는 더 상위의 논리적 연결임.
- 즉, 응용 환경에서 사용자 간의 대화 Dialog 개념의 연결로 사용되기 때문에 전송 계층의 연결과 구분된다.
[표현 계층: Presentation Layer]
- 전송되는 데이터의 의미 Semantic 를 잃지 않도록 올바르게 표현 Syntax 하는 방법을 다룸.
- 정보를 교환하는 시스템이 표준화된 방법으로 데이터를 인식할 수 있게 해줌.
- 데이터의 표현이라는 본래의 기능에 더해, 현재의 표현 계층은 압축과 암호화라는 기능도 중요하게 다루고 있음.
➡️ 동영상과 같은 대용량의 멀티미디어 데이터를 압축 Compression 하면 전송 데이터의 양을 줄일 수 있음.
➡️ 암호화는 외부의 침입자로부터 데이터를 안전하게 보호하는 기능인데, 인터넷을 통한 개인 정보의 유통과 상거래가 증가 하면서 중요성이 커지고 있음
[응용 계층: Application Layer]
- 사용자를 위한 다양한 네트워크 응용 환경을 지원함
- 그 기능은 특정 분야에 한정되지 않고 매우 광범위함
프로토콜과 인터페이스
네트워크 사용자가 통신한다는 것은 데이터를 서로 주고받는다는 것을 의미함.
최종 사용자가 데이터를 보내고 받으려면 양쪽 호스트에서 실행되는 OSI 7계층의 모듈이 유기적으로 연동되어야 함.
즉, 호스트끼리 통신하는 과정에서는 각 계층의 모듈이 상대 호스트의 동일 계층과 개별적으로 논리적 통신을 수행해야 함.
➡️ 통신 양단의 한쪽 호스트의 계층 n 모듈은 상대 호스트의 계층 n 모듈과 통신.
이와 같이 각각의 계층은 정해진 방식과 절차에 따라 상대 계층과 통신하는데, 이 과정에서 필요한 규칙을 프로토콜 Protocol 이라 한다.
상하위의 계층 간에는 인터페이스 Interface 라는 규칙이 존재하고, 하위 계층이 상위 계층에 제공하는 인터페이스를 특별히 서비스 Service 라 부름.
인터넷 계층 구조
FTP 프로그램을 이용하는 경우를 예로 들어 계층 구조를 설명하고 있다.
- 인터넷에서는 IP(Internet Protocol) 가 네트워크 계층(경로 설정)의 기능을 수행
- TCP(Transmission Control Protocol) 와 UDP(User Datagram Protocol) 가 전송 계층의 기능을 수행
- 전송 계층 이하의 기능들은 호스트의 운영체제 내부에서 구현되며 FTP, 텔넷, 전자 메일 등과 같은 응용 프로그램은 사용자 프로그램 환경에서 계층 5~7이 합쳐져 구현됨
위에 그림과 같이 양쪽 호스트에는 동일한 기능을 수행하는 프로토콜 스택 Stack 이 각각 존재함.
➡️ 프로토콜 스택은 계층 구조로 이루어진 통신 프로토콜의 집합임.
➡️ 그림에 표시되진 않았지만 호스트 사이에는 중개 기능을 수행하는 라우터가 존재
➡️ 인터넷에서는 IP 프로토콜이 중개 기능을 수행하므로 라우터에는 계층 3까지의 기능이 구현되어 있다.
1) FTP 클라이언트가 FTP 서버에 데이터를 전송하려면 먼저 하위의 TCP에 데이터를 보내야 한다.
2) TCP로 보내진 데이터는 IP 프로토콜과 LAN 카드를 거쳐서 FTP 서버가 위치하는 호스트의 LAN 카드에 전달된다.
3) 서버 호스트에 도착한 데이터는 송신 순서의 반대인 LAN 카드, IP 프로토콜, TCP 프로토콜을 거쳐서 FTP 서버 프로그램에 도착한다.
인터네트워킹 Internetworking
네트워크와 네트워크의 연결을 의미
연결되는 네트워크 수가 증가할수록 복잡도가 커짐.
- 인터넷: IP 프로토콜을 지원하는 전 세계의 모든 네트워크가 연결된 시스템을 의미
➡️ 라우터라는 중개 장비를 사용해서 네트워크들을 연결함
네트워크의 연결
서로 독립적으로 운영되는 두 네트워크가 연동되어 정보를 교환하려면, 이를 적절히 연결하여 데이터를 중개할 수 있는 인터네트워킹 시스템이 필요함.
➡️ 네트워크가 연동된다는 의미: 물리적인 연결뿐 아니라, 데이터 중개에 필요한 상위의 통신 프로토콜들이 모두 지원됨을 뜻함.
- 인터네트워킹 시스템으로 연결된 두 네트워크는 물리적으로 같은 종류일 필요가 없음
- 상위 계층 프로토콜들이 지원하는 논리적 기능도 다를 수 있음
- 하지만 인터네트워킹 시스템은 양쪽 네트워크에 대하여 물리적이고 논리적인 인터페이스를 모두 지원해야 함 * 즉, 그림과 같이 인터네트워킹 시스템의 왼쪽은 네트워크 1과 연동할 수 있고, 오른쪽은 네트워크 2와 연동할 수 있어야 함
➡️ 또한 이 과정에서 데이터 표현 방식을 포함해 양쪽 네트워크의 프로토콜이 서로 일치하지 않으면 필요한 변환 작업을 수행해야 함
➡️ 이러한 방식으로 인터네트워킹 시스템은 둘 이상의 네트워크를 유기적으로 연동 가능.
게이트웨이 Gateway
인터네트워킹 기능을 수행하는 시스템
게이트웨이는 기능에 따라 종류가 다양하지만 리피터, 브리지, 라우터 등이 가장 일반적인 구분 방식임.
[리피터: Repeater]
- 물리 계층의 기능을 지원
- 물리적 신호는 전송 거리가 멀수록 감쇄되기 때문에 중간에 이를 보완해주어야 함.
- 따라서 리피터는 한쪽에서 입력된 신호를 물리적으로 단순히 증폭하여 다른 쪽으로 중개하는 역할을 함.
[브리지: Bridge]
- 리피터 기능에 데이터 링크 계층의 기능이 추가된 것으로 물리 계층에서 발생한 오류를 해결해준다.
[라우터: Router]
- 물리 계층, 데이터 링크 계층, 네트워크 계층의 기능을 지원.
- 네트워크 계층은 경로 선택 기능을 제공해야 하므로 임의의 네트워크에서 들어온 데이터를 어느 네트워크로 전달할지 판단할 수 있어야 함.
- 이를 위하여 라우터는 자신과 연결된 네트워크와 호스트들의 정보를 유지, 관리함으로써 특정 경로가 이용 가능한지 여부와 다수의 경로 중에서 어느 경로가 빠른 데이터 전송을 지원하는지 판단할 수 있어야 함.
- 네트워크와 호스트에 대한 정보는 일반적으로 라우팅 테이블 Routing Table 에 보관됨.
프로토콜 Protocol
통신 시스템이 데이터를 교환하기 위해 사용하는 통신 규칙.
OSI 7계층 모델에서는 각 계층에서 수행하는 프로토콜이 서로 독립적이라 간주.
➡️ 계층 1에는 계층 1끼리 통신할 수 있는 프로토콜이 존재하고, 계층 2에는 계층 2끼리 통신할 수 있는 프로토콜이 존재.
[프로토콜의 예]
아래는 일반인이 휴대폰으로 통화하는 규칙을 보여주고 있는데, 이러한 순서와 절차 프로토콜임.
- 시간은 위에서 아래로 흐름
- 왼쪽의 발신자가 오른쪽의 수신자에게 통화를 시도
- 연결을 설정할 때는 항상 발신자의 요청에 의하여 시작됨
- 수신자는 미리 연결 대기 상태에 있어야 함
- 연결 설정은 상호 간의 합의 아래 이루어지지 만, 종료는 한쪽의 일방적인 종결 선언으로도 가능.
데이터 단위
네트워크 프로토콜을 사용해 데이터를 교환할 때는 먼저 데이터를 특정 형태로 규격화하는 작업이 필요.
➡️ 예를 들어, 우편물을 보낼 때 정해진 규격 봉투를 사용하는 것과 같은 원리임.
➡️ 규격 봉투에 보내는 사람 주소, 받는 사람 주소 등을 규칙에 따라 기입하는 것처럼 네트 워크에서도 데이터를 프로토콜에 맞춰 묶어줘야 함.
[OSI 7계층 모델의 각 계층에서 규격화된 데이터의 고유 명칭]
계층에 상관없이 사용할 때는 통칭하여 PDU(Protocol Data Unit)라 부름
- APDU(Application Protocol Data Unit): 응용 계층에서 사용.
- PPDU(Presentation Protocol Data Unit): 표현 계층에서 사용.
- SPDU(Session Protocol Data Unit): 세션 계층에서 사용.
- TPDU(Transport Protocol Data Unit): 전송 계층에서 사용한다.
- 인터넷에서 사용하는 전송 계층 프로토콜인 TCP에서는 세그먼트 Segment 라 부름
- UDP에서는 데이터그램 Datagram 이라 부름
➡️ 데이터그램은 일반적인 상황에서 계층 4 프로토콜의 전송 데이터를 가리킬 때도 사용됨
- NPDU(Network Protocol Data Unit): 네트워크 계층에서 사용, 보통 패킷 Packet 이라 부름
패킷은 원래 네트워크 계층의 IP 프로토콜에서 유래했지만, 요즘은 네트워크 계층의 전송 데이터를 의미함. - DPDU(Data Link Protocol Data Unit): 데이터 링크 계층에서 사용, 보통 프레임 Frame 이라 부름.