1. 서비스

    1.1. 패킷화

    1.2. 경로 지정

    1.3. 오류 제어

    1.4. 흐름 제어

    1.5. 혼잡 제어

    1.6. 서비스 품질

    1.7. 보안

2. 패킷 교환

    2.1. 데이터그램 방식: 비연결형 서비스

    2.2. 가상-회선 방식: 연결형 서비스

3. 성능

    3.1. 지연

    3.2. 처리량

    3.3. 패킷 손실

4. 인터넷 프로토콜(IP) 버전 4

    4.1. IPv4 주소 지정

    4.2. 주 프로토콜과 보조 프로토콜

    4.3. 옵션들

    4.4. ICMPv4

    4.5. 이동 IP

    4.6. IP 패킷의 포워딩

5. 차세대 IP(IPv6)

    5.1. IPv6 주소 지정

    5.2. IPv6 프로토콜

    5.3. ICMPv6 프로토콜

6. IPv4에서 IPv6로 전환


1. 서비스

    1.1. 패킷화

네트워크층의 가장 큰 의무는 패킷화(Packetizing)이다.

 └ 다른 말로 캡슐화(Capsulation, Encapsulation)이라고도 한다.

 └ 상위 계층의 Payload에 Header를 붙여 Packet으로 만드는 과정

 └ 상위 계층의 데이터 전송 단위는 Message이다.

 

발신지 호스트는 상위 계층 프로토콜로부터 페이로드(Message)를 수신한다.

발신지 주소, 목적지 주소, 네트워크층 프로토콜 등을 헤더에 추가하고, 패킷을 데이터 링크층에게 전달한다.

목적지 호스트는 데이터 링크층으로부터 패킷을 수신한다.

Decapsulation을 하여 대응하는 상위 계층 프로토콜에 전달한다.

 └ 역캡슐화(Decapsulation) : 패킷에서 헤더를 벗겨 그 안의 payload를 얻어내는 과정

만약 패킷이 발신지 혹은 경로 상의 라우터에서 단편화 되었다면, 재조립하여 전달하는 책임을 가진다.

 └ 단편화(Fragmentation) : 데이터가 여러 개의 조각으로 나뉘어지는 현상

 

    1.2. 경로 지정

네트워크층은 패킷이 발신지에서 목적지까지 갈 수 있도록 하는 '경로 지정(Routing)'에 대한 책임을 갖는다.

 └ 목적지 라우팅(Destination Routing)이라고도 한다.

물리적인 네트워크는 네트워크(LAN과 WAN)와 네트워크를 연결하는 라우터의 조합인데,

이는 발신지에서 목적지까지 적어도 하나 이상의 라우터가 있다는 의미이다.

네트워크층에서는 라우터를 거치는 가능한 모든 경로 중, 가장 좋은 경로를 찾는 역할을 수행한다.

 └ Best Effort라고 한다.

 

    1.3. 오류 제어

네트워크층에서 오류 제어를 구현할 수 있지만, 데이터에 대한 오류 제어는 하지 않는다.

그 이유는 단편화가 일어나면 모든 조각에 대해 오류를 검사하는 것이 비효율적이라고 생각했기 때문이다.

 

하지만 헤더 훼손 방지를 위해 데이터그램에 검사합 필드를 추가하였다.

 └ 데이터그램(Datagram) : 네트워크층의 전송 단위, 가변 길이 패킷

이는 종단-종단이나 홉-홉 사이에 헤더가 훼손되는 것을 방지한다.

또한, 소프트웨어의 오류 제어가 아닌 하드웨어의 오류 제어는 진행한다.

 

    1.4. 흐름 제어

흐름 제어(Flow Control)는 송신자가 수신자가 허용할 수 있을 만큼의 데이터만 보내는 방법이다.

이를 위해 수신자는 자신이 데이터를 감당할 수 없는 것을 알리기 위한 피드백을 전송해야 한다.

 

    1.5. 혼잡 제어

혼잡(Congestion)은 너무 많은 데이터그램이 존재하는 경우이다.

송신자가 보낸 데이터그램이 네트워크나 라우터의 처리 성능을 넘어서는 경우 발생한다.

다양한 혼잡 제어 기술로 상황 악화를 방지한다.

 

    1.6. 서비스 품질

멀티미디어 통신(음성과 비디오 전송) 같은 새로운 응용 때문에 통신 시 서비스 품질이 중요해졌다.

하지만 이런 서비스 품질(Quality of Service)은 대부분 상위 계층에서 구현한다.

 

    1.7. 보안

비연결형 네트워크층에 보안(Security)을 제공하기 위해 고안하였다.

비연결형 서비스를 연결형 서비스로 변경할 수 있는 다른 가상의 계층이 필요하다.

IPsec이라고 하는 가상의 계층을 활용하여 보안을 높인다.

 

2. 패킷 교환

데이터 통신의 교환 기법은 회선 교환과 패킷 교환으로 구분한다.

네트워크층에서 사용하는 데이터는 패킷이기 때문에 네트워크층에서는 단지 패킷 교환만 사용한다.

 

네트워크층에서는 상위 계층에서 온 메시지를 단편화한다.

발신지에서는 단편화한 패킷을 차례차례 보내고, 목적지에서는 하나씩 수신한다.

목적지에서는 상위 계층에 메시지를 전달하기 전, 메시지가 전부 도착할 때까지 기다린다.

이때 패킷 교환망에서 어떻게 최종 목적지까지 보낼지에 따른 결정 방법이 두 가지가 있다.

 └ 데이터그램 방식(Datagram Approach)

 └ 가상-회선 방식(Virtual-Circuit Approach)

 

    2.1. 데이터그램 방식: 비연결형 서비스(Connectionless)

인터넷이 처음 만들어질 때, 네트워크층의 간소화를 위해 모든 패킷을 독립적인 처리를 하도록 했다.

각 패킷은 다른 어떤 패킷과도 관계를 가지지 않는 Connectionless Service를 갖는다.

각 패킷은 패킷의 헤더에 포함된 발신지 주소와 목적지 주소를 기반으로 경로를 설정한다.

라우터는 목적지 주소만 참조하여 경로를 설정한다.

 

    2.2. 가상-회선 방식: 연결형 서비스(Connection-Oriented)

'가상'이라는 단어는 물리적이지 않고, 논리적이라는 의미를 포함하고 있다.

Connection-Oriented Service에서 모든 패킷은 연관성이 있다.

한 메시지에 속한 데이터그램이 전송되기 전, 데이터그램들을 위한 경로 정의가 먼저 설정되어야 한다.

연결 설정 이후, 모든 데이터 그램을 같은 경로를 통해 전송한다.

이떄 패킷은 자신이 지나가는 가상 경로를 정의하는 '흐름 레이블(Flow Label)'을 포함한다.

 

3. 성능

    3.1. 지연(Delay)

전송 지연(Transmission Delay)

발신지 호스트나 라우터는 모든 패킷을 동시에 보낼 수 없다.

송신기는 선로 상에 존재하는 패킷의 비트를 하나씩 차례로 보내야 한다.

처음 비트가 T1 마지막 비트가 T2일 때 보내진다면, 전송 지연은 T2 - T1이다.

패킷의 길이가 길수록 전송 지연은 당연히 길어지고, 패킷의 길이가 짧을수록 전송 지연은 짧아진다.

 

Delaytr = (Packet Length) / (Transmission Rate)

 

전파 지연(Propagation Delay)

전송 매체를 통해 A에서 B까지 1비트가 전달될 때 걸리는 시간이다.

이는 각 네트워크(LAN이나 WAN)의 상태(전송 매체의 전송 속도)에 따라 정해진다.

 

Delaypg = (Distance) / (Propagation Speed)

 

처리 지연(Processing Delay)

목적지 호스트나 라우터가 패킷을 처리하는데 걸리는 시간이다.

 └ 패킷 입력 시간, 헤더 제거 시간, 오류 검출 시간, 상위 계층으로 전달 시간 등

처리 지연은 각 패킷마다 다르지만 보통 평균으로 계산한다.

Delaypr = 라우터나 목적기 호스트에서 패킷을 처리하는데 걸리는 시간

 

대기 지연(Quening Delay)

일반적으로 라우터에서 발생하는 지연 시간이다.

라우터는 입력 포트과 출력 포트에 사용하는 큐를 각각 가지고 있다.

이때 입력 큐와 출력 큐에서 발생하는 대기 시간이 대기 지연 시간이다.

 

Delayqu = 패킷이 라우터에 있는 입력과 출력 큐에서 기다리는 시간

 

전체 지연

전체 경로 상의 라우터의 개수를 N이라 하고, 송신자ㆍ수신자ㆍ라우터가 각각 같은 지연을 가진다고 가정하자.

이때 패킷에 발생하는 전체 지연(발신지에서 목적지까지)은 아래 수식과 같다.

N개의 라우터가 있다면 N+1개의 링크가 있으므로 대기 지연을 제외한 나머지 지연은 전부 N+1개만큼 걸린다.

 

Total Delay = { (N+1) × (Delaytr + Delaypg + Delaypr) } + { (N) × (Delayqu) }

 

    3.2. 처리량(Throughput)

3개의 연속적인 링크로 구성된 경로의 처리량

처리량을 한 문장으로 설명하면 '단위시간당 전송률'이다.

처리량은 한 지점을 지나느 초당 비트 수로 정의한 것으로, 해당 지점에서의 실질적인 전송률이다.

문제는 링크마다 서로 다른 전송률을 갖는 것이다.

 

Source에서 R1까지는 200kbps이지만, R1에서 R2는 100kbps, R2에서 Desination은 150kbps이다.

이러면 모두 100kbps의 속도로 데이터를 전송할 수밖에 없게 된다.

이런 식으로 전체 성능에 가장 큰 영향을 미치는, 병목 지점을 Bottleneck이라고 한다.

그리고 평균 전송량은 Bottleneck에 의해 결정된다.

 

일반적으로 연속된 N 링크를 가진 경로에서 처리량은 다음과 같다.

Throughput = minimum(TR1, TR2, ..., TRn)

 

    3.3. 패킷 손실(Packet Loss)

라우터가 특정 패킷을 처리하는 동안 다른 패킷은 자신의 차례까지 대기해야 한다.

이때 라우터의 버퍼는 한정적이라 문제가 발생한다. 버퍼가 가득찰 경우 다른 패킷을 수신하지 못하고 폐기한다.

이런 상황을 패킷 손실이라고 한다.

 

이럴 경우 해당 패킷을 재전송해야 하는데 잘못하면 더 많은 오버플로우와 패킷 손실을 야기한다.

패킷 손실과 큐의 오버플로우를 방지하기 위해 큐잉 이론(Queueing Theory; 대기 행렬 이론)이 존재한다.

 

4. 인터넷 프로토콜(IP) 버전 4

    4.1. IPv4 주소 지정

 

 

 

 

    4.2. 주 프로토콜과 보조 프로토콜

    4.3. 옵션들

    4.4. ICMPv4

    4.5. 이동 IP

    4.6. IP 패킷의 포워딩

5. 차세대 IP(IPv6)

    5.1. IPv6 주소 지정

    5.2. IPv6 프로토콜

    5.3. ICMPv6 프로토콜

6. IPv4에서 IPv6로 전환

+ Recent posts