[네트워크] 4. 네트워크 계층

서요이·2022년 12월 10일
0

네트워크

목록 보기
3/6
post-thumbnail

4. 네트워크 계층

Router

  • forwarding: 들어온 패킷의 목적지 주소와 포워딩 테이블의 엔트리를 매칭시켜서 그 엔트리에 해당하는 링크로 전달
  • routing: 포워딩 테이블을 만들어주는 역할을 담당

라우터는 오직 들어온 패킷을 라우팅 알고리즘에 따라 다음 라우터로 전달하는 역할만을 담당

IP Datagram Format

  • ver: IP 프로토콜의 버전, 현재는 IPv4 사용
  • length: 패킷의 총 길이
  • source IP address, destination IP address: 메시지를 생성해서 보내는 사람의 IP 주소, 받는 사람의 IP 주소
  • time to live: 처음에 값을 주고 하나의 라우터를 지날 때마다 -1, 0이 되면 해당 패킷 사라짐
  • upper layer: TCP인지 UDP인지(상위 레이어의 정보)
  • data 부분에는 TCP 혹은 UDP 세그먼트가 들어감

IP 헤더 - 20바이트, TCP 헤더 - 20바이트 → 총 40바이트의 오버헤드 발생

IPv4 Addressing

NIC(Network Interface)를 지칭하는 주소

32비트 주소체계, 계층화

네트워크 아이디(prefix, 서브넷 아이디)와 호스트 아이디로 나뉨

Subnet Mask: 어디까지가 네트워크 ID인지, 어디까지가 Host ID인지 나타냄

ex) 255.255.255.0에서 앞의 3개가 네트워크 아이디, 뒤의 1개가 호스트

Subnets

network id = prefix = IP address = subnet

같은 subnet ID(prefix)를 가진 디바이스의 집합

같은 서브넷에서는 라우터를 거치지 않고 직접적으로 접근이 가능

라우터는 여러 개의 서브넷에 속함

NAT (Network Address Translation)

IPv4 - 32bit 주소 체계, 40억개 사용 가능 - 점점 줄어들고 있음

IPv6 - 128bit 주소 체계

현재는 NAT 방식을 사용해서 연명

  • 하나의 서브넷마다 사설 IP로 이용
  • WAN/LAN 주소를 NAT translation table에 기록하고, 들어올 때 table을 보고 다시 매칭
  • 해당 서브넷은 항상 같은 IP로 들어오고 port 번호로 식별

문제점

  • 네트워크 계층까지만 담당하는 라우터가 TCP 계층의 port 번호를 변경하는 계층 바이로테이션 문제 발생
  • port 번호는 프로세스를 찾아가는 역할을 담당하지만 서브넷 내의 IP주소를 찾아가는 역할로 변경됨 - 프로세스 찾아갈 방법 없음

DHCP (Dynamic Host Configuration Protocol)

네트워크 안의 컴퓨터에 자동으로 네임 서버 주소, IP 주소, 게이트웨이 주소를 할당

해당 클라이언트에게 일정 기간 임대하는 동적 주소 할당 프로토콜

  • discover: 새 Client가 Server(port 67)로 IP 주소 요청
  • offer: 여러 서버들이 client의 discover에 응답
  • request: 여러 서버들 중 한 서버와 연결하고 나머지 offer 제공한 서버 release
  • ACK: 연결되었다는 feedback 전달

서버를 따로 두지 않고 통상적으로 라우터가 모두 처리함

IP Fragment

MTU: 각 링크마다 보낼 수 있는 최대 패킷 크기

  • fragmentation: packet size가 MTU size보다 큰 경우 packet을 분할
  • reassembly: 도착지에서 분할된 packet을 이어붙임
  • fragflag(fragmentation flag): 분할된 경우 중 뒤에 남은 packet이 있을 경우 1, 분할되지 않았거나 마지막 packet일 경우 0
  • offset: 분할된 바이트의 첫 번째 위치 / 8

ICMP (Internet Control Message Protocol)

데이터 전송 시 네트워크 상의 환경을 알려주는 프로토콜

TTL이 0이 되어 drop될 경우 해당 라우터에서 IP packet을 통해 sender에게 알림

Routing Algorithm

forwarding table을 채우는 알고리즘

  • link state algorithm: 모든 라우터의 정보를 알고 있음
  • distance vector algorithm: 이웃한 라우터의 정보만 알고 있음

각 링크가 broadcast를 통해 자신의 정보를 보냄

Dijkstra’s algorithm

각각의 라우터는 각각의 포워딩 테이블을 가지고 있음

Distance Vector Algorithm

이웃과의 자료교환만으로 계산

cost가 변경될 때 자신을 거쳐가는 경로가 있으면 count-to-infinity가 발생할 수 있음

poisoned reverse: 이미 지나온 길은 ∞로 설정하여 역류 방지

Hierarchial Routing

계층화로 규모 문제 해결

  • Autonomous Systems: 나누어진 각각의 네트워크는 자치권을 가지고 내부 알고리즘을 결정
  • OSPF 프로토콜: Link state algorithm으로 구현한 프로토콜
  • RIP 프로토콜: Distance vector algorithm으로 구현한 프로토콜
  • Inter-AS: 더 큰 범위의 네트워크 사이의 알고리즘

AS(Autonomous Systems) = ISP(Intenet Service Provider)

peering 관계에서는 자유롭게 트래픽을 제공받음

provider/customer 관계에서는 계약으로 트래픽을 제공받음

0개의 댓글