Chapter4 : Network Layer: The Data Plane(2)

jiwon·2021년 12월 28일
0

컴퓨터네트워크

목록 보기
9/13
post-thumbnail

4.3 Internet Protocol(IP)

4.3 (1) datagram format & fragmentation

routing protocol

  • path selection: 다익스트라, 벨만포드 알고리즘
  • RIP, OSPF, BGP: path selection 위한 라우터들의 프로토콜

RIP- UDP위에서 돌아감
BGP- TCP 위에서 돌아감
OSPF- L3위에서 돌아감

ICMP 프로토콜: Internet Contrl Msg Protocol
※호스트가 생성하는 가장 대표적인 ICMP 프로토콜은 ping

IPv4 datagram format


version: 4bit
type of service: 8 bit. 프리미엄인지 아닌지... (※인터넷은 망중립성 때문에 x)
length: datagram의 토탈 길이
header length:4bit
upper layer protocol: mux, demux 위해..
time to live(ttl): 한 홉 갈때마다 -1. ttl이 0이 되면 라우터는 무시.
src ip addr, dst ip addr.

※data는 길이 다양. 보통 L4의 TCP/UDP 지만, L3의 ICMP, OSPF 메세지일수도 있다.

IPv4 fragmentation, reassembly

fragmentation - MTU보다 크면 쪼갠다. MTU는 R. 즉 link level frame에 따라 달라짐(통로가 비좁으면 쪼개져서 통과해야겠지..) 라우터에 다른 타입의 link 물려있을 수 있으므로 각기 다른 MTU 값 가짐.

※reassemble은 host가 해줌. 왜?
1. 쪼개진 애들이 다 다른 길로 가기 때문에...
2. 가능한 simple하게 하려고.

IPv4 fragmentation at router

fragmentation 시 헤더 20 byte는 독같이 복사해서 붙임

ex) 4000byte datagram을 1500byte MTU로 쪼개면?
(20+1480)+(20+1480)+(20+1040)

4.3 (2) IPv4 addressing

interface: connection between host/router and physical link
라우터에서 ip주소는 포트마다 붙으므로 포트 개수=ip addr 개수
※ipv4 addr=32bit

subnet

하나의 네트워크가 분할되어 나누어진 작은 네트워크.
ip 주소를 보고 같은 서브넷인지, 다른 서브넷인지 파악 가능해야...

전체 ip 주소를 봤을때..

  • subnet part: high order bit (왼쪽)
  • host part: low order bit(오른쪽)

subnet mask: /24면 앞에서부터 24비트가 서브넷
같은 서브넷이면 서브넷 파트도 동일!
host part는 마지막 라우터가 호스트 찾을 때 사용

※ 같은 서브넷 안에서의 통신은 라우터 없이 스위치만 거치고도 가능! 하나의 라우터를 지난다는 것은 서로 다른 서브넷 지난다는 것.

Ipv4 addressing의 두가지 종류

  • classful
  • CIDR

IPv4 addressing: classful addressing

A,B,C,D,E 클래스로 구분

IPv4 addressing: CIDR(Classless InterDomain Routing)

classful로 하다가 ip주소 고갈되기 시작하니까 /21, /7, /28 등 필요한 만큼만 서브넷 필드를 쪼개 쓰게 됨

IP address: how to get one?

ip 주소 세팅 위해 내가 알아야 할 것.
1. 내 ip 주소
2. gateway 라우터의 ip 주소
3. 내 망의 LDNS 서버의 ip 주소

세팅 안해도 잘된다고? DHCP 쓰는 것임(아님 남이 세팅해줬거나..)

DHCP:Dynamic Host Configuration Protocol

udp 위에서 돌아가는 L5 프로토콜.

클라가 DHCP 프로토콜을 설정하면, 필요할때만 ip 주소 할당받고 필요없으면 반납.

서버 포트 번호: 67
클라 포트 번호:68

클라도 well known port 68을 열어야 함! DHCP는 응답 보낼때 브로드케스트로 보내는데 DHCP 외에도 브로드케스트하는 애들이 있기 때문에..68번 포트 연 클라만 응답 받도록

시나리오
DHCP discover - (여기 어디 DHCP 서버 있니?-브로드케스트 by 클라)
DHCP offer - (내가 DHCP 서버야. 이 ip 주소를 ~ lifetime동안 쓸래? - 브로드케스트 by DHCP 서버)
DHCP request - (응 나 쓸래!-브로드케스트 by 클라)
DHCP ack (그래 써~ - 브로드케스트 by DHCP 서버)
~ 이후 계속 브로드케스트로 통신 ~

Hierarchical addressing: route aggregation

상위 ISP로부터 200.23.16.0/20 이라는 서브넷을 할당 받았는데, 이화여내 내에서 서브넷을 8개로 구분하기 위해 3비트를 더 써서 23 비트를 서브넷 마스크로 만들었다고 치자.

이화여대는 상위 isp로 보낼때 200.23.16.0/20으로 route aggregation 후 보내줌. 뒤에 3비트 보고 8개 서브넷중 어느 서브넷인지 가리는건 이화여대가... 상위 ISP는 그렇게 세세하게 볼 필요 없음. aggregation!

만약 8개의 subnet중 하나가 다른 subnet으로 이사갔는데 상위 isp가 옛날 서브넷인 이화여대 메세지 보내면...?
→ 그럴 일 없음. longest prefix match 라서 더 길게 매치되는 알맞은 곳으로 알아서 잘 감.

Destination based forwarding

ip addr의 범위 보고 알맞은 포트로 보낸다.

Longest prefix match

범위가 겹치면 더 길게 맞는 쪽으로 보낸다. advertising 할때 route aggregation이 가능함.

profile
개발 공부합니다. 파이팅!

0개의 댓글