본문 바로가기
네트워크

2. IP(Internet Protocol)

by Testengineer 2021. 8. 1.
반응형

기본개념

인터넷 프로토콜(IP)은 송신 호스트와 수신 호스트가 패킷 스위칭 네트워크에서 정보를 주고받을때 사용하는 네트워크 계층 프로토콜이다. 네트워크 계층은 호스트의 주소 지정과 패킷 분할 및 조립 기능을 담당해서 목적지까지 패킷을 전달될 수 있게 한다.
IP의 특성은 비신뢰성과 비연결성이다. 비신뢰성은 패킷이 목적지에 정확히 도착한다는 것을 보장하지 않는다는 것이다. 그리고 비연결성이기 때문에 수신 측에서 송신 측이 보내는 데이터의 순서가 맞는지 확인하는 방법도 없다.
네트워크 전송 도중 손상되거나 사라지거나 순서가 뒤바뀌었을 경우를 해결하기 위해서는 IP 기반으로 흐름을 제어할 수 있는 상위 프로토콜인 TCP를 사용해야 한다.

IP 주소

IP주소는 IP 네트워크 상에서 유일한 호스트를 식별하는 주소로 컴퓨터와 네트워크 장비에 부여된다. IP 주소를 부여받을 수 있는 것들을 통틀어서 호스트(host)라고 한다. 현재 사용중인 IP 주소체계로는 두가지가 있는데, IPv4는 주소가 4바이트(32비트) 체계이고, IPv6는 16바이트(128비트)체계이다. 대부분의 장비가 버전6도 지원하고 있으나 현재 널리 사용되는 IP프로토콜은 버전 4이다.(ex: 127.0.0.1) IPv6은 IPv4하에서 IP주소 고갈에 대비하기 위해 개발된 주소체계이다.

IPv4 프로토콜 헤더 20바이트 구조

IP 주소의 클래스

IP 주소를 적절히 분류한 것이 클래스이다. 클래스는 규모가 큰 조직에는 많은 호스트가 들어가고, 작은 조직에는 적은 수의 호스트가 들어갈 수 있게 주소를 여러 종류로 분류해서 제공한다.
네트워크 주소는 네트워크를 구별하는데 사용되는 주소이고, 호스트 주소는 호스트에 배정할 수 있는 주소이다. 호스트 주소부분에서 모든 비트가 0이면 네트워크 주소이고, 모든 비트가 1이면 브로드캐스팅 주소를 의미하므로 실제 호스트에 IP 주소를 할당할 수 없다.

클래스 분류표

IP 주소의 사이더

IP 주소를 할당받는 대부분의 사이트가 C 클래스를 받기에는 커서 B 클래스를 받으면서 약 16000개인 B 클래스가 급속도로 소진되었고, 호스트가 만개인 회사가 B 클래스를 받았다면 약 5500개 이상 IP주소가 버려져서 낭비도 심했다. 이러한 문제를 해결하기 위해 클래스가 사이더(CIDR: Classes Inter-Domain Routing)로 대체되기 시작했다. 사이더는 클래스가 없는 도메인 간 라우팅 기법으로 IP 주소 영역을 여러 네트워크 영역으로 나눌때 유연성을 제공한다. 사이더는 비트 단위의 접두어 기반 IP 주소 표준 분석방식으로, 도메인 간 라우팅은 IP주소를 그룹지어 놓은 사이더 블록 단위로 라우팅 테이블에 관리하면서 라우팅을 수행한다.

사이더 표현

네트워크를 비트 단위로 분할할 수 있게 함으로써 IP 주소를 효율적으로 분배할 수 있게 되었다.

서브넷 마스크(Subnet mask)

서브넷 마스크는 IP 프로토콜에서 로컬 네트워크인지 원격 네트워크인지 구분하기 위해 사용한다. 서브넷 마스크는 네트워크 주소 부분의 모든 비트가 1로 설정되어 주어진 IP주소와 AND 연산을 통해 로컬 네트워크 주소와 동일한 네트워크 주소가 나오면 로컬 네트워크 인것으로 간주한다. 서브넷 마스크는 하나의 네트워크 그룹을 여러 개의 서브 네트워크 그룹으로 나눠서 사용할 때도 이용한다. 서브넷 마스크를 잘못 지정하면 목적지 호스트의 네트워크를 검토할때 로컬 네트워크와 원격 네트워크가 잘 못 체크되어, 원격 네트워크로 보내기 위해 라우터로 보내야 하는 패킷이 로컬 네트워크로 보내지거나 로컬 네트워크로 보내야 할 패킷이 라우터로 감으로써 정상 통신이 불가할 수 있다.

게이트웨이(Gateway)

네트워크 게이트웨이는 호스트가 위치한 네트워크에서 다른 네트워크로 가기 위해서 반드시 거쳐야 하는 관문 역할을 하는 장비다. 게이트웨이는 프로토콜이 다른 네트워크 간에 적절히 프로토콜을 변환하는 역할을 수행한다. 라우터도 최적의 네트워크 경로를 찾아 다른 네트워크와 연결을 수행한다는 점에서 게이트웨이와 일맥상통하지만 게이트웨이는 라우터보다 좀 더 포괄적인 개념이다.
IP 프로토콜에서 원격 네트워크와 통신하기 위해서는 라우터를 거쳐 통신이 이루어진다. 호스트에 지정되는 라우터는 해당 호스트가 있는 서브 네트워크에서 다른 네트워크로 전달하는 관문 역할을 수행하므로 디폴트 게이트웨이라고 불린다.
서브넷 마스크로 목적지 IP 주소를 점검해 로컬 네트워크에 있으면 해당 IP 주소로 바로 패킷을 전달하고 원격 네트워크인 경우에는 게이트웨이로 패킷을 전달한다. 게이트웨이를 잘 못 지정하면 라우터에 데이터를 전송할 수 없어 원격 네트워크 호스트와 통신할 수 없다. 하지만 로컬 네트워크 호스트와는 통신이 가능하다.

점보 프레임(Jumbo Frame)

일반 이더넷 프레임의 최대 전송 크기인 MTU(Max Transfer Unit)가 1500바이트지만 점보 프레임을 사용하면 9000바이트까지 늘릴 수 있다. 대부분의 기가비트 스위치와 네트워크 인터페이스 카드가 점포 프레임을 지원하지만 이더넷 표준은 아니다. 점보 프레임을 이용하면 데이터 전송 시 프레임 수가 감소함으로써 프로토콜 헤더 정보가 차지하는 비중이 감소한다. 이를 통해 네트워크 효율성이 증가해 전송 성능은 개선되고 CPU 사용률은 감소하는 효과를 볼 수 있다.
점보 프레임 설정은 네트워크 인터페이스 카드 설정에서 변경할 수 있다. 그러나 모든 서버에 점보 프레임을 설정한다고 성능이 개선되는 것은 아니다. 하드웨어 성능이 개선되어 개선 효과가 미미할 수 있고, 송수신 과정에서 거치는 통신 장비 중 한대라도 점보 프레임을 지원하지 않으면 프레임이 조각으로 나눠지거나 재조립 되는 과정을 거쳐서 오히려 성능에 악영향을 미칠 수도 있다.

IPv6

IPv6는 헤더 규격을 간소화해서 패킷 처리시 중복되는 과정에서 발생하는 비용을 줄이고 주소 크기 증가에 따른 통신 오버헤드를 최소화했으며, 확장 헤더를 통해 보안 기능과 이동성 제공 기능 등 다양한 부가기능을 추가했다. 주소는 CIDR를 기반으로 할당된다.

IPv6 프로토콜 헤더 40바이트 구조



출처: 권문수, [실무로 배우는 시스템 성능 최적화], 위키북스, 2016, 714~721p

반응형

댓글