Protocol Concepts

Network Protocols

Network Topology

Wireless Networks

Bibliography

23.1 서론

Digital Communications 디지털 통신

“데이터 통신(data communications)”과 “네트워킹(networking)”이라는 용어는 종종 같은 의미로 사용되지만, 두 용어 모두 데이터를 디지털 형태로 한 장소에서 다른 장소로 전송하는 것을 의미합니다. 여기서 가장 중요한 요소는 데이터의 송신자와 수신자가 동일한 전기 기술을 사용하여 디지털 데이터를 인코딩하고 디코딩하며, 동일한 방식으로 데이터를 형식화(formatting)한다는 점입니다. 이는 정보기술(IT)과 산업 자동화 분야에서 사용되는 모든 네트워크에 공통적으로 적용되는 원칙입니다.

초기의 자동화 네트워크는 네트워크로 간주되지 않았으며, 대신 직렬 “버스(bus)”로 여겨졌습니다. 필드버스(fieldbus)라는 용어는 이러한 개념에서 유래되었습니다. 각 네트워크는 특정 문제를 해결하기 위해 설계되었고, 이후 관련된 다른 문제를 해결하기 위해 확장되었습니다. 공급업체마다 비즈니스 모델이 조금씩 다른 시장 틈새(niche)를 겨냥하고 있었기 때문에, 결과적으로 각 버스는 서로 다른 형태로 발전하게 되었습니다.

산업 자동화 네트워크가 느리고 복잡하지 않았던 시기에는 특별한 구성 요소가 필요하지 않았습니다. 예를 들어, EIA-232, EIA-422/423, EIA-485는 물리 계층(physical layer)에서 자주 사용되었으며, 범용 반도체(commodity semiconductors)로 지원되었습니다. 초기의 프로토콜(protocol), 데이터 형식화(data formatting), 오류 처리(error handling) 절차는 8051, Z80, 6809과 같은 8비트 마이크로프로세서(microprocessor)에서도 충분히 실행할 수 있을 만큼 단순했습니다. 그러나 속도가 빨라지고 프로토콜의 기능이 향상되면서 이러한 네트워크를 구현하기 위해 맞춤형 실리콘(custom silicon)이 필요하게 되었습니다. 맞춤형 실리콘은 비반복성 엔지니어링(NRE: nonrecurring engineering) 비용으로 인해 설계가 고가이며, IT 시장에 비해 생산량이 적기 때문에 제조 비용도 높습니다.

이러한 높은 비용을 줄이기 위한 첫 번째 시도는 산업 자동화 네트워크를 표준화하거나, 다수의 공급업체가 참여하는 컨소시엄(multivendor consortium)을 통해 사양을 공개하여 사실상의 표준(de facto standard)을 수립하는 것이었습니다. 이론적으로는 많은 시스템 공급업체가 동일한 칩셋(chip set)을 사용하면 규모의 경제(economy of scale)를 통해 제조 비용을 절감할 수 있었습니다. 그러나 이러한 시도는 성공하지 못했습니다. 표준이 너무 많았기 때문입니다. 산업 자동화 시장에는 다양한 틈새(niche)가 존재하기 때문에, 모든 요구를 충족할 수 있는 단일 칩셋을 지정하는 것은 불가능했습니다.

23.2 프로토콜 개념

어떤 통신 방식으로 정보를 교환하려면 송신기와 수신기가 사용되는 전기 신호의 종류, 데이터의 구성 방식, 그리고 정보가 성공적으로 오류 없이 전송되도록 보장하는 절차에 대해 공통된 합의가 있어야 합니다. 이러한 합의를 공식화한 것이 통신 프로토콜(communications protocol)입니다. 단순한 지점 간(point-to-point) 직렬 라인 전송도 프로토콜을 따르며, 이러한 사양은 매우 간단하고, 통신을 구현하는 데 사용되는 범용 동기/비동기 수신기/송신기(usart: universal synchronous/asynchronous receiver/transmitter) 칩의 사양에 완전히 포함되어 있을 수 있습니다.

23.2.1 캡슐화와 계층화

네트워크 기능은 일반적으로 통신 스택(communications stack)이라 불리는 계층적 구조로 구성됩니다. 스택의 가장 낮은 계층은 전선, 광학 또는 무선 전송 매체를 통해 데이터를 송수신하는 전기적 메커니즘입니다. 가장 높은 계층은 사용자와의 인터페이스입니다. 중간 계층에는 라우팅(routing), 긴 메시지의 분할(segmentation), 오류 감지 및 복구(error detection and recovery)를 수행하는 데 필요한 계층들이 포함됩니다.

각 계층의 프로토콜은 메시지가 전송 중 형성될 때 추가되는 데이터 필드(data field)에 대한 동작을 정의합니다. 이 데이터 필드는 이전 계층에서 받은 메시지 앞이나 뒤, 또는 양쪽에 배치될 수 있습니다. 따라서 통신 매체에 나타나는 메시지는 원래의 데이터 필드가 모든 활성 프로토콜 계층의 데이터 필드로 캡슐화(encapsulation)된 형태입니다.

수신 시, 수신 측의 해당 계층은 자신의 프로토콜 부속을 제거하고 메시지를 처리합니다. 메시지가 통신 스택의 최상위에 도달하면, 모든 통신 프로토콜이 제거된 원래의 데이터 스트림이 응용 프로그램에 전달됩니다.

23.2.2 주소 지정

네트워크를 통해 전송되는 메시지는 송신 주소(source address)에서 시작되어 수신 주소(destination address)로 전송됩니다. 네트워크의 가장 낮은 계층에서는 모든 주소가 숫자로 표현되므로 하드웨어가 올바른 네트워크 노드가 메시지를 수신하도록 쉽게 확인할 수 있습니다. 상위 계층에서는 네트워크 주소가 사람이 읽을 수 있는 이름, 즉 태그(tag)로 표현되기도 합니다.

숫자 주소와 문자 표현 주소 간의 변환은 네트워크 어딘가에 위치한 네트워크 주소 변환(network address translation) 장치에 의해 수행되거나, 상위 계층 기능으로서 최종 장치에 의해 수행될 수도 있습니다. 그러나 대부분의 네트워크 데이터 전송에서는 송신 주소와 수신 주소가 메시지에 함께 포함되는 것이 일반적입니다.

네트워크 주소에는 브로드캐스트(broadcast) 또는 그룹 주소(group address)라고 불리는 특별한 유형이 있습니다. 이러한 주소로 전송된 메시지는 모든 네트워크 노드 또는 지정된 번호 그룹 내의 노드들이 수신합니다.

23.2.3 비트/바이트 순서

디지털 데이터는 컴퓨터에서 처리될 때, 8개의 이진 비트로 구성된 바이트(byte)부터 시작하여 32비트, 64비트, 또는 128비트까지의 바이트 연결 형태로 구성된 워드(word) 단위로 처리됩니다. 일반적으로 워드가 부호 있는 정수 값을 나타낼 경우, 가장 중요한 비트(most significant bit)는 부호를 나타내는 데 사용됩니다.

직렬 통신 채널을 통해 데이터를 전송하는 방식에는 두 가지가 있습니다:

• 빅 엔디언(big-endian) – 부호 비트 또는 가장 중요한 비트를 먼저 전송

• 리틀 엔디언(little-endian) – 가장 덜 중요한 비트를 먼저 전송

23.2.4 오류 검출 및 수정

통신 네트워크를 통해 이진 데이터를 전송할 때는 항상 오류가 발생할 가능성이 존재합니다. 가장 중요한 요소는 오류를 검출하는 것으로, 이를 통해 오류 복구 메커니즘이 원래 데이터를 복원하거나 수신자가 해당 데이터를 무시할 수 있습니다. 따라서 데이터 통신 네트워크의 신뢰성은 ‘검출되지 않은 오류가 전달되지 않을 확률’로 표현됩니다. 예를 들어, 음성 전송에서는 10억 비트당 하나의 검출되지 않은 오류, 즉 10^-8의 오류율이 허용될 수 있으며, 산업 제어 시스템에서는 10^-20의 오류율이 요구될 수 있습니다.

모든 통신 프로토콜은 오류 검출을 위해 패리티(parity)라는 메커니즘을 사용하며, 이는 통신 프레임에 하나 이상의 추가 비트를 덧붙입니다. 추가되는 비트는 오류 검출 알고리즘의 복잡도에 따라 결정됩니다. 가장 단순한 방식은 데이터 비트 중 값이 1인 비트의 개수가 홀수일 경우, 패리티 비트로 “1”을 삽입하여 전체 1의 개수를 짝수로 만드는 방식입니다. 이를 짝수 패리티(even parity)라고 하며, 같은 상황에서 “0”을 삽입하는 경우는 홀수 패리티(odd parity)라고 합니다. 패리티 오류 검출은 비동기 통신(asynchronous communications)에서 가장 자주 사용되며, 각 바이트에 적용됩니다.

조금 더 효율적인 오류 검출 방식은 체크섬(checksum)입니다. 메시지의 모든 데이터 바이트를 단순히 더하는 대신, 체크섬은 일반적으로 메시지 내 모든 바이트를 배타적 논리합(xor: exclusive OR)하여 종단 중복 검사 바이트(lrc: longitudinal redundancy check)를 생성합니다. 수신자는 동일한 xor 연산을 수행하며, 동일한 lrc 바이트를 얻어야 합니다. 그렇지 않다면 전송된 메시지에 오류가 있었던 것입니다.

더 복잡한 오류 검출 방식은 순환 중복 검사(crc: cyclic redundancy code)입니다. 이는 일반적으로 이더넷(ethernet) 및 대부분의 근거리 통신망(local area network)에서 사용됩니다. 32비트 길이의 crc는 crc-32라고 하며, 이더넷에서 사용됩니다. crc-16은 파운데이션 필드버스 h1(foundation fieldbus h1)에서 사용됩니다. crc 알고리즘은 모든 단일 비트 오류와 대부분의 다중 비트 오류를 검출할 수 있도록 설계되어 있습니다. crc 계산은 복잡한 다항식을 사용하여 프레임 검사 시퀀스(fcs: frame check sequence)를 생성하며, 이는 메시지에 덧붙여집니다. 수신자는 동일한 계산을 수행하며, 오류가 없었다면 동일한 fcs 값을 얻습니다. 값이 다르면 전송 중 오류가 발생한 것입니다.

전송 오류를 수정하는 일반적인 방법은 데이터 프레임을 거부하고 재전송을 요청하는 것입니다. 그러나 경우에 따라 재전송이 허용되지 않을 수도 있습니다. 예를 들어, 파운데이션 필드버스의 제어 데이터처럼 시간 제약이 있는 경우에는 재전송이 불가능할 수 있습니다. 이러한 경우에는 데이터 오류를 기록하고 해당 데이터를 수신되지 않은 것으로 간주하며, 다음에 올 올바른 데이터를 기다립니다. 반면, 데이터 통합과 같은 경우에는 재전송이 필요할 수 있습니다.

재전송이 현실적으로 불가능한 특수한 경우도 있습니다. 예를 들어, 심우주(deep space)에서의 무선 원격 측정(radio telemetry) 데이터 전송과 같은 경우입니다. 이러한 응용에서는 가장 복잡한 오류 복구 방식인 오류 수정(error correction)이 사용됩니다. 충분한 데이터 중복성을 가진 패리티 정보를 생성함으로써 모든 단일 비트 오류와 많은 다중 비트 오류를 실제로 수정할 수 있습니다. 송신 측에서는 오류 수정 코드(ecc: error correcting code)를 계산하여 메시지에 덧붙입니다. 수신 측은 동일한 계산을 수행하며, 결과가 같으면 오류 없이 전송된 것입니다. 결과가 다르면 수신 측에서 데이터 오류를 수정할 수 있습니다. 그러나 오류 수정은 대역폭을 많이 소모하는 방식으로, 단순한 오류 수정만으로도 전체 사용 가능한 대역폭의 25% 이상을 차지할 수 있습니다.

23.2.5 마스터링(mastering)

네트워크 노드가 데이터를 전송하거나 데이터 요청을 하기 위해서는, 해당 노드가 일시적으로 네트워크를 단독으로 제어하고 있으며, 자신의 메시지가 전송 중에 손상되지 않을 것이라는 확신이 있어야 합니다. 이를 위해 네트워크의 제어권을 해당 노드에 일시적으로 이전하는 절차가 필요합니다. 네트워크 프로토콜에서 가장 중요한 요소 중 하나는 어떤 네트워크 마스터링 방식(network mastering scheme)을 사용할지를 결정하는 것입니다. 표 23-1에는 실제로 사용되는 네 가지 네트워크 마스터링 방식과 각 방식이 적용된 네트워크의 예가 나와 있습니다.

23.3 네트워크 프로토콜

모든 네트워크 아키텍처는 국제표준화기구(iso: international standards organization)의 표준인 개방형 시스템 상호 연결(osi: open systems interconnection) 기본 참조 모델, 즉 iso/iec 7498-1:1994 표준에 따라 설명됩니다. 그림 23-1에 나타난 이 모델은 서로 독립적인 7개의 계층으로 구성되어 있습니다. 여기서 네트워크 프로토콜(network protocol)이란, 이 계층들에 내장된 마이크로프로세서 펌웨어(firmware)를 의미합니다. 최종 사용자는 물리적인 케이블 연결과 iso/osi 스택 상위 계층에서 소프트웨어를 통해 제공되는 기능만을 신경 씁니다.

그림 23-1에는 iso/osi의 7개 계층 위에 두 개의 추가 계층이 표시되어 있습니다. 프로세스 제어를 위한 객체 연결 및 삽입(opc: object linking and embedding for process control) 계층은 네트워크 계층을 호스트 시스템에 맞게 조정할 수 있는 장점이 있습니다. 따라서 클라이언트 사용자 계층은 호환되는 opc 서버 소프트웨어가 실행되는 서버와 함께 사용된다는 사실만 알고 있어도 구성할 수 있습니다. opc를 사용하면 네트워크 계층의 세부 사항은 사용자에게 효과적으로 숨겨집니다.

또한 opc를 사용하지 않고 사용자 계층에 포함된 다른 네트워크 기술을 활용함으로써 네트워크 응용 계층을 사용자 계층 소프트웨어로부터 분리할 수도 있습니다. 그림에서는 사용자 계층이 통신 프로토콜 스택의 최상위와 직접 연결되는 방식으로 이를 보여줍니다. 이는 일반적으로 사용자 계층의 연결 효율성을 높이고, opc가 허용하는 것보다 더 효율적이거나 결정적인 데이터 전송을 위해 사용됩니다.

마지막으로, 그림 23-1에서 네트워크 배선은 클라이언트와 서버 사이에 작은 박스로 표현되어 있습니다. 이 박스는 물리적인 네트워크가 단순한 전선이나 케이블 그 이상의 요소를 포함하고 있음을 나타냅니다. 실제로 이러한 네트워크에는 다양한 이유로 능동형 스위치(switch)나 변환기(converter)가 포함되어 있는 경우가 많습니다. 이후 장에서 각 네트워크를 설명할 때 이러한 이유들을 다룰 예정입니다.

‘케이블(cable)’이라는 단어는 금속 배선과 광섬유(fiber optics)를 포함하는 의미로 자주 사용되며, 무선 연결도 포함되어야 하지만, 이를 표현하려면 ‘무선 케이블(wireless cable)’이라는 모순적인 표현이 필요합니다. 이 표현은 통신 시장에서는 실제로 사용되지만, 산업 자동화 분야에서는 아직 일반적이지 않습니다.

23.3.1 물리 계층(phy: physical layer)

osi 7계층 스택의 1계층은 물리 계층(phy)입니다. phy는 통신 매체(media) 자체가 아니라, 매체와의 전기적 및 논리적 인터페이스만을 포함합니다.

이 계층에서는 지원되는 매체의 유형과 함께 전기적 특성(예: 전압 수준, 심볼 표현(1 또는 0), 인코딩 방식(encoding), 신호 방식(signaling method), 주파수 대역(frequency bands), 지원되는 커넥터 유형(type of connectors), 각 커넥터 유형의 핀 배치(pin assignments))에 대한 정보가 제공됩니다.

매우 단순한 네트워크에서는 매체 제어권에 대한 경쟁(contention)을 전기적으로 판단할 수 있으며, 이러한 사양은 충돌 감지(collision detection)를 포함하여 phy에 정의됩니다. 또한 이 계층은 수신기가 데이터를 수신할 준비가 되지 않았을 때 전송을 일시적으로 중단할 수 있는 흐름 제어(flow control) 기능을 포함하는 경우가 많습니다.

매우 중요한 개념 중 하나는 인코딩 방식의 선택입니다. 이는 수신기가 잡음과 실제 신호를 구분할 수 있는 능력에 직접적인 영향을 줍니다. 신호가 전압 또는 전류 수준, 주파수 변화(frequency shift), 또는 위상 변화(phase shift)로 설정되면, 각 수준이나 변화가 데이터 심볼(bit)을 나타내는지, 또는 더 복잡한 전이 시퀀스를 통해 심볼을 표현해야 하는지를 결정해야 합니다. phy는 일반적으로 전송되는 각 비트를 판단하는 데 사용되는 방법을 명시합니다.

23.3.2 데이터 링크 계층(dll: data link layer)

osi 모델의 2계층은 데이터 링크 계층(dll)입니다. 이 계층은 주소 지정(addressing) 및 오류 검출과 수정(error detection and correction) 방법을 포함한 기본 메시지 형식을 정의합니다. dll은 일반적으로 논리 링크 제어(LLC: logical link control) 서브 계층과 매체 접근 제어(MAC: media access control) 서브 계층으로 나뉘며, llc는 상위 계층에 서비스를 제공하고, MAC은 선택된 네트워크 매체와 그 특성에 따라 하위 수준의 기능을 담당합니다. MAC은 우리가 일반적으로 ‘프로토콜(protocol)’이라고 부를 때 떠올리는 기능을 정의합니다. 예를 들어, 토큰 패싱(token passing), 충돌 기반(collision-based), 피어 투 피어(peer-to-peer), 마스터/슬레이브(master/slave) 방식의 프로토콜 등이 이에 해당합니다. 장치의 주소는 mac 주소 지정 규칙을 따르며, 일반적으로 4비트에서 64비트 사이의 숫자로 구성됩니다.

데이터 프레이밍(data framing)은 dll에서 정의됩니다. 프레임(frame)은 데이터를 전송하기 위한 “봉투” 역할을 하며, 송신 주소(from address)와 수신 주소(to address), 그리고 전송 오류를 검출하고 수정하기 위한 오류 검사 코드(error checking code)를 포함합니다. 데이터가 메시지 프레임으로 어떻게 구성되는지는 매우 중요하며, 수신 장치는 프레임 내 데이터 구성 방식을 정확히 해석할 수 있어야 합니다.

호스트 컴퓨터에서 데이터가 어떻게 구성되었는지와 관계없이, 모든 데이터 통신은 빅 엔디언(big endian) 방식으로 구성됩니다.

MAC의 가장 중요한 기능은 여러 장치가 공유하는 통신 네트워크에서 어떤 장치가 메시지를 전송할 수 있는지를 결정하는 것입니다. 모든 네트워크 공유가 단일 호스트 장치에 의해 제어되는 경우, mac 프로토콜은 마스터/슬레이브(master/slave) 또는 클라이언트/서버(client/server) 방식이라고 합니다. 네트워크 제어권이 정해진 순서에 따라 장치 간에 전달되는 경우, 해당 프로토콜은 토큰 패싱(token passing)이라고 합니다. 네트워크가 사용 중이지 않을 때 아무 장치나 접근할 수 있는 경우, 해당 프로토콜은 캐리어 감지 다중 접속(csma: carrier sense multiple access)이라고 합니다.

프로토콜은 새로운 장치가 네트워크에 추가되거나, 장치가 고장 나거나, 전송 중 오류가 발생하는 상황을 처리할 수 있어야 합니다. 토큰 패싱 네트워크는 토큰 분실 오류에 대한 대처 기능을 제공해야 하며, csma 네트워크는 메시지 충돌(collision)을 허용해야 합니다. 마스터/슬레이브 네트워크도 마스터 장치가 고장 나는 경우를 대비한 기능을 갖추어야 합니다.

23.3.3 Network Layer

네트워크 계층(Network Layer)은 로컬 영역(Local Area) 외부에 있는 다른 네트워크의 장치로 데이터를 전송하는 기능을 담당합니다.

이 계층은 메시지가 출발지에서 목적지까지 여러 경로를 통해 전달될 수 있는 경우에 특히 중요합니다. 이러한 과정을 라우팅(Routing)이라고 하며, 이는 네트워크 계층의 주요 역할입니다.

네트워크 계층은 네트워크 간의 메시지를 라우팅해야 하므로, 네트워크 주소 지정(Network Addressing)이 핵심 기능입니다. 따라서 DLL 주소는 로컬 영역 네트워크에서만 중요하며, 메시지가 인터넷상의 다른 네트워크에 있는 장치로 전송될 경우에는 인터넷 프로토콜(IP) 주소가 중요해집니다. 또한, 네트워크 계층은 DLL의 제한보다 긴 메시지를 더 짧은 패킷(Packet) 또는 데이터그램(Datagram)으로 분할하고, 메시지가 수신될 때 이러한 패킷들을 올바른 순서로 재조립하는 역할도 수행합니다.

라우팅은 출발지와 목적지 사이에 하나 이상의 경로가 존재하는 복잡한 네트워크에서 네트워크 계층에서 수행됩니다. 인터넷은 매우 복잡하고 동적인 라우팅 규칙을 갖춘 방대한 네트워크들의 집합체이며, 이러한 규칙은 네트워크 트래픽이나 장애에 따라 유동적으로 조정됩니다. 단순한 로컬 영역 네트워크에서는 일반적으로 단일 경로만 존재하므로, Layer 2 주소를 사용하여 라우팅이 이루어집니다.

네트워크 계층을 사용하는 가장 대표적인 네트워크는 인터넷입니다. 인터넷에서는 이 계층의 프로토콜을 IP라고 하며, 이는 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force, IETF)라는 인터넷 표준 기구에 의해 정의된 인터넷 표준입니다. IP 헤더의 모든 필드를 설명하는 유용한 웹사이트는 다음과 같습니다: http://www.networksorcery.com/enp/protocol/ip.htm

IP 주소는 모든 산업 분야에서 사용되기 때문에 매우 중요합니다. MAC 주소처럼 IP 주소도 숫자로 구성되어 있습니다. 2005년 기준으로 가장 일반적으로 사용되던 IP 버전 4에서는 IP 주소가 32비트 길이이며, 향후 보편화될 가능성이 있는 IP 버전 6에서는 128비트 길이입니다.

인터넷 표준에 따라 일부 IP 주소는 로컬 주소 지정 용도로 예약되어 있으며, 인터넷에서 직접 접근 가능한 장치에는 할당되지 않습니다.

이러한 긴 숫자는 사람이 기억하기 어렵기 때문에, 보다 의미 있는 텍스트 문자열로 IP 주소를 표현하는 명명 시스템(Naming System)이 존재합니다. 인터넷 주소에 텍스트 문자열을 할당하는 책임을 가진 조직은 인터넷 주소 및 번호 할당 기구(Internet Corporation for Assigned Names and Numbers, ICANN)입니다. IP 주소 지정의 전체적인 내용은 이 책의 범위를 벗어납니다. IP 주소 지정의 복잡성에 대한 유익한 튜토리얼은 다음 링크에서 확인하실 수 있습니다: http://compnetworking.about.com/od/workingwithipaddresses/l/aa042400a.htm

산업 자동화 네트워크는 일반적으로 매우 단순한 로컬 영역 네트워크로 구성되며, 네트워크 계층이나 IP 주소를 사용할 필요가 없습니다. 라우팅은 DLL 내에서 MAC 주소를 사용하여 수행되며, 필요한 경우 분할(Segmentation)은 애플리케이션 계층(Application Layer) 또는 애플리케이션 자체에서 처리됩니다.

출발지와 목적지 네트워크의 최대 메시지 길이에 차이가 없는 경우(예: 둘 다 Ethernet인 경우), 네트워크 계층은 분할을 수행하지 않습니다. 그러나 차이가 있는 경우, 네트워크 계층은 목적지에 맞는 길이의 세그먼트(Segment)를 생성합니다. 이러한 분할은 수신 노드의 하위 DLL을 위한 서비스입니다.

23.3.4 Transport Layer

전송 계층(Transport Layer)에 대한 여러 표준이 존재하지만, 많은 산업용 네트워크에서는 전송 계층을 별도로 정의하지 않으며, 해당 기능은 다른 계층에 할당됩니다.

전송 계층이 사용되는 경우, 일반적으로 다음 두 가지 인터넷 표준 전송 계층 프로토콜 중 하나가 지정됩니다:

• Transmission Control Protocol (TCP)

TCP는 IP 네트워크를 통해 종단 간(end-to-end) 전달을 보장하는 연결형 서비스입니다. 전송 중 오류가 발생하거나 확인되지 않은 세그먼트(Segment)는 재전송되어 오류를 수정합니다. TCP는 흐름 제어(Flow Control) 기능도 수행합니다. 긴 메시지가 처음에는 정의되지 않은 경로를 따라 전송될 수 있기 때문에, 초기 메시지 프레임은 네트워크 경로를 “탐색(probe)”하기 위해 작게 전송됩니다. 경로가 정의되어 연결되면, 이후의 메시지는 일반적으로 더 길게 전송되며, 오류나 지연 없이 전달될 것으로 기대됩니다. 긴 메시지를 전송하는 것이 일반적으로 짧은 메시지를 전송하는 것보다 효율적입니다.

• Universal Datagram Protocol (UDP)

UDP는 두 IP 주소 간에 IP 패킷을 “최선의 노력(best effort)” 방식으로 전달하기 위해 설계된 단순한 서비스입니다. 오류 감지, 수정, 분할(Segmentation), 흐름 제어 등은 애플리케이션 계층(Application Layer) 또는 애플리케이션 자체에서 처리합니다.

전송 계층은 네트워크에서 사용하는 “포트(port)”를 기준으로 애플리케이션의 유형을 정의합니다. 인터넷 번호 할당 기관(Internet Assigned Number Authority, IANA)은 많은 TCP/UDP 포트를 할당하였으며, 해당 포트 목록은 다음 웹사이트에서 확인하실 수 있습니다: http://www.iana.org/assignments/port-numbers

이 메커니즘을 통해 여러 애플리케이션이 하나의 통신 회선을 공유할 수 있습니다. 예를 들어, Modbus/TCP, ProfiNET, EtherNet/IP, Foundation Fieldbus HSE는 모두 TCP/IP 및/또는 UDP/IP를 사용하며, 이 그룹 내에서 포트가 할당되어 있습니다.

표 23-2는 일반적인 산업 자동화 네트워크에 할당된 일부 포트를 보여줍니다.

TCP의 주요 역할 중 하나는 모든 메시지가 종단 간(end-to-end)으로 성공적으로 전달되도록 보장하는 것입니다. UDP는 이러한 역할을 수행하지 않습니다. 이 프로토콜 단계에서는 데이터 링크 계층(DLL)이 메시지 내용의 오류를 감지하고 수정한다고 가정합니다. TCP는 메시지가 최종 목적지까지 안전하게 전달되도록 보장하는 역할만 수행합니다. 각 메시지 세그먼트(Segment)는 수신 시마다 확인 응답(Acknowledgment)을 받습니다. 송신되는 메시지 세그먼트의 헤더에는 확인 번호(Acknowledgment Number)가 포함되어 있으며, 송신자에게 반환되는 확인 프레임에도 동일한 확인 번호가 포함되어야 합니다. 확인 응답이 시간 제한 내에 수신되지 않으면 해당 세그먼트는 자동으로 재전송됩니다. 모든 세그먼트에는 고유 번호가 부여되므로, 메시지를 재조립할 때 중복된 세그먼트는 폐기됩니다.

23.3.5 Session Layer

세션 계층(Session Layer)은 산업 자동화 통신 프로토콜에서는 자주 사용되지 않습니다. 하위 네 개 계층과 달리, 세션 계층은 네트워크를 통해 서로 다른 컴퓨터의 애플리케이션 간 지속적인 연결을 제공합니다. 산업 자동화 네트워크에서는 이러한 연결형 서비스가 일반적으로 애플리케이션 계층(Application Layer) 또는 애플리케이션 자체에서 구현됩니다. 이 계층은 UNIX 소프트웨어에서 동시 실행되는 프로세스 간 연결을 위한 소켓(Socket) 사용에서 유래하였습니다. 세션 계층은 UNIX 소켓을 네트워크 전반으로 확장한 것입니다.

또한, 대규모 디지털 전화망의 사례를 생각해보면 이해가 쉬운데, 이 경우 세션 계층은 음성 통화를 위한 가상 종단 간 연결을 설정하고 유지하는 프로토콜을 포함합니다.

23.3.6 Presentation Layer

산업 자동화 네트워크에서도 표현 계층(Presentation Layer)을 별도로 사용하는 경우는 드뭅니다. 해당 기능은 필요 시 애플리케이션 계층에 통합되어 구현됩니다. 표현 계층의 전통적인 세 가지 기능은 다음과 같습니다:

• 변환(Translation)

• 압축(Compression)

• 암호화(Encryption)

통신 연결의 양 끝에 있는 컴퓨터가 서로 다른 구조를 가질 수 있기 때문에, 데이터 형식과 문자 인코딩의 차이는 표현 계층에서 해결됩니다. 대표적인 기능은 미국 국가 표준 협회(American National Standards Institute, ANSI)가 정의한 ASCII 문자 인코딩과 IBM의 메인프레임 컴퓨터에서 사용되는 EBCDIC 문자 인코딩 간의 변환이었습니다.

데이터 전송 시 대역폭을 절약하기 위해 압축이 자주 사용됩니다. 애플리케이션이 파일을 압축할 수도 있지만, 이는 모뎀 통신 표준에서 사용되는 동적 압축(dynamic compression)을 의미하지는 않습니다. 압축은 전화선 기반 모뎀 통신이 일반적이던 시절에는 자주 사용되었지만, 오늘날의 광대역 통신 환경에서는 덜 사용됩니다.

데이터 암호화는 가상 사설망(VPN)을 구축할 때 널리 사용됩니다. 인터넷과 같은 공용 통신망을 사용할 경우, 데이터가 도청당하지 않도록 보호하는 것이 필요하기 때문입니다. 무선 데이터 전송도 도청에 노출될 수 있으며, 이는 고급 암호화 표준(Advanced Encryption Standard, AES)을 통해 해결됩니다. AES는 IEEE 802.11i(무선 보호 액세스(Wireless Protected Access)라고도 함)의 무선 데이터 전송 프라이버시 표준의 일부로 채택되었습니다.

23.3.7 Application Layer

애플리케이션 계층(Application Layer)은 공식적인 통신 스택의 최상위 계층이지만, 우리가 일반적으로 생각하는 “애플리케이션” 소프트웨어 자체를 의미하는 것은 아닙니다. 많은 경우 애플리케이션은 운영 체제의 기능을 활용하며, 운영 체제는 다시 애플리케이션 계층에서 제공하는 서비스를 사용합니다. 애플리케이션 계층에서 제공하는 대표적인 서비스는 다음과 같습니다:

• HTTP – 하이퍼텍스트 전송 프로토콜(Hypertext Transfer Protocol, 월드와이드웹)

• FTP – 파일 전송 프로토콜(File Transfer Protocol)

• SMTP – 간단한 메일 전송 프로토콜(Simple Mail Transfer Protocol, 이메일)

• DHCP – 동적 호스트 통신 프로토콜(Dynamic Host Communications Protocol)

• Telnet – 원격 컴퓨터를 위한 텍스트 기반 명령 및 제어 언어

• SNMP – 간단한 네트워크 관리 프로토콜(Simple Network Management Protocol)

• RMON – 원격 네트워크 모니터링 프로토콜(Remote Network Monitoring Protocol)

이러한 모든 서비스는 TCP/IP 프로토콜 모음(Suite)의 일부입니다. 계층 1~4 및 7은 인터넷 표준에 따라 정의되며, 이는 인터넷 엔지니어링 태스크 포스(Internet Engineering Task Force, IETF)가 관리하는 요청 사양 문서(Request for Comments, RFC) 집합에 포함되어 있습니다.

(http://www.ietf.org/iesg/1rfc_index.txt) 이러한 표준 문서는 해당 표준을 지원하는 소프트웨어를 직접 구현해야 하는 경우가 아니라면 일반적으로 읽기 어렵습니다. TCP/IP 프로토콜 모음의 세부 사항을 학습하기 위한 훌륭한 자료는 다음의 TCP/IP 가이드입니다: http://www.tcpipguide.com/free/index.htm

23.4 Network Topology

모든 데이터 통신 네트워크는 네트워크 설치의 편의성보다는 해당 애플리케이션에 적합한 위치에 장치를 연결합니다. 이러한 네트워크 구조 또는 배선 계획은 “토폴로지(Topology)”라고 하며, 네트워크 장치를 상호 연결하기 위해 설계됩니다. 네트워크 프로토콜은 선택된 토폴로지를 인식하고 이에 호환되어야 하며, 토폴로지와 프로토콜은 서로 독립적인 요소가 아닙니다.

23.4.1 Star Topology

가장 널리 사용되는 네트워크 토폴로지는 스타(Star) 토폴로지이며, 그림 23-2에 나타나 있습니다. 이 토폴로지는 대부분의 사무실 네트워크에서 사용되며, 특히 Ethernet과 Token Ring이 사용되는 환경에서 그렇습니다. 스타 네트워크는 일반적으로 중앙 위치에 서버(Server), 스위치(Switch), 또는 허브(Hub)와 같은 활성 장비를 배치합니다. 스타의 각 스포크(Spoke)는 분기 없이 원격 장치에 직접 연결됩니다. 서버, 스위치 또는 허브를 중앙에 배치함으로써 장치가 위치를 이동할 때 네트워크를 쉽게 재구성할 수 있으며, 대부분의 활성 네트워크 장비가 한 곳에 집중되어 유지보수가 용이합니다.

23.4.2 Multidrop Topology

일부 제조 장비는 일렬로 구성된 기계들의 긴 시퀀스로 제작됩니다. 이에 따라 센서와 액추에이터는 제조 라인을 따라 배치됩니다. 이러한 장치를 배선하는 가장 자연스러운 방법은 각 장치에 “드롭(Drop)”을 연결한 “트렁크 케이블(Trunk Cable)”을 사용하는 것입니다. 많은 드롭이 필요하기 때문에 이 토폴로지는 멀티드롭(Multidrop)이라고 불립니다. 네트워크 프로토콜은 이 토폴로지를 지원해야 합니다. 스타 토폴로지처럼 중앙 위치에 개별 연결이 있는 구조와 달리, 멀티드롭 네트워크에서는 연결된 모든 장치가 네트워크에 전송된 메시지를 수신하게 됩니다. 트렁크 와이어는 일반적으로 “버스(Bus)”라고 불리며, 전체 라인과 모든 드롭을 구동해야 합니다. 멀티드롭 토폴로지는 장치 간 직접 통신을 허용하는 피어 투 피어(Peer-to-Peer) 프로토콜과 함께 사용되기도 하지만, 일반적으로 마스터/슬레이브(Master/Slave) 프로토콜과 함께 사용되어 마스터와 하나의 슬레이브 장치 간 통신만 허용됩니다. 멀티드롭 네트워크는 그림 23-3에 나타나 있습니다.

23.4.3 Daisy-chain Topology

멀티드롭 네트워크 토폴로지와 매우 유사한 데이지 체인(Daisy-chain) 네트워크는 장치들이 선형으로 배치된 패턴에 적합하게 설계됩니다.

하지만 각 장치는 신호를 다음 장치까지만 전달하면 되므로, 멀티드롭 토폴로지보다 전력이 덜 필요할 수 있습니다.

장치에 해당되지 않는 데이터는 항상 다음 장치로 전달됩니다. 데이지 체인 토폴로지를 피어 투 피어(Peer-to-Peer) 장치에 사용하려면 데이터 경로가 양방향으로 데이터를 전달할 수 있어야 하므로, 데이지 체인은 피어 투 피어 프로토콜 네트워크에서는 자주 사용되지 않습니다.

데이지 체인 토폴로지는 그림 23-4에 나타나 있습니다.

23.4.4 Ring Topology

링(Ring) 네트워크는 조직에서 높은 신뢰성을 요구할 때 주로 사용됩니다. 링 네트워크는 데이지 체인(Daisy-chain) 토폴로지와 매우 유사하지만, 마지막 장치는 항상 첫 번째 장치 또는 네트워크 마스터 장치로 다시 연결됩니다. 그림 23-5는 간단한 링 토폴로지 네트워크를 보여줍니다. 자동화 분야에서 높은 신뢰성을 위해 사용되는 대부분의 링 네트워크는 실제로 데이터가 반대 방향으로 흐르는 이중 링(Dual Ring)을 사용합니다. 이를 반대 회전 링(Counter-rotating Rings)이라고 합니다. 이중 중복 반대 회전 링(Dual Redundant Counter-rotating Rings)은 네트워크 케이블이 어느 한 지점에서 절단되더라도 모든 통신이 중단 없이 계속될 수 있도록 합니다. 그림 23-6은 이중 중복 반대 회전 링 토폴로지를 보여줍니다.

23.4.5 Mesh Topology

메시(Mesh) 네트워크는 네트워크 노드 간에 하나 이상의 데이터 경로를 갖고 있어 경로 중복성을 통해 신뢰성을 확보합니다. 하지만 메시 네트워크는 일반적으로 “라우팅(Routing)”이라는 추가적인 프로토콜 부담을 수반합니다. 대부분의 다른 네트워크에서는 대체 경로가 없으며, 하나의 경로가 배선에 의해 완전히 결정됩니다. 메시 네트워크는 대체 경로가 존재하기 때문에, 메시지가 네트워크에 진입할 때 목적지 주소에 따라 경로를 정의해야 합니다. 인터넷 자체는 매우 큰 유선 메시 네트워크이며, 핵 재앙 시 네트워크의 주요 부분이 손실되더라도 생존할 수 있도록 설계되었습니다. 그림 23-7은 각 장치가 다른 모든 장치에 배선된 유선 메시 네트워크 토폴로지를 보여줍니다.

메시(Mesh) 네트워크는 모든 장치가 서로 직접 연결되어 있을 필요는 없습니다. 직접 연결되지 않은 장치에 도달하기 위해서는 라우팅 테이블(Routing Table)을 구성하여, 메시지를 목적지 방향에 있는 직접 연결된 장치로 전달할 수 있도록 충분한 정보를 제공해야 합니다. 이러한 방식으로 메시지가 전달될 때마다 이를 홉(Hop)이라고 합니다. 예를 들어, 인터넷은 일반적으로 최종 목적지까지 15홉 이하로 도달합니다. 인터넷의 라우팅 테이블은 매우 복잡하지만, 장치 수가 제한된 산업용 메시 네트워크는 그리 복잡하지 않습니다.

네트워킹의 최신 트렌드 중 하나는 무선 데이터 링크(Wireless Data Link)입니다. 메시 네트워크는 무선 네트워크에서 중복성을 제공하면서도, 중복 배선 연결에 드는 높은 비용 없이 구현할 수 있습니다. 다만 라우팅에 따른 비용은 여전히 존재합니다. 무선 메시 네트워크는 그림 23-8에 나타나 있습니다.

23.5 Wireless Networks

무선 네트워크가 산업 자동화에서 중요한 역할을 하게 될 것이라는 점에 대해 의문을 제기하는 사람은 거의 없습니다. 그러나 2005년 기준으로 이 산업에서 무선 기술을 사용하는 설치 사례나 표준은 많지 않습니다. 앞서 네트워크 토폴로지에서 언급된 무선 메시 네트워크는 유선 메시 네트워크와 구분됩니다. 배선을 제거함으로써 발생하는 비용 절감은 특히 장비와 전력 배선이 밀집된 플랜트 지역에서 배선 비용이 과도하게 높을 수 있는 산업 환경에서 매우 유리합니다.

무선 네트워크와 무선 기술은 제조 환경 내 데이터 통신에서 매우 유용한 여러 영역이 있습니다. 많은 경우 무선은 유선 통신을 대체하며, 설치 및 운영 비용 절감 효과를 가져옵니다. 또한 무선 기술이 유선 통신으로는 구현할 수 없는 영역이 하나 있는데, 그것이 바로 무선 주파수 태깅(Radio-frequency Tagging)입니다.

23.5.1 Wireless LAN

IEEE, ISO, ITU에서 제정한 여러 무선 표준은 산업 자동화에서 유선 네트워크를 대체할 수 있는 잠재력을 가지고 있습니다. 2005년 중반 기준으로 실제로 대체 가능한 사례는 유선 비용이 과도하게 높은 일부 현장 계측기(Field Instrumentation) 링크에 한정되어 있습니다. 무선 LAN이 다양한 비용 절감 또는 설치 가능성 등의 이유로 유선 Ethernet 네트워크 구간을 대체한 사례는 일부 존재하지만, 산업 자동화 공급업체 중 무선 LAN 사용을 표준화한 곳은 없습니다. ISA는 이 주제를 연구하고 지침, 권장 사항, 표준을 개발하기 위해 SP100 표준 위원회를 구성하였습니다.

일반적으로 무선 LAN은 ISO/OSI 통신 스택의 가장 하위 계층(물리 계층과 매체 계층)을 대체할 수 있습니다. 하지만 무선 LAN의 특성은 대체되는 유선 LAN 구간과는 상당히 다를 수 있습니다. 이러한 차이가 애플리케이션에 허용 가능한 수준이라면 성능에 큰 영향을 주지 않습니다. 무선 통신은 다양한 간섭이나 페이딩(Fading) 현상으로 인해 유선 통신만큼 신뢰성이 높지 않을 수 있습니다. 그러나 전체 프로토콜이 오류 감지 및 복구 기능을 제공한다면, 실제 사용 중에는 유선 LAN과 큰 차이를 느끼지 못할 수도 있습니다.

23.5.2 Radio-frequency Tagging

무선 주파수 태깅(Radio-frequency Tagging)은 바코딩을 포함하는 자동 식별(Automatic Identification) 분야의 일부입니다. 이 때문에 무선 주파수 태그는 일반적으로 RFID(Radio Frequency Identification)라고 불리지만, 단순한 식별(ID) 외에도 다양한 응용이 존재합니다. RFID 태그는 바코드 라벨과 같은 단순한 “번호판(License Plate)” 역할을 할 수 있습니다.

이러한 ID 응용에서 RFID 태그는 고유한 숫자가 입력된 64~128비트 필드를 포함합니다. 리더기는 태그가 판독 범위 내에 들어오면 이 값을 읽어들일 수 있으며, 태그가 부착된 항목에 대한 데이터는 데이터베이스에서 검색되어 처리됩니다. RFID 태그는 ID 값 외의 데이터를 포함하지 않기 때문에, 해당 항목 데이터를 포함한 데이터베이스만큼의 보안성을 가질 수 있습니다.

RFID 태그의 판독 범위는 태그 및 리더 기술에 따라 수 센티미터에서 수 미터까지 다양합니다. 패시브 태그(Passive Tag)는 리더기의 전자기장에 의해 전력을 공급받아 ID 값을 포함한 짧은 메시지를 전송합니다. 고이득 안테나를 사용할 경우 약 3미터 거리에서도 이러한 태그를 판독할 수 있습니다. 액티브 태그(Active Tag)는 배터리를 내장하고 있으며, 일반적으로 약 10미터 거리에서도 판독이 가능합니다.

다양한 기관들이 태그 인코딩 및 프로토콜 표준을 발행하고 있지만, 전 세계적으로 권위를 가진 기관은 EPC Global입니다. 현재 ISO/IEC 공개 사양(PAS, Publicly Available Specifications)으로 검토 중인 일련의 표준들이 있으며, 이는 국제 표준으로 발전하기 위한 단계입니다. EPC Global 태그에는 Type 1과 Type 2 표준이 발행되어 있습니다. 일반적으로 EPC Global Type 1 표준 태그는 패시브이며, 재기록 가능한 RFID 태그입니다. Type 2 태그는 액티브이며, 재기록 가능한 ID 필드와 읽기/쓰기 가능한 데이터 필드를 모두 포함합니다. EPC Global은 또한 북미에서 바코드 라벨에 사용되는 기존 UPC(Universal Product Code)를 확장한 전기 제품 번호(EAN, Electrical Article Numbering) 표준도 관리합니다.

Type 2 태그에는 제조 및 검사 과정에서 데이터를 기록할 수 있습니다. 현재 이 데이터 형식에 대한 표준은 존재하지 않으며, 공급자와 고객 간에 전달되는 데이터베이스 형식일 경우에만 예외입니다.이러한 유형의 데이터는 일반적으로 트랜잭션(Transaction)이라고 하며, 이는 전자 데이터 교환(Electronic Data Interchange, EDI)이라는 별도의 표준 집합의 대상이 되어 왔습니다. EDI 표준은 여러 산업에서 사설 부가가치 유선 데이터 통신망을 통해 전송되는 형식으로 존재해 왔습니다. 최근에는 이러한 데이터 형식을 Type 2 태그에 기록할 수 있도록 하는 작업이 진행되고 있습니다.

이 작업은 UN/EDIFACT(United Nations rules for Electronic Data Interchange for Administration, Commerce and Transport)에 의해 수행되었으며, 이는 네트워크나 매체에 관계없이 모든 전자 데이터 교환 형식을 정의하는 국제 규칙입니다.