본문 바로가기

B..To..B

Back to the Basic #1 Tcp/IP

Tistory 태그: ,

Microsoft Windows 컴퓨터에서 TCP/IP 프로토콜을 구성할 경우 TCP/IP 구성 설정에서 IP 주소, 서브넷 마스크 그리고 일반적으로 기본 게이트웨이가 필요합니다.
TCP/IP를 올바르게 구성하려면 TCP/IP 네트워크의 주소를 지정하는 방법과 네트워크와 서브네트워크로 나누는 방법을 알고 있어야 합니다. 이 문서는 IP 네트워크와 서브넷 구성의 개념을 일반적으로 소개하기 위한 것입니다. 문서 끝 부분에 용어집이 포함되어 있습니다.

위로 가기

추가 정보

TCP/IP가 인터넷의 네트워크 프로토콜로 널리 사용되는 가장 큰 이유는 크기가 다른 네트워크와 유형이 다른 시스템을 함께 연결할 수 있기 때문입니다. 이러한 네트워크는 세 가지 기본 클래스(와 기타 클래스)로 나눌 수 있으며, 각 클래스는 미리 정의된 크기를 가지고 있고 시스템 관리자에 의해 보다 작은 서브 네트워크로 나눌 수 있습니다. 서브넷 마스크는 하나의 IP 주소를 두 부분으로 나누는 데 사용됩니다. 이 중 한 부분은 호스트(컴퓨터)를 식별하고, 다른 한 부분은 이 컴퓨터가 속해 있는 네트워크를 식별합니다. IP 주소와 서브넷 마스크가 어떻게 작동하는지 보다 잘 이해하려면 IP(인터넷 프로토콜) 주소를 자세히 살펴보고 이 IP 주소가 어떻게 구성되어 있는지 보십시오.

위로 가기

IP 주소: 네트워크 및 주소
IP 주소란 어떤 TCP/IP 네트워크에 있는 호스트(컴퓨터 또는 프린터나 라우터 같은 다른 장치)를 고유하게 식별하는 32비트 숫자를 말합니다.
IP 주소는 보통 네 개의 숫자가 점으로 분리된 십진수 형식으로 표현됩니다(예: 192.168.123.132). 서브넷 마스크가 호스트, 네트워크 및 서브네트워크를 구분하는 데 어떻게 사용되는지 이해하려면 이진 표기법으로 된 IP 주소를 확인해 보십시오.
예를 들어, 점으로 구분된 십진수 IP 주소 192.168.123.132는 이진 표기법으로 32비트 숫자 110000000101000111101110000100에 해당합니다. 이 숫자는 알아보기 어려울 수도 있으므로 이진수로 8자리씩 4부분으로 나누어집니다.
이러한 8비트 섹션을 옥텟(octet)이라고 합니다. 그러면 예제 IP 주소는 11000000.10101000.01111011.10000100이 됩니다. 이 숫자도 마찬가지로 알아보기가 어려우므로, 대부분의 경우 이진 주소를 점으로 분리된 십진수 형식(192.168.123.132)으로 변환합니다. 점으로 분리된 각 십진수는 이진수를 십진 표기법으로 변환한 옥텟입니다.
TCP/IP WAN(Wide Area Network)이 네트워크의 집합으로서 효율적으로 작동하도록 하기 위해서 네트워크 사이에서 데이터 패킷을 전달하는 라우터는 정보 패킷이 향하는 호스트의 정확한 위치를 모릅니다. 라우터는 해당 호스트가 어떤 네트워크의 구성원인지만을 알고 있고 자신의 라우팅 테이블에 저장되어 있는 정보를 사용하여 대상 호스트의 네트워크로 패킷을 가져가는 방법을 결정합니다. 패킷은 대상 네트워크로 배달된 다음 해당 호스트로 배달됩니다.
이러한 프로세스가 작동하기 위해 IP 주소는 두 부분으로 이루어집니다. IP 주소의 첫째 부분은 네트워크 주소로 사용되고, 마지막 부분은 호스트 주소로 사용됩니다. 예제 192.168.123.132를 두 부분으로 나누면 다음과 같이 됩니다.
   192.168.123.    네트워크
              .132 호스트
-또는-
   192.168.123.0 - 네트워크 주소.
   0.0.0.132     - 호스트 주소.

위로 가기

서브넷 마스크
TCP/IP가 작동하기 위해 필요한 두 번째 항목이 바로 서브넷 마스크입니다. 서브넷 마스크는 TCP/IP 프로토콜에 의해 호스트가 로컬 서브넷에 있는지 아니면 원격 네트워크에 있는지를 확인하는 데 사용됩니다.
TCP/IP에서는 네트워크 주소와 호스트 주소로 사용되는 IP 주소의 부분이 고정되어 있지 않아 또 다른 추가 정보가 있지 않는 한 위의 네트워크 주소와 호스트 주소를 확인할 수 없습니다. 이러한 추가 정보는 서브넷 마스크라고 하는 또 다른 32비트 숫자의 형태로 제공됩니다. 이 예제에서는 서브넷 마스크가 255.255.255.0입니다. 이진 표기법에서는 255가 11111111에 해당하므로 이 서브넷 마스크가 아래와 같다는 것을 모른다면 다음 숫자가 무엇을 의미하는지 이해하기 어려울 것입니다.
   11111111.11111111.11111111.0000000
IP 주소와 서브넷 마스크를 나란히 놓으면 주소의 네트워크 부분과 호스트 부분을 아래와 같이 분리할 수 있습니다.
   11000000.10101000.01111011.10000100 -- IP 주소(192.168.123.132)
   11111111.11111111.11111111.00000000 -- 서브넷 마스크(255.255.255.0)
처음 24비트(서브넷 마스크에서 1로 이루어진 숫자)는 네트워크 주소이고 마지막 8비트(서브넷 마스크에서 나머지 0으로 이루어진 숫자)는 호스트 주소입니다. 이 숫자가 의미하는 것은 아래와 같습니다.
   11000000.10101000.01111011.00000000 -- 네트워크 주소(192.168.123.0)
   00000000.00000000.00000000.10000100 -- 호스트 주소(000.000.000.132)
이제 255.255.255.0이라는 서브넷 마스크를 사용하는 이 예제에서 네트워크 ID는 192.168.123.0이고, 호스트 주소는 0.0.0.132라는 것을 알 수 있을 것입니다. 패킷이 로컬 서브넷이나 원격 네트워크로부터 192.168.123.0 서브넷에 도달하여 해당 서브넷에 목적지 주소 192.168.123.132가 있으면 컴퓨터가 네트워크로부터 해당 패킷을 받아서 처리합니다.
거의 모든 십진 서브넷 마스크는 왼쪽은 모두 1이고 오른쪽은 모두 0인 이진 숫자로 변환됩니다. 또다른 일반적으로 사용되는 서브넷 마스크는 아래와 같습니다.
   십진                   이진
   255.255.255.192         1111111.11111111.1111111.11000000
   255.255.255.224         1111111.11111111.1111111.11100000
http://ds.internic.net (http://ds.internic.net))에서 구할 수 있는 Internet RFC 1878에 TCP/IP 네트워크에서 사용할 수 있는 유효한 서브넷과 서브넷 마스크에 대한 설명이 있습니다.

위로 가기

네트워크 주소
인터넷 주소는 인터넷을 관리하는 조직인 InterNIC(http://www.internic.net (http://www.internic.net),))에서 할당하고 있습니다. 이러한 IP 주소는 클래스로 나누어 집니다. 이러한 클래스 중 가장 일반적으로 사용되는 클래스는 A, B, C입니다. 클래스 D와 E도 있지만 일반 사용자는 대개 사용하지 않습니다. 각 주소 클래스는 서로 다른 기본 서브넷 마스크를 갖고 있습니다. 첫번째 옥텟을 보면 IP 주소의 클래스를 식별할 수 있습니다. 다음은 클래스 A, B, C의 인터넷 주소 범위와 예제 주소입니다.


클래스 A 네트워크는 기본 서브넷 마스크 255.0.0.0을 사용하고 첫번째 옥텟으로 0-126 사이의 값을 갖습니다. 주소 10.52.36.11은 클래스 A 주소입니다. 이 주소의 첫번째 옥텟은 10으로, 1-126(포함) 사이에 있습니다.


클래스 B 네트워크는 기본 서브넷 마스크 255.255.0.0을 사용하고 첫번째 옥텟으로 128-191 사이의 값을 갖습니다. 주소 172.16.52.63이 클래스 B 주소입니다. 이 주소의 첫번째 옥텟은 172로, 128-191(포함) 사이에 있습니다.


클래스 C 네트워크는 기본 서브넷 마스크 255.255.255.0을 사용하고 첫번째 옥텟으로 192-223 사이의 값을 갖습니다. 주소 192.168.123.132가 클래스 C 주소입니다. 이 주소의 첫번째 옥텟은 192로, 192-223(포함) 사이에 있습니다.

어떤 시나리오에서는 해당 네트워크의 실제 토폴로지 때문에, 또는 네트워크나 호스트 수가 기본 서브넷 마스크 제한을 초과하여 기본 서브넷 마스크 값이 조직의 필요 사항과 맞지 않을 수도 있습니다. 다음 절에서는 서브넷 마스크를 사용하여 네트워크를 나누는 방법에 대해 설명합니다.

위로 가기

서브넷 구성
클래스 Class A, B, C TCP/IP 네트워크는 시스템 관리자에 의해 더 작은 단위로, 즉 서브넷으로 나누어질 수 있습니다. 인터넷의 논리적 주소 체계(IP 주소와 서브넷으로 이루어진 추상적 세계)와 실제로 사용되는 실제 네트워크를 맞출 때 이러한 작업이 필요합니다.
IP 주소 블록을 맡고 있는 시스템 관리자가 관리하는 네트워크가 이 주소에 잘 맞는 방식으로 구성되어 있지 않을 수도 있습니다. 예를 들어 각각 다른 사이트에 있는 3개의 네트워크에서 150대의 호스트를 갖고 있고 하나의 TCP/IP 라우터로 연결되어 있는 광역 네트워크를 갖고 있다고 가정해 봅시다. 3개의 네트워크는 각각 50대의 호스트를 갖고 있습니다. 클래스 C 네트워크 192.168.123.0을 할당 받았다고 가정해 봅시다. 이 주소는 설명을 위한 것으로 실제로는 인터넷에서 할당되는 범위에 있지 않습니다. 따라서 150대의 호스트에 대해 192.168.123.1 - 192.168.123.254 사이의 주소를 사용할 수 있습니다.
호스트 부분이 모두 1이거나 모두 0인 이진 주소는 유효하지 않기 때문에 이 예에서 192.168.123.0 주소와 192.168.123.255 주소는 사용할 수 없습니다. 0 주소는 호스트를 지정하지 않고 네트워크만을 지정하는 데 사용되므로 유효하지 않습니다. 255 주소(이진 표기법에서 호스트 주소가 모든 1인 주소)는 네트워크 상의 모든 호스트에 메시지를 브로드캐스트하는 데 사용됩니다. 이렇게 네트워크 또는 서브넷의 첫번째 주소와 마지막 주소는 개별 호스트에 할당될 수 없습니다.
이제 254대의 호스트에 IP 주소를 제공할 수 있을 것입니다. 이 경우 150대의 컴퓨터가 모두 하나의 네트워크에 있어야 적절합니다. 하지만 이 예에서는 150대의 컴퓨터가 3개의 실제 네트워크에 나뉘어져 있습니다. 각 네트워크에 추가로 주소 블록을 요청하는 대신 하나의 주소 블록을 여러 개의 실제 네트워크에 사용할 수 있도록 네트워크를 여러 개의 서브넷으로 나눕니다.
이 경우에는 네트워크 주소는 늘리고 가능한 호스트 주소 범위는 줄이는 서브넷 마스크를 사용하여 네트워크를 4개의 서브넷으로 나눕니다. 즉, 호스트 주소에 사용되는 비트 중 일부를 '빌려' 이를 주소의 네트워크 부분에 사용합니다. 서브넷 마스크 255.255.255.192는 각각 62대의 호스트로 이루어진 4개의 네트워크에 사용할 수 있습니다. 이진 표기법에서는 255.255.255.192가 1111111.11111111.1111111.11000000과 같기 때문에 그렇습니다. 마지막 옥텟의 처음 두 자릿수는 네트워크 주소가 되어 추가 네트워크 00000000(0), 01000000(64), 10000000(128), 11000000(192)를 가질 수 있습니다. 어떤 관리자는 서브넷 마스크로 255.255.255.192를 사용할 경우 서브네트워크를 두 개만 사용하기도 합니다. 이에 대한 자세한 내용은 RFC 1878를 참조하십시오. 이러한 4개의 네트워크에서 마지막 6자리 이진수는 호스트 주소에 사용할 수 있습니다.
서브넷 마스크 255.255.255.192를 사용하면 192.168.123.0 네트워크가 4개의 네트워크 192.168.123.0, 192.168.123.64, 192.168.123.128, 192.168.123.192로 나누어집니다. 이들 4개 네트워크에서 유효한 호스트 주소는 다음과 갖습니다.
   192.168.123.1-62
   192.168.123.65-126
   192.168.123.129-190
   192.168.123.193-254
모두 1과 모두 0인 이진 호스트 주소는 유효하지 않으므로 마지막 옥텟이 0, 63, 64, 127, 128, 191, 192, 255인 주소는 사용할 수 없다는 점을 기억하십시오.
두 호스트 주소, 192.168.123.71과 192.168.123.133을 보면 그 이유를 알 수 있습니다. 기본 클래스 C 서브넷 마스크 255.255.255.0을 사용할 경우 이 두 주소가 모두 192.168.123.0 네트워크에 있습니다. 그러나, 서브넷 마스크 255.255.255.192를 사용한다면 이 두 주소가 각각 다른 네트워크에 있게 됩니다. 즉, 192.168.123.71은 192.168.123.64 네트워크에 있고 192.168.123.133은 192.168.123.128 네트워크에 있게 됩니다.

위로 가기

기본 게이트웨이
어떤 TCP/IP 컴퓨터가 다른 네트워크에 있는 호스트와 통신해야 할 경우 대개 라우터라고 하는 장치를 통해 통신합니다. TCP/IP 용어에서 호스트에서 지정되는 라우터는 해당 호스트의 서브넷을 다른 네트워크에 링크하므로 기본 게이트웨이라고 불립니다. 이 절에서는 네트워크의 다른 컴퓨터나 장치에 도달시키기 위해 패킷을 해당 기본 게이트웨이에 보낼지 여부를 TCP/IP가 어떻게 결정하는지에 대해 설명합니다.
호스트가 TCP/IP를 사용하여 다른 장치와 통신할 때는 정의된 서브넷 마스크와 목적지 IP 주소 대 서브넷 마스크와 고유의 IP 주소 사이에서 비교 프로세스를 수행합니다. 이러한 비교의 결과는 목적지가 로컬 호스트인지 아니면 원격 호스트인지 여부를 컴퓨터에 알려줍니다.
이 프로세스의 결과에 따라 목적지가 로컬 호스트인 것으로 판단되면 컴퓨터가 해당 로컬 서브넷에서 패킷을 보냅니다. 비교 결과 목적지가 원격 호스트인 것으로 판단되면 컴퓨터가 자신의 TCP/IP 등록 정보에 정의된 기본 게이트웨이로 패킷을 전달합니다. 그러면 라우터가 해당 패킷을 올바른 서브넷으로 전달해야 합니다.

위로 가기

문제 해결
TCP/IP 네트워크 문제는 종종 컴퓨터의 TCP/IP 등록 정보에서 세 가지 주요 항목을 잘못 구성하기 때문에 발생합니다. TCP/IP를 구성할 때의 오류가 네트워크 동작에 어떠한 영향을 미치는지 이해하고 있으면 일반적인 많은 TCP/IP 문제를 해결할 수 있습니다.
서브넷 마스크가 올바르지 않은 경우: 네트워크가 자신의 주소 클래스에 대해 기본 마스크 외에 다른 서브넷 마스크를 사용하는 반면 클라이언트는 여전히 주소 클래스에 대해 기본 서브넷 마스크를 사용하도록 구성되었다면 멀리 있는 네트워크에 대한 통신은 성공하지만 인접한 네트워크에 대한 통신은 실패합니다. 예를 들어 앞 부분에 있는 서브넷 구성 예에서처럼 서브넷을 4개 만들었지만 TCP/IP 구성에서 잘못된 서브넷 마스크 255.255.255.0을 사용하면 어떤 컴퓨터가 다른 서브넷에 있는지 여부를 호스트가 판단할 수 없습니다. 이러한 현상이 발생하면 같은 클래스 C 주소에 속하는 다른 실제 네트워크에 있는 호스트를 목적지로 하는 패킷이 배달을 위해 기본 게이트웨이로 보내지지 않습니다. 어떤 컴퓨터가 자신이 속한 로컬 네트워크의 호스트와는 통신할 수 있고, 가까이에 있고 같은 클래스 A, B, C 주소를 갖고 있는 네트워크를 제외한 모든 원격 네트워크와 교신할 수 있을 경우에 이러한 현상이 일반적으로 발생합니다. 이 문제를 해결하려면 TCP/IP 구성에서 해당 호스트에 대해 올바른 서브넷 마스크를 입력하면 됩니다.
IP 주소가 올바르지 않은 경우: 로컬 네트워크에서 서로 다른 별개의 서브넷에 있어야 하는 IP 주소를 컴퓨터에 부여하면 이들 컴퓨터가 통신할 수 없습니다. 이들 컴퓨터는 대상 컴퓨터에 올바르게 전달할 수 없는 라우터를 통해 서로에게 패킷을 보내게 됩니다. 이러한 문제가 발생하면 컴퓨터가 원격 네트워크에 있는 호스트와 교신할 수 있지만 로컬 네트워크에 있는 일부 컴퓨터나 모든 컴퓨터와는 통신할 수 없습니다. 이 문제를 해결하려면 동일한 실제 네트워크 상의 모든 컴퓨터가 동일한 IP 서브넷의 IP 주소를 갖도록 하십시오. 한 네트워크 세그먼트에 있는 IP 주소를 모두 사용한 경우에 대한 해결책은 본 문서의 범위에서 벗어나므로 다루지 않습니다.
기본 게이트웨이가 올바르지 않은 경우: 올바르지 않은 기본 게이트웨이를 사용하여 구성된 컴퓨터는 자신이 속한 네트워크 세그먼트에 있는 호스트와는 통신할 수 있지만 일부 또는 모든 원격 네트워크에 있는 호스트와는 통신할 수 없습니다. 하나의 실제 네트워크가 라우터를 두 개 이상 가지고 있고 잘못된 라우터가 기본 게이트웨이로 구성된 경우 호스트가 일부 원격 네트워크와는 통신할 수 있지만 다른 원격 네트워크와는 통신할 수 없습니다. 일반적으로 이 문제는 어떤 조직에 내부 TCP/IP 네트워크에 대한 라우터와 인터넷에 연결된 라우터가 따로 있는 경우에 발생합니다.

위로 가기

참조

TCP/IP에 관해 인기 있는 두 가지 참고 서적은 아래와 같습니다.
"TCP/IP Illustrated, Volume 1: The Protocols," Richard Stevens, Addison Wesley, 1994
"Internetworking with TCP/IP, Volume 1: Principles, Protocols, and Architecture," Douglas E. Comer, Prentice Hall, 1995
TCP/IP 네트워크를 담당하는 시스템 관리자라면 이들 참고 서적 중 최소한 한 권을 갖고 있는 것이 좋습니다.

위로 가기

용어

브로드캐스트 주소 -- 호스트 부분이 모두 1로 이루어진 IP 주소
호스트 -- TCP/IP 네트워크에 있는 컴퓨터나 기타 장치
인터넷 -- 함께 연결되어 있고 공통 범위의 IP 주소를 공유하는 전세계적인 네트워크 집합
InterNIC -- 인터넷에서 IP 주소의 관리를 맡고 있는 조직.
IP -- TCP/IP 네트워크나 인터넷을 통해 네트워크 패킷을 보내는 데 사용되는 네트워크 프로토콜
IP 주소 -- TCP/IP 네트워크나 인터네트워크에 있는 호스트에 대한 고유한 32비트 주소.
네트워크 -- 본 문서에서는 네트워크라는 용어가 두 가지 의미로 사용됩니다. 하나는 하나의 실제 네트워크 세그먼트에 있는 컴퓨터 그룹을 나타내고, 다른 하나는 시스템 관리자가 할당한 IP 네트워크 주소 범위를 나타냅니다.
네트워크 주소 -- 호스트 부분이 모두 0으로 이루어진 IP 주소
옥텟 -- 4개가 모여 32비트 IP 주소를 구성하는 8비트 숫자. 십진수 0-255에 해당하는 00000000-11111111의 범위를 갖고 있습니다.
패킷 -- TCP/IP 네트워크나 광대역 네트워크를 통해 전달되는 데이터 단위
RFC(Request for Comment) -- 인터넷에서 표준을 정의하는 데 사용되는 문서
라우터 -- 다른 IP 네트워크 간에 네트워크 트래픽을 전달하는 장치
서브넷 마스크 -- IP 주소의 네트워크 부분과 호스트 부분을 구분하는 데 사용되는 32비트 숫자
서브넷 또는 서브네트워크 -- 규모가 큰 네트워크를 같은 크기로 나누면 만들어지는 작은 규모의 네트워크
TCP/IP -- 넓은 의미에서, 인터넷이나 대규모 네트워크에서 일반적으로 사용되는 프로토콜, 표준 및 유틸리티 세트.
WAN(Wide area network) -- 라우터로 구분된 작은 규모의 네트워크를 모은 대규모 네트워크. 인터넷을 아주 큰 규모의 WAN이라고 할 수 있습니다.

출저:http://support.microsoft.com/kb/164015