2장. 데이터 통신
데이터 통신망 형태 점대점(point-to-point) 통신망(communication network) 전화망(PSTN: Public Switched Telephone Network) LAN(Local Area Network) WAN(Wide Area Network)
점대점(point-to-point) 통신 형태 두 디바이스를 직접 연결 비실용적 [그림 2.1] 단점 전용 회선을 설치하려면 상당한 비용 소요
통신망(communication network) 접속형태 [그림 2.2] 전화망 [그림 2.3]과 같이 모뎀과 전화망을 통하여 통신 LAN(Local Area Network) 한 건물 또는 사무실 규모의 통신 [그림 2.4] WAN(Wide Area Network) 컴퓨터가 도시 또는 국가간의 통신 대표적인 예: Internet
통신코드 ASCII American Standard Code for Information Interchange 각 코드는 출력 가능한 코드와 그렇지 않은 코드로 분류 출력 가능한 코드는 문자, 숫자, 콤마, 대괄호, ?와 같은 특수 종료문자 0A와 0D는 출력 불가능 코드로서 line feed와 carriage return [그림 2.5]
EBCDIC 코드 Extended Binary Coded Decimal Interchange Code 두 번째로 널리 쓰이는 코드 이는 IBM 메인 프레임과 주변장치에서 주로 사용 EBCDIC는 8 비트 코드로 구성되며 256 문자를 표현 [그림 2.6]
전송 모드 직렬과 병렬 전송(Serial and Parallel Transfer) 병렬 전송 병렬전송은 일련의 비트들이 각 비트를 위해 여러 라인을 사용하여 동시에 전송 이러한 병렬 전송은 두 장치들간의 거리가 짧은 경우에 일반적으로 사용 예를 들어 PC에서 프린터로 전송하는 것은 대표적인 병렬 전송 가장 보편적인 예는 컴퓨터와 주변 장치들간의 연결 병렬 전송은 긴 거리일 경우 장점을 상실
직렬전송 직렬 전송은 단지 하나의 라인을 사용하여 하나씩 모든 비트를 보냄 직렬 전송은 단지 하나의 라인을 사용하여 하나씩 모든 비트를 보냄 긴 거리일 경우 병렬 전송에 비해 적은 비용이 들고 신뢰성 증가 그러나 비트를 하나씩 보내게 되므로 병렬전송보다 더 느리다. [그림 2.7]
직렬 전송과 병렬 전송
동기식과 비동기식 전송 비동기식 전송 [그림 2.8] 비동기식 전송은 비트들을 작은 블록으로 나누어 독립적으로 보내며 각 블록의 시작에서 재동기화를 하는 방법 수신자는 블록이 언제 도착할지를 알지 못한다. 예: 터미널과 컴퓨터사이, 컴퓨터와 라인프린터 높은 오버헤드를 가지고 있음
동기식 전송 동기식 전송은 통신을 좀더 효율적으로 하기 위한 수단 동기식 전송은 일반적으로 비동기식 전송에 비해서 더 빠름 문자나 비트들의 블록이 시작 또는 정지 비트 없이 전송 많은 문자들은 개별적으로 보내는 것 대신에 함께 그룹화 되어 전체적으로 전송( 데이터 프레임 또는 프레임이라고 함) 데이터 프레임의 정확한 구성은 프로토콜에 따라 다름 구성 방식 비트 지향 방식: 비트 단위로 구성 문자 지향 방식: 문자 단위로 구성 [그림 2.9]
프레임 구조 프레임 시작과 끝의 구분 문자 지향 방식 비트 지향 방식 특정한 제어 문자 사용. 필요시 문자 스터핑 방식 이용 특정한 비트 패턴 사용. 필요시 비트 스터핑 방식 이용. 예: HDLC
문자-지향(character-oriented)전송인 경우 프레임의 처음 부분은 수신기에 프레임이 도착하고 있다는 것을 알려주는 SYN 문자를 가짐 제어(control) 필드 프레임이 만들어진 시작 주소 프레임이 도착할 목적지 주소 데이터 바이트들의 크기 순서를 나타내는 숫자 데이터 필드는 실제로 보내지는 정보 프레임의 마지막 부분은 프레임의 끝을 나타내는 정보(ETX)
비트-지향 (bit-oriented) 전송인 경우 데이터 블록은 비트들의 연속으로 간주되며 데이터는 물론 제어정보도 8비트 문자 단위로 고려할 필요가 없음 문자-지향 전송처럼 특정 비트 패턴이 블록의 시작을 가리키며 이 특정 패턴은 8비트 길이이며 프래그(flag)라고 함 같은 프래그가 프레임의 맨 끝에서 사용
동기 전송과 비동기 전송의 비교 비동기 전송 동기 전송 저속 전송 오버헤드 많음 비용이 적음 고속 전송 오버헤드 적음 비용이 많음
전이중, 반이중, 단방향 전송 전이중(Full duplex) 반이중(Half duplex) 단방향(Simplex) 양쪽의 교신자가 동시에 신호의 전송 가능 전화 반이중(Half duplex) 양쪽 방향에서 보내고 받을 수 있지만 그것은 교대로 전송 무전기 단방향(Simplex) 단 한 방향으로만 신호 전송이 가능한 형태 일반 TV 방송
교환 방식 N개의 통신 장비를 직접 연결한다고 할 때 N(N-1)/2개의 연결선이 필요 해결방안으로 각각의 장비들은 통신망에 연결 통신망를 효과적으로 운영하기 위해 교환 기술(Switching Technology)을 사용 네트워크 내에서 교환기의 역할을 수행하는 장치를 노드(node) 상호간의 통신을 원하는 장비들을 스테이션(Station) 예: 컴퓨터, 전화기, 터미널 등의 통신 장비 [그림 2.10]
교환 기술 회선 교환 (Circuit Switching) 메시지 교환 (Message Switching) 패킷 교환 (Packet Switching)
회선 교환 공중 전화 망에서 사용 데이터 전송 과정 회선 설립 과정 회선 해제 과정 단점 : 연결을 설정하여 해제를 하기까지 채널의 대역폭을 독점 장점 : 신뢰성 있는 데이터 전송, 일정한 데이터 전송률로 전송 [그림 2.11]의 (a)
메시지 교환 [그림 2.11]의 (b) 회선 교환이 전화에 비교된다면 메시지 교환은 편지에 비교 데이터를 메시지(Message)라는 논리적인 단위로 나눔 받아들인 메시지를 저장한 후 경로 상의 또 다른 노드로 전송(Store-and-Forward)
장점 단점 한 개의 메시지를 복사하여 여러 목적지로 보낼 수 있다 메시지의 우선 순위를 정해 필요한 메시지를 먼저 전송 시킬 수 있다. 또한 메시지를 단위로 오류 제어가 가능 단점 메시지가 노드에 잠시 저장되기 때문에 그만큼의 지연이 발생 실시간을 요하는 통신에서는 사용할 수가 없다.
패킷 교환 회선 교환과 메시지 교환의 장점을 취하면서 만들어진 교환 방식 [그림 2.11]의 © 패킷이라는 단위로 교환을 수행 패킷은 정해진 형식에 맞추어진 데이터 단위 패킷은 보통 128 ~ 4096 바이트 크기 패킷 교환 방식에서는 하나의 물리적인 회선을 여러 개의 논리적인 채널(virtual circuit)로 공유할 수 있는 경제성을 가짐
패킷 교환의 두 가지 방식 가상 회선(Virtual Circuit) 데이타그램(Datagram) 과정 패킷 교환의 두 가지 방식 가상 회선(Virtual Circuit) 과정 연결 설정, 데이타 전송, 연결 해제 특징 논리적인 가상 회선을 설정 하나의 연결내에 모든 패킷이 동일한 경로 많은 양의 데이타를 안정적으로 전송할 때 유리 데이타그램(Datagram) 데이타 전송(연결 설정 및 해제 과정이 없음) 모든 패킷이 각기 다른 경로를 갖을 수 있음(재정열) 적은 양의 데이타를 신속하게 보낼 때 유리
데이타그램 방식의 예 *컴퓨터 네트워크(안순신, 김은기 저 참조)
가상 회선 방식의 예 *컴퓨터 네트워크(안순신, 김은기 저 참조)
데이터그램 전송방법의 경우의 라우팅 데이블 : [그림 2.12] 가상회선 전송방법의 라우팅 테이블: [그림 2.13] 노드 C의 가상회선 번호변경: [그림 2.14]
The Network Core mesh of interconnected routers the fundamental question: how is data transferred through net? circuit switching: dedicated circuit per call: telephone net packet-switching: data sent thru net in discrete “chunks”
Circuit Switching End-end resources reserved for “call” link bandwidth, switch capacity dedicated resources: no sharing circuit-like (guaranteed) performance call setup required
Circuit Switching network resources (e.g., bandwidth) divided into “pieces” pieces allocated to calls resource piece idle if not used by owning call (no sharing) dividing link bandwidth into “pieces” frequency division time division
Bandwidth division into “pieces” Packet Switching each end-end data stream divided into packets user A, B packets share network resources each packet uses full link bandwidth resources used as needed, resource contention: aggregate resource demand can exceed amount available congestion: packets queue, wait for link use store and forward: packets move one hop at a time transmit over link wait turn at next link Bandwidth division into “pieces” Dedicated allocation Resource reservation
Packet Switching C A B D E 10 Mbs Ethernet statistical multiplexing queue of packets waiting for output link 45 Mbs D E
Packet Switching Packet-switching: store and forward behavior Message size: 7.5Mbits Packet size: 1.5Kbits Link trans. Rate:1.5Mbps Assume: no congestion, no propagation delay
Packet switching versus circuit switching Is packet switching a “slam dunk winner?” Great for bursty data resource sharing no call setup Excessive congestion: packet delay and loss protocols needed for reliable data transfer, congestion control Q: How to provide circuit-like behavior? bandwidth guarantees needed for audio/video apps still an unsolved problem
Packet-switched networks: routing Goal: move packets among routers from source to destination datagram network: destination address determines next hop routes may change during session analogy: driving, asking directions virtual circuit network: each packet carries tag (virtual circuit ID), tag determines next hop fixed path determined at call setup time, remains fixed thru call routers maintain per-call state
Delay in packet-switched networks packets experience delay on end-to-end path four sources of delay at each hop nodal processing: check bit errors determine output link queueing time waiting at output link for transmission depends on congestion level of router A B propagation transmission nodal processing queueing
Delay in packet-switched networks Transmission delay: R=link bandwidth (bps) L=packet length (bits) time to send bits into link = L/R Propagation delay: d = length of physical link s = propagation speed in medium (~2x108 m/sec) propagation delay = d/s Note: s and R are very different quantitites! A B propagation transmission nodal processing queueing
에러 검출, 교정(Detection, Correction) 기법 순방향 에러 정정(FEC : Forward Error Correction) 여분의 에러 정정 코드(많은 양의 추가 정보)를 포함시켜 전송 전파 지연이 큰 원거리 전송에서 사용
자동반복요청(ARQ : Automatic Repeat Request) 방식 에러가 있는지 없는지를 검출할 수 있을 정도의 적은 비트의 에러 검출 코드를 포함시켜 전송 정정은 재전송으로 해결 고 신뢰성을 확보하기 위해 사용
패리티 검사(parity check) 패리티 비트를 프레임의 각 단에 끝에 첨가 패리티 비트값은 단어의 1의 개수가 짝수(even parity)이거나 홀수(odd parity)가 되도록 선정 예: 송신기가 ASCII 코드 G(1110001)를 홀수 패리티를 사용해 전송한다면, 11100011을 전송 두 개 혹은 임의의 짝수개의 비트가 바뀌면 에러를 검출해 내지 못함
에러 검출 코드: 순환 중복 검사(CRC) *컴퓨터 네트워크(안순신, 김은기 저 참조) 방법 G(x): 송수신측간에 합의된 생성 다항식 M(x): 전송할 데이타 R(x): M(x)/G(x)의 나머지(FCS) 모듈로 2 연산사용: exclusive-OR 연산
순환 중복 검사의 예 (송신측)
순환 중복 검사의 예 (수신측)
오류정정 코드(Hamming Code) 방법 1 bit 오류를 정정 n bit의 데이터와 k개의 패리티 비트 사용 2**K -1 >= n + k 관계가 성립되어야 함 수신측은 syndrome를 계산, syndrome이 표현하는 십진수가 오류발생 위치
Hamming Code의 예(송신측)
Hamming Code의 예(수신측)