컴퓨터 네트워크 7장 연습문제 해설
7장. IP 프로토콜의 이해
1. 네트워크 계층의 기능을 설명하시오.
네트워크 계층(Network Layer)의 기본 기능은 송수신 호스트 사이의 패킷 전달 경로를
선택하는 라우팅이다.
l 라우팅:
송수신 호스트 사이의 패킷 전달 경로를 선택하는 과정
l 혼잡 제어: 혼잡 현상을 예방하거나 제거하는 기능
l 패킷의 분할과 병합: 큰 패킷 하나를 작게 나누는 과정(분할), 목적지에서 분할된 패킷을 다시 모으는 과정(병합)
2. 라우팅 프로토콜에서 지원하는
HELLO 패킷과 ECHO 패킷의 역할을 설명하시오
라우터 초기화 과정에서 주변 라우터의 경로를 파악해야 한다. 각 라우터는 주변에 연결된 라우터에
초기화를 위한 HELLO 패킷을 전송해 경로 정보를 얻는다. 그리고
라우터 사이의 전송 지연 시간을 측정하기 위해서 ECHO 패킷을 전송하는데, ECHO 패킷을 수신한 호스트는 송신 호스트에 즉각 회신하도록 설계되어 있다.
이런 과정을 반복하고, 측정값의 평균을 구해 해당 라우터까지의 전송 지연 시간을 유추할
수 있다.
3. 혼잡 제어와 흐름 제어의 차이를 설명하시오.
네트워크의 전송 패킷 수가 많아질수록 네트워크 성능이 자연스럽게 감소하는데, 이와 같은 성능
감소 현상이 급격하게 악화되는 현상을 혼잡(Congestion), 혼잡 문제를 해결하기 위한 방안을
혼잡 제어(Congestion Control)라 한다. 흐름
제어(Flow Control)는 송신 호스트와 수신 호스트 사이의 점대점 전송 속도를 다룬다. 반면, 혼잡 제어는 더 넓은 관점에서 호스트와 라우터를 포함한 서브넷에서
네트워크 전송 능력 문제를 다룬다.
4. 혼잡의 원인을 설명하시오.
기본적으로 네트워크의 처리 능력보다 과도하게 많은 패킷이 입력되면 발생한다. 개별 라우터
관점에서 보면 라우터의 출력 선로를 통한 전송 용량이 부족해 아직 전송하지 못한 패킷이 버퍼에 저장되고, 입력
선로로 들어오는 패킷이 늘면서 버퍼 용량은 더 부족해진다. 결과적으로 라우터의 내부 버퍼 용량 부족이
심화되어 더 이상 패킷을 보관할 수 없어 버리게 된다. 그리고 전송 패킷이 버려지면 송신 호스트는 타임아웃(Timeout) 동작을 통해 패킷을 재전송하므로 네트워크로 송신되는 패킷의 양이 늘어난다.
5. 트래픽 성형을 설명하시오.
혼잡은 트래픽이 특정 시간에 집중되는 버스트(Burst) 현상에서 기인하는 경우가 많다. 즉, 송신 호스트에서 전송하는 패킷의 양이 시간대별로 일정하게 발생하는
경우보다 패킷이 짧은 시간에 많이 발생하는 경우에 혼잡이 일어날 확률이 높다. 따라서 송신 호스트가
전송하는 패킷의 발생 빈도가 네트워크에서 예측할 수 있는 전송률로 이루어지게 하는 기능이 필요한데, 이를
트래픽 성형(Traffic Shaping)이라 한다.
6. 혼잡 제거를 위한 초크 패킷의 원리를 설명하시오.
라우터는 자신의 출력 선로를 사용하는 빈도를 모니터할 수 있으므로 출력 선로의 사용 정도가 한계치를 초과하면 주의 표시를 해둔다. 그리고 주의 표시한 방향의 경로는 혼잡이 발생할 가능성이 높기 때문에 특별 관리한다. 라우터에서는 입력 선로로 새로 들어온 패킷을 주의 표시한 출력 선로로 라우팅할 때 패킷 송신 호스트에게 초크
패킷을 전송한다. 초크 패킷을 수신한 송신 호스트는 사용하는 경로 일부에 혼잡이 발생할 가능성이 있음을
판단할 수 있으므로 전송 패킷의 양을 줄인다. 특정 라우터에서 주의 표시를 시작하면 이후 경로에 위치한
라우터에서도 주의 표시할 가능성이 높아지고, 초크 패킷이 여러 라우터에서 동시에 발생할 가능성이 높다. 따라서 최초로 초크 패킷을 발생시킨 라우터에서는 전송되는 패킷의 헤덩 임의의 표시를 하여 목적지까지 도착하는
동안에 거치는 라우터가 초크 패킷을 더 이상 발생하지 않도록 해야 한다.
7. 거리 벡터 프로토콜을 링크 벡터, 거리
벡터 프로토콜과의 차이를 중심으로 설명하시오.
거리 벡터(Distance Vector) 프로토콜은 직접 연결된 라우터간에 라우팅 정보를
교환하는 방식이다. 정보를 교환하는 라우터는 거리 벡터 프로토콜을 사용하는 호스트나 라우터들이다. 교환 정보는 각각의 라우터에서 전체 네트워크에 속하는 개별 네트워크까지 패킷을 전송하는데 걸리는 거리 정보다.
l 링크 벡터: 주변 네트워크에 대한 연결 정보
l 거리 벡터: 전체 네트워크에 대한 거리 정보
8. 링크 상태 프로토콜을 거리 벡터 프로토콜과의 차이를 중심으로 설명하시오.
링크 상태(Link State) 프로토콜에서는 라우터 간의 정보 교환 원리가 거리 벡터 방식과
반대다. 개별 라우터가 주변 라우터까지의 거리 정보를 구한 후 이를 네트워크에 연결된 모든 라우터에
통보한다. 거리 벡터 프로토콜에서는 각 라우터가 상당 양의 정보 전송을 요구받고, 특히 링크 상태가 많이 변하면 동작 과정에서 시간이 많이 소요될 수 있다. 링크
상태 알고리즘은 이와 같은 단점을 극복하려고 고안된 방식이다. 거리 벡터 프로토콜은 알고리즘의 특성상
정보가 주기적으로 전달되지만 링크 상태 프로토콜에서는 주변 상황에 변화가 있을 때만 정보 전달이 이루어진다.
9. IP 프로토콜의 헤더를 그리고, 각
필드의 역할을 설명하시오.
|
0 |
3 |
7 |
15 |
31 |
||||
|
Version
Number |
Header
Length |
Service
Type |
Packet
Length |
|||||
|
Identification |
|
DF |
MF |
|
Fragment
Offset |
|||
|
Time to
Live |
Transport |
Header
Checksum |
||||||
|
Source
Address |
||||||||
|
Destination
Address |
||||||||
|
Options |
Padding |
|||||||
l Version
Number(버전
번호): IP 프로토콜의 버전 번호.
l Header
Length(헤더
길이): IP 프로토콜의 헤더 길이를 32비트 워드 단위로
표시한다. 일반 패킷을 전송하는 경우에 헤더의 Options 부분
이하가 빠지므로 IP 헤더의 최소 크기는 5다.
l Packet
Length(패킷
길이): IP 헤더를 포함하여 패킷의 전체 길이를 나타낸다. 필드의
크기가 16비트므로 IP 프로토콜에서 지원하는 패킷의 최대
크기는 216-1 바이트다. 그러나 이는
이상적인 최댓값으로, IP 프로토콜에서 65,536 바이트의 IP 패킷을 전송해도 대부분 데이터 링크 계층에서 분할해 전송한다. 따라서
실제 환경에서 IP 프로토콜은 IP 패킷을 더 작은 단위로
만든다. IP 패킷의 크기는 일반적으로 8,192 바이트를
넘지 않는다.
l Time to
Live(생존
시간): 패킷 전송 과정에서 패킷이 올바른 목적지를 찾지 못하면 수신 호스트에게 제대로 도착하지 않고, 네트워크 내부에서 떠돈다. 이런 현상을 방지하려고 Time to Live 필드를 사용한다. 송신 호스트가 패킷을 전송하기
전에 네트워크에서 생존할 수 있는 시간을 이 필드에 지정하고, 각 라우터에서는 패킷이 지나갈 때마다
필드 값을 감소시키면서 패킷을 중개한다. 임의의 라우터에서 Time
To Live 값이 0으로 감소하면 패킷은 자동으로 버려지고, 패킷 송신 호스트에게 ICMP 오류 메시지가 전달된다.
l Transport
Protocol(전송 프로토콜): IP 패킷을 생성하도록 IP 프로토콜에게
데이터 전송을 요구한 전송 계층의 프로토콜을 가리킨다. TCP는 6을, UDP는 17을, ICMP는 1을 지정한다.
l Header
Checksum(헤더 체크섬): 전송 과정에서 발생할 수 있는 헤더 오류를 검출하지만 데이터의 오류는 검출하지
않는다. 이와 달리 계층 4 프로토콜인 TCP, UDP 헤더는 데이터와 헤더 오류를 모두 검출한다. 체크섬
계산 과정은 다음과 같다. 먼저 Header Checksum 필드의
비트 값을 모두 0으로 설정한 후, 전체 헤더가 16비트 워드의 연속이라 가정하고 1의 보수 합을 수행한다. 이 값을 체크섬으로 하여 패킷을 전송하고, 수신 호스트는 1의 보수 합을 계산하여 계산 결과가 모두 1이면 전송 과정에 오류가
없다고 판단한다. 전송 과정에 오류가 발생하면 IP 프로토콜에서는
해당 패킷을 버리고, 이를 복원하는 일은 상위 계층에서 담당한다.
l Options(옵션):
네트워크 관리나 보안처럼 특수 용도로 이용할 수 있다.
l Padding(패딩):
IP 헤더의 크기는 16비트 워드의 크기가 4의
배수가 되도록 설계되어 있다. 앞서 설명한 필드의 전체 크기가 이 조건에 맞지 않으면 이 필드를 사용해
조정할 수 있다.
l Service
Type 필드는 IP 프로토콜이 사용자에게 제공하는 서비스의 품질에 관련된 내용을 표현한다.
l Identification(식별자):
송신 호스트가 지정하는 패킷 구분자 기능을 수행한다. IP 프로토콜이 분할한 패킷에 동일한
고유 번호를 부여함으로써, 수신 호스트가 Identification 번호가
같은 패킷을 다시 병합(Reassembly) 할 수 있도록 해준다. 패킷을
분할하지 않으면 패킷을 전송할 때마다 이 필드의 값을 하나씩 증가시킨다.
l DF(Don’t
Fragment): 패킷이 분할되지 않도록 한다. 즉, 값을 1로 지정하면 패킷 분할을 막을 수 있다.
l MF(More
Fragment): 분할된 패킷을 전송할 때는 여러 개의 분할 패킷이 연속해서 전송되므로 MF 필드 값을 1로 지정하여, 분할 패킷이 뒤에 계속 발생됨을 표시해주어야 한다. 분할 패킷 중 마지막 패킷은 MF 비트를 0으로 지정하여 분할 패킷이 더 없음을 표시한다.
l Fragment
Offset(분할
옵셋): 패킷 분할이 이루어지면 12비트의 Fragment Offset 필드를 사용한다. 저장되는 값은 불할된
패킷의 내용이 원래의 분할 전 데이터에서 위치하는 상대 주소 값이다. 값은 8바이트 배수므로, Fragment Offset 값이 64라면 원래 데이터에서 64*8=256번째에 위치한다.
l Source
Address: 송신 호스트 주소
l Destimation
Address: 수신 호스트 주소
10. IP 주소 클래스를 설명하시오.
IP 주소 체계는 크게 네 종류다. 클래스
A, B, C는 유니캐스팅에서 이용하고, 클래스 D는
멀티캐스팅에서 사용한다. 클래스 A, B, C는 주소를 network와 host 필드로 구분해 관리함으로써, 클래스별로 네트워크 크기에 따라 주소 관리를 다르게 한다.
11. IP 프로토콜이 패킷을 분할하는 이유를 설명하고, 분할 방법을 예를 들어 설명하시오.
다양한 유형의 네트워크를 통해 패킷을 중개하려면, IP 프로토콜이 패킷을 각 네트워크에서
처리하기 편한 크기로 분할(Fragmentation) 해야 한다. 상위
계층에서 더 큰 데이터 전송을 요구하면 IP 프로토콜에서 패킷 분할 과정을 먼저 수행해 전송한다.
분할의 예:
|
IP 헤더 |
분할 1 |
분할 2 |
분할 3 |
분할 4 |
||
|
|
|
Identification |
Packet Length |
MF |
Fragment Offset |
|
|
IP 헤더 |
분할 1 |
1254 |
124 |
1 |
0 |
|
|
IP 헤더 |
분할 2 |
1254 |
124 |
1 |
13 |
|
|
IP 헤더 |
분할 3 |
1254 |
124 |
1 |
26 |
|
|
IP 헤더 |
분할 4 |
|
1254 |
88 |
0 |
39 |
먼저 Fragment Offset 필드를 계산해야 하는데,
이 값에 8을 곱한 크기가 분할 전의 데이터 위치다. 패킷
전체의 최대 크기인 128비트에서 헤더인 20바이트를 빼면 108바이트가 되므로 분할 패킷에 보관할 수 있는 데이터의 최대 크기는(108을 8로 나눈 몫(정수 값)*8=104
바이트다. 따라서 분할된 패킷의 개수는 4개(=380을 108로 나눈 몫+1)며, 각 패킷의 Fragment Offset 필드 값은 0, 13, 26, 39가 된다.
분할 패킷인 분할 1, 분할 2, 분할 3은 데이터 크기 104 바이트에 헤더 크기 20바이트를 더해 124가 되므로 패킷의 전체 크기 Packet Length=124 바이트다. 마지막 분할 패킷은, 전체 데이터의 크기 380에서 세 개의 분할 패킷 크기 3*104를 빼면 68바이트의 여분을 얻을 수 있는데 이 값에 헤더
크기인 20바이트를 더해 Packet Length = 88바이트다.
분할한 패킷의 Identification 필드에는 동일한 번호를 부여해야 한다. 그림에서는 임의로 1254번을 가정하였다. MF 필드는 마지막 패킷만 제외하고 1을 지정해 분할 패킷이 이어지고
있음을 표시해 주어야 한다. DF 비트는 지정되지 않은 것으로 가정하였다.
'이론 수업 > 컴퓨터 네트워크' 카테고리의 다른 글
| 컴퓨터 네트워크 5장 연습문제 해설 (0) | 2010.05.12 |
|---|---|
| 컴퓨터 네트워크 3,4장 연습문제 해설 (0) | 2010.05.11 |
