📌 이 포스팅에서는 OSI 모델의 3계층인 네트워크 계층(Network Layer)에 대해 정리하였습니다.
🔥 네트워크 계층의 역할
🔥 IP주소의 구조
🔥 서브넷의 구조
🔥 라우터의 구조
✔️ 데이터 링크 계층에서는 같은 네트워크에 있는 목적지로는 데이터를 전송할 수 있지만, 다른 네트워크로는 전송이 불가능하다. 이에 서로 다른 네트워크의 목적지로 데이터를 전송하기 위한 역할을하는 것이 네트워크 계층이다.
✔️ 이 때 라우터라는 네트워크 장비를 이용하여 통신하는데, 정해진 목적지까지 어떤 경로로 이동할지 판단하고, IP주소를 이용하여 목적지 PC가 어떤 네트워크에 속해있는지 식별한다.
✔️ 이를 라우팅이라고 부르는데, 라우팅에는 라우팅 테이블(routing table) 있어 경로 정보를 등록하고 관리한다.
✔️ 즉, 네트워크 계층의 역할은 수 많은 네트워크로 이뤄진 inter-network 속에서 목적지 컴퓨터로 데이터를 전송하기 위해 IP주소를 통해 식별하고, 다음 라우터에게 데이터를 포워딩하는 역할이 이뤄진다.
✔️ 네트워크 계층에서는 IP라는 프로토콜이 존재한다. 즉, 네트워크 계층에서는 IP헤더를 붙여 캡슐하는 과정을 거친다.
✔️ IP 헤더에는 아래 순서로 헤더 정보가 구성되어 있다.
- 버전(Version)
- 헤더 길이(header length)
- 서비스 유형(service type)
- 전체 패킷 길이(total length)
- 일련번호(ID)
- 조각 상태(flags)
- 조각의 위치(fragment offset)
- TTL, 프로토콜(protocol)
- 헤더 체크썸(header checksum)
- 출발지 IP(source IP address)
- 목적지 IP(destination IP address)
✔️ IP프로토콜에서는 출발지 IP와 목적지 IP를 IP헤더에 추가하는데, 이를 IP 패킷이라 한다.
✔️ IP 주소를 실생활에 비유하면, 주소와 같은 개념이다. 데이터를 다른 네트워크에 목적지로 보내기 위해서는 IP 주소가 필요하고, 이는 ISP로부터 제공받는다.
✔️ IP 버전에는 IPv4와 IPv6가 존재한다. IPv4는 32비트로 되어있어, 43억 개를 만들 수 있는데, 처음에는 충분하다고 판단했지만 인터넷이 널리 보급되면서 IP주소가 부족해지는 문제가 발생했다.
✔️ 이에 128비트로 되어있는 Ipv6가 적극적으로 도입되고 있다. IPv6로는 약 340간 개를 만들 수 있다고 한다.
✔️ IP주소는 사설 IP 주소와 공인 IP 주소로 나뉜다. 여기서 공인 IP주소는 ISP를 통해 제공 받는다.
✔️ IPv4의 주소는 고갈되고 있기 떄문에 인터넷에 직접 연결된 PC나 라우터에는 공인 IP주소가 할당되지만, 회사나 가정에 랜에 연결된 PC는 사설 IP주소를 할당 받는 정책을 사용하고 있다.
✔️ 즉, 가정에 라우터에는 공인 IP가 할당되었지만, 라우터에 연결된 PC나 핸드폰 등은 랜의 네트워크 관리자가 사설 IP를 할당하거나, DHCP(Dynamic Host Configuration Protocol) 기능을 사용하여 주소를 자동으로 할당한다.
✔️ IP주소는 네트워크ID와 호스트ID로 구성되어 있는데, 네트워크ID는 어떤 네트워크인지를 나타내고, 호스트ID는 해당 네트워크의 어떤 PC인지를 나타내는 정보이다.
✔️ 네트워크를 분할하는 것을 서브넷팅(subneting)이라 하고, 분할된 네트워크를 서브넷(subnet)이라 한다.
✔️ A 클래스 네트워크는 네트워크ID가 8비트이고, 호스트ID 24비트이기 때문에 1677만 7214개의 IP주소를 사용하는데, 이 모든 컴퓨터에 패킷을 전송하면 네트워크가 혼잡해지는 문제가 발생한다.
✔️ 이런 혼잡과 비효율을 해결하고자 대규모 네트워크를 작은 네트워크로 분할하여 전송되는 패킷의 범위를 줄이기 위해 서브넷이 활용된다.
✔️ 이 때 호스트ID에서 비트를 빌려 서브넷을 생성한다.
✔️ IP주소를 서브넷팅하면 어디까지가 네트워크ID이고, 어디까지가 호스트ID인지 구분하기 어려울 때가 있다.
✔️ 이럴 때, 네트워크ID 값과 호스트ID값을 식별하기 위해 서브넷 마스크라는 값을 사용한다.
✔️ 이에 "네트워크ID+호스트ID"에서 서브네팅을 하면, "네트워크ID+서브넷ID+호스트ID"로 변경된다.
✔️ 서로 다른 네트워크와 통신하기 위해 라우터라는 네트워크가 장비가 필요하다.
✔️ 2개의 스위치에 각 각 10대의 PC가 연결되어있고, 이를 스위치로 묶는다면 전체가 하나의 네트워크지만, 2개의 스위치를 라우터로 묶는다면, 각 스위치는 서론 다른 네트워크로 묶이게 된다.
✔️ 서로 다른 네트워크에 있는 PC가 연결되기 위해서는 라우터의 IP주소를 설정해야하는데, 이는 네트워크의 출입구를 설정하는 것으로 기본 게이트웨이(default gateway)라 부른다. 이와 함께 라우팅 설정을 해주어야 한다.
✔️ 라우팅은 경로 정보를 기반으로 현재 네트워크에서 다른 네트워크로 최적의 경로를 통해 데이터를 전송하는 기술이다. 이 경로 정보가 등록된 테이블이 라우팅 테이블이다.
✔️ 라우터 간의 서로 라우팅 정보를 교환하기 위한 프로토콜을 라우팅 프로토콜이라 한다.