STATIC=====================================
R12(config)# ip route 0.0.0.0 0.0.0.0 1.4.2.1

R11(config)# ip route 0.0.0.0 0.0.0.0 1.4.1.1
R11(config)# ip route 1.4.3.0 255.255.255.0 1.4.2.2

RC(config)#ip route 1.4.2.0 255.255.255.0 1.4.1.2
RC(config)#ip route 1.4.3.0 255.255.255.0 1.4.1.2


RIPv2 =======================================
R22(config)#router rip
R22(config-router)#version 2
R22(config-router)#no auto-summary
R22(config-router)#network 2.4.3.1
R22(config-router)#network 2.4.2.2
R22(config-router)#passive-interface g0/0

R21(config)#router rip
R21(config-router)#version 2
R21(config-router)#no auto-summary
R21(config-router)#network 2.4.2.1
R21(config-router)#network 2.4.1.2

RC(config)#router rip
RC(config-router)#version 2
RC(config-router)#no auto-summary
RC(config-router)#network 1.4.1.1
RC(config-router)#network 2.4.1.1
RC(config-router)#network 3.4.1.1
RC(config-router)#network 4.4.1.1

+
RC(config)#router rip
RC(config-router)#redistribute static
RC(config-router)#redistribute ospf 1 metric 5
RC(config-router)#redistribute eigrp 100 metric 5


OSPF=======================================
R32(config)#router ospf 1
R32(config-router)#router-id 3.4.3.1
R32(config-router)#network 3.4.3.1 0.0.0.0 area 0
R32(config-router)#network 3.4.2.2 0.0.0.0 area 0
R32(config-router)#passive-interface g0/0

R31(config)#router ospf 1
R31(config-router)#router-id 3.4.2.1
R31(config-router)#network 3.4.2.1 0.0.0.0 area 0
R31(config-router)#network 3.4.1.2 0.0.0.0 area 0

RC(config)#router ospf 1
RC(config-router)#router-id 3.4.1.1
RC(config-router)#network 1.4.1.1 0.0.0.0 area 0
RC(config-router)#network 2.4.1.1 0.0.0.0 area 0
RC(config-router)#network 3.4.1.1 0.0.0.0 area 0
RC(config-router)#network 4.4.1.1 0.0.0.0 area 0

+
RC(config)#router ospf 1
RC(config-router)#redistribute static subnets
RC(config-router)#redistribute rip subnets
RC(config-router)#redistribute eigrp 100 metric 10 subnets


EIGRP======================================
R42(config)#router eigrp 100
R42(config-router)#network 4.4.3.1 0.0.0.0
R42(config-router)#network 4.4.2.2 0.0.0.0
R42(config-router)#passive-interface g0/0

R41(config)#router eigrp 100
R41(config-router)#network 4.4.2.1 0.0.0.0
R41(config-router)#network 4.4.1.2 0.0.0.0

RC(config)#router eigrp 100
RC(config-router)#network 1.4.1.1 0.0.0.0
RC(config-router)#network 2.4.1.1 0.0.0.0
RC(config-router)#network 3.4.1.1 0.0.0.0
RC(config-router)#network 4.4.1.1 0.0.0.0

+
RC(config)#router eigrp 100
RC(config-router)#redistribute static
RC(config-router)#redistribute rip metric 10000 10 255 1 1500
RC(config-router)#redistribute ospf 1 metric 10000 10 255 1 1500

 

RIP - OSPF

OSPF=======================================
Rr2(config)#router ospf 1
Rr2(config-router)#router-id 192.4.23.1
Rr2(config-router)#network 192.4.23.1 0.0.0.0 area 0
Rr2(config-router)#network 192.4.22.2 0.0.0.0 area 0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router ospf 1
Rr1(config-router)#router-id 192.4.22.1
Rr1(config-router)#network 192.4.22.1 0.0.0.0 area 0
Rr1(config-router)#network 192.4.21.1 0.0.0.0 area 0

Rm(config)#router ospf 1
Rm(config-router)#router-id 192.4.21.10
Rm(config-router)#network 192.4.21.10 0.0.0.0 area 0
Rm(config-router)#network 192.4.11.10 0.0.0.0 area 0
Rm(config-router)#redistribute rip subnets

RIPv2 =======================================
Rs2(config)#router rip
Rs2(config-router)#version 2
Rs2(config-router)#no auto-summary
Rs2(config-router)#network 192.4.13.1
Rs2(config-router)#network 192.4.12.2
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router rip
Rs1(config-router)#version 2
Rs1(config-router)#no auto-summary
Rs1(config-router)#network 192.4.12.1
Rs1(config-router)#network 192.4.11.1

Rm(config)#router rip
Rm(config-router)#version 2
Rm(config-router)#no auto-summary
Rm(config-router)#network 192.4.11.10
Rm(config-router)#network 192.4.21.10
Rm(config-router)#redistribute ospf 1 metric 5

RIP_OSPF세팅.pkt
0.05MB


RIP - EIGRP

RIPv2 =======================================
Rs2(config)#router rip
Rs2(config-router)#version 2
Rs2(config-router)#no auto-summary
Rs2(config-router)#network 192.4.13.1
Rs2(config-router)#network 192.4.12.2
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router rip
Rs1(config-router)#version 2
Rs1(config-router)#no auto-summary
Rs1(config-router)#network 192.4.12.1
Rs1(config-router)#network 192.4.11.1

Rm(config)#router rip
Rm(config-router)#version 2
Rm(config-router)#no auto-summary
Rm(config-router)#network 192.4.11.10
Rm(config-router)#network 192.4.21.10
Rm(config-router)#redistribute eigrp 100 metric 5


EIGRP======================================
Rr2(config)#router eigrp 100
Rr2(config-router)#network 192.4.23.1 0.0.0.0
Rr2(config-router)#network 192.4.22.2 0.0.0.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router eigrp 100
Rr1(config-router)#network 192.4.22.1 0.0.0.0
Rr1(config-router)#network 192.4.21.1 0.0.0.0

Rm(config)#router eigrp 100
Rm(config-router)#network 192.4.11.10 0.0.0.0
Rm(config-router)#network 192.4.21.10 0.0.0.0
Rm(config-router)#redistribute rip metric 10000 10 255 1 1500

RIP_EIGRP세팅.pkt
0.05MB


OSPF - EIGRP

OSPF=======================================
Rs2(config)#router ospf 1
Rs2(config-router)#router-id 192.4.13.1
Rs2(config-router)#network 192.4.13.1 0.0.0.0 area 0
Rs2(config-router)#network 192.4.12.2 0.0.0.0 area 0
Rs2(config-router)#passive-interface g0/0

Rs1(config)#router ospf 1
Rs1(config-router)#router-id 192.4.12.1
Rs1(config-router)#network 192.4.12.1 0.0.0.0 area 0
Rs1(config-router)#network 192.4.11.1 0.0.0.0 area 0

Rm(config)#router ospf 1
Rm(config-router)#router-id 192.4.11.10
Rm(config-router)#network 192.4.21.10 0.0.0.0 area 0
Rm(config-router)#network 192.4.11.10 0.0.0.0 area 0
Rm(config-router)#redistribute eigrp 100 metric 10 subnets

EIGRP======================================
Rr2(config)#router eigrp 100
Rr2(config-router)#network 192.4.23.1 0.0.0.0
Rr2(config-router)#network 192.4.22.2 0.0.0.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router eigrp 100
Rr1(config-router)#network 192.4.22.1 0.0.0.0
Rr1(config-router)#network 192.4.21.1 0.0.0.0

Rm(config)#router eigrp 100
Rm(config-router)#network 192.4.11.10 0.0.0.0
Rm(config-router)#network 192.4.21.10 0.0.0.0
Rm(config-router)#redistribute ospf 1 metric 10000 10 255 1 1500

OSPF_EIGRP세팅.pkt
0.05MB

 

아래와 같이 토폴로지를 구성하고 IP는 미리 세팅한후 실습한다.

STATIC(공통)=================================
Rs2(config)# ip route 0.0.0.0 0.0.0.0 192.4.12.1

Rs1(config)# ip route 0.0.0.0 0.0.0.0 192.4.11.10
Rs1(config)# ip route 192.4.13.0 255.255.255.0 192.4.12.2

Rm(config)#ip route 192.4.12.0 255.255.255.0 192.4.11.1
Rm(config)#ip route 192.4.13.0 255.255.255.0 192.4.11.1


OSPF=======================================
Rr2(config)#router ospf 1
Rr2(config-router)#router-id 192.4.23.1
Rr2(config-router)#network 192.4.23.1 0.0.0.0 area 0
Rr2(config-router)#network 192.4.22.2 0.0.0.0 area 0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router ospf 1
Rr1(config-router)#router-id 192.4.22.1
Rr1(config-router)#network 192.4.22.1 0.0.0.0 area 0
Rr1(config-router)#network 192.4.22.1 0.0.0.0 area 0
Rr1(config-router)#network 192.4.21.1 0.0.0.0 area 0

Rm(config)#router ospf 1
Rm(config-router)#router-id 192.4.21.10
Rm(config-router)#network 192.4.21.10 0.0.0.0 area 0
Rm(config-router)#network 192.4.11.10 0.0.0.0 area 0
Rm(config-router)#redistribute static 
% Only classful networks will be redistributed
> 왼쪽에 있는 static네트워크를 classful network로 본다.
정확히 redistribute 하고 싶으면 redistribute static subnet으로 적는다.

EIGRP======================================
Rr2(config)#router eigrp 100
Rr2(config-router)#network 192.4.23.1 0.0.0.0
Rr2(config-router)#network 192.4.22.2 0.0.0.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router eigrp 100
Rr1(config-router)#network 192.4.22.1 0.0.0.0
Rr1(config-router)#network 192.4.21.1 0.0.0.0

Rm(config)#router eigrp 100
Rm(config-router)#network 192.4.11.10 0.0.0.0
Rm(config-router)#network 192.4.21.10 0.0.0.0
Rm(config-router)#redistribute static

Static_OSPF세팅.pkt
0.05MB
Static_EIGRP세팅.pkt
0.05MB

Pipelined protocol

◾ Pipelining

 : sender에게 ACK를 기다리지 않고 여러 개의 pkt를 전송하도록 하용하는것
• seq #의 범위는 증가되어야 한다.
• sender와 receiver는 하나이상의 pkt를 buffering해야 한다.

• piplining protocol : go-Back-N, selective repeat

윈도우 : RTT안에 있는 패킷 (단위 : MSS)

네트워크 성능은 윈도우가 결정

네트워크 퍼포먼스 : 단위시간동안 패킷이 얼마나 잘가는지

네트워크가 혼잡하면 윈도우 사이즈를 줄인다. (혼잡한 정도는 모른다 - 블라인드 통신 방식)


1) Go-Back-N

Sender 

1) Timeout 재전송

2) 정상 ACK를 받을 때마다 Timer 재시작 → Send base (윈도우에서 보낸지 가장 오래된 패킷) 에만 있음

 

◾ Receiver

1) 응답 → 누적 ACK

2) 순서가 틀린 pkt는 버림

 

• pkt hrader에 k-bit seq # 를 갖는다.
• window : 전송되었지만 확인 안된 pkt를 위해 허용 할수있는 seq #의 범위

• ACK(n) : 응답 패킷중에 시퀀스 넘버가

 - seq # n을 가진 ACK를 cumulative ACK(누적 ACK : 어디까지 잘 받았다고 응답하는 패킷)로 인식한다.
• 수신측에서 보면 n을 포함한 n까지의 모든 pkt에 대한 ACK이다.
• 가장 오래된 수신확인 안된 timer를 단일 timer로 사용한다. (Timer는 Send base에 있다.)
• Timeout 발생시 : 송신되었으나 ACK가 없는 모든 pkt를 재전송한다. (window내에 전송된 모든 pkt)


2) Selective repeat

◾ sender

• 상위 layer에서 Data가 수신되면 (rdt_send())

 - pkt의 다음 seq#를 검사 window 내에 있으면 pkt를 전송한다.
• timeout(n) : n번째 패킷에서 timeout이 발생하면
 - pkt n을 재전송하고 timer를 restart한다.
• ACK(n) 이 수신
 - n이 윈도우에 있다면 pkt가 수신된 것을 확인한다.

 - n이 send_base와 같다면 send_base는 가장 작은 seq#를 갖는 미확인 pkt로 이동하고 window내에 이 전송 pkt가 있으면 전송한다.

 

◾ receiver

• pkt n [n in rcvbase, rcvbase+N-1]
 - ACK(n)을 송신
 - out-order인경우 buffering한다. (out-order : 내가 원하지 x 패킷 / in-order : 내가 원하는 패킷)
 - in-order인 경우 필요하다면 buffer 에 저장된 번호가 연속적인 pkt와 함께 상위 layer에 전달하고 rcv_base를 가장 낮은 seq# 를 가진 미전송 pkt로 옮긴다.
• pkt n [n in rcvbase-N, rcvbase-1]
 - ACK(n)
• 이외의 경우
 - 무시한다.

 

rdt 3.0

 : 채널에 error나 loss가 가능

 

◾ 새로운 가정
 : 하위 채널에 packet loss가 일어날 수 있는 경우 (data & ACKs)
• checksum, seq #, ACKs만으로는 충분하지 않다.

 

◾ 새로운 접근 방식
 : sender는 합리적인 시간 만큼 ack를 기다린다.
• 합리적인 시간(Timeout)만큼 기다려도 ACK가 없으면 재전송한다.
• 만일 ACK가 지연된 것이라면
 - 중복을 유발하는 재전송이 일어난다. → 이미 중복 처리에 대한 준비가 되어있다.
 - receiver는 중복된 pkt에 대한 ACK를 재전송한다.
 - 이러한 작업은 실제로 문제를 일으키지는 않는다.
• 위의 구현을 위해 countdown timer를 필요로 한다.

 

Sender 

• state

 - Wait for call 0 from above : TCP는 0번 패킷을 보내려고 메시지를 기다린다.

• event

 - rdt_send(data) : Process > TCP [data] 전달 

• action

 - sndpkt = make_pkt(0, data, checksum) : data를 이용해 checksum 생성 후 data와 checksum, seq#로 패킷 생성 

 - udt_send(packet) : TCP > IP [packet] 전달

 - start_timer : ACK를 기다리는 타이머를 시작한다.

→ state 변화

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

 

i) 응답 패킷이 망가진 경우

• state

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt, 1)) : IP > TCP [응답패킷] 전달 & (응답패킷이 망가진 경우거나 응답패킷 ACK가 1인 경우)

• action

 - X

→ state 변화

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

 

ii) Timeout이 일어난 경우

• state

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

• event

 - Timeout 이 일어난 경우

• action

 - udt_send(sndpkt) : TCP > IP [응답패킷] 재전달

 - start_timer : ACK를 기다리는 타이머를 시작한다.

→ state 변화

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

 

iii) 응답 패킷이 ACK

• state

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt, 0) : IP > TCP [응답패킷] 전달 & 응답패킷이 정상인 경우 & 응답패킷이 ACK 0인경우

• action

 - X

→ state 변화

 - Wait for call 1 from above : TCP는 1번 패킷을 보내려고 메시지를 기다린다.

 

iv) 응답 패킷이 ACK

• state

- Wait for call 1 from above : TCP는 1번 패킷을 보내려고 메시지를 기다린다.

• event

 - rdt_rcv(rcvpkt)  : IP > TCP [응답패킷] 전달인 경우 (Timeout후 패킷을 재전송하였으나 지연으로 인해 ACK 응답이 먼저 온 경우)

• action

 - X (ACK 응답은 무시)

→ state 변화

 - Wait for call 1 from above : TCP는 1번 패킷을 보내려고 메시지를 기다린다.

 

rdt 3.0 : stop - and - wait

*1개의 패킷씩만 전송 (1MSS : RTT 안에 패킷 1개) 

 

'네트워크 공부 기록' 카테고리의 다른 글

Static-OSPF / Static-EIGRP 실습  (0) 2022.01.28
Go-Back-N 및 Selective repeat  (0) 2022.01.28
신뢰적 Data 전송 : rdt 2.0, rdt 2.1, rdt 2.2  (0) 2022.01.27
Static routing, RIP2, OSPF, EIGRP  (0) 2022.01.26
EIGRP 실습  (0) 2022.01.26

rdt 2.0 

: 비트 오류가 있는 채널 (패킷이 가다가 망가지는 경우)

- TCP 하위에 있는 채널이 신뢰적X 전송하는 패킷만 망가진 경우

- 데이터가 손상되었는지 확인하는 알고리즘 필요 (= checksum을 같이 전송)

- 재전송을 하기 위해서는 메모리에 데이터를 저장하고 있어야 한다.

- 버퍼에 ACK까지 보낸 패킷을 가지고 있어야 함  (*잘 받았다는 응답 : ACK / NAK : 잘 못받음)

 

Sender 

• state

 - Wait for call from above : 프로세스가 TCP를 호출하기를 기다린다. 

• event

 - rdt_send(data) : Process > TCP [data] 전달 

• action

 - sndpkt = make_pkt(data, checksum) : data를 이용해 checksum 생성 후 data와 checksum으로 패킷 생성 

 - udt_send(packet) : TCP > IP [packet] 전달

→ state 변화

 - Wait for ACK or NAK : 패킷 전송후 ACK or NAK가 오기를 기다린다.

  (재전송을 하기 위해 메모리에 데이터 저장)

 

i) 응답 패킷이 NAK인 경우

• state

 - Wait for ACK or NAK : 패킷 전송후 ACK or NAK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && isNAK(rcvpkt) : IP > TCP [응답패킷] 전달 & NAK 응답으로 

• action

 - udt_send(packet) : TCP > IP [packet] 전달

→ state 변화

 - Wait for ACK or NAK : 패킷 전송후 ACK or NAK가 오기를 기다린다.

 

ii) 응답 패킷이 ACK

• state

 - Wait for ACK or NAK : 패킷 전송후 ACK or NAK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && isNAK(rcvpkt) : IP > TCP [응답패킷] 전달 & NAK 응답

• action

 - udt_send(packet) : TCP > IP [packet] 전달 (메모리에 저장된 패킷)

→ state 변화

 - Wait for call from above : 프로세스가 TCP를 호출하기를 기다린다. 

 

Receiver

i) 응답 패킷이 NAK인 경우

• state

 - Wait for call from below : TCP를 IP가 호출하기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && corrupt(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 망가진 경우

• action

 -  udt_send(NAK) : TCP > IP [NAK] 전달

→ state 변화

 - Wait for call from below : TCP를 IP가 호출하기를 기다린다.

 

ii) 응답 패킷이 ACK

• state

 - Wait for call from below : TCP를 IP가 호출하기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 정상인 경우

• action

 - extract (packet, data) : 수신 패킷에서 data 추출

 - deliver_data(data) : TCP > Process [data] 전달

 -  udt_send(ACK) : TCP > IP [ACK] 전달

→ state 변화

 - Wait for call from below : TCP를 IP가 호출하기를 기다린다.

 

◾ rdt 2.0 결함

• ACK, NAK가 손상되는 경우

 - TCP에서는 ACK, NAK 손상된 경우 모두 NAK라고 생각 > 패킷이 중복해서 재전송될 가능성이 높아짐.

• 중복 제어 필요 : rdt 2.1

 - sender는 pkt에 sequence number를 추가한다.
 - ACK나 NAK가 변형되면 sender는 pkt를 재전송한다.
 - receiver는 중복된 pkt을 버린다.


rdt 2.1

: 전송하는 패킷, 응답 패킷 둘다 망가진 경우

 

• Sender
 - pkt에 seq #를 추가한다.
 - 두개의 seq #만으로 충분하다. (이전 송신된 pkt와의 중복만 검사)
 - ACK/NAK의 손상을 검사한다.
 - 상태가 rdt 2.0보다 두배 많다.
  (현재 전송 pkt의 seq #가 0인지 1인지 기억하고 있어야 한다.)

 

• Receiver
 - 수신된 pkt의 중복여부를 검사해야한다. (pkt의 seq #가 0/1인지 검사)
 - receiver는 sender가 ACK/NAK를 정상적으로 수신했는지 알 수 없다.

 

Sender 

Sender

Sender 

• state

 - Wait for call 0 from above : TCP는 0번 패킷을 보내려고 메시지를 기다린다.

• event

 - rdt_send(data) : Process > TCP [data] 전달 

• action

 - sndpkt = make_pkt(0, data, checksum) : data를 이용해 checksum 생성 후 data와 checksum, seq#로 패킷 생성 

 - udt_send(packet) : TCP > IP [packet] 전달

→ state 변화

 - Wait for ACK or NAK 0 : 패킷 전송후 0번 패킷에 대한 ACK or NAK가 오기를 기다린다.

  (재전송을 하기 위해 메모리에 데이터 저장)

 

i) 응답 패킷이 NAK인 경우

• state

 - Wait for ACK or NAK 0 : 패킷 전송후 0번 패킷에 대한 ACK or NAK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt)) : IP > TCP [응답패킷] 전달 & (응답패킷이 망가진 경우거나 응답패킷이 NAK인 경우)

• action

 -  udt_send(sndpkt) : TCP > IP [이전에 보낸 패킷] 재전달

→ state 변화

 - Wait for ACK or NAK 0 : 패킷 전송후 0번 패킷에 대한 ACK or NAK가 오기를 기다린다.

 

ii) 응답 패킷이 ACK

• state

 - Wait for ACK or NAK 0 : 패킷 전송후 0번 패킷에 대한 ACK or NAK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 정상인 경우 & 응답패킷이 ACK인 경우

• action

 - X

→ state 변화

 - Wait for call 1 from above : TCP는 1번 패킷을 보내려고 메시지를 기다린다.

 

Receiver

Receiver

Receiver

• state

 - Wait for 0 from below : TCP는 0번 패킷을 받으려고 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 망가지지X 경우 & seq0 응답 패킷을 수신한 경우

• action

 - extract (packet, data) : 수신 패킷에서 data 추출

 - deliver_data(data) : TCP > Process [data] 전달

 - sndpkt = make_pkt(ACK, chksum) : 패킷에 이상이 없다는 ACK를 checksum과 함께 패킷 생성

 -  udt_send(sndpkt) : TCP > IP [응답패킷] 전달

→ state 변화

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

 

i) 응답 패킷이 NAK인 경우

• state

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

• event

 - rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isNAK(rcvpkt)) : IP > TCP [응답패킷] 전달 & (응답패킷이 망가진 경우거나 응답패킷이 NAK인 경우)

• action

 - sndpkt = make_pkt(NAK, chksum) : 패킷에 이상이 있다는 NAK를 checksum과 함께 응답 패킷 생성

 - udt_send(sndpkt) : TCP > IP [응답패킷] 재전달

→ state 변화

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

 

ii) 응답 패킷이 ACK

• state

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 정상인 경우 & 응답패킷이 0번인 경우

• action

 - sndpkt = make_pkt(ACK, chksum) : 패킷에 이상이 없다는 ACK를 checksum과 함께 응답 패킷 생성

 - udt_send(sndpkt) : TCP > IP [응답패킷] 재전달

→ state 변화

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.


rdt 2.2

: NAK가 없는 rdt

2.1에 시퀀스 넘버가 있다.

시퀀스 넘버를 이용해 개선할 방법을 찾은 게 2.2

 

3way hand shake를 통해 0번과 1번 패킷만 보내겠다고 약속

 

NAK가 없으면 최근에 잘 받은 시퀀스 넘버를 ACK 넣어 보낸다. (ex. 1번 패킷을 보내면 0번패킷까지 잘 받았다는 ACK를 보낸다.)

 

• rdt 2.1과의 차이는 ACKs만을 사용하는 것이다.
• receiver는 NAK 대신 최근에 정확히 수신된 pkt에 대한 ACK를 전달한다.
• Sender는 중복된 ACK를 통해서 중복된 ACK pkt이후에 전송한 pkt이 정상적으로 수신되지 못했음을 안다.

 

• 누적 ACK
: 누적된 ACK를 사용 경우 sender는 마지막 수신한 ACK의 seq # 이전의 pkt는 모두 정상 잔달 되었음을 확인 가능

Sender 

• state

 - Wait for call 0 from above : TCP는 0번 패킷을 보내려고 메시지를 기다린다.

• event

 - rdt_send(data) : Process > TCP [data] 전달 

• action

 - sndpkt = make_pkt(0, data, checksum) : data를 이용해 checksum 생성 후 data와 checksum, seq#로 패킷 생성 

 - udt_send(packet) : TCP > IP [packet] 전달

→ state 변화

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

 

i) 응답 패킷이 망가진 경우

• state

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || isACK(rcvpkt, 1)) : IP > TCP [응답패킷] 전달 & (응답패킷이 망가진 경우거나 응답패킷 ACK가 1인 경우)

• action

 - udt_send(sndpkt) : TCP > IP [응답패킷] 재전달

→ state 변화

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

 

ii) 응답 패킷이 ACK

• state

 - Wait for ACK 0 : 패킷 전송후 0번 패킷에 대한 ACK가 오기를 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && isACK(rcvpkt, 0) : IP > TCP [응답패킷] 전달 & 응답패킷이 정상인 경우 & 응답패킷이 ACK 0인경우

• action

 - X

→ state 변화

 - Wait for call 1 from above : TCP는 1번 패킷을 보내려고 메시지를 기다린다.

 

Receiver

i) 응답 패킷이 원하는 seq#일 경우

• state

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

• event

 - rdt_rcv(rcvpkt) && notcorrupt(rcvpkt) && has_seq0(rcvpkt) : IP > TCP [응답패킷] 전달 & 응답패킷이 망가지지X 경우 & seq0 응답 패킷을 수신한 경우

• action

 - extract (packet, data) : 수신 패킷에서 data 추출

 - deliver_data(data) : TCP > Process [data] 전달

 - sndpkt = make_pkt(ACK, chksum) : 패킷에 이상이 없다는 ACK를 checksum과 함께 패킷 생성

 -  udt_send(sndpkt) : TCP > IP [응답패킷] 전달

→ state 변화

 - Wait for 0 from below : TCP는 1번 패킷을 받으려고 기다린다.

 

ii) 응답 패킷이 원하지 않는 seq#일 경우

• state

 - Wait for 0 from below : TCP는 0번 패킷을 받으려고 기다린다.

• event

 - rdt_rcv(rcvpkt) && ( corrupt(rcvpkt) || has_seq1(rcvpkt)) : IP > TCP [응답패킷] 전달 & (응답패킷이 망가진 경우거나 응답패킷 seq#가 1인 경우)

• action

 - udt_send(sndpkt) : TCP > IP [응답패킷] 재전달

→ state 변화

 - Wait for 1 from below : TCP는 1번 패킷을 받으려고 기다린다.

 

다음 토폴로지를 사용하여 Static routing, RIP2, OSPF, EIGRP를 각각 구현한다.

static ======================================
R1(config)# ip route 2.2.2.0 255.255.255.0 192.168.12.2

R2(config)# ip route 1.1.1.0 255.255.255.0 192.168.12.1


RIPv2 =======================================
R1(config)# router rip
R1(config-router)# version 2
R1(config-router)# no auto-summary 
R1(config-router)# network 1.1.1.0
R1(config-router)# network 192.4.12.0
R1(config-router)# passive-interface g0/0

R2(config)# router rip
R2(config-router)# version 2
R2(config-router)# no auto-summary 
R2(config-router)# network 2.2.2.0
R2(config-router)# network 192.4.12.0
R2(config-router)# passive-interface g0/0


OSPF ========================================
R1(config)# router ospf 1
R1(config-router)# router-id 1.1.1.1
R1(config-router)# network 1.1.1.1 0.0.0.0 area 0
R1(config-router)# network 192.4.12.1 0.0.0.0 area 0

R2(config)# router ospf 1
R2(config-router)# router-id 2.2.2.1
R2(config-router)# network 2.2.2.1 0.0.0.0 area 0
R2(config-router)# network 192.4.12.2 0.0.0.0 area 0


EIGRP ========================================
R1(config)# router eigrp 100
R1(config-router)# network 1.1.1.1 0.0.0.0
R1(config-router)# network 192.4.12.1 0.0.0.0

R2(config)# router eigrp 100
R2(config-router)# network 2.2.2.1 0.0.0.0
R2(config-router)# network 192.4.12.2 0.0.0.0

Staic routing.pkt
0.04MB
RIP2.pkt
0.05MB
OSPF.pkt
0.05MB
EIGRP.pkt
0.05MB

IP설정 및 인터페이스 설정은 미리 한 상태에서 실습한다.

 

EIGRP 설정

R1

R1(config)#router eigrp 100
R1(config-router)#network 1.1.1.1 0.0.0.0
R1(config-router)#network 192.168.12.1 0.0.0.0
R1(config-router)#network 192.168.31.1 0.0.0.0

R2

R2(config)#router eigrp 100
R2(config-router)#network 2.2.2.1 0.0.0.0
R2(config-router)#network 192.168.12.2 0.0.0.0
R2(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.12.1 (Serial0/0/1) is up: new adjacency

R2(config-router)#network 192.168.23.2 0.0.0.0

R3

R3(config)#router eigrp 100
R3(config-router)#network 3.3.3.1 0.0.0.0
R3(config-router)#network 192.168.31.3 0.0.0.0
R3(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.31.1 (Serial0/0/0) is up: new adjacency

R3(config-router)#network 192.168.23.3 0.0.0.0
R3(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is up: new adjacency

 

EIGRP 확인

R1

R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       1.1.1.0/24 is directly connected, GigabitEthernet0/0
L       1.1.1.1/32 is directly connected, GigabitEthernet0/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0/24 [90/2172416] via 192.168.12.2, 00:01:46, Serial0/0/0
     3.0.0.0/24 is subnetted, 1 subnets
D       3.3.3.0/24 [90/2172416] via 192.168.31.3, 00:00:39, Serial0/0/1
     192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.12.0/24 is directly connected, Serial0/0/0
L       192.168.12.1/32 is directly connected, Serial0/0/0
D    192.168.23.0/24 [90/2681856] via 192.168.12.2, 00:01:34, Serial0/0/0
                     [90/2681856] via 192.168.31.3, 00:00:32, Serial0/0/1
     192.168.31.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.31.0/24 is directly connected, Serial0/0/1
L       192.168.31.1/32 is directly connected, Serial0/0/1

R2

R2#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0/24 [90/2172416] via 192.168.12.1, 00:02:11, Serial0/0/1
     2.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       2.2.2.0/24 is directly connected, GigabitEthernet0/0
L       2.2.2.1/32 is directly connected, GigabitEthernet0/0
     3.0.0.0/24 is subnetted, 1 subnets
D       3.3.3.0/24 [90/2172416] via 192.168.23.3, 00:00:57, Serial0/0/0
     192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.12.0/24 is directly connected, Serial0/0/1
L       192.168.12.2/32 is directly connected, Serial0/0/1
     192.168.23.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.23.0/24 is directly connected, Serial0/0/0
L       192.168.23.2/32 is directly connected, Serial0/0/0
D    192.168.31.0/24 [90/2681856] via 192.168.12.1, 00:02:11, Serial0/0/1
                     [90/2681856] via 192.168.23.3, 00:00:57, Serial0/0/0

R3

R3#show ip route 
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/24 is subnetted, 1 subnets
D       1.1.1.0/24 [90/2172416] via 192.168.31.1, 00:01:23, Serial0/0/0
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0/24 [90/2172416] via 192.168.23.2, 00:01:16, Serial0/0/1
     3.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       3.3.3.0/24 is directly connected, GigabitEthernet0/0
L       3.3.3.1/32 is directly connected, GigabitEthernet0/0
D    192.168.12.0/24 [90/2681856] via 192.168.31.1, 00:01:23, Serial0/0/0
                     [90/2681856] via 192.168.23.2, 00:01:16, Serial0/0/1
     192.168.23.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.23.0/24 is directly connected, Serial0/0/1
L       192.168.23.3/32 is directly connected, Serial0/0/1
     192.168.31.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.31.0/24 is directly connected, Serial0/0/0
L       192.168.31.3/32 is directly connected, Serial0/0/0

 

neighbor table 확인

R1#show ip protocols

Routing Protocol is "eigrp  100 " 
  Outgoing update filter list for all interfaces is not set 
  Incoming update filter list for all interfaces is not set 
  Default networks flagged in outgoing updates  
  Default networks accepted from incoming updates 
  Redistributing: eigrp 100
  EIGRP-IPv4 Protocol for AS(100)
    Metric weight K1=1, K2=0, K3=1, K4=0, K5=0
    NSF-aware route hold timer is 240
    Router-ID: 1.1.1.1
    Topology : 0 (base)
      Active Timer: 3 min
      Distance: internal 90 external 170
      Maximum path: 4
      Maximum hopcount 100
      Maximum metric variance 1

  Automatic Summarization: disabled
  Automatic address summarization: 
  Maximum path: 4
  Routing for Networks:  
     1.1.1.1/32
     192.168.12.1/32
     192.168.31.1/32
  Routing Information Sources:  
    Gateway         Distance      Last Update 
    192.168.12.2    90            285519     
    192.168.31.3    90            352241     
  Distance: internal 90 external 170

 

topology table 확인

R1#show ip eigrp topology
IP-EIGRP Topology Table for AS 100/ID(192.168.31.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 1.1.1.0/24, 1 successors, FD is 5120
         via Connected, GigabitEthernet0/0
P 2.2.2.0/24, 1 successors, FD is 2172416
         via 192.168.12.2 (2172416/5120), Serial0/0/0
P 3.3.3.0/24, 1 successors, FD is 2172416
         via 192.168.31.3 (2172416/5120), Serial0/0/1
P 192.168.12.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/0
P 192.168.23.0/24, 2 successors, FD is 2681856
         via 192.168.12.2 (2681856/2169856), Serial0/0/0
         via 192.168.31.3 (2681856/2169856), Serial0/0/1
P 192.168.31.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/1

Bandwidth 수정

bandwidth 를 512로 줄이고 라우팅 information을 확인

R1에서 R3까지 Bandwidth 수정

R1#show interface s0/0/1
Serial0/0/1 is up, line protocol is up (connected)
  Hardware is HD64570
  Internet address is 192.168.31.1/24
  MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation HDLC, loopback not set, keepalive set (10 sec)
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0 (size/max/drops); Total output drops: 0
  Queueing strategy: weighted fair
  Output queue: 0/1000/64/0 (size/max total/threshold/drops)
     Conversations  0/0/256 (active/max active/max total)
     Reserved Conversations 0/0 (allocated/max allocated)
     Available Bandwidth 1158 kilobits/sec
  5 minute input rate 104 bits/sec, 0 packets/sec
  5 minute output rate 104 bits/sec, 0 packets/sec
     82 packets input, 4865 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     82 packets output, 4847 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

 

Bandwidth 수정

R1

R1(config)#int s0/0/1
R1(config-if)#bandwid
R1(config-if)#bandwidth 512
R1(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.31.3 (Serial0/0/1) is down: interface down
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.31.3 (Serial0/0/1) is up: new adjacency

R1(config-if)#do show int s0/0/1
Serial0/0/1 is up, line protocol is up (connected)
  Hardware is HD64570
  Internet address is 192.168.31.1/24
  MTU 1500 bytes, BW 512 Kbit, DLY 20000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation HDLC, loopback not set, keepalive set (10 sec)
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0 (size/max/drops); Total output drops: 0
  Queueing strategy: weighted fair
  Output queue: 0/1000/64/0 (size/max total/threshold/drops)
     Conversations  0/0/256 (active/max active/max total)
     Reserved Conversations 0/0 (allocated/max allocated)
     Available Bandwidth 384 kilobits/sec
  5 minute input rate 105 bits/sec, 0 packets/sec
  5 minute output rate 105 bits/sec, 0 packets/sec
     129 packets input, 7712 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     129 packets output, 7656 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

 

R3 Bandwidth 수정

R3(config)#int s0/0/0
R3(config-if)#bandwidth 512
R3(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.31.1 (Serial0/0/0) is down: interface down

%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.31.1 (Serial0/0/0) is up: new adjacency

R3(config-if)#do show int s0/0/0
Serial0/0/0 is up, line protocol is up (connected)
  Hardware is HD64570
  Internet address is 192.168.31.3/24
  MTU 1500 bytes, BW 512 Kbit, DLY 20000 usec,
     reliability 255/255, txload 1/255, rxload 1/255
  Encapsulation HDLC, loopback not set, keepalive set (10 sec)
  Last input never, output never, output hang never
  Last clearing of "show interface" counters never
  Input queue: 0/75/0 (size/max/drops); Total output drops: 0
  Queueing strategy: weighted fair
  Output queue: 0/1000/64/0 (size/max total/threshold/drops)
     Conversations  0/0/256 (active/max active/max total)
     Reserved Conversations 0/0 (allocated/max allocated)
     Available Bandwidth 384 kilobits/sec
  5 minute input rate 106 bits/sec, 0 packets/sec
  5 minute output rate 104 bits/sec, 0 packets/sec
     146 packets input, 8933 bytes, 0 no buffer
     Received 0 broadcasts, 0 runts, 0 giants, 0 throttles
     0 input errors, 0 CRC, 0 frame, 0 overrun, 0 ignored, 0 abort
     138 packets output, 8207 bytes, 0 underruns
     0 output errors, 0 collisions, 0 interface resets
     0 output buffer failures, 0 output buffers swapped out
     0 carrier transitions
     DCD=up  DSR=up  DTR=up  RTS=up  CTS=up

 

R1에서 EIGRP를 확인하면 23번대 네트워크가 사라진 것을 확인할 수 있다.

R1#show ip route eigrp
     2.0.0.0/24 is subnetted, 1 subnets
D       2.2.2.0 [90/2172416] via 192.168.12.2, 00:23:40, Serial0/0/0
     3.0.0.0/24 is subnetted, 1 subnets
D       3.3.3.0 [90/2684416] via 192.168.12.2, 00:15:05, Serial0/0/0
     192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
D    192.168.23.0/24 [90/2681856] via 192.168.12.2, 00:23:40, Serial0/0/0

EIGRP 설정

R1

R1(config)#router eigrp 100
R1(config-router)#network 1.1.1.1 0.0.0.0
R1(config-router)#network 192.168.12.1 0.0.0.0
R1(config-router)#network 192.168.41.1 0.0.0.0

R2

R2(config)#router eigrp 100
R2(config-router)#network 192.168.12.2 0.0.0.0
R2(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.12.1 (Serial0/0/1) is up: new adjacency

R2(config-router)#network 192.168.23.2 0.0.0.0

R3

R3(config)#router eigrp 100
R3(config-router)#network 3.3.3.1 0.0.0.0
R3(config-router)#network 192.168.23.3 0.0.0.0
R3(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is up: new adjacency

R3(config-router)#network 192.168.34.3 0.0.0.0

R4

R4(config)#router eigrp 100
R4(config-router)#network 192.168.34.4 0.0.0.0
R4(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.34.3 (Serial0/0/1) is up: new adjacency

R4(config-router)#network 192.168.41.4 0.0.0.0
R4(config-router)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.41.1 (Serial0/0/0) is up: new adjacency

 

EIGRP 확인

R1#show ip route
Codes: L - local, C - connected, S - static, R - RIP, M - mobile, B - BGP
       D - EIGRP, EX - EIGRP external, O - OSPF, IA - OSPF inter area
       N1 - OSPF NSSA external type 1, N2 - OSPF NSSA external type 2
       E1 - OSPF external type 1, E2 - OSPF external type 2, E - EGP
       i - IS-IS, L1 - IS-IS level-1, L2 - IS-IS level-2, ia - IS-IS inter area
       * - candidate default, U - per-user static route, o - ODR
       P - periodic downloaded static route

Gateway of last resort is not set

     1.0.0.0/8 is variably subnetted, 2 subnets, 2 masks
C       1.1.1.0/24 is directly connected, GigabitEthernet0/0
L       1.1.1.1/32 is directly connected, GigabitEthernet0/0
     3.0.0.0/24 is subnetted, 1 subnets
D       3.3.3.0/24 [90/2684416] via 192.168.12.2, 00:09:46, Serial0/0/0
                   [90/2684416] via 192.168.41.4, 00:08:45, Serial0/0/1
     192.168.12.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.12.0/24 is directly connected, Serial0/0/0
L       192.168.12.1/32 is directly connected, Serial0/0/0
D    192.168.23.0/24 [90/2681856] via 192.168.12.2, 00:10:22, Serial0/0/0
D    192.168.34.0/24 [90/2681856] via 192.168.41.4, 00:08:45, Serial0/0/1
     192.168.41.0/24 is variably subnetted, 2 subnets, 2 masks
C       192.168.41.0/24 is directly connected, Serial0/0/1
L       192.168.41.1/32 is directly connected, Serial0/0/1

 

eigrp 토폴로지 확인

R1#show ip eigrp topology 
IP-EIGRP Topology Table for AS 100/ID(192.168.41.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 1.1.1.0/24, 1 successors, FD is 5120
         via Connected, GigabitEthernet0/0
P 3.3.3.0/24, 2 successors, FD is 2684416
         via 192.168.12.2 (2684416/2172416), Serial0/0/0
         via 192.168.41.4 (2684416/2172416), Serial0/0/1
P 192.168.12.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/0
P 192.168.23.0/24, 1 successors, FD is 2681856
         via 192.168.12.2 (2681856/2169856), Serial0/0/0
P 192.168.34.0/24, 1 successors, FD is 2681856
         via 192.168.41.4 (2681856/2169856), Serial0/0/1
P 192.168.41.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/1

3.3.3.0으로 갈 경우 192.168.12.2 / 192.168.41.4 둘다 BW가 2684416으로 같다. 어디로 가든 상관이 없다.

R2-R3 의 BW를 2M로 늘리면 비용은 같다. BW가 작은 경로로 설정되기 때문이다.


Bandwidth 증가

R2

R2(config)#int s0/0/0
R2(config-if)#bandwidth 2048
R2(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.3 (Serial0/0/0) is down: interface down

%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.3 (Serial0/0/0) is up: new adjacency

R3

R3(config)#int s0/0/1
R3(config-if)#bandwidth 2048
R3(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is down: interface down

%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is up: new adjacency

 

eigrp의 토폴로지를 확인하면 3.3.3.0으로 갈 경우 192.168.12.2 / 192.168.41.4 BW가 변한 것을 확인할 수 있다.

R1#show ip eigrp topology 
IP-EIGRP Topology Table for AS 100/ID(192.168.41.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 1.1.1.0/24, 1 successors, FD is 5120
         via Connected, GigabitEthernet0/0
P 3.3.3.0/24, 2 successors, FD is 2684416
         via 192.168.41.4 (2684416/2172416), Serial0/0/1
         via 192.168.12.2 (2684416/1764352), Serial0/0/0
P 192.168.12.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/0
P 192.168.23.0/24, 1 successors, FD is 2681856
         via 192.168.12.2 (2681856/1761792), Serial0/0/0
P 192.168.34.0/24, 1 successors, FD is 2681856
         via 192.168.41.4 (2681856/2169856), Serial0/0/1
P 192.168.41.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/1

Bandwidth 감소

R2

R2(config)#int s0/0/0
R2(config-if)#bandwidth 512
R2(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.3 (Serial0/0/0) is down: interface down

%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.3 (Serial0/0/0) is up: new adjacency

R3

R3(config)#int s0/0/1
R3(config-if)#bandwidth 512
R3(config-if)#
%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is down: interface down

%DUAL-5-NBRCHANGE: IP-EIGRP 100: Neighbor 192.168.23.2 (Serial0/0/1) is up: new adjacency

 

EIGRP 토폴로지를 확인하면 3.3.3.0 네트워크로 가는 경로 중 192.168.12.2 네트워크가 없는 것을 확인할 수 있다.

R1#show ip eigrp topology 
IP-EIGRP Topology Table for AS 100/ID(192.168.41.1)

Codes: P - Passive, A - Active, U - Update, Q - Query, R - Reply,
       r - Reply status

P 1.1.1.0/24, 1 successors, FD is 5120
         via Connected, GigabitEthernet0/0
P 3.3.3.0/24, 1 successors, FD is 2684416
         via 192.168.41.4 (2684416/2172416), Serial0/0/1
P 192.168.12.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/0
P 192.168.23.0/24, 1 successors, FD is 6023936
         via 192.168.12.2 (6023936/5511936), Serial0/0/0
P 192.168.34.0/24, 1 successors, FD is 2681856
         via 192.168.41.4 (2681856/2169856), Serial0/0/1
P 192.168.41.0/24, 1 successors, FD is 2169856
         via Connected, Serial0/0/1

EIGRP (Enhanced Interior Gateway Protocol)

• Rapid convergence를 지원한다.

• 여러 경로를 동시에 사용 가능하다.

• Rapid convergence를 위해 DUAL(Diffusing Update Algorithm)을 이용한다.
• Metric factor : Bandwidth, Delay를 이용한다.
  - Reliability(신뢰도), Load(부하), MTU(Maxium Transmission Unit)
• CISCO 전용 이었으나 표준화 되었다.
• Routing info 전달에 BW가 최소화되어있다.
  - Mulcast를 이용한다.

 

◾ Neighbor

 : 라우팅 정보를 주고 받는 것
• 동일 AS내에 동일 K상수를 갖는 Router들로 Routing info.를 나눈다.
• 주기적으로 Routing table을 전송한다.
  - 맨 처음 neighbor을 맺을 때 모든 routing 정보를 교환하고 이후 변경된 정보만 교환한다.
  - 정상적인 경우 hello 패킷만 교환한다.
  - 패킷의 종류 : hello, update, query, replay, ACK

 

◾ K상수

K상수 Metric factor 설명
K1 Bandwidth Dst로 가는 대역폭중에 가장 낮은 대역폭으로 107을 나눈 값
K2 Load 인터페이스의 부하
K3 Delay Dst까지의 모든 지연의 합의 1/10
K4 Reliability 인터페이스의 에러 발생률
K5 MTU 최대 패킷의 크기

• K상수는 아래 방정식의 상수로 각 메트릭 요소에 대한 비중에 차등을 주어 적용하기 위해 사용한다.

  ▷ (K1*BW + (K2*BW)/(256‐load) + K3*delay)*256*(K5/(Reli+K4))

• Default (K1=K3=1, K2=K4=K5=0)값을 적용한 EIGRP의 메트릭(= Cost)
  ▷ EIGRP Metric = (K1*BW + K3*delay) * 256

 

◾ Metric

 : EIGRP가 목적지 까지 비용을 계산한 것
• IGRP 메트릭과 동일한 개념
• 다만 더 세부적인 표현을 위해 IGRP 메트릭에 256을 곱해서 표현

 

◾ 기본적인 Metric 계산

  Metric = BW + Delay

• BW는 목적지 까지 경로 중 가장 낮은 대역을 사용한다. (Bandwidth는 COST 반비례)

  ▷ BW = (10^7/banwidth) * 256  (bandwidth : kbs)

• Delay는 경로 까지의 모든 지연을 합한 값이다.
  - delay : μs(micro-second), usec로 표기, 1/1,000,000 (백만분의1초)
  - 모든 지연의 합을 10으로 나누고 256을 곱한 값
  ▷ Delay = (sum(delay)/10)*256

 

64(56)Kbps 

E0(T0)Kbps

 

◾ Bandwidth, Delay 확인

R1# show int s0/0/0
Serial0/0/0 is up, line protocol is up (connected)
Hardware is HD64570
Internet address is 3.1.1.1/30
MTU 1500 bytes, BW 1544 Kbit, DLY 20000 usec,
reliability 255/255, txload 1/255, rxload 1/255
......
R1# show int g0/1
GigabitEthernet0/1 is administratively down, line protocol is down (disabled)
Hardware is CN Gigabit Ethernet, address is 0002.17b3.3b02 (bia
0002.17b3.3b02)
MTU 1500 bytes, BW 1000000 Kbit, DLY 10 usec,
reliability 255/255, txload 1/255, rxload 1/255
......


EIGRP 설정

1. EIGRP AS 설정
router eigrp [AS#]

AS : 나와 라우팅 정보를 공유하는 네이버
ex) router eigrp 100


2. 각 인터페이스의 네트워크 등록
network [네트워크 주소] [와일드마스크]
ex) network 192.168.10.0 0.0.0.255
ex) network 192.168.10.1 0.0.0.0
ex) network 192.168.10.1
ex) network 192.168.0.0 0.0.255.255
ex) network 0.0.0.0 (실제로는 사용X)

 

◾ Serial interface 확인 및 조절
- show interface [interface명]
   ex) show int s0/0/0

- bandwidth [##]  (kbps 단위)
   ex) Router(config-if)#bandwidth 512

- delay [##]
   ex) delay 1999

 

1. 네이버로 부터 받은 각각의 경로를 확인한다.
2. successor/feasible successor 경로를 결정한다.
3. successor에 문제가 생기면 feasible successor를 이용한다.
4. feasible seccessor가 없으면 새로운 successor를 찾는다.

 

'네트워크 공부 기록' 카테고리의 다른 글

Static routing, RIP2, OSPF, EIGRP  (0) 2022.01.26
EIGRP 실습  (0) 2022.01.26
Static routing + RIP 실습  (0) 2022.01.26
신뢰적 Data 전송 : rdt 1.0  (0) 2022.01.18
Transport Layer  (0) 2022.01.18

static ======================================
Rs2(config)# ip route 0.0.0.0 0.0.0.0 192.4.12.1

Rs1(config)# ip route 0.0.0.0 0.0.0.0 192.4.11.10
Rs1(config)# ip route 192.4.13.0 255.255.255.0 192.4.12.2


RIPv2 =======================================
Rr2(config)#router rip
Rr2(config-router)#version 2
Rr2(config-router)#no auto-summary
Rr2(config-router)#network 192.4.23.0
Rr2(config-router)#network 192.4.22.0
Rr2(config-router)#passive-interface g0/0

Rr1(config)#router rip
Rr1(config-router)#version 2
Rr1(config-router)#no auto-summary
Rr1(config-router)#network 192.4.21.0
Rr1(config-router)#network 192.4.22.0


Rm===========================================
Rm(config)#ip route 192.4.12.0 255.255.255.0 192.4.11.1
Rm(config)#ip route 192.4.13.0 255.255.255.0 192.4.11.1

Rm(config)#router rip
Rm(config-router)#version 2
Rm(config-router)#no auto-summary
Rm(config-router)#network 192.4.21.0
Rm(config-router)#network 192.4.11.0
Rm(config-router)#redistribute static

 

* Rm(config-router)#redistribute static

: 정적 라우팅 정보를 rip으로 가져오는 명령

 

TEST

PC1 > PC2

C:\>ping 192.4.23.11

Pinging 192.4.23.11 with 32 bytes of data:

Reply from 192.4.23.11: bytes=32 time=13ms TTL=123
Reply from 192.4.23.11: bytes=32 time=10ms TTL=123
Reply from 192.4.23.11: bytes=32 time=12ms TTL=123
Reply from 192.4.23.11: bytes=32 time=29ms TTL=123

Ping statistics for 192.4.23.11:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 10ms, Maximum = 29ms, Average = 16ms

Static_RIP2.pkt
0.05MB

'네트워크 공부 기록' 카테고리의 다른 글

EIGRP 실습  (0) 2022.01.26
EIGRP (Enhanced Interior Gateway Protocol)  (0) 2022.01.26
신뢰적 Data 전송 : rdt 1.0  (0) 2022.01.18
Transport Layer  (0) 2022.01.18
OSPF 실습  (0) 2022.01.18

+ Recent posts