주제 업슴

[모각코] 컴퓨터 네트워크 혼내주기 2 🍕

daun_up 2024. 5. 29. 21:56

🍕 개요

오늘도 나머지 컴퓨터 네트워크 정리를 하게 되었다......... 끝나지 않는 컴네... 수업 열심히 들어도 잘 모르겠어서 꼬옥 정리하는 시간을 가져야 할 것 같다. 어려웡... 갈수록 정신 나갈 것 같음 컴퓨터 네트워크에게 혼나기

NAT

  • 사설 IP 주소와 공인 IP 주소를 매핑해주는 주소 번역 기술
  • 내부 망 (사설 망) 과 인터넷 망 사이에 위치한다.
  • ip address 는 interface 에 부여된다. (host, device 아님)

NAT traversal problem

  • NAT 투과 기술
  • 인터넷 망의 전화기가 사설 망의 전화기로 통화를 요청하면 매핑 테이블이 없기 떄문에 방화벽을 투과할 수 없다.
  • 사설 망의 호스트가 먼저 패킷을 보내는 경우 (클라이언트일 경우) 패킷이 local 네트워크 내부에서 외부로 나가면서 NAT translation table 에 표시를 하고 가므로 나중에 돌아올 때도 참고 가능하다. 하지만 local 네트워크 내의 호스트가 서버일 경우 외부 네트워크에서 local 네트워크로 패킷이 들어오게 된다. 이 경우 NAT translation table 에 아무 정보가 없으므로 local 네트워크 내의 어느 host 에게 패킷을 줘야할 지 불분명하다
  • 해결 방법
    • 직접 지정 : NAT 라우터의 설정에서 직접 수동으로 포트 번호와 host 를 매핑해준다.
    • UPnP : UPnP 의 internet gateway protocol (IGP) 를 활용한다. IGP 를 통해 자동으로 호스트와 NAT 라우터를 관리해준다.
    • relay 서버 활용 : local 네트워크 외부에 relay 서버를 활용하여 미리 매핑 정보를 업로드한다.
    • ICMP 프로토콜 : Internet Control Message Protocol : 네트워크 레벨에서 문제가 생겼을 경우 이를 보고해주는데 사용되는 프로토콜이다. 주로 IP datagram 에 캡슐화 되어 전달된다.

IPv6

  • 기존 32-bit IPv4 IP adress 가 모두 사용되어서 128-bit 주소 체계를 사용하고자 함
  • 달라진 점
    • header 의 크기를 40-byte 로 고정하여 더 빠르게 processing/forwarding 되도록 함
    • header 에 flow 라는 개념을 도입함. (중요도가 높은 traffic 을 다른 데이터 보다 먼저 빠르게 처리하기 위함)

Tunneling

  • IPv6 와 IPv4 가 호환이 되어야 함

Generalized forwarding : match plus action

  • destination-based forwarding : dest. IP address 기반으로 forwarding 만 가능
  • generalized forwarding : 모든 header field 사용, forwarding 뿐만 아니라 drop/copy/modify/log 와 같은 다양한 action 가능

OpenFlow

  • SDN 과 관련이 있다.
  • control plane (traffic 을 전송할 위치를 정하는 intelligence) 을 data plane 과 분리하여 SDN 구현을 가능하게 하는 통신 protocol 이다.
  • routing
  • 네트워크 관리
  • forwarding → data plane (한 router 에서 어떤 input, 어떤 output)
  • routing → control plane (경로 선정)

per-router control (traditional)

  • 각각의 router 에 control plane 구현
  • router 상태의 일관성이 떨어짐 inconsistent
  • 끊어지면 router 간 연락이 늦어짐

logically centralized control (SDN)

  • software defined networking
  • 하나의 topology (네트워크 구성 방식) 를 가지고 page table 을 생성함
  • 서버 하나로도 가능하지만 여러 개 쓰는 이유는 성능과 안성성 때문

Routing protocols

  • determine “good” paths
    • least cost, fastest, least congested
  • path : 여러 개의 router 를 거쳐서 주어진 source host 와 final destinatinon host 까지
  • routing 는 신경 써야할 (해결 해야할) 중요한 문제 top-10 (ex.coongestion)

Graph abstraction : link costs

  • weight : good 의 기준

Routing algorithm classification

  • global : 모든 link, node 에 대한 정보를 가졌다는 가정 하에 경로 설정하는 algorithm
    • “link state” algorithms
  • decentralized : 정보가 분산되어 있고 local 한 정보를 neighbor 끼리 주고 받는 algorithm
    • “distance vector” algorithms
    • 가지고 있는 information 이 얼마나 되는가?
  • static : 많이 안 바뀌기 때문에 routing table 한 번만 작성하면 끝
  • dynamic : 자주 바뀌니까 주기적으로 업데이트 해주거나 …in response to link cost changes

Dijkstra’s link-state routing algorithm (ppt p.16~ 확인하기)

  • centralized
    • 망 구성 방식
    • 모든 node 에게 정보 주고 모든 노드는 같은 정보를 가지고 있음
    • link state 방송함 내 정보를 전역에 공유
  • 하나의 노드 (”source”) 에서 다른 모든 노드에게 가는 가장 성능이 좋은 paths 를 계산함
    • forwarding table 를 위해
  • interative(반복적)

N’ : N개의 destination 에 대해서 loop

algorithm complexity

  • n nodes

message complexity

Dijkstra’s algorithm : oscillations possible (p.21 예시 보기)

  • costs 를 설정할 때 traffic volume 에 의존해서 매순간 cost 가 달라진다면 route oscillations 가 발생할 수 있다.

Distance vector algorithm (p.24 예시 보기)

  • Bellman-Ford (BF) 방정식이 베이스이다 (dynamix programming)

  • 각 노드는
    • wait (local link 가 바뀔 때, 이웃에게 메세지가 왔을 때)
    • recompute
    • notify

  • interative, asynchronous (반복적이고 비동기적)
  • distributed, self-stopping
    • 각 노드는 이웃들에게 오직 DV 변경사항이 있을 때만 알려야 한다.
    • 변경이 없으면 stop 한다.

Distance vector : example (p.27) 시험에 나옴

Distance vector : state information diffusion

  • 아주 옛날의 정보가 시간이 지나고 오히려 더 큰 영향력을 미치게 됨

Distance vector : link cost changes

  • good news (cost 가 적어졌을 때)
    • 2 step 만에 distance vector 가 안정화
  • bad news (cost 가 커졌을 때)
    • count-to-infinity problem

Comparison of LS and DV algorithms

  • message complexity
    • LS : n routers, O(n2) message sent
    • DV : 메세지가 얼마나 올지 알 수 없음 (수렴 시간이 다양함)
  • speed of convergence
    • LS : O(n2) algorithm, O(n2) message
      • 메세지를 받고 모든 topology 에 대해 알 수 있음
      • 매순간 cost 가 달라지는 oscillations 발생 가능
    • DV : 수렴 시간이 다양함
      • 안정화 되는 동안에 routing loops 를 가질 수도 있음
      • count-to-infinity problem 발생 가능
  • robustness (견고성)
    • LS > DV
    • 얼마나 에러나 취약점에 강한가?
    • LS : router 가 incorrect link cost 를 알려줄 수도 있음
      • 하지만 link 하나에만 해당하기 때문에 table 하나만 잘못됨
    • DV : router 가 incorrect path 를 알려줄 수도 있음
      • path 전체가 잘못됨 : black-holing
  • LS (link state)
  • DS (distance vector)

intra-ISP routing : OSPF

  • 우리가 지금까지 공부한 routing 은 이상화된 상태
  • 아주 많은 destinations 저장할 수 없고 routing table 은 link 를 넘치게 함
  • 네트워크들은 관리(admininistrative autonomy) 필요로 함

Autonomous Systems (AS)

  • a.k.a domains

intra-AS (intra-domain)

most common

  • RIP (Routing Information Protocol)
  • EIGRP (Enhanced Interior Gateway Routing Protocol)
  • OSPF (Open Shortest Path First)

inter-AS (inter-domain)

OSPF (Open Shortest Path First)

  • open
  • class link state

🍕 정리

시험이 2 주도 안 남은 지금... 날이 갈수록 멍청해지고 있다... 왜인지...모르겠음...