Networks Admin

본문 바로가기

Networks Admin

Networks >> Networks Administration
[목차]
제1장 TCP/IP

    1. Protocols

이 책에서 우리는 프로토콜들에 대하여 많은 것을 다룰 것이다. 그러므로 TCP/IP와 NFS의 언급에 앞서 프로토콜에 대한 기본적인 것을 다시한번 확인해보는 것이 의미있을 것이다.

프로토콜은 왜 필요한가?

컴퓨터상의 응용 프로그램들은 프로토콜(protocol)을 통하여 서로 통신을 한다. 마치 사람들사이에 상호 이해를 위한 공식적인 규범이 필요하듯 프로토콜들은 두 관련 프로그램간에 교환되는 메세지에 일정한 형태를 규정하는 규칙의 역할을 하며 교환을 더 효율적으로 만드는 기능을 수행한다. 예를 들어 무전기를 이용한 송수신에서 양쪽의 사용자가 사용하는 'Roger', 'Over'와 보면 'Roger'라는 말을 통하여 상대방이 자신의 메세지를 이해했음을 알 수 있고, 'Over'라는 말을 통하여 송신의 방향의 변화를 알리게 된다.

데이타 처리 시스템에 있어서 데이타의 교환은 이와 비슷하지만 다음에서 살펴볼 바와 같이 더 많은 요구사항을 가진다. 데이타 처리 시스템에서의 통신의 복잡성으로 인하여 하나의 프로토콜에서 모든 필요한 작업을 수행하는 것은 바람직하지 않다. 따라서 일반적으로 서로 다른 기능을 동시에 수행하며, 상호 작용을 통하여 사용자에게 서비스를 제공하는, 다중의 프로토콜의 층 형태로 이루어진 다수의 통신 프로토콜을 제공한다.

OSI 참조 모델(The Open System Interconnection reference model)

각 레벨에서 수행될 기능들을 설정하는데 있어 정규적(각각의 개별적인 특성, 외양에 무관한)인 방법을 제공하기 위해 ISO (International standardization Organization)은 소위 OSI (Open System Interconnection, 1984)이라는 프로토콜 층 모형(구조적 모형)을 제안하였다.

 

그림 1.1 OSI 참조 모델

Application

Presentation

Session

Transport

Network

Link

Physical

 

이 모형(그림.1.1)은 현재 프로토콜의 특성과 기능을 기술하는 뼈 대로 사용되어진다. 게다가 이것은 ISO의 표준적인 프로토콜 층 의 개발과 표준화에 기초를 형성한다. 일반적으로 어떠한 프로토 콜들(TCP/IP도 포함하여)의 모임도 개별적인 프로토콜들과 그들의 기능을 상호 결합하는 그 자신의 구조를 가지고 있다. 비록 다음 부터 우리는 TCP/IP의 구조를 자세히 알아보겠지만 우리는 일반적 이라고 알려지고 인식되어진 ISO의 명명법을 따를 것이다.

계층화는 모든 층은 밑의 층에서 어떻게 서비스가 이루어지는 방법과 상관없이 밑에 있는 층의 서비스를 사용한다는 원칙에 기초를 둔다. 그 위층에 있는 층은 이 층에서 제공하는 특정한 서비스를 제공받게 된다. 이것을 통하여 작업을 여러 층들로 분산시킬 수 있다. OSI 모형에 있어서 프로토콜들의 주된 작업들은 -우리가 고려하는 TCP/IP 구조에 관한한- 다음과 같이 정의되어질 수 있다.

물리층(Physical layer)

이 층은 전송 매체를 통하여 (전송율, 비트 코딩, 연결등에 따라) 서로 다른 물리적 장치간의 데이타 비트의 교환을 제어한다. 대체적으로 이 층의 기능은 윗층인 링크층과 밀접하게 연관이 되어 있다. X.21과 RS232은 물리층의 특성을 명세하는 것이다.

링크층(Link layer)

이 층의 작업은 신뢰할 수 있는 정보의 전송을 보장하고 전송 매체에 연결된 스테이션들에 주소를 지정하는 것이다. HDLC와 CSMA/CD는 이 층의 프로토콜의 예이다(⇨3장).

네트워크층(Network layer)

이 층의 주된 작업은 패킷을 교환 노드에 전송하는 방법등을 통하여 두 스테이션간의 가상 경로를 설립하는 것이다. IP는 이 층에 존재하며 다른 잘 알려진 프로토콜을 X.25이다.

트랜스포트층(Transport layer)

이 층은 통신에 참가하는 개체(서로 다른 호스트상의 응용 프로그램등)간의 메세지 전달에 책임을 진다. 대체로 이 층에서 데이타 흐름을 제어하고 데이타가 훼손되지 않았음을 보장하는 기능을 수행한다. TCP와 UDP은 이 층의 프로토콜이다(⇨3장).

세션층(Session layer)

이 층은 트랜스포트 개체간의 연결에 있어서 메세지의 교환을 제어하는 역할을 한다(예를 들어 전송 방향의 변경, 연결에 대한 인터럽트후 세션의 재시작 등등). 이 층의 잘 알려진 프로토콜은 LU6.2이다. ONC 프로토콜에 관한 장(9장)에서 RPC 프로토콜에 관하여 자세히 알아볼 것이다.

프리젠테이션층(Presentation layer)

컴퓨터 시스템은 때때로 문자, 숫자등의 코드화에 있어서 서로 다른 방법을 사용한다. 이 층에서는 서로 다른 시스템에서 데이타가 교환되어지도록 어떻게 코드화할 것인가를 결정한다. ASN.1과 XDR이 그 예이다.

응용층(Application layer)

이 층에서 수행되는 프로토콜들은 특정 작업 프로그램에 의해 정의되어진다(예를 들어 파일 전송, 데이타베이스 질의 등등).

프로토콜의 기능

통신 양단의 주소 지정, 데이타 흐름의 제어등에 덧붙여 프로토콜의 주된 기능중의 하나가 신뢰할 수 있는 전송 서비스를 제공하는 것이다. 표.1.1은 매우 중요한 프로토콜의 작업들과 그 들의 예를 보여준다.

 

표 1.1 프로토콜의 기능

기 능

구 현

에러 감지(error detection)

checksums, sequence numbers,

acklnowledgements, watchdog timers

에러 제거(error elimination)

retransmission of packets,

correction methods(e.g. Hamming codes)

주소 지정(addressing)

address fields

흐름 제어(flow control)

receive windows, acknowledge


네트워크와 컴퓨터와 데이타 선로는 시스템의 작업 오류나 전송 데이타의 훼손으로부터 완전히 신뢰할 수 있는 것이 아니다. 터미날을 사용하는 종점 사용자건, 하위 프로토콜의 서비스를 이용하는 상위 프로토콜이건 에러가 없는 데이타를 기대하기 때문에 데이타 전송 문제는 우선적으로 확인되어야 하며 가능한 경우 해결되어야한다.

전송 동안의 분실과 같은 데이타의 훼손은 가장 빈번한 문제이다. 큰 규모의 네트워크에 있어서 각 노드가 메세지의 각 부분 패킷들을 네트워크상의 서로 다른 여러 경로로 보내는 경우 메세지는 뒤엉켜 버릴 수도 있다. 여기서 우리는 근원지에 보낸 순서와 같은 순서로 목적지에 보내지는 것을 보장할 수 있어야 한다(sequencing). 또 다른 흔한 문제는 수신 개체가 받아들일 수 있는 능력 이상으로 송신 개체가 빠르게 전송하는 경우이다. 데이타의 손실을 막으려면 필요한 경우 송신 개체의 전송 속도를 늦추어야 한다(flow control). 이러한 처리를 sequecing과 flow control이라 한다. 우리는 TCP/IP를 살펴보면서 이러한 문제를 다루는 방법들에 대해 더 알아보도록 하겠다.

연결위주와 비연결 프로토콜

(Connection-oriented and connectionless protocols)

데이타 통신에 있어서 우리는 소위 연결 위주와 비연결 프로토콜 이라는 2가지의 서로 다른 형태의 프로토콜을 구분한다. 연결 위주의 프로토콜의 경우 통신에 참가하는 개체간의 연결이 설립된다. 반면 비연결 프로토콜의 경우에는 각각의 메세지들이 단순히 전송되기만 한다. 이 두 형태의 프로토콜은 대체로 그들의 효율성에 영향을 주는 신뢰도 보장 기능의 정도에 의해 구분되어진다. 연결 위주의 프로토콜은 매우 많은 신뢰도 보장 기능을 가지고 있고 따라서 비연결 프로토콜에 비해 매우 많은 작업 요구를 가지게 된다. 표.1.2에 두 형태의 특성이 나타나있다.

 

표 1.2 프로토콜의 형태

형 태

작 업 상 태

응 용 범 위

연결 위주

3단계 :

연결 설정 (connection set up),

데이타 전송 (data transfer),

연결 해제 (connection shutdown)

terminal session,

bulk data transfer

비연결

모든 규격을 갖춘 메세지의 전송,

특별한 작업 상태가 없다.

directory services,

databases, transaction systems


연결 위주의 프로토콜에 있어서 메세지의 교환은 전화 통화와 유사하다. 데이타의 교환은 호출된 개체들이 상호간에 인식되어지고 몇가지의 형식 데이타가 교환되어진 후 이루어진다. 연결은 양쪽의 개체가 데이타의 교환이 명백하게 이루어졌음을 합의하는 경우에만 해제되어진다. 따라서 연결 위주의 프로토콜은 가상 회선을 형성한다고 말하기도 한다. UNIX 프로그래머의 관점에서 보면 양방향성의 파이프와 같이 행동하는 가상 회선은 메세지 교환에 있어 비교적 긴 기간동안 연결을 유지하는 것이 중요한 경우, 또는 데이타 전송의 신뢰도가 매우 중요한 경우 사용되어진다. 다수의 가상 연결들은 대체로 하나의 실제 선로상에서 유지된다.

비연결 프로토콜에서 정보의 단위는 전보와 유사한데 이들은 모든 규격을 갖춘 전송 메세지이다. 따라서 이러한 정보의 단위들은 데이타그램(datagram)이라고 불린다. 비연결 프로토콜은 데이타베이스 질의등과 같은 트랜잭션 작업에서 위력을 발휘한다.

흐름 제어와 패킷 복사와 같은 신뢰도 보장 기능들은 비연결 프로토콜들이 가지는 단일 작업 상태와 조화될 수 없기 때문에 때때로 신뢰할 만한 데이타 전송을 보장하는 적절한 수단을 가지고 있는 상위의 새로운 층이 필요하기도 하다. IP에 대하여 TCP를, UDP에 대하여 RPC를 그러한 역할을 수행하는 층으로 예를 들 수 있다.

TCP/IP 구조의 트랜스포트층은 2가지 형태의 프로토콜을 모두 가지고 있는데 TCP는 연결 위주 프로토콜, UDP는 비연결 프로토콜이다(⇨3장). IP는 네트워크층의 비연결 프로토콜이다.

[목차]

Copyright © LEELAB.CO.KR. All rights reserved.