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]
직렬 전송과 병렬 전송
1 1 0 1 0 0
1 2 3 n
0 1 2 3 n
¼Û
½Å Ãø
¼ö
½Å Ãø
º´·Ä Àü¼Û
¼Û
½Å Ãø
¼ö
½Å Ãø
Á÷·Ä Àü¼Û
1 1 1 0 1 0 0 1
동기식과 비동기식 전송
비동기식 전송
[ 그림 2.8]
비동기식 전송은 비트들을 작은 블록으로 나누 어 독립적으로 보내며 각 블록의 시작에서 재동 기화를 하는 방법
수신자는 블록이 언제 도착할지를 알지 못한다 .
예 : 터미널과 컴퓨터사이 , 컴퓨터와 라인프린 터
높은 오버헤드를 가지고 있음
동기식 전송
동기식 전송은 통신을 좀더 효율적으로 하기 위한 수단
동기식 전송은 일반적으로 비동기식 전송에 비해서 더 빠름
문자나 비트들의 블록이 시작 또는 정지 비트 없이 전송
많은 문자들은 개별적으로 보내는 것 대신에 함께 그룹화 되어 전 체적으로 전송 ( 데이터 프레임 또는 프레임이라고 함 )
데이터 프레임의 정확한 구성은 프로토콜에 따라 다름
– 구성 방식
비트 지향 방식 : 비트 단위로 구성
문자 지향 방식 : 문자 단위로 구성
[ 그림 2.9]
S Y N 제 어 필 드 데 이 타 필 드
. . .
제 어 필 드문 자 지 향 전 송 시 의 프 레 임
비 트 지 향 전 송 시 의 프 래 임
S Y N E T X
플 래 그
플 래 그 제 어 필 드 데 이 타 필 드
프레임 시작과 끝의 구분
–
문자 지향 방식
특정한 제어 문자 사용 . 필요시 문자 스터핑 방식 이용
–
비트 지향 방식
특정한 비트 패턴 사용 . 필요시 비트 스터핑 방식 이용 .
예 : HDLC
프레임 구조
문자 - 지향 (character-oriented) 전송인 경우
프레임의 처음 부분은 수신기에 프레임이 도착하고 있다는 것을 알려주는 SYN 문자를 가짐
제어 (control) 필드
프레임이 만들어진 시작 주소
프레임이 도착할 목적지 주소
데이터 바이트들의 크기
순서를 나타내는 숫자
데이터 필드는 실제로 보내지는 정보
프레임의 마지막 부분은 프레임의 끝을 나타내는 정보 (ETX)
비트 - 지향 (bit-oriented) 전송인 경우
데이터 블록은 비트들의 연속으로 간주되며 데이터는 물 론 제어정보도 8 비트 문자 단위로 고려할 필요가 없음
문자 - 지향 전송처럼 특정 비트 패턴이 블록의 시작을 가 리키며 이 특정 패턴은 8 비트 길이이며 프래그 (flag) 라고 함
같은 프래그가 프레임의 맨 끝에서 사용
동기 전송과 비동기 전송의 비교
–
비동기 전송
저속 전송 오버헤드 많음
비용이 적음
–
동기 전송
고속 전송 오버헤드 적음
비용이 많음
전이중 , 반이중 , 단방향 전송
전이중 (Full duplex)
양쪽의 교신자가 동시에 신호의 전송 가능 – 전화
반이중 (Half duplex)
– 양쪽 방향에서 보내고 받을 수 있지만 그것은 교대로 전송 – 무전기
단방향 (Simplex)
– 단 한 방향으로만 신호 전송이 가능한 형태 – 일반 TV 방송
교환 방식
N 개의 통신 장비를 직접 연결한다고 할 때 N(N-1)/2 개의 연결선 이 필요
해결방안으로 각각의 장비들은 통신망에 연결
통신망를 효과적으로 운영하기 위해 교환 기술 (Switching Techn ology) 을 사용
네트워크 내에서 교환기의 역할을 수행하는 장치를
노드 (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)
– 과정
데이타 전송 ( 연결 설정 및 해제 과정이 없음 )
– 특징
모든 패킷이 각기 다른 경로를 갖을 수 있음 ( 재정열 )
데이타그램 방식의 예
*컴퓨터 네트워크 ( 안순신 , 김은기 저 참조 )A
B
Åë½Å Àåºñ
C
Åë½Å Àåºñ A C i µ¥ÀÌŸ
¼Û½ÅÃø ¼ö½ÅÃø ¼ø¼ ¹øÈ£
°øÁß ÆÐŶ ±³È¯¸Á (PSPDN)
가상 회선 방식의 예
*컴퓨터 네트워크 ( 안순신 , 김은기 저 참조 )DTE A
DTE C 2
1 3 A C
B
1 2
1
2
±¸¼ºµµ
In / Out Out / In
Port VCI Port VCI
°¡»ó ȸ¼±
A In / Out Out / In
Port VCI Port VCI
B In / Out Out / In
Port VCI Port VCI
In / Out C
VCI NSAP
DTE A
In / Out
VCI NSAP
DTE C
VCI: °¡»ó ä³Î ±¸ºÐÀÚ
데이터그램 전송방법의 경우의 라우팅 데이블 : [ 그림 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
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
Bandwidth division into
“pieces”
Dedicated allocation Resource reservation
Packet Switching
A B
10 Mbs
C
Ethernet
1.5 Mbs
45 Mbs
D E
statistical multiplexing
queue of packets waiting for output
link
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
Great for bursty data
resource sharing
no call setup
Excessive congestion: packet delay and loss
protocols needed for reliable data transfer, congestion cont rol
Q: How to provide circuit-like behavior?
bandwidth guarantees needed for audio/video apps still an unsolved problem
Is packet switching a “slam dunk winner?”
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 li nk for transmission
depends on congestion l evel of router
A B
propagation transmission
nodal
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
A B
propagation transmission
nodal
Note: s and R are very differe
nt quantitites!
에러 검출 , 교정 (Detection, Correction) 기법
순방향 에러 정정 (FEC : Forward Error Correction)
여분의 에러 정정 코드 (
많은 양의 추가 정보 )를 포함시켜 전송
전파 지연이 큰 원거리 전송에서 사용
자동반복요청 (ARQ : Automatic Repeat Request) 방식
에러가 있는지 없는지를 검출할 수 있을 정도의 적은 비트의 에러 검출 코드를 포함시켜 전송
정정은 재전송으로 해결
고 신뢰성을 확보하기 위해 사용
패리티 검사 (parity check)
패리티 비트를 프레임의 각 단에 끝 에 첨가
패리티 비트값은 단어의 1 의 개수 가 짝수 (even parity) 이거나 홀수 ( odd parity) 가 되도록 선정
예 : 송신기가 ASCII 코드 G(111 0001) 를 홀수 패리티를 사용해 전 송한다면 , 11100011 을 전송
두 개 혹은 임의의 짝수개의 비트가 바뀌면 에러를 검출해 내지 못함
0010101 1011101 1100101 0111001 0001000
0
1 0 1 0
¹®ÀÚ µ¥ÀÌŸ
Æи®Æ¼ ºñÆ®
Ȧ¼ö Æи®Æ¼ÀÇ ¿¹
¹®ÀÚ 1
¹®ÀÚ 5
¹®ÀÚ 4
¹®ÀÚ 3
¹®ÀÚ 2
에러 검출 코드 : 순환 중복 검사 (CRC)
* 컴퓨터 네트워크 ( 안순신 , 김은기 저 참조 )
방법
– G(x): 송수신측간에 합의된 생성 다항식 – M(x): 전송할 데이타
– R(x): M(x)/G(x) 의 나머지 (FCS)
모듈로 2 연산사용 : exclusive-OR 연산
순환 중복 검사의 예 ( 송신측 )
1 0 0 0 10110 1 0 0 1 0 1 1
1 0 1 0 1 0 0 + 1 0 1 1 0
0 0 1 0 0 1 + 0 0 0 0 0
0 1 0 0 1 1 + 1 0 1 1 0
0 0 1 0 1 0 + 0 0 0 0 0
0 1 0 1 0 0 + 1 0 1 1 0
0 0 0 1 0 0 + 0 0 0 0 0
0 0 1 0 0 0 + 0 0 0 0 0
Àü¼ÛÇÒ µ¥ÀÌŸ: 1001011
½ÇÁ¦ Àü¼ÛµÇ´Â µ¥ÀÌŸ:
Àü¼ÛÇÒ µ¥ÀÌŸ, ³ª¸ÓÁö 1001011 1000
»ý¼º ´ÙÇ×½Ä: 10110
순환 중복 검사의 예 ( 수신측 )
1 0 0 0 1 0 0
¿¡·¯°¡ ÀÖ´Â °æ¿ì
1 0 0 0 10110 1 0 0 1 0 1 1 1 0 0 0
+ 1 0 1 1 0 0 0 0 0 1 0
+ 0 0 0 0 0 0 0 0 1 0 1
+ 0 0 0 0 0 0 0 1 0 1 1
+ 0 0 0 0 0 0 1 0 1 0 0
+ 1 0 1 1 0 0 0 0 1 0 0
+ 0 0 0 0 0 0 0 1 0 0 0
+ 0 0 0 0 0 1 1 1 0
1 0 1 0 1 0 0
0 0 0 0 10110 1 0 0 1 0 1 1 1 0 0 0
+ 1 0 1 1 0 0 0 1 0 0 1
+ 0 0 0 0 0 0 1 0 0 1 1
+ 1 0 1 1 0 0 0 1 0 1 1
+ 0 0 0 0 0 0 1 0 1 1 0
+ 1 0 1 1 0 0 0 0 0 0 0
+ 0 0 0 0 0 0 0 0 0 0 0
+ 0 0 0 0 0
¿¡·¯°¡ ¾ø´Â °æ¿ì
오류정정 코드 (Hamming Code)
방법
1 bit 오류를 정정
n bit 의 데이터와 k 개의 패리티 비트 사용
2**K -1 >= n + k 관계가 성립되어야 함
수신측은 syndrome 를 계산 , syndrome 이 표현하는 십 진수가 오류발생 위치