네트워크 계층을 배웠다면 대답할 수 있는 필수 지식에 대해서 알아보자
Network Layer
또 게임 서버 프로그래밍에 좋은 비유가 있더이다.
(Data Link를 보고 오면 더 이해가 잘될 것이다.)
[컴퓨터(Computer Science)/네트워크, Network] - 데이터링크(Data Link Layer) 계층에 관한 필수 지식
**여기서 마을은 LAN, 도시는 WAN (WAN은 모여도 WAN임)
마을이 커져서 도시가 되었다. 그러면 집마다 번호를 매기는 방식으로는 한계가 생긴다.
(왜냐하면 겁나 많아지기 때문에... 숫자도 겁나 커지겠다)
마을을 서로 다른 이름의 구역으로 나눈다. EX) OO구 OO동 XX호
그러면 번지 값이 같아도 구역 이름이 다르면 고유한 주소 값이 보장된다.
도시를 넘어 국가 규모라면 구역은 OO도 OO시 OO구 OO번 식으로 여러 단계로 나눈다.
(괜히 우리가 행정구역을 나누어 관리하는 것이 아니다.)
(이유는 다르지만..ㅎ)
OSI 모델의 계층 3은 이를 가능하게 하는 규약이다.
WAN의 모든 단말기는 OSI 모델의 계층 3에서 요구하는 형식의 주소를 가진다.
단말기에서 일단 데이터를 네트워크 스위치에 보냈는데, 이를 어떻게 성공적으로 다른 LAN에 있는 단말기로 전달할 수 있을까?
먼 곳에 편지를 보낸다. 그래서 편지 봉투에 다음과 같이 적는다.
“발신처: A도 X시 P구 1번”
“수신처: B도 Y시 Q구 2번”
국가 규모의 우체국이라면 편지 봉투 하나하나를 직접 수신처에 전달하지는 않는다.
(우리의 택배도 HUB에서 바로 전달하는 것이 아닌 것처럼 큰 곳에서 아래 쪽 구역으로 나누어지며 전달된다.)
발신처가 P구이기 때문에, 일단은 P구를 담당하는 사람에게 건넨다.
그런 다음 X시를 담당하는 사람에게, 그다음에는 A도를 담당하는 사람에게 전달한다.
A도를 담당하는 사람은 그 편지를 B도 담당자에게 보낸다.
그리고 B도 담당자는 Y시 담당자에게 건네고, Y시 담당자는 Q구 담당자에게 건네준다.
Q구 담당자는 비로소 2번 집에 우편을 가져다준다.
**여기서 해당 주소는 IP에 해당한다.
**여기서 편지는 패킷, Packet에 해당한다.
여기서 중요한 것은 건네는 행위다.
우편물을 직접 전달하지 않고 건네준다는 것이다.
마찬가지로 WAN에서도 직접 데이터를 건네는 것이 아니라, 계층적으로 데이터를 건네주는 방식으로 작동한다.
어떤 데이터가 단말기에서 스위치로 갔는데 그 데이터를 스위치가 직접 건네줄 수 없는 곳에 있으면, 이를 취급할 수 있는 곳으로 데이터를 보내야 한다.
이러한 일을 담당하는 네트워크 기기를 라우터(router)라고 한다.
결국 라우터를 통해 해당 데이터가 전달된다.
라우터는 서로 다른 LAN 사이의 통신을 할 수 있게 하는 장비라고 할 수 있다.
- Router란 무엇인가?
라우터는 네트워크 장비로 네트워크 레이어에서 동작한다.
주요한 역할은 데이터를 현 네트워크에서 다른 네트워크로 옮기는 것이다.
라우터는 목적지 주소를 알 때 작동하고 라우터는 원거리 네트워크까지 라우팅 테이블에 있는 정보에 따라 최적의 경로로 작동한다.
- Routing이란 무엇인가?
라우팅이란 최적, 또는 최상의 경로를 결정하는 과정을 말한다.
그러한 과정은 네트워크에서 다른 네트워크로 패킷을 보낼 때 이뤄진다.
인터넷 통신이 라우팅의 가장 대표적인 예이다.
- Network Layer의 3대 역할
-Routing
-Internetwork
-Congestion control
- Store-and-forward 스위칭이 무엇인가?
패킷을 호스트에게서 받는다. 갈 수 있는 가장 짧은 라우터를 결정한다.
패킷은 다 도착하고 체크섬이 입증될 수 있도록 저장한다. 목적지에 도달할 때까지 반복한다.
(라우터가 어떤 라우터로 진행될 지의 핵심)
인터네트워킹이란 인터넷 환경을 만든다는 것을 말한다. 하지만 다양한 네트워크가 존재해서 두 개 이상의 다른 네트워크를 사용하는 경우에 다른 종류의 네트워크로부터 패킷을 얻기 위한 방법부터 모든 것이 달라진다.
상호 간의 네트워크를 위한 패킷 내에 각각의 네트워크로부터 패킷을 바꾸거나 전환시킴으로 다른 네트워크끼리 연결이 가능하다. (이러한 역할을 하는 것이 인터네트워킹이다.)
- 네트워크에서 Congestion(혼잡)이 무엇인지 설명하시오
패킷이 너무 많아서 네트워크의 수용량을 넘어서 처리할 수 없는 상태를 congestion 이라고 한다.
혼잡상황에서는 Collapse가 일어날 수 있다.
->수용량을 초과하면 포화속도로 유지되는 것이 아닌 collapse상태에 빠져서 수행 불가능 상태가 된다.
- 플러딩이란 무엇인지 설명하시오
정적 알고리즘으로 모든 패킷은 자신이 들어온 회선 하나만을 제외하고 모든 출력 회선으로 보내지는 것을 말한다. 이는 많은 중복패킷을 만들 수 있다.
- 비연결형 서비스란?
-비연결형 서비스에서는 패킷은 개별적으로 서브넷으로 보내지고 각각 개별적으로 경로 설정된다. 이 서브넷을 데이터그램 서브넷(Datagram subnet)이라고 부른다. 두 지점에서 서로 통신을 주고받는 상태이지만, 두 지점의 통신 회선이 완전하게 점유된 상태는 아니다.
IP가 전형적인 비연결 지향성 네트워크 서비스이다.
- 연결형 서비스
-임의의 데이터 패킷을 보내기 전에 근원지 라우터에서 목적지 라우터까지의 경로가 설정되어야 한다. 이러한 연결을 가상 회선 서브넷(Virtual-Circuit subnet)이라고 한다.
- 다익스트라 최단 경로 라우팅이 어떻게 작동하는가?
경로까지의 최소cost 노드만을 찾아서 간다.
B로 간다 그렇게 되면 C=18, E = 8 G = 12가 된다. 최단경로{A,B}
그 중 가장 작은 값인 E로 간다. 그렇게되면
F = 12 G = 10 C =18이 된다. {A,B,E}
가장 작은 값인 G로 간다.
그렇게 되면 H =18, F =12, C =18이 된다. {A,B,E,F}
다시 가장 작은 값인 F로 가면
H=16, C = 18이 된다.
그렇게 다시 가장 작은 값인 H를 간다{A,B,E,F,H}
그렇게 되면 C=18, D = 20이 된다.
다시 C를 방문해도 C에서 D는 26이 되기에
{A,B,E,F,H,D}가 최단경로가 된다.
- 링크 상태 라우팅을 다음 단어로 설명하시오 [ building link state packet, distributing the link state packets, measuring line cost, learning about the neighbors, computing the new routes]
1. learning about the neighbors
이웃하는 라우터를 찾아내어 네트워크 주소를 알아낸다.
부팅된 라우터는 점대점 회선 각각에 대하여 HELLO 패킷을 보냄으로써 알아낸다.
그에 대한 response로 자신이 누구인지를 보내준다.
핑 테스트와 같은 방식으로 진행한다.
2. measuring line cost
이웃 각각에 대한 거리와 비용 메트릭을 설정한다.
라우터에 도달하기 위한 비용은 자동적으로 측정되거나 네트워크 관리자에 의해 설정된다.
3. building link state packet
알아낸 모든 정보를 전달하는 패킷을 만든다.
교환에 필요한 정보들이 만들어지면 각 라우터가 그 모든 데이터를 포함한 패킷을 만든다.
4. distributing the link state packets
이 패킷을 다른 모든 라우터에게 전송하고 수신한다.
패킷이 전달되고 설정됨에 따라 그 패킷을 받은 라우터는 경로를 바꾼다.
5. computing the new routes
다른 모든 라우터에 대해서 최단 경로를 계산한다.
링크 상태 패킷을 받아서 모든 링크를 알게 되었으므로 새롭게 최단경로를 계산한다.
- 정적 라우팅과 동적 라우팅의 차이를 설명하시오
정적: 통신환경에 따라 다르지 않음
동적: 통신환경에 따라 다름.
정적라우팅은 경로 선택을 미리 계산해서 네트워크가 부팅될 때 라우터에 다운로드 된다.
동적 라우팅은 형태와 트래픽의 변화를 반영하여 라우팅 결정을 바꾸는 것이다.
- 계층 라우팅(Hierarchical Routing)에 대해 설명하시오
네트워크 크기가 커짐에 따라 라우팅 테이블이 커졌다. 라우팅 테이블이 커져서 효율이 떨어지자
계층적인 라우팅이 될 필요가 있다. 라우터를 지역(region)이라는 단위에 따라 나누어 같은 지역 내에서는 패킷이 전달되는 방법을 알지만 다른 지역의 구조에 대해서는 모르게 된다. 그렇게 함으로써 효율성을 유지한다.
- 거리 벡터 라우팅의 원리에 대해서 설명하시오
거리에 대한 벡터값을 가지고 라우팅을 하는 것이다.
이 라우팅은 목적지에 도달하기 위하여 사용하는 회선이 나와있는 테이블(vector)를 유지함으로써 운용된다. 이러한 테이블은 라우터들과 정보교환에 의해 갱신된다.
- 거리 벡터 라우팅의 한계 점인 Count to infinity에 대해서 설명하시오
거리 벡터 알고리즘은 이론상으로는 잘 작동하는 것처럼 보인다.
하지만 실제로는 정확한 답을 내기는 하나 매운 느리다는 단점이 있다.
좋은 소식에 대해서는 매우 빠르게 대응 하나 나쁜 소식에 대해서는 느리게 대응한다.
A-B-C-D-E가 있다고 해보자
모든 회선과 라우터가 초기에 정상 작동하고 있다.
하지만 갑자기 A와 B 회선이 끊어졌다.
처음 패킷이 교환되면 B는 A로부터 아무것도 얻을 수 없다. 그렇지만 C는 자신이 A와 거리가 2라면서 B에게 정보를 준다. 그렇게 됨으로 B는 나는 C를 거쳐 A를 갈 수 있고 그 거리는 3이라고 생각한다.
우리는 알지만 B는 C가 수십 개의 경로를 가지고 있고 그 중 A와 이어지는 것이 있다고 생각하는 것이다.
C는 B가 거리가 3이라는 정보를 바탕으로 다시 C에서 B를 참조해서 A로 가는 거리 4 경로가 있구나 라고 생각한다.
이를 반복해 무한 카운팅 문제가 생겨난다
- 그림을 보고 transparent fragmentation 과 nontransparent fragmentation for internetworking 을 각각 비교하여 설명하시오.
우선 단편화가 일어나는 이유는 수용할 수 있는 패킷의 크기가 달라서 그렇다. 커다란 패킷이 최대 패킷이 적은 네트워크를 통해 전송된다면 인터네트워킹 문제가 발생하고 이를 단편화로 해결이 가능하다. (a)는 투명 단편화로 게이트웨이 라우터에서 큰 패킷은 작게 쪼갠다. 그 후 다른 게이트웨이로 갈 때 다시 재결합한다. 이는 사용자가 보기에 단편화가 일어나지 않은 것처럼 보인다. (b)는 불투명 단편화로 중간 라우터에서 재결합을 하지 않는다. 재결합은 목적지에 도착했을 때만 일어난다. 사용자는 단편화 된 것을 확인할 수 있으므로 불투명 단편화라고 한다.
이런 일은 Gateway 라우터가 한다.
- IP 주소란 무엇인가 설명하시오
IPv4주소란 32bit 주소로 인터넷 상에 있는 모든 호스트와 라우터들은 IP 패킷의 근원지 주소와 목적지 주소의 필드를 위해 사용되는 IP주소를 가지고 있다.
-TCP/IP 프로토콜을 사용하여 통신을 할 때, 송신자와 수신자를 구별하기 위한 고유의 주소
목적
-IP 주소는 실제로 호스트를 언급하는 것이 아니라 네트워크 인터페이스를 언급한다.(통신을 하기위해 필요함)
(즉 호스트가 2개의 네트워크 상에 있다면 2개의 IP 주소를 가지고 있어야 한다.)
- IPV4의 메커니즘에 대해서 설명하시오
IPv4는 현재 쓰고 있는 IP 주소의 타입이다.
32bit의 주소로 되어있으며 각 bit들은 1byte(8-bit)씩 4개로 나누어져있다.
그래서 0-255의 범위를 가지며 각 숫자들은 " . " 온점에 의해서 구분된다.
- IPV4의 문제점에 대해서 설명하시오
현재 사용하고 있는 IPv4의 주소로는 한계가 온다. 즉, 넘쳐나는 수요에 공급이 모자라다.
CIDR과 NAT가 주소를 절약했음에도 부족한 경우가 있다.
- IPV4 와 IPV6의 Address 갯수의 차이를 설명하고, Address 개수가 차이가 나는 이유를 설명하시오.
인터넷상에 있는 모든 호스트와 라우터들은 IP 패킷의 근원지 주소와 목적지 주소의 필드를 위해 사용되는 IP주소를 가지고 있다. IP주소가 실제로 호스트를 언급하지 않고 인터페이스를 언급하는 것이 중요하다.
IPv4는 32bit의 주소를 가지고 있다. 하지만 IP주소가 인터넷의 기하급수적인 성장에 의해서 부족해지자 그를 위해서 IPv6를 만들었다. 16진수를 사용한 16비트의 8set를 가지고 있다. 따라서 32-bit 128-bit의 차이만큼 주소의 개수에서 차이가 난다.
- Packet과 Frame의 차이를 설명하시오.
프레임은 데이터를 담는 컨테이너로, 동일 네트워크 상의 두 지점 간에 정보를 전달할 소스(Source, 발신지)과 목적지 주소를 가지고 있다. 이를 페이로드(payload)라고 한다. 이름과 부서 대신에 프레임의 소스와 목적지 주소는 컴퓨터나 태블릿, IP폰, IoT 디바이스 등등의 MAC(Media Access Controller) 주소다. MAC 주소는 ID 번호의 일종으로, 전세계의 모든 이더넷 디바이스에 유일무이한 번호가 된다.
48bit로 구분한다.
LAN에서는 IP 대신 MAC주소를 쓰기도 한다.
(MAC 주소가 유일무이하고 영구적인 것과는 달리 IP 주소는 보통 일시적으로 할당되며, 디바이스가 다른 네트워크에 연결되면 변경된다. 예를 들어, 태블릿의 IP 주소는 다른 와이파이 네트워크에 연결할 때마다 바뀐다.)
*AS(Autonomous System), 자율적인 시스템 = 서브넷이라고 부르기도함
- 내부 게이트웨이 라우팅 프로토콜: OSPF에 대해서 설명하시오
Open Shortest Path First의 약어이다. 우리는 최단 경로 우선 프로토콜이라고도 한다.
서브넷의 게이트웨이에서 라우팅을 제어하는 역할을 한다.
링크 스테이트 라우팅 알고리즘을 사용하며 AS에서 작동하면서 내부 라우팅 프로토콜 그룹에 도달한다.
(인트라도메인 라우팅이라는 영역에서 사용되는 프로토콜이다.)
[RIP(routing information protocol)보다 규모가 큰 네트워크에서도 사용할 수 있다. 규모가 크고 TCP/IP 네트워크에서 RIP의 단점을 개선한 라우팅 프로토콜. RIP에 비해 자세한 제어가 가능하고, 관리 정보의 트래픽도 줄일 수 있다.]
(내부망에서 가장 널리 쓰이는 프로토콜이기도 하다)
- 외부 경계 게이트웨이 라우팅 프로토콜 : BGP에 대해서 설명하시오
AS(Autonomous System), 자율적인 시스템 간의 라우팅을 위한 프로토콜이다.
BGP란 Border Gateway Protocol의 약자이다.
내부 도메인 프로토콜과 외부 도메인 프로토콜이 목적이 서로 다르기 때문에 다른 프로토콜이 필요하다.
모든 외부도메인 프로토콜이 할 수 있는 것은 근원지로부터 목적지로 가능한 한 효율적인 패킷을 이동시키는 것이다.
반대로 내부 도메인 라우팅 프로토콜은 정책에 대해 고민해야한다. 일반적인 외부 게이트웨이 프로토콜 특히 BGP는 AS 간 트래픽에서 시행되는 많은 종류의 라우팅 정책들을 수용할 수 있게 설계되어 있다.
BGP는 서로 다른 종류의 자율 시스템(AS, 서브넷)에서 동작하는 라우터가 라우팅 정보를 교환할 수 있도록 해준다.
- 리키 버킷 알고리즘(Leaky Bucket Algorithm)의 목적에 대해서 설명하시오
혼잡제어(Congestion Control)을 위한 알고리즘이다.
전송하는 패킷 수를 제한 시켜서 네트워크 성능 저하를 막기 위한 것이다. 때문에 송신 호스트가 전송하는 패킷의 발생 빈도가 네트워크에서 수용할 수 있는 전송률로 이루어지게 하는 기능이 필요하다. 그 기능을 수행하는 알고리즘 중 하나가 리키 버킷 알고리즘이다. 라우터의 버퍼에서 이루어진다.
'컴퓨터(Computer Science) > 네트워크, Network' 카테고리의 다른 글
응용(Application Layer)계층에 관한 필수 지식 (0) | 2020.12.11 |
---|---|
트랜스포트(Transport Layer)계층에 관한 필수 지식 (0) | 2020.12.11 |
데이터링크(Data Link Layer) 계층에 관한 필수 지식 (0) | 2020.12.11 |
물리적계층(Physical Layer)에 관한 필수 지식 (0) | 2020.12.11 |
Connection-Oriented & Connectionless Protocol& Service, 연결형과 비연결형 서비스 (0) | 2020.11.25 |