서울대학교 컴퓨터공학과 권태경 교수님의 "Topics in Computer Networks" 강의를 필기한 내용입니다.

다소 잘못된 내용과 구어적 표현 이 포함되어 있을 수 있습니다.

Internet

  • 기관 내 네트워크: LAN → Token Ring, Eth 등 다양한 방법 사용
  • 기관 간 네트워크: 기관들의 GW Router 를 ISP 가 연결?
  • 각 기관들이 사용할 수 있는 IP Addr 범위를 IANA 가 발급 (Class A, B, C …)
  • 이 기관들을 AS (Autonomous System) 이라고 하는듯
  • ISP 들은 Tier 가 정해져 있다
    • Tier 1 은 국가간 혹은 미국이나 중국같은 거대 네트워크망을 관리

      • AT&T, Verizon, Sprint, NTT, Singtel, PCCW, Telstra, Deutsche Telekom and British Telecom

      Internet Service Provider 3-Tier Model | ThousandEyes

    • Tier 2 는 일반 국가 내 네트워크망을 관리 (KT, SKT 등)

    • Tier 3, Local ISP 는 뭐 그보다 더 소규모

  • 각 계층간 Provider, Customer 관계가 성립한다
    • Tier1 은 Tier2 의 Provider,
    • Tier2 은 Tier1 의 Customer
  • Tier2 간에는 peering ring 를 연결해서, 같은 Tier1 에 속한 Tier2 들은 Tier1 까지 가지 않고 통신을 하기도 한다?
    • 이렇게 하면 거치는 Router 가 줄어드니까 (Shorter path) packet loss 도 줄고 delay 도 줄어든다
    • 그리고 Tier1 을 거칠 때는 트래픽에 따라 과금이 되기에 비용을 최적화 할 수도 있다

Layer

  • 인터넷 생태계는 L12347 만 필요하지만, OSI 가 먼저 나왔기 때문에 아직도 표준으로 통용되는 중
    • L5, L6 는 이제 거의 안쓰인다? TLS?
  • L4 → Transport layer → endpoint 가 해야 할 역할과 관련
    • E2E 간 전송 중 발생하는 Error control (TCP?)
    • Endpoint 도착 후 Process 에게 전달
  • L2 까지는 binary stream 이었다면, L1 로 가면 Analog signal 이 된다
  • 정리는 나중에 하자
  • L4 의 경우 packet 들을 segmentation 하고 reassemle 하는데 이때의 최대 segment 최대 크기를 MSS라고 부른다
    • L2 MTU (eth 의 경우 일반적으로 1500) 에서 L3 header (20), L4 header (20) 를 제외한 크기 (보통 1460) 로 정해진다
  • L3 congestion control → Router 의 memory overflow 로 인한 packet loss 해결
  • L4
    • multiplexing → (송신지) 여러 소켓들에서 들어온 데이터들을 합치기
    • demultiplexing → (수신시) multiplexing 된 데이터들을 소켓별로 나눠서 상위 계층 port 로 보냄
  • L3 는 두 계층으로 나눠서 routing 을 한다
    • 기관 (AS) 내 routing: ISIS, OSPF 등 프로토콜 사용
    • 기관 (AS) 간 routing: BGP 사용
  • SNU addr block 인 147.47.0.0/16 을 예로 들어서
    • 147.46 을 IP Prefix 혹은 Network ID
    • 그 뒤의 0255.0255 를 Host ID 로 부른다
    • BGP 를 사용할 때 IP Prefix length 도 같이 전송된다고 한다 (Network ID 와 Host ID 를 구분짓기 위해)
  • SNU 도 AS 이기 때문에 AS Number (ASN) 이 있다: 9488
  • BGP 는 AS 의 IP Prefix 를 전파하기 위한 프로토콜이다
    • Border Gateway Protocol (BGP)
    • 만일 두 AS 가 동일한 IP Prefix 를 전파한다면, 그걸 수신한 AS 는 짧은 경로에서 온 정보를 신뢰한다 → 이걸 하이재킹 이라고 한다…
  • Router 들은 header 를 까보고 다음 Router 로 전달한다 (놓침 → 54”)
  • 기관의 크기별로 Class A, B, C 들을 부여받음
    • 뭐 각 클래스별 IP Prefix 규정은 굳이 외워야되나.. 필요할때 찾아보자
  • Subnet: AS 내에서 host 들을 그룹지어 관리
    • Subnet mask: host 가 어느 subnet 에 속하는지 알아내기 위한 mask (/24 혹은 255.255.255.0 등으로 표현)
  • Subnet 이랑 LAN 은 그럼 같은건가
  • Subnet 안에서 ARP 로 MAC 을 알아내어 통신

여기부터는 강의 3 초반부

L3

  • subnetting: ISP 가 할당받은 Address block 을 해당 기관 내의 여러 그룹에 분할하여 할당하는 개념
    • 뭐 예를들어 서울대 가 받은 IP 범위가 147.46.0.0/16 이라면 그 중 147.46.1.0/24 를 공대에 할당해주는

L2

  • Hop-to-hop 간의 error control 등의 전송 담당
  • 2개의 Sublayer 가 있다 → LLC, MAC 인데 LLC 는 지금 안쓰기 때문에 무시해도 된다
  • (정리는 나중에 하자)
  • host A, B 가 Switch 로 연결되어 있는 경우에는 (SW 는 L2 장비이므로) A 는 B 를 ARP 등을 통해서 MAC 을 알아낼 수 있지만 Router 로 연결되어 다른 Subnet 에 포함된다면 바로 알아낼 수가 없다 → 이때는 Router 의 Mac 을 알아내서 그쪽으로 보내게 된다
    • netplan 을 생각해 보면 같은 Subnet 에 속하는 IP 범위를 자기자신의 IP 와 Subnet mask 로 설정하게 되고 다른 Subnet 으로 보내기 위한 Router IP 는 Gateway IP 로 설정하는 것

L1

  • L2 로부터 받은 binary stream 을 Analog 신호로 바꿔서 전송하는 계층
    • bin → ana 를 modulation (TX?)
    • ana → bin 을 demodulation (RX?) 이라고 한다
  • 전송 매체는 뭐 광섬유 구리 전파 등 다양하겠지

Planes

  • Layer 를 수평적인 구분이라 한다면
  • Plane 은 기능에 따라 수직적으로 나눈 것 (여러 Layer 에 걸처서)

Control & Data plane for switch

  • (lost: 27”)
  • CP 에는 일반 CPU 가 있어 forwarding table 을 관리하고
  • DP 에는 ASIC 이 있어 이 회로에 따라 packet 들이 forward 된다
  • Management plane 이라는 것도 있는데 여기에서는 admin traffic 을 담당한다고 한다
    • SNMP 가 제일 오래됐지만 그만큼 보안 취약? 한 점이 있고

      14. SNMP

    • 이를 해결하기 위한 MACCONF 나 RESTCONF (HTTP 용) 등이 있다고 한다,,

  • (아 놓쳤 이부분)

Software Defined Networking (SDN)

  • OSI 계층의 구분은 Data plane 에서는 잘 맞지만 Control plane 에서는 잘 적용하기 힘들다

    • ARP 가 OSI 어디에 속하는지 애매하다는 것을 생각하면 맞는말이긴 하지
    • CP 에는 이 방법으로 프로토콜들을 정리하기 힘들다
  • 그래서 나온 개념

    소프트웨어 정의 네트워킹(SDN)이란 무엇입니까? | Nutanix KR

  • 뭐 SDN 을 쓰는게 좋을지 말지는 아직도 논쟁이라고 한다