달력

5

« 2024/5 »

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31

컴퓨터와 컴퓨터가 데이터를 송수신 할 때, 망에 중간노드가 이 프레임(데이터)을 중계하여 목적지에 전달하는 방식을 Switched Network라고 한다. 이 방식에는 중간 노드의 전달 방식에 따라 circuit switching과 packet switching으로 구븐된다. circuit switching은 전화같은 아날로그에서 사용되는 데 이에 대한 내용은 생략한다.

packet switching 방식은 전송할 데이터를 패킷(Packet)이라는 단위로 분할한 후, 필요한 제어 정보(주소, 오류 검출 정보 등)를 붙여서 망에 투입한다. 패킷은 중간노드(라우터)의 메모리에 저장되고, 중간노드는 이 패킷의 목적지 주소를 보고  패킷을 목적지로 전달하기위해 다음 노드로 전달한다.

이 방식은 나중에 도착한 패킷은 먼저 도착한 것들이 다 전달될 때까지 기디리기 때문에 delay가 생길 수 있다. 그래서 N명의 사용자가 데이터를 동시에 보내면 전송률은 1/N이 된다.

Packet Switched Network에는 두 가지 종류가 있다.

1. 발신지에서 목적지까지 정해진 연결이 없이 각 패킷이 독립적으로 전달되는  Datagram Network

2. 패킷이 동일한 경로를 통하여 지나가는 Virtual Circuit Network


1. Datagram Network

Datagram Network는 Internet의 대표적인 네트워킹 방식이다.

이 방식은 전송선 연결을 수행하지 않고 각 데이터에 목적지의 주소 정보를 부착하여 그대로 전송하는 방식이다. 중간 노드(라우터)에 도착하는 각 패킷들은 패킷이 가지고 있는 목적지 주소에 따라 라우터에 의해 독립적으로 전송되어진다. 그래서 목적지에 도착하는 하나의 메세지를 이루는 패킷들은 순서가 맞지 않을 수 있다. 

패킷의 전제 전송 과정에서 패킷 헤더에 있는 목적지 주소는 변하지 않으며 이 주소에 의해 라우팅 테이블을 가지고 있는 라우터가 패킷을 전송(forwarding) 한다.


2. Virtual Circuit Network

각 패킷은 목적지 주소 대신에 virtual-circuit identifier(VCI)를 가지고 있다.  패킷을 전송하기 전에 발신지와 목적지간에 연결을 설립하여 그 연결된 라우터 번호로만 패킷을 전송한다. 여기서 주의할 점은 경로가 고정되어 있는 것은 아니라는 것이다. 라우터의 DI값을 바꾼다면 경로는 바뀐다.  


Virtual Circuit를 설립하는 과정은 다음과 같다. 송신지 노드가 연결을 요구하는 제어 패킷(송/ 수신 노드의 주소정보 포함)을 라우터에 전송한다. 그러면 각 라우터들은 목적지 주소에 따라 virtual circuit 테이블을 완성시키면서 다음 라우터에게 전달한다. 송신지의 패킷을 받은 수신지 노드는 연결 응답을 송신지에 돌려준다. 이러한 과정에 따라 각 경로 상의 라우터들은 논리적인 가상 회선 테이블을 완성한다. 

이렇게 가상 회선 테이블을 완성한 후에는 송신자는 자신에게 할당된 VCI값에 의해 데이터 전송을 한다. 그래서 주소 정보대신 VCI 값만을 가지게 된다. 





Chapter 8

P8-1 Transmission of information in any network involves end-to-end addressing and sometimes local addressing (such as VCI). Table 8.1 shows the types of networks and the addressing mechanism used in each of them.

Network

Setup

Data Transfer

Teardown

Circuit-switched

End-to-end

 

End-to-end

Datagram

 

End-to-end

 

Virtual-circuit

End-to-end

Local

End-to-end

Answer the following questions:

a. Why does a circuit-switched network need end-to-end addressing during the setup and teardown phases? Why are no addresses needed during the data transfer phase for this type of network?

circuit-switched network에서 시작과 끝에 end-to-end addressing을 하는 이 유는 전체 데이터 전송동안의 연결을 만들기 위해서이다. 연결이 만들어 지고 난 다음에는 이미 예약된 자원을 통해 전송되어진다. 스위치는 전체 전송 기간동안에 연결된 상태를 유 지한다. 그래서 더 이상의 adressing은 필요하지 않다.

 

b. Why does a datagram network need only end-to-end addressing during the data transfer phase. but no addressing during the setup and teardown phases?

데이터그램 네트웍에서는 각각의 패킷은 독립적이다. 패킷의 라우팅은 개개의 패킷으로 정 해지기 때문에 각 패킷은 end-to-end address가 필요하다. 데이터그램 네트웍에서는 시작과 끝 기간이 필요없다.

 

c. Why does a virtual-circuit network need addresses during all three phases?

스위칭 테이블에 적합한 경로를 만들기 위해서이다.

 

P8-9 A path in a digital circuit-switched network has a data rate of 1 Mbps. The exchange of 1000 bits is required for the setup and teardown phases. The distance between two parties is 5000 km. Answer the following questions if the propagation speed is 2*10^8m:

우리는 설정 기간은 두 방식 통신으로, 연결 끊기 기간은 한 방식 통신으로 가정한다. 두 기간들을 모든 세 경우에 일반적이기 때문이다. 이 두 기간에 대한 딜레이는 세 지연 시간과 세 전송 시간으로 계산할 수 있다.

3[(5000km)/(2*10^8 m/s)] + 3[(1000bits/1Mbps)] = 75ms + 3ms =78ms

 

a. What is the total delay if 1000 bits of data are exchanged during the data transfer phase?

데이터 전송은 한 방향으로 가정하자. 그러면 전체 딜레이는 설정+연결끊기 기간+ 지연 시간+ 전송시간이다.

78+25+1=104ms

 

b. What is the total delay if 100,000 bits of data are exchanged during the data transfer phase?

78+25+100+203ms

 

c. What is the total delay if 1,000,000 bits of data are exchanged during the data transfer phase?

78+25+1000=1103ms

 

d. Find the delay per 1000 bits of data for each of the above cases and compare them. What can you infer?

a. 104ms

b. 203ms/100 = 2.3ms

c. 1103ms/1000 = 1.103ms

데이터를 연결 후 한 번에 많이 보낼수록 이득이다.

 

 





:
Posted by youjin.A
2015. 10. 20. 04:45

[physical Layer] TDM 전자공학이론/데이터 통신2015. 10. 20. 04:45

Multiplexing이란 여러 개의 저역 링크를 묶어서 하나의 큰 대역 링크로 동시에 보내는 테크닉이다. 


여기서, TDM(Time Division Multiplexing)이란 여러 개의 디지털 데이터 전송을 전송률이 높은 큰 하나의 디지털 링크로 묶어서 시간마다 번갈아가며 데이터를 보내는 방식이다.

TDM에는 두가지 종류가 있는데

1. Synchronous TDM

2. Internet에 이용되는 statistical TDM이 있다.


1. Synchronous Time-Division Multiplexing

여러개의 디지털 신호를 하나의 고속 링크로 Multiplexing하기 위해서는 각 Digital source에서 한번에 전송하는 데이터의 bit duration(T)과 출력의 frame duration(T)이 같아야 한다.  

예를 들어 각 입력 연결의 bit rate가 1kbps이고 한번에 한 비트씩 Multiplexing될 경우, 각 Digital source의 bit duration = 1(bit rate)=1/1kbps = 1ms이고 출력 프레임의 frame duration 또한 1ms이다. 여기서 입력 회선이 3개이면 출력의 한 비트당 bit duration은 입력의 1/3배가 되어 0.3ms가 된다.

Synchronous TDM의 문제점은 입력 채널의 전송 데이터가 없을 경우 빈 슬롯이 할당된다.

고속의 TDM의 경우 synchronization문제가 발생 할 수 있기 때문에 이를 위한 비트는 추가한다.


2. statistical Time-Division Multiplexing

sync TDM은 입력 채널의 데이터가 없을 경우 빈 슬롯이 할당되어 대역폭 낭비를 초래한다. 컴퓨터 등에서 발생하는 데이터는 일반적으로 비연속적으고 간헐적으로 많은 데이터가 몰리는 특성을 가지기 때문에 sync TDM은 맞지않다.

 이에 대한 해결방안으로 statistical TDM은 입력 채널에 데이터가 있을 때만 슬롯을 할당하는 방식이다. 일반적으로 각 입력 채널에 버퍼를 설치하여 데이터를 임시 보관한다. 데이터를 출력하기 위해서는 그 구분을 위해 각 슬롯에 주소 지정이 필요하고, 따라서 주소를 위한 오버헤드가 발생한다.


실제로는 statistical TDM은 많이 사용하지 않지만, 현재 인터넷(패킷 교환망)은 일종의 statistical TDM이라고 볼 수 있다.





Chapter 6

Q6-1 Distinguish between synchronous and statistical TDM.

두 방식의 주요한 차이점은 타임 슬롯이 전송 장치에 따라서 다르다는 것이다.

동기화 방식에서는 한 장치에서 데이터를 보내지 않을 경우 타임 슬롯이 낭비되는 데, 를 해결 하기위하여 통계적인 TDM이 나왔다. 통계적 TDM은 테이터를 보낼 경우에만 헤 더를 붙여서 타임슬롯을 할 당하기 때문에 낭비되는 타임 슬롯이 없다

 

P6-1 We need to use synchronous TDM and combine 20 digital sources, each of 200Kbps. Each output slot carries 2 bit from each digital source, but one extra bit is added to each frame for synchronization. Answer the following questions:

a. What is the size of an output frame in bits?

출력 frame은 각 입력 회선의 2bit를 전송한다

거기에 frame 끝에 1extra bit를 붙 인다. frame size = 20*2 + 1 = 41bits

b. What is the output frame rate?

각 출력 frame2bit를 전송한다. 따라서 각 입력 회선의 2bitbit rate과 출력의 frame rate이 같아야 한다

frame rate = 200K*1/2 = 100K frame/s

c. What is the duration of an output frame?

frame duration = 1/(frame rate) = 1/100K= 0.01ms

d. What is the output data rate?

(100K frame/s) * (41bit/frame) = 4.1Mbps

e. What is the efficiency of the system(ratio of useful bits to total bits)?

frame41비트당 40비트가 useful하다. 따라서 40/41 * 100 = 97%

 

P6-11 Assume that a voice channel occupies a bandwidth of 4KHz. We need to multiplex 12 voice channels with guard band of 500Hz using FDM. Calculate the required bandwidth.

(4KHz*12) + (500Hz*11) = 53.5KHz

 

P6-14 Answer the following questions about a T-1 line:


a. What is the duration of a frame?

(sec/frame) = 1/64k(sec/bit) * 8(bit) = 125us

b. What is the overhead(number of extra bits per second)?

(frame/sec) = 8000bps







:
Posted by youjin.A

디지털 신호를 전송하는 방식에는 크게 두가지가 있다.

여러 개의 회선을 이용하여 동시에 전송하는 병렬 전송이 있는데 이것은 전송 속도는 빠르나 비용문제가 있어 LAN 등의 근거리에 주로 사용한다.

그에 반해, 직렬 전송은 하나의 회선으로 한 비트 씩 전송하는 방식으로 비용이 절감되는 장점 때문에 주로  이용된다.

직렬 전송에는 다시 Asynchronous transmission과 synchronous transmission이 있다.


1. Asynchronous transmission 

클럭 신호를 주는 별도의 선이 없이 sender와 receiver가 별로의 clock을 사용한다.

주로 문자 단위로 전송을 하는데 문자 동기화를 위해 Start bit와 Stop bit를 사용한다.



2. synchronous transmission

별도의 clock 선이나 clock 신호를 추출할 수있는 맨체스터 line coding같은 방식을 사용하여 clock을 서로 공유한다. 속도가 빠르기 떄문에 대부분의 데이터 통신에서 이용한다. 주로 데이터 링크층에서 이루어지로 수 백~ 수 천 비트들 프레임 단위로 모아서 전송한다.






:
Posted by youjin.A

디지털이나 아날로그로 표현되어 있는 데이터를 물리적인 디지털 신호로 나타내어 전송하는 테크닉은

1. 디지털 데이터를 디지털 신호로 변환하는 절차인 Line coding이 있고 

2. Line coding의 문제를 해결하기 위하여 데이터 자체를 약간 변환하는 Block coding과

3. Scrambling 이 있다. 

4. PCM은 아날로그 데이터를 디지털 데이터로 변환하는 방식이다.


1. Line coding

디지털 데이터를 물리적인 디지털 신호로 변환하는 과정을 Line coding이라고 한다.

데이터와 신호의 의미는 다음과 같이 다른데 데이터는 버스를 타는 승객이고, 신호는 승객을 태우로 목적지로 옮겨주는 버스라고 생각하면 된다.

data rate는 1초당 데이터 요소의 갯 수로 bit rate라고도 하며 단위는 bps이다.

signal rate는 1초당 전송된 신호 요소의 갯 수로 baud rate라고도 하고 단위는 baud이다.

이렇게 data를 signal로 바꾸는 Line coding 방법에는 다섯가지가 있다.

그리고 이러한 디지털 코딩 방식의 평가요소는 다음과 같다.

-Bandwidth : 대역폭을 적게 사용할 수록 좋음.

-DC components: 주파수가 낮은 성분은 통과 못하게 하는 시스템이 존재하지 때문에 DC가 있으면 안좋음.

-Self-synchronization: clock 신호를 추출할 능력을 가진 code가 좋음.

1) Unipolar NRZ

가장 간단한 Line coding 방식이다.


2-1) Polar NRZ-L(Level)과 NRZ-I(Invert)

Polar 방식은 양과 음의 두 가지 전압 준위를 사용하는 것이다.

이것은 회선의 평균 전압 준위를 감소시켜서 DC components 문제를 완화시킨다. 


-Bandwidth : 좋음 

-DC components : 둘 다 있음.

-Self-synchronization : 나쁨. 이 문제는 Block coding으로 해결한다.


2-2) Polar RZ(Return to Zero)

Self-synchronization을 위해서 비트 중앙을 항상 0으로 복귀하는 방식이다.

-Bandwidth : NRZ보다 나쁨(많은 전이 발생)

-DC components : 있지만 NRZ보다는 좋음.

-Self-synchronization : 좋음.


2-3) Polar Manchester과 Differential Manchester

Manchester은 비트의 중앙에 신호 전이를 발생시켜서 self-sync에 좋게 만든것이고, Differntial은 여기에 0이면 시작 전이를 발생시고 1이면 비트 시작 전이를 발생하지 않는 방식이다. 이 방식은 좋기때문에 실제로 Ethernet등의 LAN에서 많이 사용된다.

-Bandwidth : NRZ의 두배.

-DC components : 없음.

-Self-synchronization : 좋음.


3) Bipolar AMI와 pseudoternary

양극형에서는 양전위, 0, 음전위 세 레벨을 사용한다. AMI는 1일 때 양전위와 음전위가 교대가 되고 pseudoternary는 이와 반대이다. AMI는 장거리 통신에 사용된다.


-Bandwidth : 좋음

-DC components : 거의 없음.

-Self-synchronization : 나쁨. 이것은 scrambling으로 해결한다.


4-1) Multilevel 2B1Q

m개의 데이터 요소 패턴을 표현하는 데 N개의 신호 요소 패턴을 사용(mBnL)하며 단위 Baud당 bit 수가 증가한다.

2B1Q는 2bit를 표현하는 데 4개의 전압 준위를 사용하는 것이다. DSL 기술에서 가입자 전화 회선을 사용하는 고속 인터넷 접속 제공에 사용한다.



4-2) Multilevel 8B6T

8개의 이진수를 6개의 3LEVEL 신호로 전송하는 방식으로 

데이터 패턴은 2^8=256개 이고, 신호 패턴은 3^6=478개이다. 따라서 478-256=222개의 남은 신호는 동기화, 오류 검색 직류 성분 보정을 위해 사용한다.



5) Multilevel transition : MLT-3(Multilevel Transmit-three level)

0: 전이 없음

1: 현재 0V가 아니면: 0V, 현재 0V이면: 직전의 0가 아닌 비트 준위의 반대

100 Mbps 전송에 활용


2. block coding

NRZ에 동기화 문제를 해결하기 위해 사용하는 방식이로 원래의 m개의 비트 블록을 n개의 비트 블록으로 변환 전송(mB/nB)하는 것이다. n>m 이기 떄문에 0이 연속되는 것을 없애고 clock신호를 뽑거나 오류검출에 용이하다.

블록 변환 후에는 Line coding하여 NRZ-I로 전송한다.


3. scrambling

주로 AMI에서 Self-sync문제를 해결하기 위해서 사용한다. 연속 0비트 패턴을 다른 형태(위반) 신호로 변환한다. B8ZS방식과 HDB3방식이 있다.


4. PCM(Pulse Code Modulation)

이 방식은 아날로그 신호를 받아서 디지털 데이터로 변환하는 가장 일반적인 방식이다. 이렇게 변환된 데이터는 디지털 신호로 Line coding된다.

PCM 인코더는 세 가지 과정을 처리한다.

1. 아날로그 신호를 받아내는 sampling

2. 측정된 아날로그 진촉값을 정수값으로 변환하는 Quantization

3. 이진 비트로 변환하는 Encoding

sampling 단계에서 sampling rate(samples/sec)는 나이퀴스트 정리에 의해 아날로그 신호에 포함된 최대 주파수의 2배 이상이 되어야 한다.

Quantization 단계에서 설정 level에 따라 "샘플 당 비트 수"가 결정된다.

Encoding 단계에서 Bit rate = Sampling rate * "각 샘플 당 비트수"로 처리 해야된다.

Quantization 단계에서 레벨 수를 늘리면 error가 줄어든다. 하지만 코딩 했을 때 coding rate가 늘어나는 문제점이 있다. 그래서 error를 줄이기 위해서 레벨 수를 늘리는 것이 아니라 non-llinear encoding 방식을 사용한다.




:
Posted by youjin.A

네트워크에서는 데이터를 얼마나 빨리 보낼 수 있는 지가 중요하다. 이러한 성능의 측정은

1. 채널이 잠재적으로 감당할 수 있는 전송 속도인 Bandwidth

2. 하나의 네트웍이 실제로 얼마나 빨리 데이터를 보낼 수 있느냐하는 Throughput

3. 전체 메세지를 보내는 데 지연시간인 Latency

4. 전체 링크를 가득 채울 수 있는 Bandwidth-Delay

가 있다.


1. Bandwidth

Bandwidth는 네트웍이 아니라 물리적인 전송매체가 커버할 수 있는 범위를 나타내는 것이다. 

신호에 포함된 최고 주파수와 최저 주파수의 차이를 Bandwidth라고 하며 이는 아날로그 통신시스템의 성능 척도이다. 

디지털 통신 시스템의 성능 척도로는 Bit rate를 사용하며, 1초 동안 전송된 비트수를 나타낸다. 그 단위는 bps(bit per second)이다.   디지털 통신에서 Bandwidth는 bit rate와 동일한 의미로 사용하기도 한다.

데이터 전송률은 한계가 있으며 다음 세 요인에 의해 결정된다. 

1. 가용 대역폭

2. 신호의 준위

3, 잡음의 정도

이러한 데이터 전송률을 나타내는 두 가지 수식이 있는 데, 

1. Nyquist Bit Rate : 잡음이 없는 채널에서 사용.

2. Shannon Capacity : 잡음이 있는 채널에서 사용.


실제로는 어떤 신호 준위의 어떤 대역폭이 필요한지 알기 위해 두기지 방법 모두를 사용한다.

섀넌 용량은 상한 값을 알려주고, 나이퀴스트 공식은 필요한 신호 레벨을 알려준다.


2. Throughput

어떤 지점을 데이터가 얼마나 빨리 지나가는가(처리 하는가)를 측정하는 것이다.

bandwidth는 링크의 점재적인 성능을 의미하고, Throughput는 네트웍의 실제 가능한 데이터 처리율을 의미한다. 단위는 bandwidth와 마찬가지로 bps이다. 


3. Latency

Latency란 하나의 전체 메세지가 목적지에 완전히 도달하는데 얼마나 걸리는지의 시간이다. 

Propagation Time은 비트가 발신지에서 목적지까지 도달하는 데 걸리는 시간으로 Distance/Propagation speed로 구한다.

transmission time은 하나의 메시지를 구성하는 모든 비트들을 전송 신호로 바꾸어 매체로 내보내는 데 소요되는 시간으로 Message size/Bandwidth로 구한다.

Latency = Propagation time(Tp) + Transmission time(Ttr) + Queuing time(Tque) + Processiong time(Tproc) 

보통 Queuing time과 Processing time은 생략하기도 한다. 


4. Bandwidth-Delay product

Bandwidth-Delay Product는 링크를 채울수 있는 비트의 수를 의미한다. 이것은 1초당 보내는 비트 수와 링크의 출발지에서 목적지까지 걸리는 시간을 곱함으로써 구할 수 있다.






Chapter 4

Q4-5 Distinguish between data rate and signal rate.

Data란 데이터를 나타내는 가장 작은 단위체로 Bit이다. Data rate는 1초당 전송된 데 이터의 개수로써 bit rate라고도 한다.

signal은 전이를 기준으로 디지털 신호의 가장 짧은 단위로 signal rate는 1초당 전송 된 신호의 개수를 의미하고 baud rate 라고도 한다.

 

P4-3 What is the maximum data rate of a channel with a bandwidth of 200KHz. if we use four levels of digital signaling.

200k*2*log(2)4 = 800Kbps

 

P4-5 What is the Nyquist sampling rate for each of the following signal?

a. A low-pass signal with bandwidth of 300KHz?

600KHz

b. A band-pass signal with bandwidth of 300KHz if the lowest frequency is 100KHz?

800KHz





:
Posted by youjin.A

Baseband Transmission이란 디지털 신호를 디지털 신호 그대로 보내는 것을 의미한다.

디지털 신호는 0에서부터 무한대의 대역폭의 아날로그 신호가 합쳐져있는 것이기 때문에 떄문에 low-pass channel이 필요하다. 그리고 현실적으로  채널이 무한대의 대역폭을 지원할 수 없기 때문에 채널을 통과한 출력 신호는 왜곡 되기 마련이다.  디지털 신호의 signal rate를 N이라고 했을 때 최소한 디지털 신호의 한 주기 만큼인 N/2만큼의 대역폭이 요구된다.


신호를 보낼 때 전송장애가 일어나는 요인은 

1. 에너지의 손실인 Attenuation

2. 주파수에 따른 약간 씩의 전파지연인 Distortion

3. 외부 잡음에 의한 Noise

가 있다.


1. Attenuation

Attenuation은 신호가 전송 매체에 의해 에너지가 흡수 됨으로써 그 크기가 감쇄되는 것을 의미한다. 여기서 문제는 디지털 신호를 구성하는 주파수마다 그 감쇄되는 양이 다르기 때문에, 완벽한 원신호를 만들 수 없다는 것이다. 

감쇄의 측정 단위는 dB이다.

신호크기의 변화를 로그 스케일인 데시벨로 나타내는 이유는  여러 지점의 신호 변화를 알 때 그 값을 곱하는 것 대신 단순히 더함으로써 신호의 총 변화량을 계산 할 수 있기 때문이다.


2. Distortion

Distortion은 다른 주파수로 구성된 복잡한 신호에서 주파수에 따른 지연차이가 위상차이를 발생시켜 신호의 모양이 바뀌는 것을 의미한다.


3. Noise

Noise는 보내는 원신호에 전송채널에서 외부에 다른 신호가 합쳐져서 신호가 왜곡되는 것을 의미한다. 잡음으로는 Thermal Nosie, Intermodulation, crosstalk, Impulse Noise 등이 있다.   

이처럼 신호에는 잡음이 섞여있기 때문에 신호의 깨끗함을 나타내는 단위인 SNR(신호대 잡음비)가 있다.







Chapter 7

P7-3 Calculate the bandwidth of the light for the following wavelength ranges (assume a propagation speed of 2*108m):

a. 1000 to 1200nm

[(2*108)/1000*10-9] - [(2*108)/1200*10-9] = 33THz

b. 1000 to 1400m

[(2*108)/1000*10-9] - [(2*108)/1400*10-9] = 57THz

 

P7-4 Using Figure 7.9, tabulate the attenuation (in dB) of a 2.6/9.5 mm coaxial cable for the indicated frequencies and distances.

Distance

dB at 1MHz

dB at 10MHz

dB at 100MHz

1Km

-2.5

-7

-20

10Km

-25

-70

-200

15Km

-37.5

-105

-300

20Km

-50

-140

-400


P7-6 A light signal is travelling through a fiber. What is the delay in the signal if the length of the fiber-optic cable is 5m, 500m, and 1Km (assume a propagation speed of 2*10^8m)?

5m : 5/(2*10^8) = 2.5 *10^-8 = 25ns

500m : 500/(2*10^8) = 250 *10^-8 = 2500ns

1Km : 1000/(2*10^8) = 500 *10^-8 = 5ms

 

P7-8 If the power at the beginning of a 1 Km 2.6/9.5 mm coaxial cable is 300mW, what is the power at the end for frequencies 1MHz, 10MHz, and 100KHz? Use the results of Problem P7-4.

1MHz : -2.5 = 10log(P2/0.3)

            -0.25 = log(P2/0.3)

            P2 = 10^-0.25 * 0.3 = 169mW

10MHz : -7= 10log(P2/0.3)

            -0.7 = log(P2/0.3)

            P2 = 10^-0.7 * 0.3 = 60mW

100MHz : -20= 10log(P2/0.3)

            -2 = log(P2/0.3)

            P2 = 10^-2 * 0.3 = 3mW








:
Posted by youjin.A

인터넷이란 TCP/IP protocol을 사용하는 네트워킹 방식이라고 했다. 인터넷에서 각 컴퓨터 간을 연결해주는 이더넷 카드를 통해서 어떻게 TCP/IP 메세지가 전달되는 것일까? 

인터넷에는 시스템에 상관없이 서로의 시스템이 연결될 수 있도록 해야 한다. 이것은 데이터 전송에 대해 처리해야할 일들을 계층별로 나눔으로써 캡슐화시켜 이루어지고 있다. 이렇게 하여 각 계층에서 필요한 부분만을 개발자들이 신경쓰게 되고 통신 서비스 개발시간을 줄일 수 있도록 하였다. 

이렇게 계층화된 네트웤 모델에는 

1. 네트웤 통신에서 개념적인 모델인 OSI model

2. 인터넷에서 실제 사용하는 TCP/IP

가 있다. 


1. OSI model

OSI는 각종 시스템간의 연결을 위하여 ISO에서 제안한 모델로써, OSI(Open System Interconnection Reference Model)에서 유추할 수 있듯이, 어떤 다른 종류의 시스템이라도 그것들의 아키텍처와 상관없이 서로 통신을 할 수 있도록 한다. OSI는 7개의 계층으로 되어있다.

각 계층은 데이터 유닛에 그 자신의 헤더를 붙인다. 헤더에는 제어정보, 오듀검출 코드, 주소들이 포함되어 있다. 여기서 데이터 유닛 앞에 Header을 붙이는 과정을 Encapsulation이라고 하고, 반대로 상대방이 붙인 Header를 제거하면서 상위 Layer로 데이터를 전달하는 과정을 Decapsulation이라고 한다. 

각 계층의 기능을 간단히 설명하면 다음과 같다. 

1) Physical Layer

물리적 계층, 즉 이더넷 카드와 같은 하드웨어를 말한다. 이 계층에서는 물리적 매체로 bit를 주고 받는 것을 맡고 있다. 인터페이스와 전송매체의 기계적이고 전기적인 특성과 관계가 있다. 


2) Data Link Layer

데이터 링크는 소프트웨어적이 아닌 하드웨어적으로 frame을 노드에서 다음 노드로 옮기는 것은 맡는다. 또한 물리층에서 error에 대해 신경쓰지 않도록 이 계층에서 전송매체로부터 전달된 데이터의 error를 검사한다. 

3) Network Layer

각각의 패킷들을 발신지에서 목적지까지 전송하는 경로를 배정하는 일(라우팅)을 담당한다. 이것은 하드웨어적인 것이아닌 소프트웨어적으로 처리하는 과정이다.

 

만약 두 시스템이 같은 링크에 연결되어 있다면 Network Layer는 필요없다.

4) Transport Layer

Transport Layer 도착을 원하는 시스템까지 데이타를 전송하기 위한 일을 하는 계층이다. 전체 메세지의 process-to-process 전달을 맡고 있다. 이와 달리 Network Layer는 목적지는 알지만 어떤 프로세스에 데이터를 전달해야 하는지는 모른다.

Session Layer와 Presentaion Layer의 설명은 생략.

5) Application

이 계층은 전자메일, 원격 파일접근이나 전송과 같이 네트웍을 사용하는 응용프로그램등으로 이루어 지며 사용자에게 서비스를 제공하는 것을 담당한다. 


2. TCP/IP 계층

TCP/IP 계층은 OSI 7 계층을 더 단순화 시켜서 4개의 계층으로 만들어서 사용한다. :Physical, internet, transport, application

1) Physical Layer TCP/IP는 어떤 특정한 프로토콜을 정하지 않는다. 그래서 모든 표준과 적절한 프로토콜을 지원한다.

2) internet(Network) Layer 네트웤에서 데이터를 정확히 라우팅하기 위해서 IP프로토콜을 사용한다. 

3) Transport Layer 각각의 시스템을 연결하고 TCP프로토콜을 이용하여 데이타를 전송한다. 

4) Application Layer 이 계층은 OSI 모델이서 Session, presentation, application layer를 포함한다. FTP, HTTP, DNS등 많은 프로토콜들이 정의되어 있다. 


-TCP/IP 데이터 전송 절차

그럼 실제로 TCP/IP 4계층을 이용해서 어떻게 데이타가 전송되는지 알아보도록 하자. 

WWW (World Wide Web)은 더이상 설멍이 필요없는 유명한 서비스로써, HTTP (HyperText Transfor Protocol)이라는 프로토콜을 이용한다.
일단 사용자는 Application Layer에서 Mozilla 나 IE 같은 브라우저를 사용하여서 www.joinc.co.kr 같은 URL 입력을 통해서 웹페이지를 요쳥한다.
다음으로 사용자의 요청(문자 메시지가 될것이다)은 transport Layer에서 인터넷상에서 전달되기 용이한 패킷으로 만들기 위해서 TCP 패킷으로 만들어지게 된다.
이것은 Network Layer에서 다시 인터넷 상에서 원하는 주소로 이동할수 있도록 하기 위해서 IP 패킷으로 다시 만들어 지고(IP 패킷에는 자신의 주소와, 도착해야될 상대방의 주소정보가 들어있을것이다) 이것은 Physical Layer인 이더넷 카드로 보내어져서 Internet 으로 나가게 된다.

Internet 상에서는 원하는 주소로 TCP/IP 패킷을 보내기 위한 여러가지 장치들이 존재하는데(라우터, 토큰링 같은), 이들 장치를 통해서, www.joinc.co.kr 의 이더넷카드로 TCP/IP 패킷이 전달되게 된다. 

그럼 수신지의 physical Layer에서 이더넷 카드는 TCP/IP 패킷을 바로 윗 계층인 Network Layer로 보내는데, 여기에서는 IP 패킷을 분석해서, 이 패킷이 어디에서 왔으며, 그 도착지가 어디인지를 판단하게 된다.(물론 이는 IP주소 기반으로 판단한다)
그리하여 목적지가 자신이면 이것을 다시 Transport Layer 로 보내고, TCP 프로토콜을 사용하여, 메시지가 누락된게 있으면 다시 요청하고, 순서를 재조합하는등 통신 메시지를 검사해서 이것을 다시 Application Layer 에게 보낸다
Application Layer 에서는 웹서버(IIS, Apache 같은)가 통신메시지를 HTTP 프로토콜에 준하여, 검사를 하여서 사용자가 요청한 웹페이지를 읽어들여서, Transport 계층으로 보내게 된다. 웹페이지를 브라우저까지 전송하는 과정은 위의 정반대의 과정을 순차적으로 거치게 된다.

최종적으로 웹브라우저는 웹페이지를 받아서(text) 역시 HTTP 프로토콜에 준하여, 렌더링 작업을 거친후 화면에 뿌려주게 된다.

결국 각각의 계층은 각각의 계층만을 상관하고 있음을 알수 있다. 즉 Application Layer 에 위치하는 브라우저와 webserver 는 HTTP 프로토콜에 의해서 자신의 계층끼리만 통신을 하고, Transport Layer 은 역시 TCP 프로토콜에 의해서 Transport Layer 끼리 통시을 함을 알수 있을것이다. 말그대로 계층적 구조를 가지며, 각 계층은 대응되는 상대편의 계층에 대해서만 상관한다.


-TCP/IP 주소지정

tcp/ip 프로토콜을 사용하는 인터넷에서는 4 level의 주소를 사용하고 있다. 

1) Physical Addresses

물리적 주소는 링크 주소라고도 하는데, LAN이나 WAN에 의해 정의된 노드의 주소이다. 

예를 들어, 위 그림은 물리주소 10을 가진 노드가 물리주소 87을 가진 노드에 한 프레임을 보내는 것이다. 두 노드는 한 링크에 의해 연결되어져 있다. 

대부분의 LAN은 6byte(1byte당 2hexadecial digits해서 6개)의 물리주소인 MAC address를 사용한다. 

2) Logical Address

Logical addresses는 Network layer의 주소로써 물리적 네트워크에 차이에 관계없이 통신을 하기위해 필수적이다. 

인터넷에서의 논리주소 IP address는 인터넷이 연결된 호스트을 구별할 수 있는 32-bit 주소이다.   

위 그림은 논리주소A와 물리주소10을 가진 컴퓨터가 논리주소P와 물리주소 95를 가진 컴퓨터에 한 패킷을 보내는 것이다. 물리주소는 노드와 노드를 거칠 때마다 바뀌지만 논리주소는 바뀌지 않는다.

3) port Number

TCP/IP에서 한 프로세스에 할당된 라벨을 Port number라고 한다. 한 포트넘버는 16비트이다. 다음은 송신 컴퓨터의 프로세스 a가 수신 단말의 프로세스 j에 통신을 하는 과정이다.

4) Names(specific Address)

이것은 이메일 주소나 URL과 같은 사용자 친화적인 주소이다.







Chapter 2 Network Models

Q2-1 What are the types of addresses (identifiers) used in each of the following layers?

a. application layer Names that is user friendly

b. network layer Logical Addresses(IP address in the Internet)

c. data-link layer physical Addresses(MAC address in LANs)

 

Q2-9 A host communicates with another host using the TCP/IP protocol suite. What is the unit of data sent or received at each of the following layer?

a. application layer Message

b. network layer Packet

c. data-link layer - Frame

 

P2-1 Protocol layering can be found in many aspects of out lives such as air travelling. Imagine you make a round-trip to spend some time on vacation at a resort. You need to go through some processes at your city airport before flying. You also need to go through some processes when you arrive at the resort airport. Show the protocol layering for the round trip using some layers such as baggage checking/claiming, boarding/unboarding, takeoff/landing.

P2-6 Assume a system uses five protocol layers. If the application program creates a message of 150 bytes and each layer (including the fifth and the first) adds a header of 20 bytes to the data unit, what is the efficiency (the ratio of application-layer bytes to the number of bytes transmitted) of the system?

the number of bytes transmitted = 150 + (20*5) = 250

application-layer bytes = 150

efficiency = (150/250) * 100% = 60%

 

P2-8 Match the following to one or more layers of the TCP/IP protocol suite:

a. route determination Network layer

b. connection to transmission media Presentation layer

c. providing services for the end user Application layer 





:
Posted by youjin.A

사람과 사람이 통신을 하는 방식은 시간이 지남에 따라 언어-> 책-> 봉화 -> 전신기 -> 전화 -> 인터넷 ... 이런식으로 발전을 해왔다. 여기에서 발전을 하게된 계기는 새로운 도구의 발견(혹은 발명)이 결정적인 역할을 하고 있음을 알 수 있다.

컴퓨터와 컴퓨터 간에 원할한 통신을 가능하도록 하기 위해서 통신 프로토콜이 정해져 있다. 


네트웤이란 통신 링크에 의해 연결된 장비들(노드라 불림)의 집합체이다. 여기서 노드는 컴퓨터, 프린터 등 네트웤 내에서 다른 노드가 만든 데이터를 받거나 데이터를 전송할 수 있는 장비들이다. 

통신을 하기 위해서는 장비들은 반드시 같은 링크에 연결되어 있어야 한다. 연결에는 두가지 방식이 있는데 point-to-point와 multi-point가 그 방식이다.

이러한 기본적인 연결이 어떻게 전세계적인 연결망인 인터넷이 되는지 알아보자.


1. 물리적 형상

모든 링크와 링크 장치들의 기하학적 관계를 topology라고 한다. 토폴로지에는 기본적으로 mesh, star, bus, ring 네 가지가 있다.



만약 n개의 장치가 있다면 각 토폴로지 상에서 필요한 링크의 수는 다음과 같다.

mesh : n*(n-1)/2

star : n

ring : n

bus : one backbone and n drop lines

 

2. 네트웤의 Coverage

LAN (Local Area Network)은 한 건물이나 캠퍼스 같이 몇 킬로미터로 그 크기가 제한적이다. 이것은 컴퓨터 사이에 자원(하드웨어, 소프트웨어, 데이터 등)을 공유하기 위해 만들어졌다. 일반적인 LAN의 토폴로지는 bus, ring, start이다. wifi는 가장 최신의 LAN 토폴로지이다.

WAN(Wide Area Network)는 한 국가나 대륙, 또는 전체 세계를 커버한다. 

이러한 크고 작은 네트웤들이 여러개 연결되어 있으면 이것은 internetwork(소문자)라고 한다. 


3. THE INTERNET

internet은 네트웤들이 단순히 연결을 의미하는 것인데, 여기서 서로 다른 네트웤에 연결된 컴퓨터가 통신을 하기위해서는 통신 규약이 필요하다. 이 통신 규약으로 TCP/IP protocol을 사용하는 internetworking 방식이 Internet (I가 대문자임)이다. 

인터넷은 장비들과 switching station들을 연결함으로써 결합된 LAN과 WAN으로 구성되어있다. 





Chapter 1 Introduction

Q1-2 What are the two types of line configuration?

point-to-point and multipoint

 

Q1-3 Name the four basic network topologies, and cite an advantage of each type.

Mesh, Star, Bus, Ring

 

Q1-6 What is an internet? What is the Internet?

An internet(lowercase letter i) consists of two or more networks that can communicate with each other.

the Internet is a network of networks with TCP/IP.

 

Q1-9 Identity the five components of a data communications system.

Message, sender, Receiver, Transmission medium, Protocol

 

Q1-14 For n devices in a network, what is the number of cable links required for a mesh, ring, bus, and star topology?

mesh : n*(n-1)/2

ring : n

star : n

bus : one backbone and n drop lines





:
Posted by youjin.A

윈도우 운영 체제를 기반으로 간단한 TCP/IP 소켓통신을 구현해 보았다.


 ws2_32.lib 라이브러리를 링크

윈도우 기반의 소켓을 '윈속'이라고 하는데 이를 개발 하기위해서는 헤더파일 <winsock2.h>를 포함시켜야 한다.

이것을 포함시키기 위해서는 ws2_32.lib 라이브러리를 링크시켜야 한다.

현재 Visual studio 2013을 사용하고 있는데 2008으로도 가능하다는 것으로 봐서 다른 버전에서도 그대로 적용 가능한 것 같다.

ws2_32.lib 라이브러리를 링크시키기 위해서는 Project>properties>Linker>Input>Additional Dependencies에 ws2_32.lib를 적고 적용시킨다.


다음으로 server와 client 프로젝트를 각각 열고 코드를 입력한다.



server 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
 
void ErrorHandling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
 
int main(int argc, char ** argv)
{
    WSADATA wsaData;
    SOCKET hServSock;
    SOCKET hClntSock;
    SOCKADDR_IN servAddr;
    SOCKADDR_IN clntAddr;
    int szClntAddr;
    char message[] = "Hello World! \n";
 
    if (argc != 2){
        printf("Usage : %s <port>\n", argv[0]);
        exit(1);
    }
 
    if (WSAStartup(MAKEWORD(22), &wsaData) != 0){
        ErrorHandling("WSAStartup() error!");
    }
 
    hServSock = socket(PF_INET, SOCK_STREAM, 0);
    if (hServSock == INVALID_SOCKET){
        ErrorHandling("socket() error");
    }
 
    memset(&servAddr, 0sizeof(servAddr));
    servAddr.sin_family = AF_INET;
    servAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servAddr.sin_port = htons(atoi(argv[1]));
 
    if (bind(hServSock, (SOCKADDR*)&servAddr,
        sizeof(servAddr)) == SOCKET_ERROR){
        ErrorHandling("bind() error");
    }
 
    if (listen(hServSock, 5== SOCKET_ERROR){
        ErrorHandling("listen() error");
    }
 
    szClntAddr = sizeof(clntAddr);
    hClntSock = accept(hServSock, (SOCKADDR*)&clntAddr,
        &szClntAddr);
    if (hClntSock == INVALID_SOCKET){
        ErrorHandling("accept() error");
    }
    send(hClntSock, message, sizeof(message), 0);
 
    closesocket(hClntSock);
    closesocket(hServSock);
    WSACleanup();
    return 0;
 
 
}
cs



client 코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
#define _WINSOCK_DEPRECATED_NO_WARNINGS
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <WinSock2.h>
 
void ErrorHandling(char* message);
 
int main(int argc, char ** argv)
{
    WSADATA wsaData;
    SOCKET hSocket;
    char message[30];
    int strLen;
    SOCKADDR_IN servAddr;
 
    if (argc != 3){
        printf("Usage: %s <IP> <port>\n", argv[0]);
        exit(1);
    }
 
    if (WSAStartup(MAKEWORD(22), &wsaData) != 0)
        ErrorHandling("WSAStartup() error!");
 
    hSocket = socket(PF_INET, SOCK_STREAM, 0);
    if (hSocket == INVALID_SOCKET)
        ErrorHandling("hSocketet() error");
 
    memset(&servAddr, 0sizeof(servAddr));
    servAddr.sin_family = AF_INET;
    servAddr.sin_addr.s_addr = inet_addr(argv[1]);
    servAddr.sin_port = htons(atoi(argv[2]));
 
    if (connect(hSocket, (SOCKADDR*)&servAddr,
        sizeof(servAddr)) == SOCKET_ERROR)
        ErrorHandling("connet() error!");
 
    strLen = recv(hSocket, message, sizeof(message) - 10);
    if (strLen == -1)
        ErrorHandling("read() error!");
    message[strLen] = 0;
    printf("Message from server : %s \n", message);
 
    closesocket(hSocket);
    WSACleanup();
    return 0;
}
 
void ErrorHandling(char* message)
{
    fputs(message, stderr);
    fputc('\n', stderr);
    exit(1);
}
cs




server 실행하기


project에 마우스 오른쪽> Properties>Debugging>Command Argument 에 포트번호를 적는다. 9190



그 다음 server프로젝트를 빌드하고 디버깅하면 다음과 같이 뜬다.




client 실행하기

client도 마찬가지로 project에 마우스 오른쪽> Properties>Debugging>Command Argument 에 들어간다.

Command Argument 에 다가 server의 ip주소, 포르번호를 적는다.

지금은 server와 client 둘 다 내컴퓨터이니까 Command Argument에 127.0.0.1 9190 이라고 적는다.

그리고 client 프로젝트를 빌드하고 디버깅하면 server 프로세스에서 보낸 Hello world! 라는 메세지가 뜬다.


:
Posted by youjin.A
2015. 9. 16. 12:41

IP 유틸리티들 전자공학이론/데이터 통신2015. 9. 16. 12:41

wire shark

Term Project #1 2013104430 안유진.hwp


nslookup 

해당 호스트의 IP 주소를 찾는다.

nslookup <host name>


ipconfig

호스트의 TCP/IP 정보를 보여준다.

해당 컴퓨터의 IP주소를 확인 할 수 있고 ipconfig /all을 입력하면 MAC 어드레스까지 확인이 가능하다.

리눅스: ifconfig


ping

입력한 호스트가 인터넷에 연결되어 있는지 확인할 수 있다.

ping <host name>


tracert

network layer의 packet이 다른 호스트에 도착하는 데 지나가는 경로를 확인할 수 있다.

tracert <host name>


netstat

로컬 호스트의 네트워크 상태에 대한 정보를 볼 수 있다.

:
Posted by youjin.A