개요
어젠 2 계층인 데이터 링크 계층을 했으니까, 오늘은 3 계층인 네트워크 계층을 정리할 차례이다.
자 드가자.
네트워크 계층의 역할
2 계층인 데이터 링크 계층의 주요 역할은 MAC을 사용해 특정 컴퓨터와 통신하는 것이었다.
그리고 이러한 통신에 사용되는 MAC은 주로 스위치의 MAC 테이블에 저장된다. 이러한 형태의 네트워크는 대부분 유선으로 연결된 경우를 말한다.
하지만 완전히 다른 네트워크를 가진 컴퓨터와 통신을 시도한다면??
내가 만약 구미에 있지만 서울에 있는 철수에게 메시지를 보내는 것과 같이 통신을 시도하려면 어떻게 해야 할까?
이러한 방법을 알려주고, 역할을 수행하는 것이 네트워크 계층의 역할이다.
라우팅
라우팅은 데이터를 목적지까지 전달하기 위해 필요한 구체적인 경로를 선택하고 관리하는 과정이다.
위에서 언급한 것처럼 구미에 있는 내가 서울에 있는 철수에게 메시지를 보내기 위해선 라우팅이라는 기술을 통해 경로를 설정해야 한다.
라우팅은 패킷 생성 → 라우터 도착 → 라우팅 테이블 조회 → 패킷 포워딩 → 목적지 도달 과정으로 진행된다.
라우팅 과정
- 패킷 생성
- 네트워크 계층에서 전송할 데이터를 IP 패킷으로 캡슐화하여, 출발지와 목적지 IP 주소를 포함한 패킷을 생성
- 라우터
- 출발지 컴퓨터는 패킷을 보낼 라우터를 찾아야 한다. 이를 위해 라우터가 사용된다.
- 대한민국에선 KT, LG 유플러스, SK 브로드밴드가 ISP를 제공하므로 위의 3개의 기업의 네트워크가 연결되어 라우터를 제공할 것이다.
- 라우팅 테이블 조회
- 각 라우터에는 라우팅 테이블이 저장되어 있으며, 이 테이블에 저장된 목적지 IP 주소에 대해 어떤 경로로 데이터를 전송할지 결정한다.
- 패킷 포워딩
- 경로가 결정되면, 라우터는 해당 경로로 패킷을 포워딩(전달)한다.
- 패킷은 여러 라우터를 지나며 목적지에 가까워진다.
- 이때 패킷의 TTL(Time to Live) 값을 확인하여, 패킷이 무한 루프에 빠지지 않도록 한다.
- 목적지에 도달
(참고) 패킷 TTL
데이터를 목적지로 전송할 때, 라우터의 개수를 제한하는 것을 의미한다.
TTL이 무한대로 설정되고, 라우터 테이블이 올바른 IP 주소로 저장되지 않은 경우, 패킷이 목적지까지의 경로를 찾지 못해 무한루프에 빠질 수 있다.
이러한 문제를 방지하기 위해 하나의 라우터를 지날 때마다 TTL을 1씩 감소하는 것이다. 이를 통해 목적지에 도달하지 못했어도 TTL이 0
이라면 패킷 포워딩을 진행하지 않는다.
IP 헤더
패킷을 캡슐화할 때 출발지와 목적지의 IP 주소를 포함해 IP 헤더를 생성한다.
위의 헤더는 IP 패킷의 가장 앞부분에 위치하며 여러 제어정보를 담고 있다.
- Version
- IP 버전을 의미한다. 4 버전과 6 버전이 있는데, 주로 4 버전이 사용된다. (IPv4, IPv6)
- Type of Service
- IP 패킷에 담고 있는 데이터의 우선순위를 지정한다.
- 중요도가 높은 데이터(예: 음성 통화)와 덜 중요한 데이터(예: 이메일)를 구분할 수 있다.
- Total Length
- IP 패킷 전체(헤더 + 데이터)의 크기를 바이트 단위로 나타낸다.
- IPv4의 최대 패킷 크기는 65,535 바이트
- Identification
- 각 패킷에 고유한 식별자를 부여한다.
- 도착지에 도달한 패킷이 여러 개일 수 있다. 이때 단편화된 패킷이 재조립될 때, 동일한 ID 값을 가진 조각들이 하나의 패킷으로 결합된다.
- Flags
- 단편화와 관련된 제어 비트를 포함합니다
- Fragment Offset
- 단편화된 패킷의 조각이 원래 데이터의 어디에 위치하는지 표시한다.
- 8바이트 단위로 계산되며, 단편화된 패킷을 재조립할 때 사용된다.
- Time to Live
- 위에서 언급한 TTL이다.
- 지나갈 수 있는 라우터의 수를 뜻한다.
- TTL이 0이 된다면 패킷은 폐기된다.
- Protocol
- 상위 계층 프로토콜을 의미한다. (UDP, TCP 등)
- Header Checksum
- 패킷 전송 중 IP 헤더에 발생한 오류를 검출하기 위한 값
- Source IP Address
- 전송자 IP
- Destination IP Address
- 목적지 IP
느낀 점
서울에 있는 철수아. 내 메시지가 라우터를 거쳐 잘 전달되었으면 해.
'개발 일기' 카테고리의 다른 글
[개발 일기] 2025.01.10 - OSI 7계층 (세션 계층) (0) | 2025.01.10 |
---|---|
[개발 일기] 2025.01.09 - OSI 7계층 (전송 계층) (0) | 2025.01.09 |
[개발 일기] 2025.01.07 - OSI 7계층 (데이터 링크 계층) (0) | 2025.01.07 |
[개발 일기] 2025.01.06 - OSI 7계층 (물리 계층) (0) | 2025.01.06 |
[개발 일기] 2025.01.05 - 자바 객체 락 (synchronized) (0) | 2025.01.05 |