Topic
Ip Addresses
- 32비트로 구성된 IPv4는 부족할 지경이라 128비트로 구성된 IPv6가 도입되고 있다
- 32비트 전부를 적는 것이 아닌 8개 비트에 대한 수와 dot으로 표기한다
IP Prefixes - Modern
- prefix에 해당하는 비트는 고정되어 있다
- prefix 길이가 L인 네트워크에서는 2^(32-L)개의 주소값이 할당된다
- prefix의 길이는 ip 주소 맨 끝에 /를 기입하고 prefix를 기입한다
- /24 네트워크는 256개의 주소, /32 네트워크는 1개의 주소를 가진다
- Most specific : prefix가 길어지므로 네트워크에 ip 주소가 적어짐
- Less specific : prefix가 짧아지므로 네트워크에 ip 주소가 많이짐
IP Address Classes - Historical
- 과거에 사용되었던 방식
- Class A는 prefix length가 8이며, leading bit가 0인 것으로 알 수 있다
- Class B는 prefix length가 16이며, leading bit가 10인 것으로 알 수 있다
- Class C는 prefix length가 24이며, leading bit가 110인 것으로 알 수 있다
Public / Private IP Addresses
Allocating Public IP Addresses
- public ip의 할당은 아래의 프로세스를 따라야 한다
- IANA가 지역에 따라 RIRs 할당
- RIRs가 ISP나 기타 회사에 따라 할당
- 회사가 공인 IP를 제공 (DHCP 방식)
Topic
- 포워딩 : 패킷을 다음 라우터로 보낸다
- 라우팅 : 도착지로 가려면 어느 경로로 가야하는지 알아내는 과정, 포워딩 이전에 일어나야 한다
Recap
IP Forwarding
- 하나의 네트워크 안에서의 IP주소 값은 모두 같은 prefix를 가진다
- 따라서 forwarding table에는 모든 주소값이 아니라 prefix에 따른 next hop 정보만 담아도 된다
- 테이블 간소화
Longest Matching Prefix
- 테이블의 prefix가 겹칠 수 있으므로 Longest matching prefix를 사용한다
- 각각의 패킷에서 가장 긴 prefix를 찾아낸다 (가장 구체적인 entry)
- 구체적인 prefix가 선택된다
Host/Router Distinction
- 라우터는 전체 IP에 대해서 모든 경로를 라우팅할 수 있다
- 호스트는 자신의 네트워크 밖으로 패킷을 보내려면 그냥 근처 라우터에게 보낸다
Host Forwarding Table
- 자신의 네트워크 내에 IP로 보낼 때는 직접 보낸다
- 0.0.0.0/0 (all ip)으로 보내면 라우터로 보낸다
Flexibility of Longest Matching Prefix
- less specific prefix를 사용하면 default behavior를 지정할 수 있다
- ex) 0.0.0.0/0 -> send to router
- router에서도 자신의 라우팅 테이블에 정보가 없다면 상위 router에 보내도록 할 수 있다
- more specific prefix를 활용해 아주 특별한 행동을 지정할 수 있다
Performance of Longest Matching Prefix
- compact table
- look up보다 낫다
Other Aspects of Forwarding
Topic
- DHCP : IP 주소를 알려준다
- ARP : IP 주소를 link 주소와 매핑시켜준다
Getting IP Addresses
- 이더넷 주소는 하드웨어인 NIC에 저장되므로 알 수 있다
- 이를 통해 어떻게 IP주소를 알아내는가?
- 예전에는 직접 설정해뒀다
- 이더넷 주소와는 달리 어느 네트워크에서 사용되는 지에 따라 IP주소는 바뀐다
- 요즘은 DHCP를 사용한다
DHCP
- 노드에 IP 주소를 리스해준다
- IP 주소 뿐아니라 로컬 라우터 주소, network prefix, DNS server, time server 등을 제공해준다
DHCP Protocol Stack
- 네트워크 관점에서는 어플리케이션이 아니지만, 실제로는 어플리케이션이 맞다
- UDP 방식이며 67, 68 포트를 사용한다
DHCP Addressing
- Bootstrap issue : 설정되기 전에는 DHCP 서버로는 어떻게 메세지를 보낼까?
- 해당 네트워크 내의 모든 노드에 broadcast한다
- 모든 비트가 1이면 브로드캐스팅된다
DHCP Messages
- DORA라고 암기하면 된다
- Discover, Request 메세지 전송은 모두 브로드캐스팅 방식이다
- 현재 리스하고 있는 IP를 갱신하려면 Request에 ACK를 연이어 보내면 된다
Sending an IP Packet
- local link를 통해 프레임을 전송할 떄 노드가 Link layer의 주소값이 필요하다
- 목적지 IP 주소로부터 어떻게 목적지 link 주소를 알 수 있는가?
ARP (Address Resolution Protocol)
ARP Protocol Stack
- DHCP와 다르게 서버가 없다
- 브로드 캐스팅을 사용한다
ARP Messages
Discovery Protocols
- 노드간에 서로를 찾을 수 있도록 해준다
- 보통 브로트캐스팅 방식을 사용한다
Topic
Packet Size Problem
- 다른 네트워크는 각기 다른 MTU를 가진다
- 쪼개는 건 알겠는데 최대한 크게 보낼수록 효율이 높아진다
Packet Size Solutions
- Fragmentation : packet이 너무 크면 쪼개서 보내는 예전 방식
- Discovery : 네트워크 경로에서 보낼 수 있는 패킷의 최대 크기를 구해서 사용하는 요즘 방식
IPv4 Fragmentation
- 쪼개진 패킷은 각자 다른 경로로 전달된 다음 재조립된다
- 파편화는 라우터에서 하지만 재조립은 종착지에서만 한다
IPv4 Fragmentation Fields
- Identification : 데이터 구분자 (같은 패킷인지 다른 패킷인지)
- Total length : 파편화되면 바뀐다
- Fragment offset : 파편화된 패킷의 순서
- control bits
- MF : 아직 파편화된 패킷이 더 있다는 것을 알려줌
- DF : 파편화하면 안됨
IPv4 Fragmentation Procedure
- 단점이 많다
- 라우터, 호스트가 해야하는 일이 많아진다. ex) 버퍼
- loss rate가 높아진다
- 보안 문제
Path MTU Discovery
- 네트워크의 MTU보다 큰 사이즈의 패킷이 전달되면 Source에 feedback 메세지를 전송한다
- MTU 값은 경로에 따라 달라지므로 시간에 따라서도 변경된다. 따라서 매번 찾아야 한다
- ICMP와 호환되어 사용된다
'Computer Science Lectures > Computer Networks - UW' 카테고리의 다른 글
Lecture 4.8 ~ 4.10: Packet Forwarding and Internetworking (8) | 2022.12.20 |
---|---|
Lecture 4-1 ~ 4-3: Packet Forwarding and Internetworking (0) | 2022.12.11 |
Lecture 3b-1 ~ 3b-8: Link Layer, Part B (0) | 2022.12.04 |
Lecture 3a.1 ~ 3a.5: Link Layer, Part A (0) | 2022.11.27 |
Lecture 2.1 ~ 2.5: Physical Layer (0) | 2022.11.23 |