[Router] Routing κΈ°λ³Έ κ°œλ…

  1. Router의 κΈ°λ³Έ 두 가지 μ—­ν• 
  2. Routing κΈ°λ³Έ κ°œλ…

1. Router의 κΈ°λ³Έ 두 가지 μ—­ν• 

1) κ²½λ‘œμ„€μ •

경둜 μ„€μ • μ‹œμ—λŠ” μ†Œκ·œλͺ¨μ— μ ν•©ν•œ Static Routingκ³Ό 쀑.λŒ€κ·œλͺ¨μ— μ ν•©ν•œ Dynamic Routing이 μžˆλ‹€.

2) κ²°μ •λœ 경둜λ₯Ό 따라 νŒ¨ν‚· 전솑

νŒ¨ν‚· 전솑 κ³Όμ •

2. Routing κΈ°λ³Έ κ°œλ…

Loopback Interface

가상 μΈν„°νŽ˜μ΄μŠ€.
λΌμš°ν„°κ°€ λ‹€μš΄λ˜κ±°λ‚˜ λ„€νŠΈμ›Œν¬ κ΄€λ¦¬μžκ°€ μž„μ˜λ‘œ λ‹€μš΄μ‹œν‚€μ§€ μ•ŠλŠ” 이상 계속 동μž₯ν•˜λ―€λ‘œ Routingμ—μ„œ Router-ID둜 μ‚¬μš©λœλ‹€.

Split Horizon

κ΄‘κ³ λ₯Ό μˆ˜μ‹ ν•œ μΈν„°νŽ˜μ΄μŠ€λ‘œ λ™μΌν•œ κ΄‘κ³ λ₯Ό μ „μ†‘ν•˜μ§€ μ•ŠλŠ”λ‹€.

R3은 F0/1둜 κ΄‘κ³ λ₯Ό λ°›μ•˜κΈ° λ•Œλ¬Έμ— F0/1둜 λ‹€μ‹œ κ΄‘κ³ λ₯Ό μ „μ†‘ν•˜μ§€ μ•ŠλŠ”λ‹€.

Auto-summary

μ£Ό λ„€νŠΈμ›Œν¬ κ²½κ³„μ—μ„œ μ£Ό λ„€νŠΈμ›Œν¬λ§Œ κ΄‘κ³ ν•œλ‹€.

– μ£Ό λ„€νŠΈμ›Œν¬: μ„œλΈŒλ„€νŒ… ν•˜μ§€ μ•Šμ•˜μ„ λ•Œμ˜ λ„€νŠΈμ›Œν¬
‘10.10.10.0/24’의 μ£Ό λ„€νŠΈμ›Œν¬λŠ” 10.0.0.0/8
‘172.30.10.0/25’의 μ£Ό λ„€νŠΈμ›Œν¬λŠ” 172.30.0.0/16

– μ£Ό λ„€νŠΈμ›Œν¬ 경계: μ£Ό λ„€νŠΈμ›Œν¬μ™€ λΌμš°νŒ… 정보λ₯Ό μ „μ†‘ν•˜λŠ” μΈν„°νŽ˜μ΄μŠ€μ˜ μ£Ό λ„€νŠΈμ›Œν¬κ°€ λ‹€λ₯Έ 지점

Auto-summary κ·œμΉ™μ— μ˜ν•΄ λ‚΄λΆ€ λ„€νŠΈμ›Œν¬λŠ” 192.168.0.0/24둜 κ΄‘κ³ λœλ‹€.

Longest Match Rule

λΌμš°νŒ…ν•  λ•Œ, λͺ©μ μ§€ μ£Όμ†Œμ™€ λΌμš°νŒ… ν…Œμ΄λΈ”μ˜ λͺ©μ μ§€ μ£Όμ†Œκ°€ μΌμΉ˜ν•˜λŠ” 뢀뢄이 κ°€μž₯ κΈ΄ 곳으둜 μ „μ†‘ν•œλ‹€.

F0/2둜 νŒ¨ν‚·μ„ μ „μ†‘ν•œλ‹€.

3. Routing μ’…λ₯˜

  • λΌμš°νŒ… κ΄‘κ³  μ’…λ₯˜μ— 따라
    거리 벑터 ν”„λ‘œν† μ½œ <—> 링크 μƒνƒœ ν”„λ‘œν† μ½œ
  • μ„œλΈŒλ„· 마슀크 정보 μ‚¬μš© 여뢀에 따라
    ν΄λž˜μŠ€ν’€ ν”„λ‘œν† μ½œ <—> 클래슀리슀 ν”„λ‘œν† μ½œ
  • AS μœ„μΉ˜μ— 따라
    IGP <—> EGP

[Kotlin] ν”„λ‘œκ·Έλž¨ 흐름 μ œμ–΄

μ°Έκ³ : Do it! μ½”ν‹€λ¦° ν”„λ‘œκ·Έλž˜λ° (P. 157~194)

μ½”ν‹€λ¦°μ—μ„œ μ‚¬μš©λ˜λŠ” 쑰건문, 반볡문, 그리고 쀑단/λ°˜ν™˜μ— λŒ€ν•΄ μ•Œμ•„λ³΄μž. λ‹€ν–‰μŠ€λŸ¬μš΄ 점은 cμ–Έμ–΄λ‚˜ pythonκ³ΌλŠ” 크게 λ‹€λ₯΄μ§€ μ•Šλ‹€λŠ” 점이닀.

  1. 쑰건문
  2. 반λͺ©λ¬Έ
  3. 흐름 쀑단과 λ°˜ν™˜

1. 쑰건문

IF문

  • 싀행문이 ν•˜λ‚˜μΌ κ²½μš°μ—λŠ” { } μƒλž΅μ΄ κ°€λŠ₯ν•˜λ‹€.
  • λ²”μœ„λ₯Ό 지정할 λ•ŒλŠ” β€œλ³€μˆ˜μ΄λ¦„ in μ‹œμž‘ κ°’..λ§ˆμ§€λ§‰ κ°’β€μœΌλ‘œ μ§€μ •ν•œλ‹€. (score in 80.0..89.9 => 80.0μ—μ„œ 89.9κΉŒμ§€)

WHEN문

  • λ²”μœ„λ₯Ό 지정할 λ•ŒλŠ” β€œin μ‹œμž‘ κ°’..λ§ˆμ§€λ§‰ κ°’β€μœΌλ‘œ μ§€μ •ν•œλ‹€.
    (in 80.0..89.9 => 80.0μ—μ„œ 89.9κΉŒμ§€)
  • νŠΉμ • 자료 ν˜• 검색은 isλ₯Ό μ‚¬μš©ν•œλ‹€.
    (is String -> β€œβ€ => λ¦¬ν„΄λ˜λŠ” 값이 String νƒ€μž…μ΄λ©΄ μ‹€ν–‰)
  • μΈμžμ—†μ΄ μ‚¬μš©ν•˜κ²Œ 되면 쑰건문의 ν˜•μ‹μœΌλ‘œ μ‚¬μš©ν•  수 μžˆλ‹€. 

2. 반볡문

FOR문

  • 싀행문이 ν•˜λ‚˜μΌ κ²½μš°μ—λŠ” μ€‘κ΄„ν˜Έλ₯Ό μƒλž΅ν•  수 μžˆλ‹€.

WHILE문

  • 쑰건식에 trueλ₯Ό μ“°κ²Œ 되면, 무쑰건 μ‹€ν–‰ν•˜κ²Œ λœλ‹€.
  • 데λͺ¬ ν”„λ‘œκ·Έλž¨μ—μ„œ μ‚¬μš©ν•˜λŠ” κ²½μš°λ„ λ§Žλ‹€.
    (데λͺ¬ : λ°±κ·ΈλΌμš΄λ“œμ—μ„œ μ‹€ν–‰ν•˜λ©΄μ„œ μ’…λ£Œλ˜μ§€ μ•Šκ³  μ§€μ†μ μœΌλ‘œ 처리)

3. 흐름 쀑단과 λ°˜ν™˜

  • ν•¨μˆ˜μ΄λ¦„ 라벨이름@ – return@라벨이름을 μ‚¬μš©ν•˜κ²Œ 되면 ν•΄λ‹Ή 라벨의 λλΆ€λΆ„μœΌλ‘œ μ΄λ™ν•œλ‹€.
  • ν•¨μˆ˜μ— λžŒλ‹€μ‹μ„ ν• λ‹Ήν•˜κ²Œ 되면 κ·Έ λžŒλ‹€μ‹μ΄ μžλ™ μ‹€ν–‰λ˜λŠ”κ²ƒμ΄ μ•„λ‹ˆκ³  λžŒλ‹€μ‹ μžμ²΄κ°€ ν•¨μˆ˜μ— λ‹΄κΈ°λŠ” 것이닀.
     ex) fun greet() = {println(β€œHello”}λ₯Ό ν•˜κ²Œ 되면, printλ˜μ§€ μ•Šκ³  greent()()ν•΄μ£Όμ–΄μ„œ ν•¨μˆ˜λ₯Ό μ‹€ν–‰ν•΄μ£Όμ–΄μ•Ό 함
  • μ˜ˆμ™Έ 사항이 λ°œμƒν•˜λŠ” 쑰건
    (1) 운영체제 문제
    (2) μž…λ ₯ κ°’ 문제
    (3) λ°›μ•„ 듀일 수 μ—†λŠ” μ—°μ‚°=0으둜 λ‚˜λˆ„κΈ° λ“±
    (4) λ©”λͺ¨λ¦¬ ν• λ‹Ή μ‹€νŒ¨ 및 λΆ€μ‘±
    (5) 컴퓨터 문제

[Kotlin] ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

μ°Έκ³ : Do it! μ½”ν‹€λ¦° ν”„λ‘œκ·Έλž˜λ° (P. 98~132)

  1. ν•¨μˆ˜
  2. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°
  3. λžŒλ‹€μ‹κ³Ό κ³ μ°¨ν•¨μˆ˜ 호좜
  4. λžŒλ‹€μ‹μ˜ λ§€κ°œλ³€μˆ˜

1. ν•¨μˆ˜

코틀린은 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ΄λΌκ³  ν–ˆλ‹€. 그럼 ν•¨μˆ˜λŠ” 무엇을 μΌμ»«λŠ” 단어인가?
값을 μž…λ ₯ λ°›μ•„ 사전 μ •μ˜λœ κΈ°λŠ₯을 μˆ˜ν–‰ν•˜κ³ , 결과값을 λ°˜ν™˜ν•˜λŠ” λͺ¨μŒμ„ λ§ν•œλ‹€.
보톡 μ½”λ“œλ₯Ό μ—¬λŸ¬ 번 μ‚¬μš©ν•  수 μžˆμ–΄μ„œ ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•œλ‹€.

1-1. ν•¨μˆ˜μ˜ ꡬ쑰

fun ν•¨μˆ˜λͺ…(λ³€μˆ˜λͺ…: μžλ£Œν˜•, λ³€μˆ˜λͺ…: μžλ£Œν˜• …): λ°˜ν™˜κ°’μ˜ μžλ£Œν˜•{
Β  μ½”λ“œ
Β  [return λ°˜ν™˜κ°’]
}

μ½”λ“œ1. ν•¨μˆ˜μ˜ ꡬ쑰

λ§Œμ•½, ν•¨μˆ˜μ˜ μ½”λ“œκ°€ ν•œ 쀄이라면, myfunction1 ν•¨μˆ˜ 처럼 단좕할 수 μžˆλ‹€.

ν•¨μˆ˜μ˜ λ°˜ν™˜κ°’μ΄ μ—†λ‹€λ©΄, λ°˜ν™˜κ°’μ˜ μžλ£Œν˜•μ€ Unit으둜 μ§€μ •ν•˜κ±°λ‚˜ μƒλž΅ν•œλ‹€.

1-2. ν•¨μˆ˜μ˜ λ§€κ°œλ³€μˆ˜

(1) λ§€κ°œλ³€μˆ˜μ˜ 기본값을 지정할 수 μžˆλ‹€.

(2) λ§€κ°œλ³€μˆ˜λ₯Ό ν˜ΈμΆœν•  λ•Œ, 이름과 ν•¨κ»˜ ν˜ΈμΆœν•  수 μžˆλ‹€.

(3) ν•œ 개의 인자만 μ •μ˜ν•΄λ„ μ—¬λŸ¬ 개의 인자λ₯Ό μž…λ ₯받을 수 μžˆλ‹€.
Variable Argument(κ°€λ³€ 인자)라고 ν•˜λ©°, varargs ν‚€μ›Œλ“œλ₯Ό μ‚¬μš©ν•œλ‹€.

** λ§Œμ•½, κ°€λ³€μΈμžμ™€ 일반 인자λ₯Ό λ™μ‹œμ— μ‚¬μš©ν•  경우 κ°€λ³€μΈμžλ₯Ό λ§ˆμ§€λ§‰μ— λ‘”λ‹€.


2. ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°

코틀린은 ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°κ³Ό 객체지ν–₯ ν”„λ‘œκ·Έλž˜λ° λ‘˜ λ‹€ μ§€μ›ν•˜λŠ” 닀쀑 νŒ¨λŸ¬λ‹€μž„ μ–Έμ–΄λ‹€. 특히, ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ€ μˆœμˆ˜ν•¨μˆ˜, λžŒλ‹€μ‹, κ³ μ°¨ν•¨μˆ˜λ₯Ό μ‚¬μš©ν•΄ 효율적인 ν”„λ‘œκ·Έλž˜λ°μ„ 지ν–₯ν•œλ‹€.

μˆœμˆ˜ν•¨μˆ˜
AλΌλŠ” ν•¨μˆ˜κ°€ μžˆλ‹€κ³  κ°€μ •ν•΄λ³΄μž. 이 ν•¨μˆ˜κ°€ 항상 같은 κ²°κ³Ό 값을 λ°˜ν™˜ν•˜κ³ , 이 ν•¨μˆ˜κ°€ μ™ΈλΆ€μ˜ μƒνƒœλ₯Ό 바꾸지 μ•Šμ„ λ•Œ, μˆœμˆ˜ν•¨μˆ˜λΌκ³  ν•œλ‹€.

μˆœμˆ˜ν•¨μˆ˜ μ˜ˆμ‹œ

λžŒλ‹€μ‹
이름이 μ—†λŠ” ν•¨μˆ˜, 읡λͺ…ν•¨μˆ˜μ΄λ‹€. ν•œλ²ˆλ§Œ μ‚¬μš©ν•˜κ³  μž¬μ‚¬μš©ν•˜μ§€ μ•ŠλŠ” ν•¨μˆ˜. ν•¨μˆ˜ μ½”λ“œ 가독성이 높아지고,  ν•¨μˆ˜ν˜• ν”„λ‘œκ·Έλž˜λ°μ—μ„œ 자주 μ‚¬μš©ν•˜λŠ” νŒ¨ν„΄μ΄λ‹€.

λžŒλ‹€μ‹ ν˜•μ‹


κ³ μ°¨ν•¨μˆ˜
λ‹€λ₯Έ ν•¨μˆ˜λ₯Ό 인자둜 μ‚¬μš©ν•˜κ±°λ‚˜ ν•¨μˆ˜λ₯Ό κ²°κ³Όκ°’μœΌλ‘œ λ°˜ν™˜ν•˜λŠ” ν•¨μˆ˜.

(1) μΌλ°˜ν•¨μˆ˜λ₯Ό 인자둜 μ‚¬μš©ν•˜λŠ” κ³ μ°¨ν•¨μˆ˜

이외에도
(2) λ°˜ν™˜κ°’(return)에 μΌλ°˜ν•¨μˆ˜λ₯Ό 넣은 κ³ μ°¨ν•¨μˆ˜,
(3) λžŒλ‹€μ‹μ„ λ³€μˆ˜λ‚˜ λ§€κ°œλ³€μˆ˜μ— ν• λ‹Ήν•œ κ³ μ°¨ν•¨μˆ˜
κ°€ μžˆλ‹€.


3. λžŒλ‹€μ‹κ³Ό κ³ μ°¨ν•¨μˆ˜ 호좜

3-1. 값에 μ˜ν•œ 호좜

λžŒλ‹€μ‹ ν•¨μˆ˜“λ₯Ό ν˜ΈμΆœν•œλ‹€.
ν•¨μˆ˜κ°€ λ‹€λ₯Έ ν•¨μˆ˜μ˜ 인자둜 전달될 경우 λžŒλ‹€μ‹μ΄ λ°”λ‘œ κ°’μœΌλ‘œ μ²˜λ¦¬λ˜μ–΄ μ¦‰μ‹œ ν•΄λ‹Ή ν•¨μˆ˜μ˜ 결과값을 μ „λ‹¬ν•œλ‹€.

λžŒλ‹€μ‹ lambda μ‹€ν–‰ -> ν•¨μˆ˜ callByValue μ‹€ν–‰
κ²°κ³Όκ°’

3-2. 이름에 μ˜ν•œ λžŒλ‹€μ‹ 호좜

λžŒλ‹€μ‹ 이름“을 ν˜ΈμΆœν•œλ‹€.
인자둜 전달 μ‹œ μ‹€ν–‰λ˜μ§€ μ•Šκ³  , μ‹€μ œ 호좜 μ‹œ μ‹€ν–‰λœλ‹€.

ν•¨μˆ˜ callByName μ‹€ν–‰ -> λžŒλ‹€μ‹ otherlambda μ‹€ν–‰
κ²°κ³Όκ°’

4. λžŒλ‹€μ‹μ˜ λ§€κ°œλ³€μˆ˜

4-1. λžŒλ‹€μ‹μ— λ§€κ°œλ³€μˆ˜κ°€ μ—†λŠ” 경우

λ§€κ°œλ³€μˆ˜κ°€ μ—†μœΌλ―€λ‘œ λžŒλ‹€μ‹μ—λŠ” “->”κ°€ μ‚¬μš©λ˜μ§€ μ•ŠλŠ”λ‹€.

4-2. λžŒλ‹€μ‹μ— λ§€κ°œλ³€μˆ˜κ°€ 1개인 경우

λžŒλ‹€μ‹μ—μ„œ “->” μ™Όμͺ½μ— λ³€μˆ˜λ₯Ό μž‘μ„±ν•΄μ•Ό ν•œλ‹€.
λžŒλ‹€μ‹ 쀑 μ²˜λ¦¬μ½”λ“œμ—μ„œ ‘$λ³€μˆ˜λͺ…‘ λŒ€μ‹  ‘$it‘둜 μž‘μ„±ν•  수 μžˆλ‹€.

4-3. λžŒλ‹€μ‹μ— λ§€κ°œλ³€μˆ˜κ°€ 2개인 경우

λ§€κ°œλ³€μˆ˜κ°€ 1개인 κ²½μš°μ™€ λΉ„μŠ·ν•˜λ‹€.
λžŒλ‹€μ‹μ—μ„œ “->” μ™Όμͺ½μ— λ³€μˆ˜λ₯Ό μž‘μ„±ν•΄μ•Ό ν•œλ‹€. 만일, λžŒλ‹€μ‹μ˜ 일뢀 λ§€κ°œλ³€μˆ˜λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ² λ‹€λ©΄, 언더바(_)λ₯Ό μ‚¬μš©ν•œλ‹€.

[Switch] SPAN

Switch Port Analyzer

νŠΉμ • 포트λ₯Ό 톡해 μž…/좜λ ₯λ˜λŠ” νŠΈλž˜ν”½μ„ λ‹€λ₯Έ 포트둜 λ³΅μ œν•˜μ—¬ λΆ„μ„ν•˜λŠ” κΈ°λŠ₯이닀. νŠΈλž˜ν”½ 뢄석 λ˜λŠ” μΉ¨μž…λ°©μ§€μ‹œμŠ€ν…œ(IPS)λ₯Ό μœ„ν•΄ μ„€μ •ν•œλ‹€. μ—¬λŸ¬ 개의 포트둜 μž…/좜λ ₯λ˜λŠ” νŠΈλž˜ν”½μ„ λ™μ‹œμ— λ³΅μ œν•  수 있고, VLAN νŠΈλž˜ν”½λ„ λ³΅μ œν•  수 μžˆλ‹€.

SPAN 포트 μ’…λ₯˜

SPAN Source Port : 뢄석 λŒ€μƒμ΄ λ˜λŠ” 포트.
SPAN Destination Port : 뢄석μž₯λΉ„κ°€ μ—°κ²°λœ 포트, 여기에 μ ‘μ†λœ μž₯λΉ„λŠ” 인터넷은 λ¬Όλ‘  Layer 2 ν”„λ‘œν† μ½œμ΄ λ™μž‘ν•˜μ§€ μ•ŠλŠ”λ‹€. μ–΄λ–€ VLAN에 μ†Œμ†λ˜μ–΄λ„ 상관 μ—†λ‹€.

SPAN 지역 μ’…λ₯˜

Local SPAN : SPAN Source 와 Destination이 λ™μΌν•œ μŠ€μœ„μΉ˜ μ†Œμ†.
Remote SPAN : SPAN Source 와 Destination이 μ„œλ‘œ λ‹€λ₯Έ μŠ€μœ„μΉ˜ μ†Œμ†.

SPAN μ„€μ •

ν† ν΄λ‘œμ§€1. SPAN μ„€μ •
Switch(config)# monitor session 1 source int fa0/3
Switch(config)# monitor session 1 destination int fa0/2

RSPAN μ„€μ •

ν† ν΄λ‘œμ§€2. RSPAN μ„€μ •

[ SPAN Source μŠ€μœ„μΉ˜ μ„€μ • ]

SW1(config)# vlan 500
SW1(config-vlan)# remote-span
SW1(config-vlan)# exit
SW1(config)#
SW1(config)# monitor session 1 source int fa0/1
SW1(config)# monitor session 1 destination remote vlan 500

[ SPAN Destination μŠ€μœ„μΉ˜ μ„€μ • ]

SW2(config)# vlan 500
SW2(config-vlan)# remote-span
SW2(config-vlan)# exit
SW2(config)#
SW2(config)# monitor session 1 source remote vlan 500
SW2(config)# monitor session 1 destination int fa0/20


[QoS] 3: Policing

Policing μ΄λž€, νŠΈλž˜ν”½μ˜ μ΅œλŒ€ 속도λ₯Ό μ œν•œν•˜λŠ” 것을 λ§ν•œλ‹€. λŒ€μ—­ν­μ— μ—¬μœ κ°€ μžˆμ–΄λ„ μ΅œλŒ€ 속도λ₯Ό λ„˜κΈ°λ©΄ ν•΄λ‹Ή νŠΈλž˜ν”½μ„ νκΈ°ν•œλ‹€.

Input Policing: νŒ¨ν‚· μž…λ ₯(μˆ˜μ‹ ) μ‹œ μ μš©ν•˜λŠ” Policing
Output Policing: νŒ¨ν‚· 좜λ ₯(솑신) μ‹œ μ μš©ν•˜λŠ” Policing, μ§€μ›ν•˜μ§€ μ•ŠλŠ” μŠ€μœ„μΉ˜λ„ μžˆλ‹€κ³  ν•œλ‹€.

1. Policing μ„€μ •
2. DSCP λ§ˆν¬λ‹€μš΄


1. Policing μ„€μ •

ν† ν΄λ‘œμ§€1. Policing μ„€μ •
Switch(config)# mls qos
Switch(config)#
Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class [ <CLASS_MAP_NAME> | class-default ]
Switch(config-pmap-c)# police <LIMITED_BPS> <Bc>
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# service-policy input <POLICY_NAME>

5: ‘<CLASS_MAP_NAME>‘은 class-map을 톡해 μ§€μ •ν•œ νŠΈλž˜ν”½μ— μ μš©ν•˜κ³ , ‘class-default‘λŠ” λͺ¨λ“  νŠΈλž˜ν”½μ— μ μš©ν•œλ‹€.
6: ex) police 1000000 31250
<LIMITED_BPS>‘의 λ‹¨μœ„λŠ” bps이닀.
<Bc>’λŠ” λ‹¨μœ„μ‹œκ°„(Tc)에 전솑할 수 μžˆλŠ” μ΅œλŒ€ νŠΈλž˜ν”½ 양이닀. Byte λ‹¨μœ„μ΄λ©°, μž₯λΉ„λ§ˆλ‹€ μ΅œμ†Œ/μ΅œλŒ€ BC값이 λ‹€λ₯΄λ‹€.

Bc 와 Tc

– Bc : Burst Committed, νŒ¨ν‚·μ„ λ‹΄λŠ” 버킷이라고 μƒκ°ν•˜λ©΄ λœλ‹€.
– CIR : Committed Information Rate, 폴리싱 속도.
– Tc : λ‹¨μœ„μ‹œκ°„, Bcλ₯Ό λ‹€ μ±„μš°λŠ” μ‹œκ°„

Bc = (CIR * Tc) / 8‘ μ΄λΌλŠ” 곡식에 따라 λ™μž‘ν•œλ‹€.
μ΅œλŒ€ νŠΈλž˜ν”½ μ–‘(Bc)이 λ™μΌν•˜λ‹€κ³  ν• λ•Œ, 폴리싱 속도(CIR)κ°€ 컀질수둝 λ‹¨μœ„μ‹œκ°„(Tc)λŠ” μž‘μ•„μ§„λ‹€.


2. DSCP λ§ˆν¬λ‹€μš΄

Policingμ—μ„œ μ΅œλŒ€ 속도λ₯Ό μ΄ˆκ³Όν•˜λŠ” ν”„λ ˆμž„μ€ νκΈ°ν•œλ‹€κ³  ν–ˆλ‹€. ν•˜μ§€λ§Œ, μ΄λŸ¬ν•œ ν”„λ ˆμž„μ„ νκΈ°ν•˜λŠ” λŒ€μ‹  ‘policed-dscp map’을 μ°Έκ³ ν•˜μ—¬ DSCP 값을 λ³€κ²½ν•˜λŠ” 것을 ‘DSCP λ§ˆν¬λ‹€μš΄’이라고 ν•œλ‹€.

μ„€μ •

Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class [ <CLASS_MAP_NAME> | class-default ]
Switch(config-pmap-c)# police <LIMITED_BPS> <Bc> exceed-action policed-dscp transmit

policed-dscp map 확인

Switch# show mls qos maps policed-dscp

[QoS] 2: Trusting

QoS 흐름 쀑 ν”„λ ˆμž„μ„ λΆ„λ₯˜ν•˜κ³  ν‘œμ‹œν•˜λŠ” 것을 Trusting이라고 ν•œλ‹€. Trusting을 ν•  수 μžˆλŠ” 방법은 크게 2가지이닀.

1. ‘trustλͺ…λ Ήμ–΄λ₯Ό 톡해 νŠΈλž˜ν”½μ„ λΆ„λ₯˜ν•˜κ³ , νŠΈλž˜ν”½μ˜ QoSλ₯Ό ν‘œμ‹œν•œλ‹€.

2. μ•žμ„œ μ‚΄νŽ΄λ³Έ QoS μ„€μ •μ˜ MQC λͺ…λ Ήμ–΄ 쀑 ‘class-map‘을 톡해 νŠΈλž˜ν”½μ„ λΆ„λ₯˜ν•˜κ³ , ‘policy-map‘을 톡해 νŠΈλž˜ν”½μ˜ QoSλ₯Ό ν‘œμ‹œν•œλ‹€.

  1. trust λͺ…λ Ήμ–΄
  2. μΈν„°νŽ˜μ΄μŠ€μ—μ„œ trusting
  3. policy-map을 μ΄μš©ν•œ trusting

1. trust λͺ…λ Ήμ–΄

μˆ˜μ‹ λœ ν”„λ ˆμž„μ˜ QoS κ°’ 쀑 μ–΄λ–€ 값을 κΈ°μ€€μœΌλ‘œ 할지 κ²°μ •ν•  λ•Œ μ‚¬μš©ν•œλ‹€. QoS κ°’ 없이 QoSλ₯Ό μ„€μ •ν•œλ‹€λ©΄, ‘trustλͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•  ν•„μš”κ°€ μ—†λ‹€.
trustλͺ…λ Ήμ–΄λŠ” μΈν„°νŽ˜μ΄μŠ€μ—μ„œ μ‚¬μš©ν•˜κ±°λ‚˜ MQC의 ‘policy-map‘μ—μ„œ μ‚¬μš©ν•œλ‹€.

– ‘trust‘λŠ” 기본적으둜 λ―Έμ‚¬μš© μƒνƒœλ‹€.
– ‘trust‘λ₯Ό λ―Έμ‚¬μš©ν•΄λ„ μˆ˜μ‹ ν•œ ν”„λ ˆμž„μ˜ μš°μ„ μˆœμœ„ 값은 κ·ΈλŒ€λ‘œ μœ μ§€ν•œλ‹€.
– 단, QoSλ₯Ό ν™œμ„±ν™”ν•˜κ³  별도 섀정을 ν•˜μ§€ μ•ŠλŠ”λ‹€λ©΄, μš°μ„ μˆœμœ„ 값은 0으둜 μ΄ˆκΈ°ν™”λ˜λ‹ˆ μ£Όμ˜ν•΄μ•Ό ν•œλ‹€.


2. μΈν„°νŽ˜μ΄μŠ€μ—μ„œ trusting

Switch(config)# mls qos
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# mls qos [ cos | device | dscp | ip-precedence | <cr> ]

2: qosλ₯Ό ν™œμ„±ν™”ν•œλ‹€.
5: cos, dscp, ip-precedence -> QoS μš°μ„ μˆœμœ„μ˜ μ’…λ₯˜λ₯Ό 지정.
device -> Cisco IP μ „ν™”κΈ°κ°€ μ„€μΉ˜λœ 경우 μ‚¬μš©ν•œλ‹€.
별도 μ’…λ₯˜λ₯Ό μ§€μ •ν•˜μ§€ μ•ŠμœΌλ©΄, dscp둜 κ°„μ£Όν•œλ‹€.

[ QoS μš°μ„ μˆœμœ„λ₯Ό CoSκ°’ κΈ°μ€€, CoS값이 μ—†λ‹€λ©΄ 2둜 지정 ]

Switch(config-if)# mls qos trust cos
Switch(config-if)# mls qos cos 2

[ μˆ˜μ‹  ν”„λ ˆμž„μ˜ coS 값을 λ¬΄μ‹œ, 무쑰건 1둜 지정 ]

Switch(config-if)# mls qos cos 1
Switch(config-if)# mls qos cos override

3. Policy-map을 μ΄μš©ν•œ trusting

μΈν„°νŽ˜μ΄μŠ€μ—μ„œ trusting을 ν•˜λ©΄, ν•΄λ‹Ή μΈν„°νŽ˜μ΄μŠ€λ₯Ό ν†΅κ³Όν•˜λŠ” νŠΈλž˜ν”½ 전체에 μ μš©λœλ‹€. κ·ΈλŸ¬λ‚˜ Policy-map을 μ΄μš©ν•΄ trusting을 ν•œλ‹€λ©΄, ‘class-map‘으둜 μ§€μ •λœ νŠΈλž˜ν”½μ—λ§Œ μ μš©λœλ‹€. λ‹€μ‹œ 말해, Policy-map을 톡해 더 μ •κ΅ν•œ trusting을 ν•  수 μžˆλ‹€λŠ” 것이닀.

만일, μΈν„°νŽ˜μ΄μŠ€μ™€ Policy-map λͺ¨λ‘ trusting을 μ μš©ν•˜λ©΄ Policy-map의 trusting이 μš°μ„ ν•œλ‹€.

trusting μ„€μ •

ACL μ„€μ • β†’ class-map μ„€μ • β†’ policy-map μ„€μ • β†’ policy-map 적용

Switch(config)# ip access-list extended <ACL_NAME>
Switch(config-ext-nacl)# permit ip <SOURCE_IP> <DESTINATION_IP>
Switch(config-ext-nacl)# exit
Switch(config)#
Switch(config)# class-map <CLASS_MAP_NAME>
Switch(config-cmap)# match access-group name <ACL_NAME>
Switch(config-cmap)# exit
Switch(config)#
Switch(config)# policy-map <POLICY_NAME>
Switch(config-pmap)# class <CLASS_MAP_NAME>
Switch(config-pmap-c)# trust [ cos | dscp | ip-precedence | <cr> ]
Switch(config-pmap-c)# exit
Switch(config-pmap)# exit
Switch(config)#
Switch(config)# int <INTERFACE>
Switch(config-if)# service-policy input <POLICY_NAME>

[Kotlin] κΈ°λ³Έ κ°œλ…1: 관계, λ³€μˆ˜, μžλ£Œν˜•

  1. μ½”ν‹€λ¦° ν”„λ‘œμ νŠΈ, λͺ¨λ“ˆ, νŒ¨ν‚€μ§€, 파일의 관계
  2. λ³€μˆ˜μ™€ μžλ£Œν˜•
  3. μžλ£Œν˜• 검사와 λ°˜ν™˜

1. μ½”ν‹€λ¦° ν”„λ‘œμ νŠΈ-λͺ¨λ“ˆ-νŒ¨ν‚€μ§€-파일

관계도 μ˜ˆμ‹œ

ν”„λ‘œμ νŠΈ 내뢀에 λͺ¨λ“ˆ,
λͺ¨λ“ˆ 내뢀에 νŒ¨ν‚€μ§€,
νŒ¨ν‚€μ§€ 내뢀에 파일.

μ‹€μ œ νŒŒμΌμ„ 보면 μ•„λž˜μ™€ κ°™λ‹€. νŒ¨ν‚€μ§€ κΈ°μ€€μœΌλ‘œ λ³΄λŠ”κ²Œ μ΄ν•΄ν•˜κΈ° μ‰¬μš΄λ“― ν•˜λ‹€.

(쒌) ν”„λ‘œμ νŠΈ κΈ°μ€€ / (우) νŒ¨ν‚€μ§€ κΈ°μ€€

파일λͺ… “ooo.kt” 와 “ooo”의 차이?

ν•΄λ‹Ή 파일 제λͺ©μœΌλ‘œ 클래슀 1개만 μ„€μ •λ˜μ–΄μžˆλ‹€λ©΄, ooo
κ·Έ μ΄μ™ΈλŠ” ooo.kt 이닀.


2. λ³€μˆ˜μ™€ μžλ£Œν˜•

2-1. val / var

μ½”ν‹€λ¦°μ—μ„œ λ³€μˆ˜λ₯Ό μ„ μ–Έν•  λ•Œ, valμ΄λ‚˜ var을 μ‚¬μš©ν•  수 μžˆλ‹€.

val : κ³ μ • κ°’, 읽기만 κ°€λŠ₯
var: μœ λ™ κ°’, κ°’ μˆ˜μ • κ°€λŠ₯

2-2. κΈ°λ³Έν˜• μžλ£Œν˜• vs μ°Έμ‘°ν˜• μžλ£Œν˜•

μ½”ν‹€λ¦°μ—μ„œλŠ” μ°Έμ‘°ν˜•λ§Œ μ‚¬μš©ν•œλ‹€. ν•˜μ§€λ§Œ, κ²‰λ³΄κΈ°μ—λ§Œ κ·Έλ ‡κ³  μ»΄νŒŒμΌμ„ μ§„ν–‰ν•˜λ©΄μ„œ μ°Έμ‘°ν˜•μ—μ„œ κΈ°λ³Έν˜•μœΌλ‘œ 바뀐닀.

κΈ°λ³Έν˜•: μž„μ‹œλ©”λͺ¨λ¦¬(μŠ€νƒ)에 κ°’ μ €μž₯, λ©”λͺ¨λ¦¬ 크기 κ³ μ •.
μžλ£Œν˜•: μž„μ‹œλ©”λͺ¨λ¦¬(μŠ€νƒ)에 μ°Έμ‘° μ£Όμ†Œ, 동적 λ©”λͺ¨λ¦¬(νž™)에 μ‹€μ œ κ°’.

2-3. μžλ£Œν˜•

2-4. μ–Έλ”μŠ€μ½”μ–΄

ν”„λ‘œκ·Έλž˜λ°μ„ ν•˜λ‹€λ³΄λ©΄ κΈ΄ μˆ«μžλŠ” μ‹λ³„ν•˜κΈ° μ• λ§€ν•œ κ²½μš°κ°€ μžˆλŠ”λ°, _ 을 μ΄μš©ν•΄ μ‹λ³„ν•˜κΈ° νŽΈν•˜κ²Œ ν•  수 μžˆλ‹€. μ–Έλ”κ·ΈλΌμš΄λ“œ(_)λŠ”κ°’μ— 영ν–₯을 주지 μ•Šκ³ , λͺ¨λ“  μ’…λ₯˜μ˜ 값에 μ‚¬μš©ν•  수 μžˆλ‹€.

var num = 79_000_000
var num2 = 0x99_5F_AB_12

2-5. λΆ€λ™μ†Œμˆ˜μ 

IEEE 754

(μœ„ν‚€λ””ν”Όμ•„ μ°Έκ³ )

βˆ’118.625 (십진법)을 IEEE 754 (32λΉ„νŠΈ 단정밀도)둜 ν‘œν˜„ν•΄ 보자.

(1) μŒμˆ˜μ΄λ―€λ‘œ, λΆ€ν˜ΈλΆ€λŠ” 1이 λœλ‹€. 0은 μ–‘μˆ˜, 1은 μŒμˆ˜μ΄λ‹€.
(2) κ·Έ λ‹€μŒ, μ ˆλŒ“κ°’μ„ μ΄μ§„λ²•μœΌλ‘œ λ‚˜νƒ€λ‚΄λ©΄ 1110110.101이 λœλ‹€.
(3)μ†Œμˆ˜μ μ„ μ™Όμͺ½μœΌλ‘œ μ΄λ™μ‹œμΌœ, μ™Όμͺ½μ—λŠ” 1만 λ‚¨κ²Œ λ§Œλ“ λ‹€. 예λ₯Ό λ“€λ©΄ 1110110.101=1.110110101Γ—2⁢ κ³Ό κ°™λ‹€. 이것을 μ •κ·œν™”λœ λΆ€λ™μ†Œμˆ˜μ  수라고 ν•œλ‹€.
(4) κ°€μˆ˜λΆ€λŠ” μ†Œμˆ˜μ μ˜ 였λ₯Έμͺ½ λΆ€λΆ„μœΌλ‘œ, λΆ€μ‘±ν•œ λΉ„νŠΈ 수 λΆ€λΆ„λ§ŒνΌ 0으둜 μ±„μ›Œ 23λΉ„νŠΈλ‘œ λ§Œλ“ λ‹€. κ²°κ³ΌλŠ” 11011010100000000000000이 λœλ‹€.
(5) μ§€μˆ˜λŠ” 6μ΄λ―€λ‘œ, Biasλ₯Ό 더해야 ν•œλ‹€. 32λΉ„νŠΈ IEEE 754 ν˜•μ‹μ—μ„œλŠ” BiasλŠ” 127μ΄λ―€λ‘œ 6+127 = 133이 λœλ‹€. μ΄μ§„λ²•μœΌλ‘œ λ³€ν™˜ν•˜λ©΄ 10000101이 λœλ‹€.

2-6. 2의 보수

μ»΄ν“¨ν„°λŠ” 음수λ₯Ό ν‘œν˜„ν•˜κΈ° μœ„ν•΄ 2의 보수 κ°œλ…μ„ μ‚¬μš©ν•œλ‹€. 컴퓨터 μ—°μ‚°κΈ°μ—λŠ” λ§μ…ˆ κΈ°λŠ₯의 회둜만 있고, λ§μ…ˆ κΈ°λŠ₯으둜 λΊ„μ…ˆμ„ κ΅¬ν˜„ν•΄μ•Όν•˜κΈ° λ•Œλ¬Έμ΄λ‹€.

(1) Byteν˜• λ³€μˆ˜μ— 0111 1111 (127) 이 μžˆλ‹€.
(2) 여기에 2μ§„μˆ˜ 1을 λ”ν•˜λ©΄ 1000 0000이 되고, -128이 λœλ‹€.
(3) 즉 νŠΉμ •ν•œ 수λ₯Ό 음수둜 λ§Œλ“œλ €λ©΄, 2μ§„μˆ˜ 값을 뒀집은 ν›„ 1을 λ”ν•˜λ©΄ νŠΉμ • 수의 μŒμˆ˜κ°€ λœλ‹€.

μ˜ˆμ‹œλ‘œ, 1000 0001은 -127, 1000 0011은 -125λ‹€.


3. μžλ£Œν˜• 검사와 λ°˜ν™˜

3-1. Null을 ν—ˆμš©ν•˜λŠ” λ³€μˆ˜ 검사

일반적으둜 코틀린은 λ³€μˆ˜μ— null ν• λ‹Ή μ‹œ non-null μ—λŸ¬ λ°œμƒ.
λ³€μˆ˜ μ„ μ–Έ μ‹œ μžλ£Œν˜• 뒀에 λ¬ΌμŒν‘œλ₯Ό μΆ”κ°€ν•œλ‹€.

var str0 : String? = "This is String"
str0 = null

3-2. μ„Έμ΄ν”„μ½œκ³Ό μ—˜λΉ„μŠ€

[ μ„Έμ΄ν”„μ½œ ]
null이 할당됐을 κ°€λŠ₯성이 μžˆλŠ” λ³€μˆ˜λ₯Ό 검사 ν›„ μ•ˆμ „ν•˜κ²Œ 호좜.

println("str0: $str0 length: ${str0?.length}")


str0이 null인지 확인.
null이면 null 좜λ ₯. / null이 μ•„λ‹ˆλ©΄ length 좜λ ₯.

[ μ—˜λΉ„μŠ€ ]
λ³€μˆ˜κ°€ null인지 확인 ν›„ null이면 였λ₯Έμͺ½ μˆ˜μ‹, μ•„λ‹ˆλ©΄ μ™Όμͺ½ μˆ˜μ‹μ„ 좜λ ₯.

println("str0: $str0 length: ${str0?.length ?: -1}")


ifλ¬Έκ³Ό λ™μΌν•˜λ‹€.

3-3. 슀마트캐슀트

컴파일러 슀슀둜 μžλ£Œν˜•μ„ λ³€ν™˜ν•˜λŠ” 것.

[ Number ν˜• ]
숫자λ₯Ό μ €μž₯ν•˜λŠ” 특수 μžλ£Œν˜•

var tmp : Number = 13
tmp  = 13.0f
tmp = 13L

[ AS ]
μžλ£Œν˜• λ³€ν™˜μ΄ μ•ˆλ˜λ©΄, μ˜ˆμ™Έ λ°œμƒ.

val tmp2 : String? = x as? String

3-4. Any ν˜•

νŠΉλ³„ν•œ μžλ£Œν˜•μ΄ 정해지지 μ•Šμ€ 경우 μ‚¬μš©ν•œλ‹€. μ–΄λ–€ μžλ£Œν˜•μ΄λ“  될 수 μžˆλ‹€. λ˜ν•œ, λͺ¨λ“  ν΄λž˜μŠ€λŠ” Any ν˜•μ˜ μžμ‹ ν΄λž˜μŠ€μ΄λ‹€.

var a : Any = 3
a = "Wow"