제 5 부 인터넷과 PC 통신

제 21 장 PC 통신

21.1 구성

* [그림 21.1] 은 PC 통신망 구성도를 나타낸다.-하이텔, 천리안과 같은 데이터 서버는 PSDN에 접속되어 있고 여기에 접속할 수 있는 방법은 PSTN을 통해 PSDN에 접속하는 방식과 X.25 단말기를 사용하여 직접 접속하는 방법 등이 있다.

21. 2 통신 에뮬레이터(emulator) 프로그램

* [그림 21.1]의 통신 시스템 구성도에서 PC가 PSTN에 접속되기 위해서는 PSTN 이 요구하는 접속 조건이 만족되어야 하며 이를 모뎀이라고 하는 장치 가 수행한다.

* 모뎀은 PC의 직렬 포트(serial port)와 접속되는 외장형과 PC 의 내부 버스 슬 롯에 장착되는 카드 형태의 내장형이 있다.

* PC에 장착된 모뎀을 통해 다양한 서비스를 제공하는 정보 서버에 접속하고 서 버가 제공하는 서비스를 받기 위해서는 모뎀에 데이터를 송신하고 모뎀으로 부 터 수신되는 데이터를 받아들이는 프로그램이 PC 에 필요하며 이러한 기능을 수행하는 프로그램을 통신 에뮬레이터 프로그램이라고 한다.

* 이와 같이 통신 에뮬레이터 프로그램에는 모뎀과의 데이터 송수신을 위한 통신 기능 이외에 서버로부터 송신되는 데이터를 해석하고 CRT에 표시하는 기능이 필요로 된다. 즉, 서버로부터 수신되는 데이터에는 사용자가 필요한 데이터 이 외에 데이터의 표현 기능을 강화하기 위한 제어 코드가 데이터에 선행된다.

* 제어 코드에는 뒤따르는 데이터가 표시되어야 할 CRT 상의 위치, 블링킹 (blinking), 스크롤(scroll), 문자의 크기 등을 나타내는 코드가 해당된다. 예를 들어, 뒤따르는 데이터가 표시되어야 할 위치를 나타내는 제어 코드 형식이 esc 가로 위치 세로 위치이라면 에뮬레이터 프로그램은 이를 해석하여 제어 코 드 뒤에 수신되는 데이터를 제어 코드에서 지정한 위치에 표시하여야 한다.

21.3 통신 에뮬레이터 프로그램 설치

* PC에 통신 카드(모템 카드)를 설치한 후 통신 카드를 동작 시키기 위한 프로 그램 설정 과정으로 통신 포트 설정, 모뎀 타입, 전송 속도, 모뎀 초기화 명령 이외의 통신과 관련된 변수 등이 있다.

* 통신 포트는 모뎀과 접속되는 통신 포트를 의미하여 인스톨 과정에서 통신 포 트(com1, com2, com3, com4 등), 하드웨어 포트 주소, 인터럽트 요청 번호 등 에 대한 명시를 요구하며 각 항목의 설정을 통신 카드 내의 딥 스위치(dip switch) 설정 내용과 일치되어야 한다.

* [그림 21.2]는 통신 애뮬레이터 프로그램에서 모뎀을 초기화 하는 과정을 나타 낸다.

* 모뎀 초기화 명령에는 다음의 내용이 있다.

# 원격 장치로 부터 데이터 케리어의 검출이 필요한지의 여부

# 오류 검사 프로토콜이 필요한지의 여부

# 원격 장치 혹은 로컬 장치가 입력한 문자에 대한 반향(echo) 여부

* 통신 관련 변수는 통신 소프트웨어에 따라 차이가 있지만 대개 다음의 항목 등 이 있다.

# 전송 방식 : 전이중 방식, 반이중 방식

# 전송 속도

# 데이터 길이 : 7 비트, 8 비트

#스톱 비트 길이 : 1 비트, 1/2 비트

#피리티 : 우수 패리티, 기수 패리티, 패리티 기능 없음

* 통신 변수의 설정이 끝나면 모뎀이 다이얼 명령을 인가하여 원하는 착신 컴퓨 터에 접속할 수 있다. 우선 모뎀이 정상적으로 동작하는지를 알기 위한 명령으 로 AT가 있다. AT에 대한 응답으로 OK가 수신되면 모뎀은 정상 동작이다. 접속하기를 원하는 컴퓨터의 전화번호를 다이얼 명령을 인가한다. 예를 들어, Hitel 접속 전화번호가 01410 인 경우 ATDT01410 혹은ATDT9,01410 (ATDT9w01410)을 인가한다. (ATDT9,01410 이나 ATDT9w01410 의 9는 모 뎀이 접속된 전화선이 국선이 아니고 내선인 경우 9 를 눌러야만 국선이 되는 경우에 사용되며, 혹은 w 는 9 를 누른 후 즉시 발신음이 들리지 않고 - 모뎀 다이얼 명령(전화를 걸기 위한 명령은 ATDT 이다. 예를 들어, Hitel 서비스를 제공하는 컴퓨터의 전화 번호가 01410 인 경우 해당 컴퓨터와 접속하기 위해서 는 우선 전화를 걸어 접속하여야 하며 이를 모뎀에서 수행하기 위해서는 ATDT 01410, 혹은 ATDT9,10410(9 번을 눌러야 국선이 되는 경우)

21. 4 이진화일(Binary file) 전달 프로토콜

* 파일 전송 시대의 초창기에 사용된 파일은 단순한 7비트 ASCII 텍스트 파일 이었지만 현재와 같은 멀티미디어 시대에서는 음성, 영상, 비디오 파일과 같은 다양한 형태의 파일 전송 기능이 필요로 된다.

* 이러한 형태의 파일은 기존의 ASCII 전달 방식으로 전송할 수는 없다. 이유는 영상 파일 등에서는 7 비트 ASCII 그룹의 표준화된 문자 이외의 문자 발생을 배제할 수 없는데 반하여 ASCII 전달 방식은 오로지 7 비트 표준화된 문자만 전송하도록 되어 있기 때문에 완전한 파일 전송이 이루어지지 않는다.

* 이러한 문제의 해결을 위해 이진 파일 전달 프로토콜이 개발되었다.

* 이진 파일 전달 프로토콜로서 시조격인 Xmodem이 있고 뒤를 이어 Zmodem, Ymodem 등이 발생되었다.

21.5 이진화일 전달 프로토콜의 동작

* 이진화일 전달 프로토콜은 한 번에 1 바이트 혹은 1 라인(line) 단위로 전달하 기 않고 블록(block) 으로 불리는 문자의 묶음으로 전송된다.

* 블록의 단위는 128 바이트 혹은 1024 바이트가 대표적이다.

* 송신 호스트는 송신할 파일로 부터 블록 단위 만큼 읽은 후 송신하고 수신 호 스트는 이를 수신하여 파일에 기입함으로서 파일 전달 기능이 수행된다.

* 신뢰성 있는 전달 기능을 제공하기 위해 전송과 관련된 제어 정보를 상호 교환 한다. 제어 정보에는 블록의 정상적인 수신, 오류 발생, 송신의 종료 등을 알리 는 정보가 포함된다.

* [그림 21.4]는 ANSI(American National Standards Institute)에서 규정하고 있 는 제어 문자, 니모믹(mnemonics), ASCII 값을 나타낸다.

* [그림 21.5]는 ANSI 제어 문자의 기능을 나타낸다.

21.6 이진화일 전달 프로토콜의 종류

* 상용화된 이진화일 전달 프로토콜에는 Xmodem, Xmodem/CRC, Wxmodem, Ymodem, Zmodem, Kermit, bImocem 등이 있다.

21.6.1 Xmodem

* 1978년에 탄생, 사용 범위가 넓음

(1) 패킷 형태

* [그림 21.6]은 Xmodem의 패킷 형태를 나타낸다.

* SOH는 패킷의 시작을 알리는 비트열 00000001

* NUM은 1 부터 시작하는 모듈로 256의 순차 번호

* CKS는 전송 오류 제어를 위한 필드로 128 바이트의 데이터에 대하여 올림 없 는 합 연산의 수행 결과를 사용한다.

(2) 동작

* 수신부는 데이터를 수신하고 있지 않은 상태에서는 15초 마다 NACK(문자 00010101) 을 송신부로 송신

* 송신하고자 하는 송신부는 NACK을 기다린 후 송신

* 수신부는 수신한 패킷의 데이터 필드에 대하여 송신부가 적용한 checksum 방 식을 사용하여 checksum을 구한 후 수신 패킷의 CKS 필드의 내용과 비교하 여 전송 중 오류 발생 여부를 검출

* 만약 checksum이 동일하지 않으면 수신 호스트는 NAK 신호를 송신 호스트로 송신하여 오류가 발생된 블록에 대한 재전송을 요구

* 만약 checksum이 일치하면 수신 호스트는 ACK 신호를 송신 호스트로 전송하 여 다음 블록의 송신을 요청

* 파일 전송의 끝을 수신부에 알리기 위해 송신부는 EOT(문자 00000100) 를 송 신하고 응답을 기다림

* 8 비트 문자 형태를 기준으로 동작하므로 7 비트 데이터는 전송 불가능

21.6.2 Xmodem/CRC

* Xmodem의 수정판으로 Xmodem과는 오류를 검사하는 방식에 차이가 있다.

* 오류 검사 성능을 향상하기 위해 또 다른 checksum 바이트를 각각의 블록에 추가하였다.

21.6.3 Ymodem

* 블록 단위가 1024 바이트로 대규모 파일 전송에 적합하다.

21.6.4 Zmodem

* 송신한 블록에 대해 ACK를 기다리지 않고 송신을 계속하므로 고속으로 동작 가능

* 수신 호스트로부터의 NAK 만을 처리함

* 블록 단위는 512 혹은 1024 바이트

21.6.5 Kermit

(1) 특징

* 1931 년에 미국 Columbia 대학에서 개발- 특징으로는 7 비트 문자 파일도 전 송가능

* 경우에 따라서는 8 비트 문자 파일을 7 비트 문자 파일로 변화하여 전송 가능

* 블록 단위를 가변화 할 수 있음

* 전송 도중 전송선의 오류로 인해 장애가 발행하면 통신을 재동기 (resynchronization)화 하여 통신을 다시 시작하는 기능 제공- 파일 전송시 와일드 카드 기능을 통해 다수의 파일을 선택하여 전송 가능

(2) 패킷 형태

* [그림 21.7]은 Kermit 의 패킷 형태를 나타낸다.

* MARK : 패킷의 시작을 의미하며 일반적으로 Control A에 상응되는 ASCII 문 자가 사용

* LEN : 패킷의 길이

* SEQ : 0 에서 시작되는 모듈로 64의 패킷 순차 번호

* TYPE : 패킷의 형태

* D : 데이터

* Y : acknowledge(ACK)

* N : negative acknowledge(NACK)

* S : 송신 시작

* R : 수신 시작

* B : 브레이크(break) 전송

* F : 파일 헤더

* Z : 파일의 끝

* E : 오류

* G : 통신과 관련된 다양한 명령(command)을 송신하는 경우 사용되며 다양한 명령의 지정은 데이터 필드를 이용한다. 데이터 필드에는 다음의 항목이 사용 된다.

# L : 로그 아웃

# F : 로그 아웃은 아니면서 통신을 종료

# D : 디렉토리 내용에 대한 문의(query)

# U : 디스크의 내용에 대한 문의

# E : 파일 삭제

# Q : 문의에 대한 상태

* C : 호스트 명령

* X : 화면에 텍스트 출력

* I : 초기화(화일 전송과 관련된 송수신 호스트간의 통신 파리메터 교환)

* A : 파일 속성

* DATA : 데이터

* CKS : 전송 도중에 발생되는 오류로 부터 패킷을 보호하는 checksum

(3) 동작

(가) 초기화 단계

* 통신을 시작하기 전에 송신부는 다음의 파라메터를 포함한 초기화 패킷을 수신 부에 송신한다. 송신 가능한 패킷의 최대 길이 윈도우 사이즈 패킷의 송신 이 전에 전송되는 패딩(padding) 문자의 수 패딩 문자의 ASCII 값 수신부는 송신 부가 지정한 파라메터 중 지원 가능한 파라메터를 지정한 ACK 패킷을 송신부 에 전송한다.

(나) 데이터 전달 단계

* 송신된 패킷은 수신부에 의해 ACK 혹은 NACK 패킷을 응답되어 송신부는 NACK 된 패킷에 대하여 재전송 기능을 수행한다.

21.7 전자 게시판(BBS : Bulletin Board System)

* 전자 게시판이란 서버 역할을 하는 PC에 다수의 PC가 액세스 하여 정보를 서 버 PC에 올려 놓고 이를 게시하는 PC 통신 서비스로 이 외에도 mail 기능, 파 일 전송 기능 등이 제공된다.

21.7.1 구성

* PC 기반의 서버 장치

* 다수의 사용자로 부터 다양한 메시지와 프로그램 등이 BBS에 축적되므로 이 를 위한 저장 장소가 필요함

* 모뎀

21.7.2 기능

* 정보 저장 장소(전자 게시판이라고도 함) 제공되고 정보는 다양한 주제로 분류 됨

* E-mail 기능

* 파일 전달 기능

# 전자 게시판의 사용자는 다양한 소프트웨어를 전자 게시판에 업 로드 (upload)하여 다양한 사용자에 게시하고 필요한 사용자는 해당 소프트웨어 를 전자 게시판에서 다운로드(download) 한다.

# 업/다운 로드에 상요되는 통신 프로토콜로는 Xmodem, ASCII 등이 사용된 다.

* 흥미 그룹(interest group) 구성

21.8 전자 우편(E-mail) 서비스

21.8.1 메시지 구성

* 헤더와 메시지로 구성

* 날짜/시간 : 메시지가 송신된 날짜와 시간

* 송신자 : 송신자의 ID

* 주소 : 수신자의 ID, 다수의 수신자도 가능

* 제목 : 메시지의 제목

* Carbon Copy(CC) : 주소에서 지정한 수신자 이외에 동일한 메시지를 수신할 사람

21.8.2 명령어

* 읽기 : 수신한 메시지 읽기

* 지우기 : 수신한 메시지 지우기

* 응답(reply) : 수신한 메시지의 응답

* 전달(forward) : 수신한 메시지를 다른 수신자로 송신

* 송신 : 메시지의 송신

# 하나의 메시지를 다수의 수신자에 동시에 송신하는 기능

# 동일한 메시지를 수신하는 다른 수신자의 이름을 못 보게 하는 기능

# 수신한 메시지의 복사본을 다른 사용자에게 전송하는 기능

# 전달(forward) 명령어

# 메시지의 내용은 수신한 내용과 동일

# 착신지 주소와 간단한 내용에 대한 입력이 가능

# Group 3 팩스로 텍스트 메시지 전송 기능

# 음성 사서함 기능

# 음성 사서함에 전화를 걸어 사용자 ID, 패스워드, 명령어를 입력하면 음성 합성기(synthesizer)가 수신된 메시지의 내용을 음성으로 읽어 주는 기능

# 이진 파일 전달 기능(모든 E-mail 서비스가 이진 파일 전달 기능을 제공하 지는 않음)

# 메시지 파일링 기능

# 메시지 홀더(folder) 생성, 홀더간 메시지 이동 기능 등

# 송신한 메시지를 수신자기 읽었음을 확인해 주는 기능

# 자동 응답 기능

# 자동적으로 지정한 일시에 메시지를 송신하는 기능

21.9 사용자 온라인(on-line) 서비스

* 사용자가 원하는 정보를 PC 통신망을 통해 온라인으로 제공해 주는 기능

*제공하는 정보로는 뉴스, 날씨, 증권, 오락, 교육, 여행, 쇼핑, 신문 등

* [그림 21.8]은 현재 이용 되는 BBS 의 초기 화면이다.

* [그림 21.9]는 각 사용자로부터 BBS 의 서버에 공개한 자료를 조사하기 위해 공개 자료실에 들어가는 것을 나타낸다.

* [그림 21.10]은 공개자료실을 선택한 결과를 나타낸다.

* 산재되어 있는 공개자료실에서 필요한 자료를 찾는데 유용한 명령어로 LT, LF, LI, LN 등이 있다.

* LT 는 찾고자 하는 자료와 관련된 내용을 기반으로 검색한다. 예를 들어, v3 와 관련된 자료를 찾고자하면 "LT v3" 를 입력한다.

* LF 는 자료 이름으로 검색을 한다. 예를 들어, v3 로 시작하는 자료를 찾고자 하면 "LF v3*" 를 입력한다.

* LI 의 사용법은 "LI 사용자ID"이며 이것은 사용자ID를 갖는 사용자가 공개자료 실에 올려 놓은 자료만을 찾아준다.

* LF 의 사용법은 "LF 사용자명" 이며 이것은 사용자명을 갖는 사용자가 공개자 료실에 올려 놓은 자료만을 찾아준다.

* [그림 21.11]은 LT 명령을 사용하여 v3와 관련된 자료를 찾는 과정을 나타낸 다.

* 필요한 자료를 찾은 후 해당 자료를 BBS 서버에서 자신의 컴퓨터로 전달 받 을 수 있으며 이러한 과정을 다운로딩(downloading)이라 한다. 이와 반대로, 사 용자 컴퓨터에서 BBS 서버로 공개자료를 전달하는 과정을 업로딩(uploading) 이라 한다.

* 다운로딩을 하기 위해서는 BBS 서버와 자신의 컴퓨터간에 자료 전달에 사용 될 프로토콜을 일치시켜야 하는 과정이 필요로 된다. [그림 21.12]

* [그림 21.13]은 다운로딩 과정을 나타낸다.