VLBI(초장기선 전파간섭계) 관측에서는 수백 ~ 수천 km 떨어진 망원경들이 같은 천체를 동시에 관측하고, 각자 기록한 데이터를 한곳(상관센터)에 모아야 상관처리를 할 수 있습니다. 문제는 그 양입니다. 망원경 한 대가 하룻밤에 수십 TB(테라바이트)를 만들고, 파일 하나가 수백 GB ~ 수 TB에 이릅니다. 관측 준비와 관측데이터 저장에 이어, 이 장에서는 이렇게 큰 데이터를 빠르게, 빠짐없이, 틀림없이 보내고 받기 위해 전파천문학에서 쓰는 방법을 알아봅니다.
전파망원경의 디지털 장비는 받은 전파를 1초에 수십억 번 표본화하고, 표본 하나를 2비트로 기록합니다. 그래서 데이터는 '파일 크기'보다 초당 몇 비트(bps)로 쏟아지는 흐름으로 생각하는 편이 쉽습니다. 관측 시간을 곱하면 쌓이는 양이 나옵니다.
🧮 실제 값으로 계산해 보기 — 16 Gbps로 8시간 관측한 망원경 한 대의 데이터
상황: KVN 망원경 한 대가 1초에 16 Gbit(160억 비트)씩 기록하며 하룻밤 8시간 관측했습니다. 이 데이터를 상관센터로 보내려면 얼마나 걸릴까요?
| 회선 속도 (실제로 다 쓴다고 할 때) | 57.6 TB를 보내는 시간 | 비교 |
|---|---|---|
| 1 Gbps | 약 128시간 (5.3일) | 관측보다 16배 오래 걸림 |
| 10 Gbps | 약 12.8시간 | 관측 시간의 1.6배 |
| 100 Gbps | 약 1.3시간 | 관측보다 빠름 — 실시간 전송도 가능 |
📐 수학 도움말: G(기가)는 \(10^9\) = 10억, T(테라)는 \(10^{12}\) = 1조입니다. \(5.76\times10^{13}\)은 5.76에 10을 13번 곱한 57조 6천억입니다. 1바이트 = 8비트라서 비트를 바이트로 바꿀 때는 8로 나누고, 거꾸로는 8을 곱합니다.
📘 기초 수학 참고: 큰 수·작은 수와 단위 · 2진수와 비트
👉 정리: 데이터 양은 '기록 속도 × 관측 시간 ÷ 8'이고, 전송 시간은 이 양을 회선 속도로 나눈 값입니다. 회선이 기록 속도보다 빨라야 관측을 따라잡을 수 있습니다.
| 방법 | 좋은 점 | 아쉬운 점 | 주로 쓰는 경우 |
|---|---|---|---|
| Ⓐ 디스크 운송 | 한 번에 수백 TB ~ PB를 옮김. 회선이 없어도 됨 | 며칠 ~ 몇 주 걸림, 분실·파손 위험, 디스크를 다시 돌려받아야 함 | 밀리미터파 초광대역 관측, 오지의 망원경 |
| Ⓑ 관측 후 파일 전송 | 디스크를 옮기지 않아 빠르고 안전, 잘못 받은 부분만 다시 받을 수 있음 | 고속 연구망과 전송 기술이 필요 | 오늘날 대부분의 VLBI 관측 |
| Ⓒ 실시간 e-VLBI | 관측 중에 바로 결과 확인, 기록 장치 불필요, 급히 변하는 천체 관측에 유리 | 관측 내내 회선이 기록 속도만큼 비어 있어야 하고, 놓친 데이터는 되찾을 수 없음 | 빠른 대응이 필요한 관측, 장비 점검용 시험 관측 |
인터넷에서 파일을 보낼 때는 보통 TCP라는 규약을 씁니다(OSI 7계층의 전송 계층, 인터넷과패킷 편 참고). TCP는 보낸 데이터를 받는 쪽이 "잘 받았다(확인 응답)"고 알려 줘야 다음 데이터를 계속 보냅니다. 그래서 확인 응답을 기다리지 않고 미리 보낼 수 있는 양(창 크기, window)과 데이터가 갔다 오는 시간(왕복 지연, RTT)이 속도를 정합니다. 한국에서 유럽까지 빛의 속도로 광섬유를 오가는 데만 0.2초 가까이 걸리므로, 거리가 멀수록 '길 위에 떠 있어야 하는 데이터'가 많아집니다.
또 TCP는 패킷이 하나라도 사라지면 '길이 막혔다'고 보고 속도를 절반으로 확 줄인 뒤 천천히 다시 올립니다. 거리가 멀면 다시 올라가는 데 오래 걸리므로, 아주 적은 손실도 속도를 크게 떨어뜨립니다. 이를 어림하는 식이 있습니다(MSS: 패킷 하나에 담는 데이터 크기, \(p\): 패킷 손실률).
🧮 실제 값으로 계산해 보기 — RTT 150 ms인 10 Gbps 국제 회선
상황: KVN 관측 데이터를 10 Gbps 국제 회선으로 미국의 상관센터에 보낸다고 해 봅시다. 데이터가 갔다가 확인 응답이 돌아오는 데(RTT) 0.15초가 걸립니다.
📐 수학 도움말: ms(밀리초)는 1,000분의 1초라서 150 ms = 0.15초입니다. 64 KB 창은 실제로 최대 65,535바이트(2¹⁶ − 1)이고, 1바이트 = 8비트입니다.
\(10^{-5}\)은 10만분의 1(0.00001)이고, \(\sqrt{10^{-5}} \approx 0.00316\)이므로 \(1.22 \div 0.00316 \approx 386\)입니다.
📘 기초 수학 참고: 큰 수·작은 수와 단위 · 2진수와 비트
👉 정리: 먼 거리에서 전송이 느린 원인은 회선 속도가 아니라 거리 × 손실입니다. 그래서 아래 ④의 기술로 이를 극복합니다.
| 기술 | 어떻게 빨라지나 | 전파천문에서의 예 |
|---|---|---|
| 창 크기 키우기(튜닝) | 운영체제의 TCP 버퍼를 대역폭-지연 곱 이상으로 늘려 확인 응답을 기다리는 시간을 없앰 | 데이터 전송 전용 서버의 기본 설정 |
| 병렬 스트림 | TCP 연결 여러 개(예: 8 ~ 32개)를 동시에 열어 각각의 한계를 더함. 하나가 손실로 느려져도 나머지가 계속 달림 | bbcp, GridFTP, 여러 파일 동시 전송 |
| UDP 기반 전송 | 확인을 기다리지 않고 정해진 속도로 계속 보낸 뒤, 빠진 조각만 따로 다시 요청. 손실이 있어도 속도를 절반으로 줄이지 않음 | Tsunami, UDT, VLBI 전용 도구(jive5ab, etransfer) |
| 점보 프레임 | 패킷 하나의 크기를 1,500 → 9,000 바이트로 키워 처리 횟수를 줄이고 TCP 회복을 빠르게 함 | 연구망 구간 전체를 9,000 바이트로 맞춤(네트워크 카드, 네트워크장비 편 참고) |
| 전용 전송 서버·연구망 | 방화벽 병목을 피한 데이터 전송 전용 서버(DTN)를 두고, 일반 인터넷 대신 손실이 적은 고속 연구망 사용 | 국내 KREONET 같은 연구망, 국가 간 연구망 연결(네트워크아키텍처 편 참고) |
👉 거리(RTT), 패킷 손실, 전송 방식, 병렬 스트림 수를 바꾸며 무엇이 병목인지 찾아보세요!
| 실제 전송 속도 | 회선 사용률 | 가장 좁은 병목 | 전송 시간 | 항공 운송(약 3일)과 비교 |
|---|---|---|---|---|
TCP는 '창 크기 ÷ RTT'와 손실 어림식 중 작은 값을 한 줄기의 한계로 보고 스트림 수만큼 더했고, UDP 기반 전송은 손실된 만큼만 다시 보낸다고 가정했습니다. 실제 속도는 서버 성능, 중간 장비, 다른 사용자의 트래픽에 따라 달라지는 어림값입니다. 막대는 로그 눈금(한 칸이 10배)입니다.
수 TB짜리 파일을 몇 시간 동안 보내다 보면 중간에 회선이 끊기거나, 드물게 비트 몇 개가 바뀌어 도착하기도 합니다. 그래서 큰 파일은 일정한 크기의 조각(chunk)으로 나누어 보냅니다. 보내는 쪽은 조각마다 체크섬(내용으로 계산한 짧은 지문, 예: MD5·SHA-256)을 함께 보내고, 받는 쪽은 받은 내용으로 다시 계산해 지문이 같은지 확인합니다. 다르면 그 조각만 다시 받고, 회선이 끊겨도 받은 조각은 그대로 두고 이어받기를 합니다. 클라우드 저장소(S3 방식 객체 저장소)의 '여러 조각 올리기(multipart upload)'도 같은 원리입니다.
👉 1 TB 파일을 '통째로' 보낼 때와 '조각 + 체크섬 + 이어받기'로 보낼 때를 비교해 보세요!
10 Gbps 회선, RTT 150 ms에서 창 크기를 튜닝한 TCP 한 줄기가 약 1.2 Gbps를 낸다고 가정한 모형입니다(조각 하나 = 10 GB). '통째로' 방식은 한 줄기로 보내며, 어느 한 부분이라도 틀리면 파일 전체를 다시 보냅니다. 시간은 실제보다 빠르게 흐릅니다.
🧮 실제 값으로 계산해 보기 — 통째로 보내면 왜 끝나지 않을까?
상황: 1 TB 관측 파일을 100조각(조각 하나 10 GB)으로 나누어 보내는데, 조각 하나가 틀려 도착할 확률이 3 %라고 해 봅시다.
📐 수학 도움말: 여러 번 연속으로 성공할 확률은 한 번 성공할 확률을 그 횟수만큼 곱합니다. 동전 앞면이 2번 연속 나올 확률은 \(0.5 \times 0.5 = 0.25\)이고,
97 % 성공을 100번 연속 해내려면 0.97을 100번 곱해 \(0.97^{100}\)이 됩니다. 1 TB는 100만 MB이고, 1바이트 = 8비트라서 200 MB/s는 1.6 Gbps입니다.
📘 기초 수학 참고: 분수·비율·비례 · 2진수와 비트 · 확률과 통계
👉 정리: 큰 파일은 하나라도 틀릴 확률이 매우 높아서, 조각으로 나누어 틀린 조각만 다시 받는 방법이 훨씬 빠르고 확실합니다.
실시간 e-VLBI는 데이터를 파일로 만들지 않고 VDIF라는 VLBI 공통 형식의 작은 묶음(프레임)으로 잘라, 각 프레임에 관측 시각과 순번을 붙여 UDP로 곧바로 상관기에 보냅니다. 파일 전송과 달리 놓친 프레임을 다시 요청하지 않습니다. 망원경 데이터는 대부분 잡음처럼 보이는 신호여서, 프레임 몇 개가 빠지면 그 자리를 비워 두고 계산해도 감도가 아주 조금 떨어질 뿐 결과는 거의 같기 때문입니다. 대신 상관기는 프레임의 시각과 순번을 보고 늦게 오거나 순서가 바뀐 것을 제자리에 맞춥니다.
🧮 실제 값으로 계산해 보기 — 1초에 몇 개의 패킷이 날아갈까?
상황: KVN 망원경이 8 Gbps 데이터를 실시간 e-VLBI로 상관기에 흘려보낸다고 해 봅시다. 프레임 하나에는 데이터 8,000 바이트를 담습니다.
📐 수학 도움말: G(기가)는 \(10^9\) = 10억이라서 8 Gbps는 1초에 80억 비트입니다. 1바이트 = 8비트입니다. \(\sqrt{\ }\)(제곱근)는 "두 번 곱해서 그 수가 되는 값"으로, 1보다 조금 작은 수의 제곱근은 1에 더 가까워집니다(\(\sqrt{0.999} \approx 0.9995\)).
📘 기초 수학 참고: 큰 수·작은 수와 단위 · 2진수와 비트
👉 정리: 실시간 e-VLBI는 1초에 십만 개가 넘는 패킷을 보내지만, 몇 개를 잃어도 결과는 거의 같아서 놓친 프레임을 다시 요청하지 않습니다.
VLBI 관측소와 상관센터에서 가장 널리 쓰는 전송 도구는 유럽 VLBI 합동연구소(JIVE)가 만든 jive5ab과, 함께 배포되는 스크립트 m5copy입니다. jive5ab은 Mark5·Mark6 기록기, FlexBuff(일반 서버형 기록기), 보통의 리눅스 서버에서 실행되어 제어 포트(기본 2620)로 명령을 기다리고, 데이터는 따로 데이터 포트(기본 2630)로 주고받습니다. m5copy는 보내는 곳(SRC)과 받는 곳(DST)을 주소 형식으로 적으면 양쪽 jive5ab에 명령을 보내 복사를 진행시키는 '지휘자' 역할을 합니다. 그래서 m5copy를 실행하는 컴퓨터는 보내는 쪽도 받는 쪽도 아닌 제3의 제어용 컴퓨터여도 됩니다.
| 주소 형식 | 가리키는 것 | 쓰는 곳 |
|---|---|---|
file://호스트/경로 | 보통 디스크의 파일 또는 디렉터리(끝에 /를 붙이면 디렉터리) | SRC, DST |
mk6://호스트/모듈/기록이름 | Mark6 디스크 모듈에 기록된 관측(jive5ab 2.6.1부터 SRC 가능) | SRC, DST |
vbs://호스트/기록이름 | FlexBuff에 여러 디스크로 흩어 기록된 관측 | SRC, DST |
mk5://호스트/스캔 | Mark5 디스크 팩의 스캔(번호 범위 1-10 같은 지정 가능) | SRC, DST |
etd://호스트/경로 | 받는 쪽에서 실행 중인 e-transfer 전송 서버 | DST만 |
in://, mem:// | 기록 장치로 들어오는 실시간 데이터, jive5ab의 메모리 버퍼 | SRC만 |
| 옵션 | 하는 일 | 이 장의 원리와 연결 |
|---|---|---|
-udt | 기본 TCP 대신 UDT(UDP 기반 전송 규약)로 보냄 | ④ UDP 기반 전송 — 먼 거리·손실에 강함 |
-r 속도 | 보내는 속도를 제한(예: 2G = 초당 2기가비트). UDT에서만 효과 | 회선을 다른 관측소와 나눠 쓸 때 몫을 정함 |
-m MTU | 패킷 크기(예: 9000). UDT와 실시간 전송에서만 사용 | ④ 점보 프레임 |
-n 개수 | FlexBuff → FlexBuff 복사에서 조각을 병렬로 보냄 | ④ 병렬 스트림, ⑤ 조각 전송 |
--resume | 받는 쪽 파일이 원본보다 짧으면 모자란 뒷부분만 이어 보냄 | ⑤ 이어받기 (체크섬 확인은 따로 해야 함) |
--ignore-existing | 받는 쪽에 이미 있는 파일은 건너뜀(있는 파일은 완전하다고 가정) | 여러 파일 전송을 다시 시작할 때 |
--allow-overwrite | 받는 쪽 파일을 모두 덮어씀(처음부터 다시) | ⑤의 '통째로 다시' — 신중히 사용 |
-rt | in://, mem://에서 순번을 붙인 UDP로 실시간 전송 | ⑥ 실시간 e-VLBI |
m5copy는 명령만 내리는 '지휘자'라서 혼자서는 아무것도 옮기지 못합니다. 데이터를 보내는 서버와 받는 서버 양쪽에 jive5ab이 설치되어 항상 실행 중(agent)이어야 m5copy의 명령을 받아 서로 데이터를 주고받습니다. 받는 쪽은 jive5ab 대신 e-transfer 데몬(etd)을 띄워 둘 수도 있습니다.
| 컴퓨터 | 설치할 것 | 실행 방식 | 열어 둘 포트 (기본값) |
|---|---|---|---|
| 관측소 서버 (보내는 쪽) | jive5ab | 항상 실행되는 agent(systemd 서비스 등) | 2620/TCP 제어 — 제어용 컴퓨터에서만 2630 데이터 — 상대 서버에서만(TCP, -udt면 UDP) |
| 상관센터 저장 서버 (받는 쪽) | jive5ab, 또는 e-transfer 데몬(etd) | 항상 실행되는 agent | jive5ab: 2620/TCP, 2630 etd: 4004/TCP 명령, 8008/UDP(UDT) 데이터 |
| 제어용 컴퓨터 | m5copy (파이썬 + six 모듈) | 전송할 때만 실행 | 열 필요 없음(나가는 연결만) |
리눅스(Debian·Ubuntu 계열) 서버를 예로 든 설치 순서입니다. 명령과 옵션은 jive5ab·e-transfer 공식 저장소의 README와 문서를 바탕으로 정리했으며, 버전·경로·사용자 이름·IP 주소는 예시입니다. Mark5처럼 StreamStor 카드가 있는 장비는 빌드 옵션이 다르므로 공식 문서를 따르세요.
예제 0-1 — jive5ab 빌드와 설치 (보내는 서버·받는 서버 모두)
# 빌드 도구와 m5copy가 쓰는 파이썬 모듈 설치
$ sudo apt install git cmake g++ make python3 python3-six netcat-openbsd
# 소스 받기 → 별도 폴더에서 cmake로 설정 → 빌드
# StreamStor 카드가 없는 일반 서버·FlexBuff·Mark6는 -DSSAPI_ROOT=nossapi 가 꼭 필요
$ git clone https://github.com/jive-vlbi/jive5ab.git
$ mkdir jive5ab-build && cd jive5ab-build
$ cmake -DSSAPI_ROOT=nossapi -DCMAKE_INSTALL_PREFIX=/opt/jive5ab ../jive5ab
$ make -j 8
$ sudo make install
# → /opt/jive5ab/bin/jive5ab-<버전>-64bit-Release 와 m5copy 등의 스크립트가 설치됨
# 버전이 붙은 이름 대신 쓰기 쉽도록 고정 이름 링크 만들기
$ sudo ln -sf /opt/jive5ab/bin/jive5ab-*-64bit-Release /opt/jive5ab/bin/jive5ab
# 시험 실행: 제어 포트 2620(기본, -p로 변경)에서 명령을 기다림. -m은 화면 메시지 수준(0~3)
$ /opt/jive5ab/bin/jive5ab -m 3
예제 0-2 — 부팅 때 자동으로 뜨는 agent로 등록 (systemd)
# /etc/systemd/system/jive5ab.service (예시 — 데이터 폴더에 쓸 수 있는 전용 사용자 vlbi로 실행)
[Unit]
Description=jive5ab VLBI data transfer agent
After=network-online.target
Wants=network-online.target
[Service]
User=vlbi
WorkingDirectory=/data
ExecStart=/opt/jive5ab/bin/jive5ab -m 1 -p 2620
Restart=on-failure
[Install]
WantedBy=multi-user.target
# 등록하고 바로 시작, 상태 확인
$ sudo systemctl daemon-reload
$ sudo systemctl enable --now jive5ab
$ systemctl status jive5ab
예제 0-3 — 방화벽: 필요한 상대에게만 포트 열기 (ufw 예시)
# 제어 포트는 m5copy를 실행하는 제어용 컴퓨터에서만
$ sudo ufw allow from 10.0.0.5 to any port 2620 proto tcp
# 데이터 포트는 데이터를 주고받는 상대 서버에서만 (TCP, 그리고 -udt를 쓰면 UDP도)
$ sudo ufw allow from 192.168.100.10 to any port 2630 proto tcp
$ sudo ufw allow from 192.168.100.10 to any port 2630 proto udp
예제 0-4 — (선택) 받는 쪽에 e-transfer 데몬(etd) 설치
# C++11 컴파일러가 필요. 빌드 결과 etd(데몬)와 etc(클라이언트)가 <arch>-native-opt 폴더에 생김
$ git clone https://github.com/jive-vlbi/etransfer.git
$ cd etransfer && make -j 8
# 명령 채널(TCP 4004)과 데이터 채널(UDT 8008)을 지정해 실행 — 포트는 기본값이지만 규약은 꼭 적어야 함
$ ./Linux-x86_64-native-opt/etd --command tcp://:4004 --data udt://:8008
# 보내는 쪽 jive5ab이 etd:// 로 보내려면, e-transfer 소스 위치를 알려 주고 다시 빌드
$ cmake -DSSAPI_ROOT=nossapi -DETRANSFER_ROOT=/path/to/etransfer ../jive5ab && make && sudo make install
python으로 되어 있습니다. python 명령이 없는 최신 리눅스에서는 python3 /opt/jive5ab/bin/m5copy …처럼 실행하거나 python-is-python3 패키지를 설치합니다.--acl 옵션으로 읽기·쓰기 경로를 제한할 수 있습니다.-6 또는 -f mk6 옵션을 더합니다.
아래 호스트 이름(stn-kys.example.org: 관측소 서버, corr-store.example.org: 상관센터 저장소)과 IP 주소, 경로, 파일 이름은 설명용 예시입니다.
실제 값은 각 기관의 장비 구성과 관측 코드에 맞게 바꿔야 합니다. 명령은 jive5ab 저장소에 들어 있는 m5copy의 사용법 설명을 바탕으로 정리했습니다.
예제 1 — 전송 전에 양쪽 agent가 살아 있는지 확인하기
# 각 서버에서: 예제 0-2로 등록한 agent가 실행 중인지
$ systemctl is-active jive5ab
active
# 제어용 컴퓨터에서: 양쪽 jive5ab이 제어 포트 2620으로 대답하는지
$ echo "version?;" | nc stn-kys.example.org 2620
!version? 0 : jive5ab : ... ; # ← 버전 정보가 돌아오면 준비 완료
$ echo "version?;" | nc corr-store.example.org 2620
!version? 0 : jive5ab : ... ;
# 대답이 없으면: agent가 꺼져 있거나, 방화벽(예제 0-3)이 제어용 컴퓨터를 막고 있는 것
예제 2 — 관측 파일을 상관센터로 보내기 (기본 TCP)
# 관측소 서버에서 실행: 로컬 파일 여러 개 → 상관센터의 디렉터리(끝의 / 필수)
# 와일드카드(*)는 m5copy를 실행하는 그 컴퓨터의 파일에만 쓸 수 있음
$ m5copy file:///data/kv26a/kv26a_kys_no00*.vdif \
file://corr-store.example.org/data/kv26a/
예제 3 — 먼 거리 고속 전송: UDT + 점보 프레임 + 속도 제한
# UDT로 보내되 회선의 몫을 초당 2기가비트로 제한하고, 9000 바이트 패킷 사용
# (회선의 모든 구간이 점보 프레임을 지원해야 -m 9000이 효과가 있음)
$ m5copy -udt -r 2G -m 9000 \
file:///data/kv26a/kv26a_kys_no00*.vdif \
file://corr-store.example.org/data/kv26a/
예제 4 — 끊긴 전송 이어받기와 체크섬 확인
# 똑같은 명령에 --resume만 붙여 다시 실행: 덜 받은 파일의 뒷부분만 이어서 보냄
$ m5copy -udt -r 2G -m 9000 \
file:///data/kv26a/kv26a_kys_no00*.vdif \
file://corr-store.example.org/data/kv26a/ --resume
# --resume은 이어 붙이기만 하고 내용 일치(MD5)는 확인하지 않으므로, 양쪽에서 지문을 비교
stn-kys$ cd /data/kv26a && sha256sum kv26a_kys_no00*.vdif > kys.sha256
corr-store$ cd /data/kv26a && sha256sum -c kys.sha256 # kys.sha256 파일을 옮겨 와서 확인
kv26a_kys_no0001.vdif: OK
kv26a_kys_no0002.vdif: OK # 하나라도 FAILED면 그 파일만 다시
예제 5 — 제어망과 데이터망을 나누어 보내기
# 받는 쪽 주소를 '제어 IP::데이터 IP' 형식으로 적으면,
# 명령은 일반 제어망(10.0.0.20)으로, 데이터는 고속 연구망(192.168.100.20)으로 흐름
$ m5copy file:///data/kv26a/kv26a_kys_no00*.vdif \
file://10.0.0.20::192.168.100.20/data/kv26a/
예제 6 — 기록 장치에서 바로 보내기 (Mark6, FlexBuff, e-transfer)
# Mark6의 1번 슬롯 모듈에 기록된 관측을 상관센터 디렉터리로 (jive5ab 2.6.1 이상)
$ m5copy mk6://stn-kys.example.org/1/kv26a_kys_no0001 \
file://corr-store.example.org/data/kv26a/
# FlexBuff → FlexBuff: 8개 조각을 병렬로 보내는 동기화(rsync와 비슷)
$ m5copy -n 8 vbs://stn-kys.example.org/kv26a_kys_no0001 \
vbs://corr-store.example.org/
# 받는 쪽에 e-transfer 서버(etd)가 떠 있으면: 규약·포트는 둘이 알아서 정하고,
# --resume으로 덜 받은 부분만 마저 채움
$ m5copy mk6://stn-kys.example.org/1/kv26a_kys_no0001 \
etd://corr-store.example.org/data/kv26a/ --resume
-udt, 패킷 크기 -m 9000, 받는 쪽 디스크 순으로 바꿔 보며 어느 것이 효과가 있는지 확인합니다.-r로 각자의 몫을 정해, 한 곳이 회선을 독차지해 다른 전송이 끊기지 않게 합니다.🔗 네트워크 단원과 함께 보기
이 장의 내용은 대메뉴 「네트워크」의 각 단원과 이어집니다. 각 단원 끝에도 대용량 관측 데이터 전송과 연결된 내용을 보태 두었습니다.
| 네트워크 단원 | 이 장과 이어지는 내용 | 이 장의 위치 |
|---|---|---|
| 신호 전송 시스템 | 안테나 → 기록기 → 상관센터 구간별 신호와 매체, e-VLBI | ②, ⑥ |
| 유선통신 | 57.6 TB를 무선과 유선으로 보낼 때의 차이, 매체·장비·규약 | ① |
| 전기신호 전송 | 빠를수록 짧아지는 구리선, 전선 위에 떠 있는 비트 | ③ |
| 광통신 | 광섬유 속 빛의 지연(한국 ↔ 유럽 왕복 약 0.2초), 파장 분할 다중화 | ③ |
| 네트워크 카드 | 점보 프레임으로 처리할 프레임 수 줄이기 | ④, ⑥ |
| 유선 매체와 규격 | 경로에서 가장 느린 구간이 전체 속도를 정함 | ④ 계산기 |
| 네트워크장비 | 스위치 버퍼, 경로 전체의 MTU, 방화벽 처리 한계, 디스크 속도 | ④, ⑤ |
| 네트워크아키텍처 | 연구망(KREONET 등), 데이터 전송 전용 서버(과학 DMZ), agent와 클라이언트 | ④, ⑦ |
| 인터넷과패킷 | 57.6 TB = 패킷 약 64억 개, 잃은 것만 다시 보내기 | ③, ⑤ |
| OSI 7계층 | 계층별 전송 기술(L1 광섬유 ~ L7 jive5ab·UDT·VDIF) | ④, ⑦ |
| 통신보안 | 인증 없는 제어 포트 보호, 받기·올리기 권한 분리, 체크섬 | ⑦ |
file://·mk6://·vbs://·etd:// 사이를 옮기며, -udt·-m·-r·-n·--resume으로 이 장의 원리를 그대로 적용합니다. 전송 뒤에는 체크섬으로 직접 확인합니다.🧑🏫 선생님·학부모님을 위한 설명 도움말
원리 자세히 보기
대용량 전송 기술이 발전해 온 역사
| 시기 | 사건 | 의미 |
|---|---|---|
| 1967년 | 첫 VLBI 관측 | 망원경마다 자기 테이프에 기록하고, 테이프를 직접 들고 모아 비교했습니다. 대용량 전송의 출발은 '운송'이었습니다. |
| 1988년 | TCP 혼잡 제어 | 인터넷이 붐벼 마비되는 일을 막으려고, 손실이 생기면 속도를 줄이는 TCP 혼잡 제어가 도입되었습니다. 오늘날 먼 거리 전송이 느려지는 원인이기도 합니다. |
| 1992년 | TCP 창 크기 확장 | 원래 최대 64 KB이던 TCP 창을 1 GB까지 늘리는 규약이 정해져, 먼 거리 고속 회선을 쓸 길이 열렸습니다. |
| 2000년대 초 | 병렬·UDP 기반 전송 도구 | GridFTP, bbcp, Tsunami, UDT처럼 과학 데이터를 위한 고속 전송 도구가 나와, 전파천문을 포함한 여러 분야에서 쓰이기 시작했습니다. |
| 2004년 | e-VLBI 실시간 관측 | 유럽 VLBI 관측망이 연구망으로 망원경을 연결해 실시간 상관처리를 하는 과학 관측을 해냈습니다. |
| 2009년 | VDIF 표준 | 나라와 장비마다 달랐던 VLBI 데이터 형식을 하나로 맞춘 공통 형식이 정해져, 네트워크로 데이터를 주고받기가 쉬워졌습니다. |
| 2010년대 | 100 Gbps 연구망과 전용 전송 서버 | 대륙 사이 연구망이 100 Gbps로 빨라지고, 방화벽 병목을 피한 데이터 전송 전용 구간(과학 DMZ) 개념이 퍼졌습니다. |
| 2017 ~ 2019년 | EHT 데이터 모으기 | 사건의 지평선 망원경은 수 PB의 데이터를 디스크로 운송했고, 남극 망원경의 디스크는 겨울이 끝나 비행기가 뜰 수 있을 때까지 기다려야 했습니다. 지금도 운송과 전송을 함께 씁니다. |
비유로 설명하기
자주 하는 오해
함께 해 볼 질문·활동
📚 참고 자료 및 출처
본 교육자료는 Anthropic(Claude) 및 OpenAI(ChatGPT)를 활용하여 제작하였으며, 제작자가 내용을 검토·편집하였습니다. 주요 참고자료와 출처는 각 페이지의 「참고 자료 및 출처」에 명시하였습니다. 출처가 별도로 표기되지 않은 페이지와 참고자료에 포함되지 않은 내용은 제작자가 직접 작성하거나 정리한 것입니다. 내용에 오류가 있거나 수정이 필요한 사항을 발견하시면 kvnsite@kasi.re.kr로 알려 주시기 바랍니다.