서울대학교 컴퓨터공학과 권태경 교수님의 "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
-
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
- 그 뒤의 0
255.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 가 제일 오래됐지만 그만큼 보안 취약? 한 점이 있고
-
이를 해결하기 위한 MACCONF 나 RESTCONF (HTTP 용) 등이 있다고 한다,,
-
- (아 놓쳤 이부분)
Software Defined Networking (SDN)
-
OSI 계층의 구분은 Data plane 에서는 잘 맞지만 Control plane 에서는 잘 적용하기 힘들다
- ARP 가 OSI 어디에 속하는지 애매하다는 것을 생각하면 맞는말이긴 하지
- CP 에는 이 방법으로 프로토콜들을 정리하기 힘들다
-
그래서 나온 개념
-
뭐 SDN 을 쓰는게 좋을지 말지는 아직도 논쟁이라고 한다