Physical Layer §
- Bitrate, Baud rate, Signal Element, Signal Level, Bandwidth의 개념을 한번 설명해보라
- Bitrate는 초당 몇개의 비트를 보내는지의 수치
- Baud rate는 초당 몇개의 Signal element를 보내는지의 수치
- Signal Element는 신호의 값이 일정하게 나타나는 단위구간
- Signal Level은 한 Signal Element가 가질 수 있는 값의 범위
- Bandwidth는 신호를 구성하는 사인파들의 최대주파수와 최소주파수의 차이
- Shannon Capacity와 Nyquist Bitrate가 각각 어떤 Channel에 적용되는 공식이냐
- Shannon capacity는 Noisy Channel에 적용되는 공식이고 Nyquist Bitrate는 Noiseless Channel에 적용되는 공식
- Shannon Capacity와 Nyquist Bitrate를 이용해 Signal Level을 구하는 방법을 서술해보라
- Shannon Capacity의 Bandwidth와 SNR값은 이미 주어지는 값이므로 이것을 이용해 Bitrate의 상한선을 구한다. 그리고 이것을 Nyquist Bitrate 공식에 적용해 Signal Level을 구할 수 있다
- Bandwidth와 SNR은 전송 매체가 정해지면 자동으로 정해지는 값이라는 것을 알아야 함. 그리고 이것을 이용해 해당 매체에서 사용할 수 있는 최대의 Bitrate를 Shannon공식을 이용해 구하고, 그 값과 Bandwidth값을 Nyquist 공식에 적용해 Signal Level을 구하여 Digital Data를 인코딩 하면 최대의 Bitrate를 낼 수 있는 방식으로 인코딩 된다
- Digital Data를 Digital Signal로 변환할때 Synchronization이 중요한 이유를 설명해보라
- Synchronization을 하지 않으면 송신자와 수신자가 Signal Element구간을 다르게 설정해 다른 값으로 해석할 여지가 있기 떄문
- Line Coding의 한 종류인 Manchester Scheme에 대해 설명해보아라 그리고 이 방식의 단점도 적어라
- Manchester Scheme은 단순히 신호의 세기를 가지고 0과 1을 구분하는 것이 아닌, 신호의 세기 변화에 따라 0과 1을 구분하는 방법이다. 세기가 감소하면 0으로, 세기가 증가하면 1로 판단하는 방식이다. 이 방식의 단점은 세기의 변화를 보여줘야 하기 때문에 하나의 비트를 표현하기 위해 두개의 Signal Element가 필요해 Bitrate가 절반으로 감소한다는 것이다
- Block Coding의 개념에 대해 사용하는 경우, 작동방식을 간단히 지껄여보아라
- Block Coding을 사용하는 경우는 신호의 인코딩 방식을 바꿔 송신하는것이 더 효율적일때 사용한다. Signal Level이 m으로 인코딩된 신호를 Signal Level을 n으로 바꿔 송신한 후 다시 m으로 바꿔 원본 데이터를 수신하는 방식으로 작동한다.
- PCM Encoder에 대해 어떤 신호에 대해 사용하여 어떤 신호를 생성해내는 과정인지, 그리고 작동 과정을 설명해보아라
- Analog 신호를 Digital 신호로 변환하는 과정이다
- 우선 Analog 신호를 일정한 시간간격으로 잘라 각 구간에 대한 신호의 세기를 측정한다.
- 이 신호 세기의 절댓값의 최댓값을 구한다
- 그 최댓값의 두배를 Signal Level로 나눈다. 가령 최댓값이 20이고 3비트로 인코딩하는 경우라면 Signal Level은 8이므로 40을 8로 나눈다
- 나눈 값을 각 구간의 신호 세기값에다 나눈다.
- 위의 결과를 일정한 기준에 따라 반올림한다.
- 반올림한 값들에 대해 Signal Level에 해당하는 비트의 숫자를 할당한다. 가령 Signal Level이 8인 경우, 3비트 이므로 0~7의 값을 할당한다.
- 할당한 숫자를 3비트로 변환해 인코딩한다.
- 각 구간에 대한 신호의 세기를 PAM이라고 하고
- Signal Level로 나눈 값을 Normalized PAM이라고 하고
- 반올림한 값을 Normalized Quantized Value라고 하고
- 나눈값에서 반올림한 값을 뺀 것이 Normalized Error이고
- 비트 숫자를 할당한 것이 Quantization Code이고
- 비트로 변환한 것이 Encoded Word이다
- ASK, FSK, PSK, Constellation Diagram 각각의 개념을 말해보아라
- ASK는 Digital Data의 0과 1에 따라 Analog Signal의 진폭을 변화시켜 표현하는 방법이다
- FSK는 Digital Data의 0과 1에 따라 Analog Signal의 주파수를 변화시켜 표현하는 방법이다.
- PSK는 Digital Data의 0과 1에 따라 Analog Signal의 위상을 180도 반전시켜 표현하는 방법이다.
- Constellation Diagram은 Digital Data의 모든 Signal Level에 대해 Analog Signal를 변조한 방법을 그림으로 나타낸 것이다. 변조한 Analog Signal의 위상을 각도로, 진폭을 거리로 하여 각좌표계에 표시한다.
- Multiplex의 개념과 사용하는 이유를 말해보아라
- Multiplex는 넓은 대역폭의 Carrier에 하나의 신호만 전송하는 것이 아닌 여러개의 신호를 간섭없이 합쳐서 전송하고, 수신후에 각각의 신호를 분리해내는 방법이다.
- 신호의 전송 속도는 Bandwidth와 밀접한 관련이 있는데, Multiplex를 사용하면 같은 신호를 전송하더라도 더 넓은 Bandwidth를 가지는 Carrier를 이용해 전송할 수 있으므로 더 빠르게 전송할 수 있기 때문에 사용한다.
- FDM의 작동 원리에 대해 말해보아라
- FDM은 Carrier의 Bandwidth를 여러 주파수로 나눠 각각의 주파수에 하나의 신호를 할당하는 방식으로 작동한다.
- 주파수로 나눈 각각의 구역을 Channel이라고 하고
- 이때의 주파수값들을 Carrier Frequency라고 한다
- 신호를 합치는 것을 Modulation, 신호를 다시 분리하는 것을 Demodulation이라고 한다
- FDM의 경우 Analog Signal에 대해 주로 적용한다
- TDM의 작동 원리에 대해 말해보아라
- TDM은 같은 신호를 전송할 때 넓은 Bandwidth로 보내면 더 빨리 전송된다는 것에 착안해 여러 신호를 연속적으로 전송하는 기법이다
- Spread Spectrum의 개념과 사용하는 이유에 대해 말해보아라
- Spread Spectrum신호 하나를 더 넓은 대역폭으로 전송하는 기법이다. 이렇게 하면 적은 대역폭만을 필요로 하는 신호를 넓은 대역폭을 사용해 보내므로 비효율적일 수 있지만, 그민큼 간섭이 없어 정확하게 송신이 가능하고 보안성이 강화된다는 장점이 있다
- FHSS의 개념에 대해 설명해보아라. 그리고 이것의 단점을 상쇄할 수 있는 방법도 설명해보아라
- FHSS는 신호를 송신할 때 여러 주파수를 넘나들며 전송하는 방식이다. 송신자와 수신자는 모두 주파수가 변경되는 규칙을 알고 있고, 이 규칙에 따라 주파수가 변경되며 송신된다. 하지만 이러한 규칙을 모르는 경우 도청이 어렵기 때문에 보안성이 강화된다는 장점이 있다. 하지만 송신하기 위해 더 넓은 대역폭을 사용함에도 속도상의 이점이 없다는 단점이 있으나 Frequency Division Multiplexing과 혼합해서 사용하면 여러 신호가 주파수가 변경되며 송신되므로 이러한 단점도 상쇄시킬 수 있다.
- DSSS의 작동원리와 장점에 대해 설명해 보아라
- DSSS는 하나의 비트에 Spreading Code를 곱하여 여러 비트로 표현하여 송신하고, 수신할때는 다시 Spreading Code를 곱하여 하나의 비트로 변환하는 과정을 통해 통신하는 것이다. Spreading Code를 모르는 경우 데이터를 해석할 수 없으므로, 보안성이 강화된다는 장점이 있다.
Data Link Layer §
Data Link Control(Logical Link Control) §
- Error Detection과 Correction의 차이에 대해 설명해보아라
- Error Detection은 단지 오류를 탐지하는것만을 가능하게 하지만, Correction의 경우에는 탐지 후 잘못된 부분을 고치는 작업까지 가능하게 하는 것이다.
- Fixed-size Framing과 Variable-size Framing의 차이와 Delimiter에 대해 설명해보아라
- Fixed-size Framing은 프레임의 길이를 고정시키는 것이고, Variable-size Framing은 프레임의 길이를 가변적으로 하는 것이다. 그리고 가변적으로 프레임의 길이를 설정했을 때, 프레임이 시작되고 종료된다는 것을 알려야 하기 때문에 Flag같은 Delimiter가 필요하다
- Character-oriented Protocol, Bit-oriented Protocol에 대해 설명해보아라
- Character-oriented Protocol은 데이터들이 8비트의 문자들로 구성되는 것을 의미하고, Bit-oriented Protocol은 데이터들이 문자들로 구성되는게 아닌 이미지나 음향 등이어서 하나의 bit묶음으로 구성되는 것을 의미한다.
- Bit-Stuffing과 Bit-Unstuffing에 대해서도 설명해보아라
- Bit-Stuffing은 Flag처럼 용도가 정해져있는 문자나 비트가 데이터에도 등장할 때 그것의 의미대로 해석하지 않고 데이터로써 해석하도록 하는 방법이다. 이것을 위해 Character-oriented Protocol은 “ESC”라는 문자를 사용하는데, 가령 데이터에 “Flag”라는 문자열이 등장하면 이 앞에 “ESC”를 붙여 “ESCFlag”형태가 되도록 해 이것을 Flag로 인식되지 않도록 한다.
- Bit-Unstuffing의 경우에는 수신 후 Bit-Stuffing에 의해 추가된 문자나 비트를 다시 제거하여 원래의 데이터로 복원하는 방법이다.
- Simplest Protocol에서 발생할 수 있는 문제점인 Flow Error에 대해 설명해보아라
- Simplest Protocol의 경우 프레임을 연속하여 보내는 방법인데, 수신자의 수신버퍼가 비워지기 전에 프레임이 도착하면 기존의 데이터를 덮어쓰므로 프레임이 누락되는 상황이 일어난다. 이러한 문제를 Flow Error라고 한다.
- Stop & Wait Protocol에 대해 설명해보아라
- Flow Error를 막기 위해, 하나의 프레임을 수신한 후에는 ACK를 보내어 수신 완료되었다는 신호를 송신자에게 보내 다음 프레임을 받을 수 있도록 하는 프로토콜이다.
- Stop & Wait ARQ Protocol에 대해 설명해보아라
- 기존의 Stop & Wait Protocol은 노이즈가 없는 매체에서의 통신이기 때문에 프레임이나 ACK가 유실될 염려가 없었지만, 노이즈가 있는 환경에서는 유실될 가능성이 있기 때문에 해당 경우에 대한 대응책을 마련한 것이 Stop & Wait ARQ Protocol이다.
- Stop & Wait ARQ Protocol의 경우에는 프레임이 유실될 경우 수신자는 정상적으로 수신하지 못하였기 때문에 ACK를 보내지 않는다. 이때 송신자는 일정시간 ACK가 오기를 기다렸다가, 오지 않으면 프레임이 유실되었다고 판단해 해당 프레임을 재전송하게 된다
- 만일 ACK가 유실된 경우라면 송신자는 수신실패라고 판단해 재전송하게 된다. 하지만 수신자는 정상적으로 수신하였기 때문에 중복된 프레임을 받게 된다. 이것을 막기 위한 장치가 Sequence Number이다. 각 프레임에 번호를 매겨 전송했을시에 수신자가 이미 수신한 프레임인지 아닌지를 Sequence Number를 통해 확인하게 되고, 수신하지 않은 프레임이라면 수신하지만 이미 수신한 프레임이라면 폐기하게 된다
- 그리고 이 Sequence Number는 ACK에도 포함되어 전송되게 된다. Sequence Number를 ACK에 포함시켜 전송함으로 이전까지는 전부 정상적으로 수신했고 이제는 이 프레임이 필요하다는 것을 프레임 송신자에게 알리는 것이다.
- Stop & Wait ARQ Protocol의 단점에 대해 설명해보고, 이것을 해결하기 위한 Protocol중 하나인 Go-back-N ARQ Protocol에 대해 설명해보거라
- Stop & Wait ARQ Protocol의 단점은 수신자가 프레임을 수신한 후에 ACK를 전송하고 그 다음 프레임을 수신하기 전까지 아무것도 안한다는 비효율성에 있다.
- 따라서 이것을 해결하기 위한 Protocol인 Go-back-N ARQ는 수신버퍼가 비워질 정도의 시간간격만 주고 프레임을 연속하여 전송한다. 만일 송신한 모든 프레임에 대해 정상적으로 수신하면 모든 프레임에 대해 ACK를 전송한다. 하지만 프레임 하나가 수신실패할 경우 그 이후 수신되는 모든 프레임을 폐기하고 ACK도 이후로 보내지 않는다. 그렇다면 송신자는 받은 ACK중에 Sequence Number가 가장 큰 프레임부터 재전송하기 시작한다. Sequence Number중 가장 큰값부터 재전송하기 시작하는 이유는 ACK의 의미가 “이전까지는 전부 정상적으로 받았고 이 번호부터 전송해달라”는 뜻이므로 이전의 프레임에 대해서는 정상적으로 수신된 것이 검증되기 때문이다.
- 송신측은 프레임의 재전송을 위해 Slide Window라는 버퍼를 이용한다. 프레임을 전송하고 난 후에 이 버퍼에 저장해 두었다가, ACK를 받아 수신까지 완료됨이 확인되면 이 버퍼에서 삭제하는 방식으로 작동한다.
- Selective ARQ Protocol 에 대해 설명하고 Go-back-N ARQ와의 차이점에 대해 설명해보아라
- 이 프로토콜과 Go-back-N ARQ 프로토콜의 차이점은 프레임의 유실이 발생했을 때 이후에 수신되는 프레임들을 폐기하지 않고 수신자의 버퍼인 Receive Window에 저장해두었다가, 수신받지 못한 프레임을 재전송받는데에 있다. 수신받지 못한 프레임을 재전송해달라는 의미로 ACK가 아닌 NAK를 사용하는데, 수신자는 수신받은 프레임이 중간에 하나 비는것을 Sequence Number를 이용해 판단하고, 수신받지 못한 프레임이 있을 경우 ACK를 보내지 않고 NAK를 전송한다. NAK를 받은 송신자는 해당하는 프레임만 재전송한 뒤, 수신자가 수신하고 전부 정상적으로 수신되었다면 ACK를 보내어 다음 프레임들을 받게 된다.
- Piggybacking에 대해 설명해보아라
- Piggybacking은 양방향으로 데이터 통신을 하는 경우, ACK를 데이터와 함께 프레임에 넣어 송신하는 방법이다. 이렇게 함으로 자기가 송신해야 하는 데이터와 함께, 수신받은 데이터에 대한 ACK를 동시에 송신할 수 있게 된다.
- Go-back-N ARQ와 Selective ARQ에서 Slide Window의 사이즈와 Sequence Number를 어떻게 설정하면 수신 에러가 나는지와 그 이유에 대해 지껄여보거라
- Go-back-N ARQ에서는 Slide window의 사이즈와 Sequence Number의 크기가 동일할 경우에 수신 오류가 난다. 만약 Slide Window의 사이즈가 4이고 Sequence Number가 0
3일때 송신자가 03의 프레임을 모두 전송했다고 하자. 이때 수신자는 이 프레임들을 전부 수신받고 그 다음 프레임인 0번을 기다리는 상황에서 전송한 ACK가 전부 유실되면 송신자는 ACK가 전부 들어오지 않으므로 Slide Window에 있는 프레임을 전부 재전송하게 된다. 그럼 수신자에게는 재전송한 0번 프레임부터 수신되지만 수신자 입장에서는 이것이 재전송된 프레임이 아닌 내가 그 다음으로 받아야 할 0번 프레임으로 판단해 폐기하지 않고 수신하게 된다. 따라서 프레임의 중복수신이 일어나므로 수신 오류가 난다.
- Selective ARQ에서는 Slide 혹은 Receive Window의 크기가 Sequence Number 크기의 절반보다 크면 수신 오류가 생긴다. 만일 Window의 사이즈가 3이고 Sequence Number가 0
3이라고 가정해보자. Window의 사이즈가 3이기 때문에 송신자는 02의 프레임을 송신할 것이고, 수신자는 이 프레임을 전부 정상수신했지만 ACK가 전부 누락된 상황이라고 해보자. 수신자는 0~2프레임을 정상수신했으므로 Receive Window에 3번, 0번, 1번의 프레임이 수신되기를 기다리고 있는데 송신자 입장에서는 ACK가 전부 들어오지 않았으므로 Slide Window에 있는 프레임을 전부 재전송한다. 그럼 수신자에게는 재전송한 프레임 0번, 1번, 2번이 수신되지만 수신자는 이것이 재전송한 프레임이라는 것을 인지하지 못하고 0번과 1번을 Receive Window에 삽입하게 된다. 따라서 프레임 중복수신이 일어나므로 수신 오류가 난다.
- Normal Response Mode의 개념에 대해 설명하고 이때의 Point-to-Point와 Multipoint의 개념에 대해 설명해보아라. 그리고 Asynchronous Balanced Mode의 개념에 대해서도 설명해보아라
- Normal Response Mode는 통신에 참여한 station중 하나의 station에서만 통신을 시작하는 것이 가능한 방법이다. Point-to-Point는 station과 station이 1:1로 통신하는 경우이고, Multipoint는 1:n으로 통신하는 경우를 의미한다. Asynchronous Balanced Mode의 경우에는 통신에 참여한 station이 모두 통신을 먼저 시작할 수 있는 것을 의미한다.
- HDLC 프로토콜의 S-frame, I-frame, U-frame의 개념에 대해 설명하고, 각각의 frame header의 Control bit에 대해 구조와 의미를 설명해보아라
- S-frame은 데이터를 송신하기 위한 프레임이며, I-frame은 ACK나 NAK를 송신하기 위한 프레임, U-frame은 통신 모드 변경등의 통신을 위한 프레임이다.
- S-frame의 경우는 Control bit가 0으로 시작하며 수신자의 Sequence Number인 N(R)와 송신자의 Sequence Number인 N(S)로 구성된다. N(R)은 자신이 받은 프레임에 대해 정상적으로 수신하였고, 다음 프레임을 요청하는 용도로 사용되므로 ACK의 Sequence Number와 동일한 기능을 한다. N(S)는 자신이 보내는 데이터에 대한 Sequence Number를 명시하는 용도이다. S-frame에 N(R)과 N(S)이 모두 존재하는 이유는 Piggybacking을 지원하기 위한 용도이며, 데이터를 수신하지 않고 송신만 하는 경우에는 N(R)은 사용하지 않고 N(S)만 사용게 된다.
- I-frame의 경우에는 Control bit가 10으로 시작하며 프레임의 용도를 구체적으로 구분하기 위한 Code와 N(R)로 구성된다. Code부분을 이용해 현재 통신속도가 양호한지, 아니면 너무 빠른지 등을 알릴 수 있고, 해당 프레임이 ACK가 아닌 NAK로 기능한다는 것도 알릴 수 있다. I-frame은 기본적으로 ACK로 작동하므로, 상대방에게 ACK Sequence Number를 알리기 위해 N(R)을 시용한다.
- U-frame의 경우에는 Control Bit가 11로 시작하여 통신 모드를 Normal Responce Mode나 Asynchronous Balanced Mode로 설정하는 등의 통신 관리를 위한 bit인 Code Bit들을 사용한다.
- Media Access Control의 개념에 대해 설명해보시오
- Media Access Control이라는 것은 하나의 통신 회선을 여러 station이 공유할때, 프레임을 동시에 보내게 되면 충돌이 일어나 프레임이 제대로 수신되지 않는 것을 막기 위해 통신을 제어하는 방법을 의미한다.
- Media Access Control을 크게 세개의 분류로 나누고, 각각에 대해 설명해보아라
- Media Access Control은 크게 Random Access, Controlled Access, Channelization으로 분류할 수 있다.
- Ramdom Access는 회선을 사용할 수 있는 권한을 랜덤한 경쟁을 통해 얻어내는 방법을 의미한다.
- Controlled Access는 통신 중앙 제어장치가 존재해 이것의 관리 하에 충돌이 일어나지 않도록 통신하는 방법을 의미한다.
- Channelization은 Multiplexing을 이용해 모두가 통신 회선을 이용하지만, 충돌이 일어나지 않게 하는 방법이다.
- ALOHA 알고리즘의 작동 원리에 대해 씨부려보시오
- ALOHA 알고리즘은 우선 상위 걔층으로부터 데이터를 전달받으면 랜덤한 시간동안 대기한 후에 프레임을 전송하는 구조이다. 이렇게 하는 이유는 충돌이 일어났을 경우 ACK를 수신받지 못하게 되는데, 모든 station이 같은시간동안 대기하고 재전송할 경우 다시 충돌이 일어나기 때문이다. 따라서 랜덤한 시간동안 대기하는 방법을 통해 재충돌을막는 방법을 사용한다.
- ALOHA 알고리즘은 다음과 같이 작동한다. 우선 시도횟수를 0으로 하여 시작하게 되는데, 프레임 전송 후에 타임아웃이 걸릴때까지 ACK가 오지 않는다면. 시도횟수를 1 증가시킨 후 (0 ~ 2^시도횟수 - 1)중 하나의 숫자를 랜덤으로 뽑는 Binary Back-off의 방법을 통해 난수를 하나 생성한다. 이후 난수에 프레임이 송신지까지 도달하는데까지 걸리는 시간을 곱해 대기시간을 설정한다. 그리고 대기시간 이후 다시 프레임을 전송해보고, ACK가 오지 않을 경우 시도횟수를 하나 증가시키고 다시 난수를 생성하여 대기하는 과정을 반복하며, 시도횟수가 15를 넘을 경우에는 Abort하는 방법으로 작동한다.
- ALOHA 알고리즘의 단점에 대해 설명하고, 이것을 해결하기 위한 Slotted ALOHA 알고리즘에 대해 설명하시오
- ALOHA 알고리즘의 단점은 랜덤하게 결정된 대기시간이 어떤 값이든 될 수 있기 때문에 다른 station에서 프레임을 송신하고있는 와중에 프레임을 전송하여 충돌이 날 수 있다는 것이다.
- 따라서 Slotted ALOHA알고리즘에서는 일정시간단위로 시간을 나눈 Slot의 개념을 이용한다. 하나의 프레임은 하나의 Slot에서 송신 완료되도록 하고, 난수를 이용해 대기시간을 설정할때 Slot단위로 대기시간이 설정되게 해 중간에 겹치는 일이 없도록 하는 것이 이 알고리즘의 특징이다. 따라서 프레임이 준비되면 바로 전송하는것이 아닌, 새로운 Slot이 시작되는 시점에 전송되며, 충돌이 일어날 경우 난수를 통해 Slot단위의 대기시간을 생성한 후 대기해 대기시간이 종료되면 해당 Slot이 시작되는 시점에 송신하게 된다.
- CSMA 프로토콜의 핵심적인 기능을 CSMA의 말뜻과 함께 설명하시오
- CSMA는 Carrier Sensing Multiple Access의 약자로, 통신매체를 사용하고있는 station이 있는지를 수시로 확인하는 Carrier Sensing기법을 사용한다.
- CSMA에서 발생할 수 있는 충돌 중 한가지를 1-persistant를 이용해서 설명해보이소. 그리고 충돌이 일어날 수 있는 나머지 한가지 경우에 대해서도 설명해보이소
- 1-persistant의 경우 회선이 비었는지 아닌지를 수시로 체크하고 회선이 빌 경우 바로 프레임을 송신한다. 하지만 송신하고자 하는 station이 여러개일 경우 회선이 비는 것을 동시에 감지하고 프레임을 전송하기 때문에 충돌이 발생할 수 있다
- 충돌이 발생하는 나머지 하나의 경우는 한 station이 프레임을 송신했지만 다른 station의 위치까지 도달하지 않아 회선이 비었다고 판단해 프레임을 송신하는 것이다
- Non-persistant와 p-persistant에 대해서 설명해보이소.
- Non-persistant는 회선이 사용중인지 아닌지를 확인하는 것을 랜덤하게 하는 것을 말한다. 즉, 회선을 검사한 후에 회선이 사용중이라면 랜덤한 시간을 대기한 후, 대기시간이 종료되면 그때 다시 검사하는 방법이다. 만일 검사했을때 회선이 비었다면 바로 프레임을 송신하게 된다.
- P-persistant는 time slot개념을 이용하는 방법이다. 회선을 계속 검사하다 회선이 비면 난수를 하나 뽑아 지정된 상수보다 작은지 아닌지를 판단한다. 만일 작으면 해당 slot에서 전송하게 되고, 크다면 다음 slot이 오기만을 기다리다 slot이 오면 회선이 비었는지를 판단하고, 비었다면 다시 난수를 뽑는 과정을 반복한다. 회선이 비지 않았다면 다시 회선이 빌때까지 계속 확인하는 과정으로 돌아간다.
- CSMA / CD에서 CD의 말뜻과 이것의 작동원리를 설명하시오
- CSMA / CD에서 CD는 Collision Detection을 의미한다. 이것은 파동의 중첩원리를 이용하는데, 신호 두개가 충돌하면 파동의 세기가 두배가 되기 때문에 수신된 신호의 세기가 비정상적으로 크다면 충돌이 일어났다고 판단하는 것이다. 충돌이 감지되면 그 즉시 송신을 중단하기 때문에, 더 효율적이라는 장점이 있다.
- CSMA / CD은 우선 시도횟수를 0으로 두고 Persistant중 하나를 이용해 프레임을 전송할 시점을 정한 후, 프레임을 전송한다. 프레임이 전송되다 멈추면, 멈춘 이유가 충돌이 감지돼서인지 송신이 완료돼서인지 판단하고 충돌이 감지된 경우라면 시도횟수를 1 증가시키고 Binary Backoff를 이용해 랜덤한 시간을 대기한 후 다시 Persistant를 이용해 프레임을 전송할 시점을 정하는 것으로 돌아간다.
- CSMA / CD에서 충돌이 감지되는 Best Case와 Worst Case에 대해 설명하고, Worst Case를 이용해 CSMA / CD를 사용할 수 있는 조건에 대해 한번 설명해보이소
- 충돌이 감지되는 Best Case는 다른 Station에서 송신한 프레임이 자신에게 거의 다 도달해서 프레임을 송신한 직후 충돌이 일어나 그것을 감지하는 경우이다.
- Worst Case는 자신이 전송한 프레임이 다른 Station에 도달하기 바로 직전 해당 station이 프레임을 송신해 충돌이 일어나는 경우이다. 이 경우에는 자신으로부터 다른 station에게 프레임이 전송되기까지 걸리는 시간과 충돌이 일어난, 다른 station이 송신한 프레임이 자신에게 전송되기까지의 시간을 합친 만큼의 시간 뒤에 충돌이 일어나므로 충돌이 일어났다는 사실을 매우 늦게 알게 된다.
- 근데 충돌이 일어난, 다른 station이 보낸 프레임이 자신에게 도달하기 전에 프레임의 송신이 완료된다면 CSMA / CD가 가지는 이점을 활용할 수 없을 것이다. 따라서 프레임을 송신하는데 걸리는 시간이 프레임이 목적지까지 가는데 걸리는 시간의 두배보다 커야 CSMA / CD를 사용할 수 있다.
- CSMA / CD를 무선환경에서 사용하지 못하는 이유와 CSMA / CA의 개념에 대해 설명하시오.
- CSMA / CD는 신호 세기의 증폭을 이용해서 충돌여부를 가리지만 무선환경에서는 충돌이 일어나도 증폭률이 크지 않아 충돌을 감지하기 어렵다
- 따라서 CSMA / CA에서는 충돌을 감지하기 않는대신 ACK같은 프레임 송신 후에 연달아 전송되는 프레임이 송신되는 것을 보장해주기 위해 IFS라는 시간을 대기한다.
- 우선 시도횟수를 0으로 시작하여 회선이 비워질때까지 대기한다. 회선이 비워진 뒤에는 IFS 시간동안 대기한 뒤 Binary Backoff를 이용해 프레임을 보낼 시점을 정하고, 회선이 아직도 비워져 있는지를 확인한 뒤 프레임을 송신한다. 회선이 비워져있지 않다면 다시 비워질때까지 대기하게 되고, 프레임을 송신한 뒤에는 ACK가 수신되는 것을 기다렸다가 수신되지 않으면 시도횟수를 1 증가시키고 다시 회선이 비워져있는지 확인하는 과정을 반복한다.
- Polling의 작동방식을 Poll, SEL, ACK, NAK의 개념을 이용해 설명해보아라
- Polling은 Primary라는 통신 중앙 제어 장치가 존재해 이것의 관리 하에 Contention Free한 통신이 이루어진다.
- 먼저 Station에서 Primary로 데이터를 보내는 방식은 다음과 같다. Primary는 Station각각에 대해 보낼 데이터가 있는지 물어보는 프레임인 Poll을 하나씩 보내게 된다. 만일 Station이 보낼 데이터 없다면, NAK을 보내게 되고 보낼 프레임이 있다면 Data를 보내게 된다. 그럼 Primary는 ACK를 전송하는 것으로 통신이 마무리된다.
- Primary에서 Station으로 데이터를 보내는 방법은 다음과 같다. Primary는 우선 보내고자 하는 Station에게 받을 준비가 되었냐는 것을 의미하는 프레임인 SEL을 전송하게 된다. 만일 준비가 되었다면 Station은 ACK를 보내게 되고 그럼 Primary는 데이터를 해당 Station에게 보내게 된다. 그럼 Station이 ACK를 보내는 것으로 통신이 종료된다
- Station에서 Station으로 데이터를 보내는 방법은 다음과 같다. Polling은 Primary에서만 통신을 먼저 시작할 수 있으므로 Station과 Station간의 통신은 중간에 Primary를 거치는 방식으로 진행된다. 우선 Primary가 자신에게 Poll을 보낼때까지 기다린다. 그럼 보낼 데이터를 Primary로 먼저 보내게 되고, 그것을 수신한 Primary는 이것이 다른 Station에게 가야되는 프레임이라는 것을 깨닫고 해당 Station에게 SEL을 보내 데이터를 전송하게 된다.
- Token Passing의 작동방식을 간단맨하게 설명해보아라
- Token Passing은 통신에 참여한 Station이 번갈아 Token이라는 이름의 통신 제어권을 얻게되는 구조이다. 한 Station에게 Token이 있다면, 자신이 보낼 데이터들을 전부 보낸 후, 다음 순번의 Station에게 Token을 넘기게 되고 그럼 그 Station이 자신이 보낼 데이터를 전부 송신하는 구조인 것이다.
- CDMA의 개념과 작동원리에 대해 설명해보아라
- Code-Division Media Access 프로토콜은 DSSS와 유사한 방식으로 작동한다. 즉, 각 Station들은 Walsh Table을 이용해 생성된 Spread Code를 하나씩 갖고 있고, 자신의 데이터의 각 비트들을 자신의 Spreading Code에 곱해 데이터를 변환한다. 그리고 모든 Station들은 그것을 회선의 사용여부와 무관하게 송신하게 된다. 그럼 수신자 입장에서는 충돌이 일어난 데이터를 받게 되는데, 여기서 특정 송신자가 송신한 데이터를 받고 싶으면 그 송신자의 Spreading Code를 데이터에 곱해주게 되면 원본의 데이터로 변환되게 된다.
Ethernet §
- IEEE 802의 개념에 대해 어떤 환경에서 사용하도록 만들어진 표준인지를 포함하여 적으시오. 그리고 여기서는 어떤 프로토콜을 Logical Link Control에서 사용하는지 적으시오.
- IEEE 802는 LAN환경에서 작동하는 물리계층과 데이터 링크 계층들의 여러 함수(모듈)등을 표준화한 것이다.
- 그리고 여기서는 HDLC 프로토콜을 Logical Link Control에서 사용한다
- HDLC 프로토콜이 담긴 LLC의 헤더를 LLC PDU라고 부른다
- Standard Ethernet이 사용하는 Bus Topology에 대해 설명해보아라
- Bus Topology는 하나의 통신 회선에 별다른 장치 없이 여러 Station들이 병렬적으로 연결된 구조를 의미한다
- Bus Topology를 사용하는 Ethernet을 Bridged Ethernet이라고 한다
- Standard Ethernet의 최대 / 최소 전송 바이트를 적고 이것이 필요한 이유에 대해 설명하시오
- Standard Ethernet의 최대 전송 byte는 헤더를 제외하고 1500byte이고, 최소 전송 바이트는 헤더를 제외하고 46byte이다.
- 전송 최대 크기가 필요한 이유는 너무 많은 바이트를 보내게 되면 Redundancy Bit가 너무 커지기 때문이고, 전송 최소 크기가 필요한 이유는 Standard Ethernet이 CSMA / CD를 사용하기 때문이다.
- Standard Ethernet이 사용하는 물리계층의 프로토콜과 MAC 프로토콜을 적어보아라
- Standard Ethernet은 물리계층에서는 Manchester Scheme 프로토콜을 이용하고, 사용하는 MAC프로토콜로는 CSMA / CD를 사용한다.
- Fast Ethernet과 Gigabit Ethernet 에서는 이전버전과의 호환성을 위해 BusCSMA / CD, Bus Topology등을 사용하는 함수들을 전부 삭제시켰다 (O / X)
- Fast Ethernet과 Gigabit Ethernet에서 사용하는 Star Topology에 대해 설명해보시오
- Star Topology는 하나의 회선에 Station들이 연결하는 구조가 아닌 중앙 Switch에 Station들이 붙게 되고 이것이 통신의 전반을 제어함으로써 Contention Free한 통신을 하게 되는 것을 의미한다.
- Star Topology의 Switched Ethernet은 Half-Duplex Switched Ethernet으로, 중앙 Switch에 하나의 회선으로 연결해 이것으로 데이터의 송수신을 모두 하는 것을 의미한다
- Full-Duplex Switched Ethernet은 중앙 Switch에 송신용 회선과 수신용 회선을 연결해 송수신 회선을 두개로 분리하여 송수신 하는 것을 의미한다
- 두개의 Station만 직접적으로 연결한 Point-to-Point, 하나의 Switch를 사용하는 Star, 여러개의 Switch를 이용하는 Multiple Stars, Switch들을 또 하나의 Switch로 묶은 Hierarchy of Stars로 분류한다
- Fast Ethernet과 Gigabit Ethernet의 물리계층에서는 하나로 통일된 encoding방식을 사용한다(O / X)
- 아니쥬?(X)
- Fast Ethernet과 Gigabit Ethernet에서는 통신 매체의 종류에 따라 다른 encoding 방식을 사용한다
Wifi §
- PCF와 DCF, AP의 개념에 대해 설명해보아라. 그리고 PCF와 DCF에서 사용하는 MAC 프로토콜이 무엇인지 적어라
- PCF는 중앙 통신 제어 장치를 이용해 Contention Free한 통신을 하는 경우를 일컫는다. 그리고 이때의 중앙 통신 제어 장치를 AP라고 부르며 Polling 방식으로 통신하게 된다.
- DCF는 AP를 이용하지 않고 직접 통신하는 경우를 말한다. 당연히 Contention의 가능성이 있으며, 이것을 줄이기 위해 CSMA / CA를 사용한다.
- BSS와 ESS의 개념에 대해 설명해보아라
- BSS는 Station들이 직접 통신하거나 AP하나를 두고 통신할 수 있을 만큼 가까운 거리에서의 통신을 의미한다.
- ESS는 Station들간의 거리가 멀어 AP와 유선통신을 거쳐 통신하게되는 구조를 말한다.
- SIFS, PIFS, DIFS의 개념을 설명해보아라. 그리고 각각의 길이를 대소비교하고 그 이유에 대해 적어라
- SIFS는 프레임을 수신한 후, 이것에 대한 답장을 준비하여 전송하기까지의 최소한의 시간이다.
- PIFS는 통신회선이 idle해진 이후 AP가 기다리는 시간이다.
- DIFS는 통신회선이 idle해진 이후 통신에 참여하지 않았던 Station이 기다리는 시간이다.
- SIFS < PIFS < DIFS순으로 시간이 길다. 왜냐하면 SIFS는 지금까지 통신에 직접적으로 참여하고 있었던 Station이 기다리는 시간이므로 제일 우선순위가 높기 때문이다. DIFS는 지금까지의 통신에 참여하고 있지 않았던 Station들이므로 가장 낮은 우선순위를 가진다. AP는 통신을 제어해야되기 때문에 기존의 통신에 참여하고있지는 않았어도 다른 Station들보다 더 높은 우선순위를 가지게 하기 위해 SIFS보다는 길지만 DIFS보다는 짧은 시간을 PIFS가 가지게 된다.
- Wifi에서의 CSMA / CA에 등장하는 Virtual Carrier Sensing의 개념에 대해 NAV의 개념과 함께 설명하고, 작동 과정에 대해서도 설명하되 RTS, CTS의 개념과 각 프레임이 수신되었을 때 기다리는 IFS의 종류를 포함하여 설명하라
- Virtual Carrier Sensing은 통신 우선권을 가진 Station들이 특별한 프레임을 송신해 다른 Station들에게 “지금 우리가 통신할 것이니 앞으로 언제까지는 Carrier Sensing을 하지 말아라”라고 통보하는 것이다. 이렇게 함으로써 다른 Station들은 Carrier Sensing을 하는데 들어가는 전력소모를 줄일 수 있고, 통신에 참여하는 Station들은 해당기간 내에는 충돌을 완벽하게 배제할 수 있게 된다는 장점이 있다. 그리고 이렇게 해서 Carrier Sensing을 하지 않는 기간을 NAV라고 한다.
- 작동과정은 일단 Persistant를 이용해 프레임의 전송 시점을 정한다. 그리고 그 시점이 오면 DIFS를 기다린다. DIFS를 기다리는 것은 이전의 통신에는 참여하고있지 않았기 때문이다. 그리고 먼저 RTS를 보낸다. RTS는 Ready To Send를 의미하는 프레임으로 상대방에게 수신할 준비가 되었냐고 물어보는 동시에 통신에 참여하지 않는 Station들에게 이제부터 통신을 할것이니 언제까지 NAV로 설정하여라 라고 통지하는 용도이다. 또한 이 프레임은 크기가 아주 작아 Error Detection과 Correction이 아주 손쉬우므로 이것을 먼저 보내봐 충돌이 일어나는지 안일어나는지 확인해 DIFS이후에 회선을 사용하고 있는 Station이 존재하는지 알아내는 용도이기도 하다. 그리고 RTS가 정상적으로 수신되었다면 SIFS를 기다린 다음 CTS를 송신한다. 이것은 Clear To Send라는 의미의 프레임으로 상대방에게 통신을 시작하여도 된다고 알려줌과 동시에 자신의 주변에 있는 통신에 참여하지 않는 Station들에게도 NAV를 설정하게 하는 역할을 한다. RTS가 정상적으로 수신되었다면 아무도 회선을 사용하고있지 않았다는 소리이므로 다른 Station들은 NAV가 설정되었을 테니 충돌의 여지가 없어 SIFS만을 기다리게 된다. 그리고 CTS를 받은 송신자는 SIFS를 기다린 후 데이터 프레임을 송신하게 되는 식으로 통신이 이루어진다. SIFS를 기다리는 이유도 마찬가지로 이미 다른 Station들은 NAV가 설정되어 충돌의 여지가 없기 때문이다.
- Wifi의 통신 전 과정에 대해 Super frame, Beacon, CFP, CP의 개념들도 같이 설명하며 서술해보거라 그리고 각각의 경우 사용되는 IFS도 같이 서술하여라
- Wifi의 통신 과정은 일단 Super frame의 반복으로 이루어진다. 즉, Super frame은 Wifi 통신의 기본 단위인 것이다.
- 하나의 Super frame은 일단 AP가 PIFS를 기다리고 Beacon Frame을 송신하는 것으로 시작한다. AP가 통신을 하는것이기 때문에 DIFS가 아닌 PIFS만을 기다리고 송신한다.
- Beacon Frame에는 PCF로 통신할 기간과 DCF로 통신할 기간, 다음 Beacon을 보내는 시간이 명시되어 있다. 이것은 Wifi가 Polling을 이용한 통신과 CSMA / CA를 이용한 통신을 둘 다 활용하기 때문이다. 또한 PCF로 통신할 기간을 명시함으로써 이 기간동안에는 Station들이 전부 Carrier Sensing을 하지 않는다. Virtual Carrier Sensing이 이루어지는 셈인 것이다. Beacon을 송신하고 PCF로 통신하는 기간 동안은 AP의 제어 하에 이루어지기 때문에 충돌의 위험이 없어 CFP, 즉, Contention Free Period라고 부르고 이후 DCF로 통신하는 기간 동안은 충돌의 위험이 있기 때문에 CP, 즉, Contention Period라고 부른다. 따라서 하나의 Super frame은 CFP와 CP로 구성되는 셈이다.
- PCF 통신 구간에는 AP의 지휘 아래 Polling방식으로 통신한다. 그리고 이때에는 충돌의 위험이 없으니까 SIFS만의 시간만을 기다리고 송신하게 된다
- PCF가 종료되면 AP가 CF-End의 프레임을 전송한다. 그럼 이때부터 DCF방식으로 통신하므로 Station들이 CSMA / CA의 방식으로 DIFS를 기다리고 프레임을 전송하게 된다.
- DCP가 종료되면 AP가 우선권을 가지므로 PIFS를 기다리고 Beacon을 전송한다. 이렇게 새로운 Super frame이 시작되는 것이다.
- Wifi의 Frame에서 Type을 통해 어떤 종류의 프레임을 구분하는지 서술해보거라
- Type의 비트에 따라 Beacon등으로 작동하는 Management type인지, RTS, CTS, ACK, NAK등으로 작동하는 Control type인지, 아니면 데이터를 송신하기 위한 Data type인지 구분한다.
- Type 00 Subtype 1000이면 Beacon으로 기능하고
- Type 01 Subtye 1011이면 RTS, 1100이면 CTS, 1101이면 ACK로 기능하며
- Type 10이면 데이터 송신용 프레임으로 사용된다
- Intra-BSS와 Inter-BSS의 개념에 대해 서술해보거라
- Intra-BSS는 BSS내부에서의 통신으로 AP를 이용하거나 직접 통신하는 방법으로 가시적인 가까운 거리 내에서 통신하는 것을 의미한다
- Inter-BSS는 BSS간의 통신으로 BSS의 AP들을 유선통신으로 연결해 유선통신을 거쳐 비교적 먼 거리를 통신하는 것을 의미한다
- Intra-BSS환경에서 두 Station이 직접 통신하는 경우와 Inter-BSS의 경우에 대해 통신 과정을 서술해보거라. 이때 프레임 헤더의 To-DS bit와 From-DS bit가 어떻게 설정되는지, 그리고 각각의 경우 Address 1, 2, 3, 4에 어떤 값이 들어가는지를 보여라
- Intra-BSS의 환경에서 두 Station이 직접 통신하는 경우에는 프레임을 직접 주고받으므로 To-DS와 From-DS가 00으로 설정된다. 그리고 Address 1에는 송신지의 주소, Address 2에는 수신지의 주소가 설정되게 된다.
- Inter-BSS의 환경에서 Station A이 StationB에게 송신한다고 하고 A와 가까운 AP를 AP1, B와 가까운 AP를 AP2라고 해보자. 우선 A는 AP1으로 프레임을 전송하게 된다. 이때 To-DS는 1, From-DS는 0으로 설정되고 Address1에는 AP1, Address2에는 A, Address3에는 B가 설정된다.
- AP1으로 온 프레임은 유선통신을 이용해 AP2로 이동한다. 이때 To-DS는 1, From-DS는 1, Address1은 AP1, Address2는 AP2, Address3은 A, Address4는 B로 설정된다
- AP2로 온 프레임은 B에게 전달된다. 이때 To-DS는 0, From-DS는 1, Address1은 AP2, Address2는 B, Address3은 A로 설정된다.
Bluetooth §
- Bluetooth가 사용하는 ISM band에 대해 간략하게 말해보거라
- ISM band는 Industrial, Scientific, Medical의 약자로 이것을 위한 공익 목적의 대역폭을 의미한다.
- Piconet, Scatternet에 대해 간략히 설명해보거라
- Piconet은 하나의 Primary와 여러개의 Secondary로 이루어진 환경을 의미하고
- Scatternet은 하나의 Primary와 여러개의 Secondary, 그리고 여러개의 Secondary / Primary 로 구성된 환경을 의미한다. 여기서 Secondary / Primary는 하나의 Primary에 지배를 받는 Secondary이긴 하지만 그와 동시에 다른 여러개의 Secondary들을 거느릴 수 있는 단말을 의미한다.
- Bluetooth의 개발 목적을 간략하게 설명해보거라
- Bluetooth는 Secondary의 칩을 아주 작고 값싸게 만들어 다양한 단말에 이식해 단말간 근거리 무선 통신을 하기 위해 개발되었다
- Bluethooth의 계층구조를 Bluetooth Protocol Profile, L2CAP, Audio, Upper Stack Layer, Baseband, Bluetooth Radio, Lower Stack Layer, Host Controller Interface의 용어를 설명해가며 서술해보거라 한번
- 일단 Bluetooth로 전송할 수 있는 데이터 중 음향이 아닌 모든 데이터는 여러개의Bluetooth Protocol Profile들에 의해 만들어진다. 그리고 이것은 데이터 링크 계층의 LLC sublayer에 해당하는 L2CAP이라는 모듈로 모인 후 데이터 링크 계층에 해당하는 하위계층인 Baseband계층으로 내려간다. 음향의 경우 Audio라는 모듈을 통해 만들어진 후 L2CAP을 거치치 않고 바로 Baseband로 내려가게 된다. 그리고 Baseband에서는 물리계층에 해당하는 Bluetooth Radio로 내려보내게 된다. Baseband 의 상위 계층들은 소프트웨어적으로 구현되어 있어 Upper Stack Layer라고 하며, Baseband를 포함한 하위계층은 하드웨어적으로 구현되어 있어 Lower Stack Layer라고 한다. 그리고 이 둘을 Host Controller Interface가 연결하게 된다.
- Baseband가 사용하는 TDMA 프로토콜에 대해 Hop을 이용해 설명해보거라.
- TDMA는 기본적으로 Slot을 이용한다. 그리고 짝수번쨰의 Slot에는 Primary만 Hop의 형태로 데이터를 전송하고 홀수번쨰의 Slot에는 Secondary만 Hop의 형태로 데이터를 전송한다.
- Baseband의 SCO, ACO모듈에 대해 각각의 경우 Hop의 길이는 어떻게 되는지, 어느 상위 모듈에서 데이터가 들어왔을때 해당 모듈을 사용하는지 구분하여 서술하여라
- SCO모듈은 송수신의 정확성보다는 그 속도에 중점이 맞춰져 있는 통신방식이다. 음향의 전송의 경우에는 지연이 없어야 하므로 Audio 모듈에서 SCO방식의 데이터를 생성하며, Primary와 Secondary가 빠르게 데이터를 주고받아야 하기 때문에 하나의 Slot에 하나의 Hop을 전송하게 된다
- ACO모듈은 송수신의 속도보다는 정확성에 중점이 맞춰져 있는 통신방식이다. 음향이 아닌 모든 데이터에 대해 필요하므로 L2CAP에서 ACO방식의 데이터를 생산한다. Redundancy Bit등을 늘리거나 한번에 많은 양의 데이터를 전송하기 때문에 프레임의 크기가 커 1, 3, 5개의 Slot에 걸쳐 하나의 Hop을 보내는 방식으로 통신한다.
- 블루투스를 이용한 전화를 걸고 받는 과정에 대해 설명해보거라
- 일단 상대방의 전화번호 등의 데이터와 전화가 걸려왔다는 신호 등을 보낸다. 이것은 음향신호가 아니므로 L2CAP에서 SCO방식으로 데이터가 생성된다.
- 그리고 전화를 받으면 그때부터는 음향신호이므로 Audio모듈로 변경되어 ACO방식으로 데이터가 생성된다
Layer Architecture §
- Protocol, Standard의 차이와 Protocol을 Algorithm으로 부르는 이유에 대해 서술해보거라
- Protocol은 통신을 위해 통신에 참여한 단말들 간 약속을 한 것을 의미하고
- Standard는 Protocol중 하나를 정해 표준으로 설정함으로써 대부분의 단말들이 지키도록 한 것이다.
- Protocol은 통신을 효율적으로 하기 위해 문제를 해결한 것이라고 볼 수 있으므로 Algorithm의 일종이라고 볼 수 있다.
- 프로토콜의 구성요소 세가지에 대해 설명해보거라
- 프로토콜은 Syntax, Semantics, Timing으로 구성된다
- Syntax는 프레임을 구성하는 형식(Format)을 의미한다
- Semantics는 각 Syntax마다 그것이 어떤 의미를 가지는 지 이다.
- Timing은 통신이 혼자서 하는 것이 아니고 상대방과 같이 하는 것이기 때문에 시간을 통일시키는 것을 의미한다.
- Layer Architecture의 개념과 이유를 설명하여라. 그리고 Module, Interface, Peer-2-Peer의 개념에 대해 말해보고 Interface를 이용하는 것의 장점에 대해 말해보거라
- Layer Architecture은 통신을 위한 시스템을 계층적으로 구성한 것을 의미한다. 여기서 계층적이라는 것은 상위 계층에서 하위 계층의 서비스를 아용할 수는 있지만, 하위계층에서 상위계층의 서비스를 이용할 수는 없는 것을 의미한다. 이렇게 하는 이유는 통신 시스템을 구축하는 것이 아주 방대하기 때문에 기능별로 계층으로 나눠 각각의 계층을 개발한 후, 이어붙이는 식으로 개발하기 위해서이다.
- Module은 각각의 계층을 구현한 것을 의미한다. 그리고 Interface는 계층간 연결해주는 다리같은 역할을 한다. Peer-2-Peer은 계층간 통신을 의미한다. 이것은 어느 한 Station의 한 계층에서 보낸 패킷은 다른 Station의 해당 계층으로 정확히 동일하게 전달되므로 계층을 오르내리며 통신하는 것이 아닌 계층간 통신을 하는 것으로 단순화해서 생각할 수 있다는 의미를 가진다. 이것은 두 Station간의 통신이라는 아주 어려운 문제를 계층간 통신이라는 비교적 단순한 문제로 나누어서 생각할 수 있다는 장점이 있다
- Interface를 이용하는 것의 장점은 만일 Module이 변경되었을 경우 인접한 계층의 모듈또한 변경해야 되는 번거로움을 막기 위한 것이다. Module이 변경되어도 Interface가 변경되지 않으면 다른계층의 Module또한 변경하지 않아도 된다는 장점이 있다.
- Data Link Layer의 역할 다섯가지에 대해 말해보거라
- Flow Control : Flow Error를 막기 위해 통신의 흐름을 제어하는 것
- Error Control : Error Detection, Error Correction을 위해 통신의 흐름을 제어하는 것
- Access Control : 프레임들 간의 충돌을 막기 위해 통신의 흐름을 제어하는 것
- Framing : 데이터 크기가 너무 크거나 작아 통신에 문제가 생기는 걸 막기 위해 프레임 단위로 나누는 것
- Addressing : 프레임이 정확한 위치에 도달할 수 있도록 주소를 설정하는 것
- OSI 7 Layer의 각각의 계층의 역할에 대해 설명해보아라
- Physical Layer : 데이터의 인코딩을 통해 최대한 적은 bit가 오송신되도록 하고, 그리고 수신된 bit를 디코딩 하는 작업을 하는 계층
- Data Link Layer : Hop-to-Hop통신의 완전무결한 통신을 보장하기 위한 계층
- Network Layer : Hop-to-Hop통신에서 더 나아가 Source-to-Destination의 통신을 위한 계층 - Source-to-Destination의 중간 경로 설정의 역할을 한다
- Transport Layer : Hop-to-Hop통신의 완전무결한 통신은 Data Link Layer에서 보장되지만 이러한 완전무결한 Hop-to-Hop통신들이 모인다고 해서 완전무결한 Source-to-Destination의 통신이 이루어지는 것은 아니다 - 여기는 신뢰성 있는 Source-to-Destination 통신을 위한 기능들이 모여있는 계층이다
- Session Layer는 Station내에서 정확한 프로세스를 찾아 수신되게 해주는 것을 위한 계층이다.
- Presentation Layer : 여기서는 UTF-8, ASCII등의 문자열 인코딩이나 암호화 등의 작업을 하게 된다
- Application Layer : 여기서는 사용자와 직접 소통하는 것을 지원하기 위한 계층이다
Network Layer §
- Physical Address와 Logical Address의 주 목적과 사용되는 계층에 대해 설명해보아라
- Physical Address는 Hop-to-Hop 프레임 전송을 위한 주소로 데이터 링크 계층에서 사용된다.
- Logical Address는 Source-to-Destination 패킷 전송을 위한 주소로 네트워크 계층에서 사용된다.
- Router(Intermediate Node, Gateway, Next Hop)의 역할과 이것이 사용하는 계층, 작동원리를 설명하리오. 작동 원리는 2-Level Hierarchy의 필요성, netid, routing table을 이용해 설명하거라
- Router는 패킷이 전송될 때 거치게 되는 중간다리역할을 한다. 또한 다음에는 어느 Router로 가야할지를 알려주는 역할도 하게 된다.
- Router는 Physical, Data Link, Network 세 계층만을 사용한다.
- Router에는 Logical Address를 이용해 해당 주소로 가려면 어디로 가야되는지를 나타내는 테이블이 저장되어 있는데, 모든 Logical Address에 대해 Port Number를 저장하면 테이블의 크기가 너무 커지므로 2-Level Hierarchy구조를 가지게 된다. 이것은 Logical Address의 몇개의 비트를 netid로 설정한 뒤, 같은 netid를 가지는 Logical Address들은 하나의 Port로 나가게 하는 방식이다. 따라서 어떤 Logical Address를 가지고 어느 port로 나가야 하는지 알기 위해서는, Logical Address의 netid를 이용해 Routing table에서 Port Number를 알아내는 방식으로 작동한다.
- Logical Address의 대표적인 세 Class와 이들 각각에 대해 netid와 hostid를 구분하는 방법에 대해 서술해보거라
- Logical Address의 Class로는 대표적으로 Class A, Class B, Class C가 있으며
- Class A는 첫번째 비트에 0이 들어가고 그 이후 7개의 비트에 netid가 저장돼있으며 나머지 24개의 비트에 hostid가 저장되게 된다. 십진수로 표현된 Logical Address에서는 뒤의 24 비트가 hostid이므로 A.B.C.D에서 A가 netid이고 B, C, D가 hostid가 되는 셈이다.
- Class B는 첫번째와 두번째 비트가 10이 되고 그후 14개의 비트에 netid가 저장되며 나머지 16개의 비트에 hostid가 저장된다. 십진수로 표현된 Logical Address에서는 뒤의 16비트가 hostid이므로 A.B.C.D에서 A, B가 netid이고 C, D가 hostid가 된다
- Class C의 경우 세번째 비트까지가 110으로 구성되고 그후 21개의 비트에 netid가 저장되며 나머지 8개의 비트에 hostid가 저장된다. 십진수로 표현된 Logical Address에서는 뒤의 8비트가 hostid이므로 A.B.C.D에서 A, B, C가 netid이고 D가 hostid가 된다.
- netid와 hostid를 할당받는 방법에 대해 서술하고 각 Class당 하나의 netid에 몇개의 hostid가 대응되는지를 이용해 어떤 기준으로 netid를 할당하는지 적어보거라
- netid는 NIC에서 기관에게 할당해주는 값이다. 해당 기관은 netid를 할당받은 후에, hostid를 독자적으로 할당함으로써 netid와 hostid가 할당된다. Class A의 경우에는 하나의 netid에 2^24개의 hostid가 대응되므로 그정도로 규모가 큰 기관에게 할당해주고, Class B의 경우에는 하나의 netid에 2^16개의 hostid가 대응되므로 그정도의 규모를 가지는 기관에게 할당해주며, Class C의 경우에는 하나의 netid에 2^8개의 hostid가 대응되므로 이정도의 규모를 가지는 작은 기관에게 할당해준다.
- AS의 개념과 AS는 어떤것을 이용해 통신하는지 적어보거라
- 라우터와 라우터간의 통신을 위한 라우터를 AS라고 부르고 이때에는 netid만을 가지고 Routing table을 이용해 다음에 이동해야 할 AS를 정하게 된다
- Subnet의 개념과 장점, 작동과정에 대해 설명하시오. 이때 Destination, Subnet Mask, Port Number, Default의 용어를 활용하시오.
- Subnet은 라우터간의 통신이 아니고 라우터에서 특정 Station으로 가야할때 사용하는 방법이다. 라우터의 하나의 포트에 모든 Station들을 병렬적으로 연결할 수도 있지만 Subnet을 이용해 하나의 포트를 여러개의 포트로 나눠준 뒤, 각각의 포트에 Station들을 병렬적으로 연결하는 방식으로 구성된다. 이렇게 하는것의 장점은 물리적으로 인접한 위치에 있는 Station들에 대해 하나의 포트를 할당하여 네트워크의 전체 구조를 계층적으로 형성하여 한눈에 보기 쉽다는 것이다.
- Subnet의 작동과정은 일단 Subnet Router를 설치할 때 Routing Table을 생성한다. Routing table에는 Destination, Subnet Mask, Port Number가 있는데 Logical Address가 하나 들어오면 이 테이블의 첫번째 행의 Subnet Mask와 AND연산을 한다. 그리고 그 결과가 Destination과 일치하는지 확인한다. 그리고 일치할 경우에는 해당 Port Number로 빠져나가고, 아니라면 다음 행에 대해 동일한 작업을 반복한다. 그리고 만약 어떠한 Destination과도 일치하지 않는다면, 해당 Subnet에 속하지 않는 Logical Address인 것이므로 Subnet Mask를 0.0.0.0으로 하고 이때의 Destination은 Default인 0.0.0.0으로 하며 Port Number로는 Subnet의 외부로 빠져나가게 하는 Port Number를 주어서 빠져나가게 한다.
- Logical Address 192.168.188.67이 192.168.188.0/26에 해당하는 Port로 빠져나가는지 판단해봐라 그리고 해당 Port에 몇개의 Station이 연결되어 있는지 판단하여라
- 192.168.188.0이 Destination이고, /26이면 Subnet Mask가 255.255.255.192이므로 192.168.188.67과 Subnet Mask를 AND연산하면 그 결과는 192.168.188.64가 되어 Destination과 일치하지 않으므로 해당 Port로 빠져나가지 않는다.
- 32 - 26 = 6이므로 2^6개인 64개의 Station이 해당 포트에 연결되어 있다.
- Station에 내장되어 있는 Routing Table을 생성하는 방법에 대해 설명해보거라
- Station에 내장되어 있는 Routing Table을 생성하는 방법은 일단 자신이 속한 서브넷의 Subnet Mask를 Routing Table의 Subnet Mask에 적어준다. 그리고 자신의 논리주소와 이 Subnet Mask를 AND연산해 Destination을 알아낸다. 그리고 해당 Destination에 매핑되는 주소는 같은 서브넷에 존재하는 것 이므로 Gateway의 값을 connected로 해준다.
- 그리고 Destination에 매칭되지 않는 논리주소는 라우터를 찾아가게 해야되므로 두번째 행에는 Subnet Mask를 0.0.0.0, Destination은 Default, Gateway는 라우터의 논리주소를 적어준다. 그리고 이 행의 Flag값으로 G를 적어서 해당 논리주소가 유효한 값임을 명시한다.
- ARP 프로토콜에 대해 설명하고, Logical Address를 알때 ARP Request를 보내고 받는 과정에 대해 설명하여라
- ARP는 Routing Table을 이용해 보내야 할 곳의 Logical Address를 알아낸 후 이것을 가지고 Physical Address를 알아내기 위한 프로토콜이다.
- ARP Request는 수신지의 물리주소를 broadcast로, 논리주소는 routing table로 알아낸 논리주소로 하여 패킷을 전송한다. 그럼 같은 서브넷에 있는 모든 Station이 수신하고 Network Layer로 올려보내 논리주소를 비교한다. 논리주소가 일치하는 Station은 수신지의 물리주소를 ARP의 송신지 물리주소로, 논리주소는 ARP의 송신지 논리주소로 하여 답장을 하게 되고, 따라서 ARP Request를 보낸 Station은 상대방의 물리주소를 알게 된다.
- 같은 서브넷에 있는 Station에게, 다른 서브넷에 있는 Station에게, 외부망에 있는 Station에게 프레임을 전송하는 전 과정을 서술하거라
- 같은 서브넷에 있는 Station에게 패킷을 전송하는 과정은 일단 자신의 Routing table을 통해 해당 Station이 같은 서브넷에 존재하는지 알아낸다. 같은 서브넷에 존재한다는 것을 알아챈 뒤에는 자신의 Subnet에 대해 ARP Request를 날려 물리주소를 얻고, 패킷을 전송한다.
- 다른 서브넷에 있는 Station에게 패킷을 전송하는 과정은 마찬가지로 자신의 Routing table을 이용해 자신의 서브넷에 존재하는지 먼저 확인한다. 자신이 속한 서브넷에 존재하지 않으므로 라우터로 가야된다는 것을 알게 되고, Routing table을 이용해 알아낸 라우터의 논리주소를 이용해 ARP Request를 날리게 된다. 라우터의 물리주소를 알아낸 다음에는 라우터로 패킷을 보낸다. 패킷을 받은 라우터는 이 패킷의 논리주소로 가려면 어디로 가야되는지 Routing Table을 사용하여 찾게 된다. 이 논리주소에 해당하는 Station이 존재하는 서브넷을 찾았다면, 해당 서브넷에서 패킷의 논리주소를 이용해 ARP Request를 보내어 해당 Station의 물리주소를 알아낸다. 그리고 이것을 이용해 패킷을 송신하는 것으로 통신이 완료된다
- 외부망의 Station으로 패킷을 전송하는 경우에도 마찬가지로 자신의 Routing table을 통해 자신의 서브넷에 존재하는지 확인한다. 자신의 서브넷에 없으므로 결과로 라우터의 논리주소를 받게될 것이고, 그 논리주소에 대해 ARP Request를 보내 라우터의 물리주소를 알아낸 후 패킷을 라우터로 전송한다. 라우터에 도착한 패킷을 보고 라우터는 이것이 어느 서브넷에 존재하는지를 Routing Table을 이용해 찾는다. 하지만 서브넷 어디에도 없으므로 Default에 걸려 외부의 라우터로 빠져나가게 된다. 이후 동일한 과정을 거치며 Station을 찾게 된다.
- 192.168.40.0/24 서브넷에 속하는 Station의 Routing table에서 Subnet Mask를 255.255.255.0에서 255.255.0.0으로 변경했을 경우 동일 서브넷의 Station으로 패킷을 송신했을 때, 다른 서브넷의 Station으로 패킷을 송신했을 때, 외부망의 Station으로 패킷을 송신했을 때 송신이 성공하는지 아닌지 그 이유와 함께 서술하그라
- 192.168.40.30에서 같은 서브넷에 속하는 192.168.40.50으로 패킷을 전송하려고 한다면 자신의 Routing Table에서 Destination이 192.168.0.0이므로 192.168.40.50과 Subnet Mask를 AND연산해보면 192.168.0.0가 나와 같은 서브넷이라고 판단한다. 따라서 이 경우에 ARP 요청을 하고 패킷을 전송하면 정상적으로 수신된다
- 192.168.40.30에서 다른 서브넷에 속하는 192.168.45.30으로 패킷을 보내려고 할 때 자신의 Routing Table에서 Destination이 192.168.0.0이므로 192.168.45.30과 Subnet Mask를 AND연산해보면 Destination과 같아 같은 서브넷에 존재하는 것으로 판단한다. 따라서 해당 서브넷에서 ARP Request를 날려도 같은 서브넷에 존재하지 않기 때문에 응답이 오지 않고 따라서 통신은 실패하게 된다
- 192.168.40.30에서 외부망에 속하는 188.28.50.30으로 패킷을 보내려고 할 때 자신의 Routing Table에서 Destination이 192.168.0.0으로 설정된다. 따라서 188.28.50.30이랑 Subnet Mask를 AND연산했을 때 188.28.0.0이 나와 Destination과 다르므로 라우터로 가게 되고, 라우터부터는 Subnet Mask가 제대로 설정되어 있으므로 수신에 성공하게 된다.
- 192.168.40.0/24 서브넷에 속하는 Station의 Routing Table에서 Subnet Mask를 255.255.255.0에서 255.255.255.192로 변경했다고 가정하자. 이때 192.168.40.20에서 같은 서브넷에 속하는 Station인 192.168.40.67로 패킷을 전송하는 과정에 대해 서술해보거라
- Subnet Mask를 255.255.255.192로 변경하면 Destination은 192.168.40.0이다. 이때 192.168.40.67과 Subnet Mask를 AND연산하면 192.168.40.64가 나오므로 라우터로 패킷이 이동한다. 라우터에서 해당 패킷이 어느 서브넷에 속하는지를 알기 위해 Routing Table을 사용해보면 해당 패킷이 왔던 서브넷에 존재한다는 것을 알게 되고 따라서 ARP를 날려 수신지로 보내게 된다.