이번 주차 스터디 내용은 4, 3 계층에 이어 2계층인 Internet Layer!
앞서 Transport Layer에서의 신뢰성 정보가 담긴 segment를 여기선 패킷이라 부르고 해당 패킷을 최종 목적지까지 경로를 추적(라우팅) 하는 계층이다.
Internet Layer는 데이터 전송을 위해 논리적인 주소를 지정하거나 경로를 지정하는 역할을 하며 프로토콜로는 IP, ARP, ICMP, RARP, OSPF가 사용된다. 추가로 자세한 내용을 알아보자
한 문장으로 Internet Layer의 역할을 표현한다면 다음과 같다.
IP 주소를 바탕으로 데이터를 전달할 수 있는 체계를 제공하는 역할
🧨 대표적인 장비로는 Router가 있는데, Router란?
- 네트워크 장비로 네트워크 간 연결하는 역할.
- 라우팅이란 말그대로 목적지까지 데이터를 전달하기 위해 다음 경로를 찾는 연쇄적인 과정
- 연결된 네트워크 수만큼 IP 주소를 갖는다.
🧨 Routing Table은?
- 라우터 내 저장된 정보로 목적지까지 경유하는 모든 라우터 정보를 보유한 공간이다.
- 정적 라우팅 : 관리자가 수동으로 설정
- 동적 라우팅 : 자동으로 경로 정보 수집 후 routing table에 설정
- default router : 많은 정보를 가지고 있는 정적 라우터
동적 라우팅 알고리즘으로는 다음 3가지가 존재한다.
- RIP (Routing Information Protocol) : 목적지까지의 거리가 짧은 경로를 선택(LAN이 주로 사용)
- OSPF (Open Shortest Path First) : 통신 상태 정보를 map으로 관리하여 경로 선택(주로 복잡하고 변화 많은 경우에 사용)
- BGP (Border Gateway Protocol) : 경로의 거리와 경유하는 AS(자율시스템) 정보도 포함해 정보 생성
IP 주소를 바탕으로 데이터를 전달할 수 있는 체계를 제공하는 역할이라는데, 그렇다면 IP에 대해 자세히 살펴보자.
IP란, 네트워크 계층의 프로토콜로 Java가 이해하는 유일한 프로토콜이다. IPv4 (32비트), IPv6 (128비트) 2종류로 존재하며 데이터그램이라는 패킷으로 지금 학습 중인 Internet Layer를 통해 전송된다.
IPv4나 IPv6, 서브넷 마스크, prefix length 등등 기존의 학습한 내용은 아래 링크를 참고하면 된다!
Internet Protocol음.. 내용을 조금 더 추가하자면 32비트로 구성된 IPv4의 헤더는 다음과 같이 구성되어 있다.
기존 KHU 강의를 통해 내용을 학습하긴 했지만 중요한 부분 몇개만 알고 넘어가자.
- 기본적으로 IP 헤더는 패킷 앞부분에 위치해 IP 주소를 비롯해 각종 제어정보를 담고 있다. 크기는 최소 20바이트 (고정), 가변 (~40바이트)로 이루어져있다.
- 버전은 말그대로 IP의 버전으로 4인지, 6인지를 나타내준다.
- type of service는 말 그대로 요구되는 서비스 유형의 차이를 나타내며 DS, DSCP, ECN으로 나뉜다.
- 여기서 가장 중요한 TTL을 살펴보면 목적지에 도착하지 못한 패킷이 네트워크에 남게되면 네트워크의 자원을 사용하게 되므로 이를 방지하고자 라우터를 지날 때 마다 TTL 값을 1씩 감소시키는 것이다. 즉 Ping과 같은 역할을 한다고 보면 된다.
- Protocol은 데이터 내의 어떤 상위 계층 프로토콜이 포함되었는지 알 수 있다.
- checksum을 통해 우리는 패킷이 전송될 때 발생한 오류를 검사할 수 있고 오류가 발견되지 않으면 폐기시켜 처리한다.
- 그외의 source address, destination address는 말그대로 수송신 주소를 나타낸다.
결론적으로 Internet Protocol은 출발지부터 목적지까지 패킷 하나를 네트워크를 통해 전송하는 일을 담당하고 TCP/IP 2계층인 Internet Layer는 이 IP주소를 바탕으로 최종 목적지까지 데이터를 전달하는 역할을 담당한다. 대표적인 장비로는 Router가 있다!