네트워크 - Network Layer
Network Layer
: transport segment를 발신 호스트에서 수신 호스트까지 보냄
: sending side는 transport layer에서 segment를 받아 datagrams을 캡슐화
: receiving side는 transport layer로 datagrams에서 segment를 추출하여 전달
: 모든 호스트와 라우터에 network layer protocols 내장
: 라우터는 입력 링크의 IP datagrams의 헤더 필드를 조사하여 출력 링크로 전달네트워크 계층의 연결형 및 비연결형 서비스
- 데이터그램 네트워크(datagram network)는 네트워크 계층에서 비연결형 서비스만 제공
- 가상회선 네트워크(virtual circuit network)는 네트워크 계층에서 연결형 서비스만을 제공
- 트랜스포트 계층 서비스와 유사하지만 네트워크 계층 서비스는 다음과 같은 차이
: 호스트 사이의 서비스
: 연결형이나 비연결형 서비스 하나만 제공
: 종단 뿐만 아니라 네트워크 코어의 라우터에서도 구현Two Key Network-Layer Functions
- Forwarding
: 라우터의 입력 포트에서 출력 포트로 패킷을 이동시키는 것
: 한 교차로를 지나가는 과정
: 32비트 IP 주소는 40억개 이상의 주소를 가지므로 라우터 포워딩 테이블이 목적지 주소마다 하나의 엔트리를 갖는다면 아주 큰 테이블이 필요
- Routing
: 패킷의 출발지에서 목적지까지의 경로를 얻어내는 것
: 출발지에서 목적지까지 여행을 계획하는 과정
■ 라우팅 알고리즘
: 링크 상태 라우팅 알고리즘: 거리 벡터 라우팅 알고리즘
: 계층적인 라우팅
: 모든 라우터가 동일, 하나의 네트워크로 이상적인 환경으로 가정했지만, 실제는 6억개 이상의 호스트로 인해 확장이 어렵고, 여러 조직의 네트워크가 존재하여 관리 자치권부여에 어려움음 겪음
Router Architecture Overview
- Two key router functions
: 라우팅 알고리즘/ 프로토콜 수행(RIP, OSPF, BGP)
: 입력 링크를 출력 링크로 포워딩
- Input Port Functions
- Switching Fabric
: memory? 1 세대 라우터, 메모리 대역폭에 따라 속도 제한
: bus? 버스의 대역폭에 따라 스위칭 속도 제한
: crossbar? 버스의 대역폭 한계를 극복
- Output Port FunctionsIP: Internet Protocol
- 호스트, 라우터의 네트워크 계층 기능
- IP datagram format
- IP 단편화와 재결합
- IPv4 addressing
■ Subnet
■ CIDR(Classless Interdomain Routing)
: /23, 상위 23비트가 서브넷 주소
■ DHCP(Dynamic Host Configuration Protocol)
: 호스트가 네트워크에 접속할 때 서버로부터 IP 주소를 동적으로 획득
: 네트워크에 연결되었을 때만 주소를 가지므로 주소의 재사용 가능
: 짧은 시간 동안에 네트워크에 연결되는 모바일 사용자 지원
: 플러그 앤 플레이 (plug-and-play) 프로토콜
: 할당된 서브넷 IP 주소 외에 첫 번째 홉 라우터의 주소, DNS 서버의 이름과 IP 주소, 네트워크 마스크 (주소에서 네트워크 호스트의 부분을 표시)
■ ICANN(Internet Corporation for Assigned Names and Numbers)
: ISP가 주소 블록을 획득받는 곳
: [RFC 2050]을 기반으로 IP주소 할당
: DNS 관리, 도메인 이름을 할당하고, 도메인 이름 분쟁 해결
■ NAT(Network Address Translation)
: 지역 네트워크는 외부 세계에로는 하나의 IP 주소만을 사용
: 모든 디바이스에 대해 하나의 IP 주소만을 사용하여, ISP로 부터 여러 개 주소를 할당 받을 필요 없고, 디바이스의 주소를 변경하지 않고 ISP를 바꿀 수 있음
: 지역 네트워크 내부의 디바이스들은 외부 세계에서 명시적으로 주소지정을 하거나 노출되지 않음 (보안 이점)
: 16 비트 포트번호 단일 LAN 측 주소로 6만개 동시 연결
: 포트번호는 호스트 주소 지정이 아닌 프로세스 주소 지정에 사용되어야 함
: 라우터는 계층 3까지만 처리해야 함
: 종단 간의 논의에 위반, 호스트가 IP 주소와 포트번호 수정 없이 직접 통신해야 함
: 주소의 부족은 IPv6로 해결
: 횡단 문제 해결로 정적 구성, UPnP, 릴레이
- ICMP(Internet Control Message Protocol)
: ICMP는 호스트와 라우터 사이에서 네트워크 계층 정보를 통신하기 위해 사용 (오류 보고, 반향 요청/응답)
: IP 상위 계층으로 ICMP 메세지는 IP 데이터그램의 페이로드로 전송
- IPv6
: 32 비트 IP 주소 공간이 빠른 속도로 고갈로 인한 등장
: 빠른 처리와 포워딩을 지원하는 헤더 포맷, QoS가 용이한 헤더
■ IPv6 datagram format
: 고정된 길이의 40바이트 헤더
: 단편화(fragmentation)를 허용하지 않음
: 2128 개로 거의 무한대에 가까운 주소 갯수
- IPv4 vs IPv6
: 체크섬 제거 -> 각 홉에서의 처리 시간 줄임
: 옵션 제거 -> 더 이상 표준 IP 헤더 필드가 아닌 IPv6 헤더의 '다음 헤더' 중 하나가 될 수는 있음
: ICMPv6 -> ICMP의 새로운 버전으로 추가적인 메시지 타입, 코드, 멀티 캐스트 그룹 관리 기능 추가
: IPv4 -> IPv6로의 전환? 모든 라우터들을 동시에 업그레이드 할 수 없음 -> 터널링을 통해 해결
■ 터널링
Routing in the Internet
: 내부 게이트웨이 프로토콜(Interior Gateway Protocols, IGP)
- RIP
: 라우팅 정보 프로토콜(Routing Information Protocol)
: 거리 측정 (비용 측정) - 홉(hop)의 수, 최대 홉은 15로 제한, 각 링크 비용은 1
: RIP 라우팅 테이블은 routed(데몬)라는 애플리케이션 계층 프로세스로 구현, 광고는 UDP 패킷으로 주기적으로 반복 전송
- OSPF
: 개방형 최단경로 우선(Open Shortest Path First)
: "open"은 라우팅 프로토콜이 공용으로 사용 가능함을 의미, RIP는 주로 하위 계층 ISP나 기업 네트워크 구축에 사용되는 반면, OPSF는 상위 계층 ISP들이 사용
: 링크 상태의 다익스트라 최소비용경로 알고리즘, 각 노드는 전체 AS의 토폴로지 맵을 가짐
: OSPF 광고는 인접한 라우터뿐만 아니라 모든 라우터에 라우팅 정보를 브로드캐스트, 링크 상태 정보를 플러딩, TCP나 UDP가 아닌 IP 상에서 직접 OSPF 메시지를 전송
: RIP에 없는 특징으로 보안, 여러 동일 비용 경로, 여러 비용 측정값, 유니캐스트와 멀티캐스트 통합 지원, 단일 라우팅 도메인에서의 계층 지원
- IGRP
: 내부 게이트웨이 라우팅 프로토콜(Interior Gateway Roution Protocol, IGRP), Cisco사 전용- BGP
: 사실상의 인터넷 표준인 인터-AS 라우팅 프로토콜, Border Gateway Protocol
: 각 AS에게 이웃들로부터 서브넷 도달성 정보, AS 내부의 모든 라우터에게 도달성 정보 전파, 도달성 정보와 AS정책에 근거하여 서브넷으로의 '좋은' 경로 결정
: 각 서브넷이 자신의 존재를 외부 네트워크로 광고 하도록 함 "I am here"
: TCP를 사용하여 BGP 메세지 교환 (OPEN, UPDATE, KEEPALIVE, NOTOFICATION)
브로드캐스트와 멀티캐스트 라우팅
- 브로드 캐스트
- 멀티캐스트