TCP-IP 강좌
(자료출처 : 영진출판사)
제목 : 제1강. 네트워크의 필요성
TCP/IP란 서로 다른 이기종 컴퓨터 끼리 데이터를 주고 받는 것이 가능하도록 해주는 통신 프로토콜입니다. 물론 이 통신용 프로토콜을 사용 하려면 컴퓨터와 컴퓨터는 물리적으로 연결이 되어 있어야 합니다. 많은 컴퓨터들이 물리적으로 연결이 가능하도록 해 주고 정보교환이 가능하도록 하는 것이 네트워크입니다.
본 강좌를 통하여 현재 인터넷뿐만 아니라 대부분 LAN에서 기본 프로토콜로 사용하고 있는 TCP/IP 프로토콜의 기본 개념과 주요 라우팅 프로토콜에 대해 알아보고 관련된 주요 서비스에 대한 활용법과 IP설계 방법에 대해 강의를 진행하여 네트워크에 관심 있는 사람은 누구든 체계적으로 TCP/IP에 대해 공부를 하고 실제에 바로 적용을 할 수 있도록 할 TCP/IP에 대하여 체계적으로 살펴보도록 하겠습니다.
이번 강의와 다음 강의에서는 TCP/IP프로토콜에 대해 들어가기 전에 TCP/IP프로토콜을 통신 프로토콜로 활용하는 컴퓨터 네트워크가 왜 필요한지 네트워킹이 필요한 이유 몇가지와 네트워크의 종류를 살펴보도록 하겠습니다.
이 강의는 월, 수, 금 한주에 세번 등록이 되고 강의 시작일로부터 8주간 진행이 될 예정입니다. 질문은 매일하셔도 되고 그때 그때마다 답변을 들으실 수 있습니다.
여러분의 적극적인 참여 바랍니다.
제1강. 네트워크의 필요성
첫째로 네트워크가 필요한 이유를 살펴보면 각 컴퓨터가 가지고 있는 하드웨어 자원이나 소프트웨어 자원을 공유 할 수 있도록 해주는 것입니다.
네트워크란 독립적으로 존재하는 컴퓨터와 컴퓨터를 연결하여 서로 공유하고자 하는 자원을 네트워크를 통하여 공유 할 수 있도록 해주는 것입니다.
네트워크가 없다면 여러곳에 산재해 있는 다양한 자원을 여러명의 사용자가 공유하기 위해서는 많은 시간과 비용이 추가로 소요 됩니다. 예를 들어 하나의 프린터를 여러명의 사용자가 공통적으로 사용하기 위해서는 프린터를 공유 할 수 있게 해주는 프린터 공유기를 쓰거나 아니면 출력을 원하는 사용자마다 필요할 때 일일이 프린터 케이블을 이컴퓨터에서 저 컴퓨터로 옮겨가며 연결해 주어야 출력을 할 수가 있습니다. 물론 거리가 가까운 경우는 그렇게라도 할 수가 있겠지만 거리가 먼 경우는 프린터 케이블이 닿지 않아 연결을 할 수가 없겠죠. 이때 LAN카드와 LAN케이블만 있으면 가장 가까운 LAN에 바로 연결하여 컴퓨터가 있는 거리와 위치에 상관없이 원하는 프린터로 여러명의 사용자가 동시에 출력을 보낼 수 있습니다. 그야말로 하나의 프린터를 여러명의 사용자가 네트워크를 통하여 공유 할 수 있도록 해주는 것입니다.
여기서 자원이라는 것은 하드웨어적인 요소들과 소프트웨어적인 요소들을 다 포함합니다. 예를 들어 보면 하드웨어적으로 공유하는 자원에는 하드디스크나 프린터, 팩스, 모뎀등이 있고 소프트웨어적으로 공유하는 자원에는 여러가지 네트워크용 응용 프로그램들이 될 수 있습니다.
둘째로 네트워크가 필요한 이유는 멀리 떨어져 있는 사용자끼리 컴퓨터 네트워크를 통하여 신속하고 저렴한 비용으로 통신이 가능하다는 것입니다. 물론 컴퓨터를 사용하지 않고 전화나 팩스등을 이용하여 대화를 할 수가 있겠죠. 이러한 기능을 주로 제공하는 프로그램에는 전자메일이나 채팅등이 있습니다.
셋째로 네트워크가 필요한 이유는 컴퓨터 네트워크를 통한 정보의 공유 입니다.
정말로 네트워크가 필요한 이유는 바로 여기에 있습니다. 각 컴퓨터마다 저장되어 있는 무수히 많은 정보들을 시간과 거리에 구애 받지 않고 원하는 자료를 자신의 컴퓨터로 바로 제공 받을 수 있도록 하는 것입니다. 이것은 정말 커다란 변화가 아닐 수 없습니다. 컴퓨터 네트워크가 없다면 이러한 정보의 공유를 위해서는 말로 표현 할 수 없을 정도로 많은 절차와 시간, 비용이 추가로 요구 되어집니다.
이러한 정보의 공유가 전세계적으로 가능하도록 컴퓨터를 연결해주는 네트워크가 바로 인터넷입니다. 지금 우리가 인터넷을 통하여 얻는 비용과 시간적인 혜택을 인터넷이 아닌 다른 방법을 이용하여 얻고자 한다면 그것은 거의 불가능한 이야기가 될것입니다. 그만큼 많은 비용과 시간을 인터넷은 절약해 줄 수 있습니다.
또한 단일 기관안에서만(한회사 또는 한학교 또는 한기관) 정보의 공유가 가능하도록 연결 해주는 네트워크가 바로 LAN(근거리통신망)입니다. 인터넷은 전세계적으로 무수히 많은 단일 기관 소유의 LAN을 연결하여 만들어진 거대한 하나의 네트워크라고도 할 수 있습니다.
참고로 인터넷의 정의를 살펴보도록 하겠습니다.
"A network of networks based on TCP/IP"
"TCP/IP protocol을 기반으로 하는 여러 네트워크를 연결하는 하나의 네트워크"를 우리는 인터넷이라고 부릅니다. 즉 인터넷은 TCP/IP프로토콜을 탑재하고 있는 컴퓨터끼리 다양한 응용프로토콜(HTTP, TELNET, FTP등)을 사용하여 서로의 정보를 검색하거나 서비스를 이용할 수 있도록 해주는 전세계적으로 연결된 네트워크를 말합니다.
지금은 컴퓨터만 인터넷에 연결하여 정보를 공유하고 제어를 하고 있지만 멀지 않아 우리는 중앙처리장치가 부착된 모든 기기(정보기기 및 전자제품 또는 제어장치등) 예를 들면 가정에서 사용하는 냉장고나 세탁기까지도 인터넷을 통하여 연결하여 편리하게 생활에 활용하게 될 것 입니다.
이러한 기기들을 물리적으로 연결해주는 연결장치가 네트워크이고 이렇게 연결된 장치들이 서로 통신을 할 수 있도록 제어해 주는 약속이 통신 프로토콜입니다.
이러한 통신 프로토콜 중에서도 가장 널리 알려지고 많이 사용되는 프로토콜이 TCP/IP입니다.
같은 네트워크에 연결되어 있는 컴퓨터 기기라도 같은 통신프로토콜을 탑재한 컴퓨터끼리만 서로 통신이 가능합니다.
이렇듯 현재의 컴퓨터 네트워크 환경에서 네트워크와TCP/IP는 따로 떼어서 생각 할 수 없을 정도로 서로 밀접한 연관성을 가지고 있습니다.
제목 : 제2강. 네트워크의 종류
제2강. 네트워크의 종류
우리가 일상적으로 사용하는 네트워크는 크게 LAN과 WAN으로 구분 할 수 있습니다. 이것은 가장 간단하게 정리를 하면 네트워크를 거리의 개념으로 나누어 살펴본 것입니다. 그러한 관점에서 보면 LAN(Local Area Network)은 상대적으로 가까운 거리에 있는 컴퓨터를 네트워크 장비로 연결한 네트워크이고 WAN(Wide Area Network)은 비교적 먼 거리에 있는 컴퓨터 끼리 통신을 할 수 있도록 기반 환경을 제공하는 네트워크를 말합니다.
그러면 구체적으로 LAN과 WAN, 그리고 인터넷은 어떻게 다른 것일 까요?
어떤 차이가 있을까요?
먼저 LAN의 정의와 특징에 대해 먼저 살펴 보도록 하겠습니다.
LAN은 Local Area Network의 약자이며 IEEE라는 국제 표준 기관은 LAN을
"다수의 독립적인 컴퓨터 기기들이 상호간에 통신이 가능하도록 하는 데이터통신시스템"이라고 정의 하였습니다.
몇가지 부가적인 정의를 더 살펴보면
LAN은 한 기관의 소유여야 합니다. LAN은 개인이나 특정 기관이 소유하는 사설망이라는 것입니다.
LAN은 제한된 거리(반경 수KM-수십KM이내)내에 한정된 지역에 존재하여야 합니다. 많은 경우 한기관의 LAN은 한지역에서 뿐만 아니라 여러 지역에 걸쳐 존재하게 됩니다. 반경 수십KM범위를 벗어나는 범위입니다. 예를 들면 한 회사의 본사의 LAN과 여러 지사의 LAN을 하나의 LAN으로 연결하면 이것도 하나의 LAN입니다. 현재의 정의에 벗어나는 것 같지만 이것이 한 기관의 소유이므로 LAN이라고 부릅니다.
LAN은 하나 이상의 고유한 스위칭 기술을 가지고 있어야 합니다. 즉 LAN상에 연결된 컴퓨터끼리 데이터를 주고 받고 하기 위해서는 CSMA/CD(Ethernet, Fast Ethernet, Gigabit Ethernet등에서 활용)나 TOKEN-RING(TOKEN-RING 에서 활용) 또는 ATM같은 고유한 데이터 전송 기법을 사용하여야 합니다.
마지막으로 LAN은 최소한 수Mbps이상의 데이터 전송속도를 가져야 합니다.
현재 주로 쓰이는 LAN에서는 Ethernet은 10MBPS의 데이터 전송속도를 가지고,
Fast Ethernet은 100MBPS, 스위칭 LAN은 port당 10/100MBPSdml 전송속도를 가지며 Gigabit Ethernet은 1000MBPS, ATM은 155MBPS, 622MBPS, 2.5GBPS등 다양한 전송속도를 가지고 있습니다. 물론 여기서 언급한 네트워크는 LAN의 종류가 되고 현재 주로 쓰이는 LAN들입니다.
이정도면 LAN에 대해서는 감을 잡으셨겠지요.
다음은 WAN에 대해 살펴 보도록 하겠습니다.
WAN은 WIDE AREA NETWORK의 약자로 원거리(Wide Area, 도시, 국가)에 분산되어 있는 컴퓨터들을 서로 연결하여 정보의 공유 및 전송을 가능하게 하는 광역 네트워크 시스템입니다.
LAN에 비하여 상대적으로 원거리에 있는 컴퓨터들을 서로 연결하여 주는 역할을 하며 네트워크 속도도 LAN에 비하여 느린 수십KBPS에서 수MBPS의 속도만 주로 제공하고 있습니다. LAN이 회선 사용료가 없는 반면 WAN구간은 아직도 아주 비싼 회선 사용료를 지불하여야 사용할 수가 있습니다. 요즈음은 이 WAN구간 서비스가 급속도로 좋아지고는 있지만 아직은 한정된 지역 한정된 사용자에게만 서비스가 제공되고 있습니다. 우리가 주로 말하는 초고속 인터넷 서비스가 그것입니다. 저도 집에서 ADSL초고속 인터넷 서비스를 사용하여 인터넷 강좌를 주로 진행하고 있습니다만 개인 사용자에게 제공되는 이 ADSL서비스는 1MBPS에서 8MBPS정도의 대역폭을 제공해 줍니다. 지금은 이러한 서비스를 일부 사용자만 제공 받고 있고 이것도 모뎀에 비하면 획기적인 서비스이지만 멀지 않아 빠른 시간내에 모든 가정에 광케이블을 통하여 수십MBPS에서 수백MBPS의 대역폭을 우리집에서 사용 할 수 있을 것입니다. 진정한 의미의 멀티미디어서비스를 가정에서 사용 할 수 있게 되는 것입니다.
지금까지는 LAN과 WAN을 구분 할 때 거리와 속도를 가지고 많이 구분을 했었는데 그렇게 되면 LAN과 WAN을 또 다른 방법으로 구분을 해야겠지요.
각설하고 현재 주로 쓰이는 WAN의 종류를 서비스관점에서 살펴보면
첫째, 일반교환회선망(PSTN)이 있습니다.
공중 통신망(일반전화망)에 컴퓨터 또는 데이터 단말장치만을 접속하여
정보통신이 가능하도록 가입자 회선을 제공하는 데이터통신망입니다.
제공 대역폭은 14,400BPS- 56KBPS로 모뎀을 이용하는 서비스입니다.
둘째, 일반데이타전용망(PSDN)
패킷 데이터통신망을 통하여 국내 및 국제간 고품질의 데이터 전송과
다양한 부가서비스를 효율적으로 이용할 수 있는 패킷데이타통신망으로
국제표준 CCITT X.25을 준수하고 주요 제공 대역폭은 56KBPS입니다.
70년대에 개발된 프로토콜로 데이터통신에서는 빼놓을 수 없는
중요한 이슈였습니다.
지금은 거의 활용되지 않고 잇습니다.
셋째, 고속데이터전송망(Frame Relay Service)
통신회선의 이용효율을 극대화 시킨 기존 패킷교환방식의 장점과
고속디지틀회선에서 제공하는 고속 전송 기능을 통합 시킨 지능화된
전송서비스로 최저 보장 속도를 제공 합니다.
주요 제공 대역폭 56KBPS-E1급(2.048MBPS)입니다.
본사와 지사간 연결을 할 때 현재로 비용 대비 성능상 가장 인기 있는
서비스 입니다.
넷째, 종합정보통신망(ISDN)
데이터서비스와 음성서비스를 동시에 제공 할 수는 서비스로
일반 가입자에게는 64KBPS 또는 128KBPS의 대역폭을 제공 한다.
80년대 말 90년대 초 꿈의 통신망으로 불리웠지만 지금은 초고속 서비스에
밀려 겨우 현상 유지만 하고 있는 서비스입니다.
다섯째, 국내 전용 회선망
공중전기통신회선의 일부를 특정인에게 독점 사용하게 하는 서비스로써
이용자가 원하는 두 지점간을 직통으로 연결하여 24시간 통화 중
없이 신속.편리하게 전송할 수 있는 통신망입니다.
주요 제공 대역폭은 56KBPS이상입니다.
비용이 아주 비싸 주로 FRS를 사용하죠.
여섯째, 초고속 인터넷 서비스
현재 가장 인기있는 서비스로 MBPS급의 WAN 구간 대역폭을 제공하며
ADSL서비스, CATV서비스 등이 있습니다.
이상 LAN과 WAN에 대해 살펴 보았습니다.
그러면 인터넷은 무엇일까요?
인터넷은 LAN일까요? WAN일까요? 단답형으로 물어본다면 여러분은 WAN이라고 대답하시겠죠? 왜 그러냐고 물으면 여러분은 "인터넷을 사용하면 지구촌 어디에 있는 컴퓨터와도 통신을 할 수 있으니까요~~오" 라고 대답을 하실겁니다. 그것쯤이야 하면서. 과연 정답은 무엇일까요? 제1강을 정확하게 보신분이라면 정답은 모두 알고 계실겁니다. 인터넷은 무수히 많은 전세계에 있는 LAN과 WAN을 서로 연결하여 통신을 할 수 있도록 해주는 하나의 거대한 네트워크입니다. 또한 인터넷은 하나의 SOCIETY입니다. 전세계를 연결하여주는 거대한 네트워크를 발전시키고 생활에 활용하는 모든 공동체의 집합을 인터넷이라고 정의하고 또한 이 네트워크를 통해 활용 할 수 있는 모든 정보와 자원의 집합을 인터넷이라고 합니다. 결론적으로 이야기하면 인터넷은 컴퓨터통신을 이용하여 새로운 방식으로 사회 생활을 이끌어가는 공동체의 집합을 말합니다.
제목 : 제3강. OSI 7 Layer 참조 모델
제3강. OSI 7 Layer
<첨부 문서 참조>. OSI7 Layer 개념도 및 각 계층 예
1980년대 초 통신 기술의 발달과 개인용 컴퓨터의 보급으로 이기종 컴퓨터간의
네트워크의 필요성이 절실하게 대두되자 국제표준협회(ISO)에서 OSI(Open System
Interconnection, 개방 시스템 상호 연결) 7 Layer라는 새로운 네트워크 모델을 발표 했습니다. 이 모델은 서로 다른 컴퓨터 기기간에 네트워크를 형성할 수 있도록
규정한 네트워크 모델 표준안 입니다.
이 모델은 모든 통신 관련 시스템, 즉 각종 네트워크 장비 및 컴퓨터기기등에 동일하게 적용이 되는 개념이며 우리가 사용하고 접하는 모든 통신 관련 시스템은
이 OSI 7 Layer 범주에 속하게 되어 있습니다.
이 OSI 참조 모델은 각 시스템의 하드웨어 및 소프트웨어 자원을 서로 다른 기능을 수행하는 7개의 계층으로 구분 했습니다.
각 계층은 가장 상위 계층에 속하는
응용층(Application Layer, 제7층), 표현층(Presentation Layer, 제6층),
세션층(Session Layer, 제5층), 전송층(Transport Layer, 제4층),
네트워크층(Network Layer, 제3층), 데이터링크층(Datalink Layer, 제2층)
그리고 가장 하위 계층에 속하는 물리층(Physical Layer, 제1층)등
7개의 계층으로 나누어집니다.
물론 모든 통신 시스템이 7계층을 다 가지고 있는 것은 아닙니다.
어떤 장비는 7계층을 다 구현(예, Gateway)한 기능을 가지고 있고
어떤 장비는 하위 1계층(예, 각종 케이블) 또는 하위 3계층(예, 라우터)
만 구현한 장비도 있습니다. 다시 말하면 필요에 따라
모든 하드웨어 및 소프트웨어는 하나의 계층만으로 구현 될 수도 있고
여러 개의 계층에 걸쳐 구현 될 수도 있습니다.
두 컴퓨터가 서로 네트워크를 형성하여 데이터를 주고 받기 위해서는
각각의 컴퓨터는 독자적으로 7계층이 다 구현 되어야 하며, 각각의 컴퓨터가 서로 데이터를 주고 받기 위해서는 같은 통신 프로토콜을 탑재 하고 있어야 하며
각각의 계층은 서로 독립된 기능을 제공하며, 서로 인접한 계층간에만 의존하게 됩니다.
지금부터는 각 계층별 기능 및 특성에 대해 알아 보도록 하겠습니다.
(1) 제1계층(Physical Layer, 물리층)
물리층은 가장 기본이 되는 계층으로 말 그대로 물리적인
연결 기능을 담당하는 계층입니다. 시스템간에 데이터통신이
가능하도록 물리적인 링크를 구성하고 유지하며 전기, 기계,
절차등 기능적 측면에 대해 정의 합니다.
(2) 제2계층(Datalink Layer, 데이터링크층)
데이터링크층은 물리층에서 시스템간 물리적인 링크가 형성되면
이 링크를 통해 신뢰성 있는 데이터의 전달을 보장합니다.
이계층은 물리적인 어드레싱, 네트워크 토폴로지, 회선 사용 규칙,
에러 검출, 프레임 전달 그리고 흐름제어등에 대해 정의 합니다.
(3) 제3계층(Network Layer, 네트워크층)
네트워크층은 물리적으로 네트워크상에 존재하는 두 시스템간에
네트워크 경로 선택 및 연결성을 제공합니다. 주로 라우터가
이 역할을 하게 되며 라우터에 탑재 되어 있는 라우팅 프로토콜이
수없이 많은 네트워크 중에서 최적한 경로를 선택하게 되며
선택된 경로를 따라 데이터를 보내게 됩니다.
즉 최적한 경로 선택 및 데이터를 목적지까지 전송하는
책임을 지게 됩니다.
(4) 제4계층(Transport Layer, 전송층)
트랜스포트층은 네트워크상에서 신뢰성있는 데이터의 전송을
보장합니다. 데이터 전송시 에러가 생기면 에러 복구까지를
수행하게 됩니다. 즉 신뢰성있는 서비스를 제공하기 위해
가상회로의 구축, 경로 유지 및 종료, 전송 오류 검출 및 복구,
흐름 제어 기능을 제공합니다.
위에서 보시는 바와 같이 하위 4계층은(제1계층 - 제4계층)
네트워크상에서 신뢰성 있는 데이터의 전송이 주 목적입니다.
다음에 보실 상위 3계층은(제5계층 - 제7계층) 실제 사용자가
사용 할 응용프로그램에 관한 사항입니다.
(5) 제5계층(Session Layer, 세션층)
세션층은 응용프로그램간(두 프로세스)에 데이터가 흐를 수 있는
가상경로(세션)를 구성하고 관리하며 종료시키는 역할을 합니다.
즉 세션층은 프리젠테이션층 사이의 대화 링크를 동기 시키며
데이터 교환을 관리합니다.
(6) 제6계층(Presentation Layer, 표현층)
프리젠테이션층은 한 시스템의 응용프로그램에서 보낸 데이터를
다른 시스템의 응용프로그램에서 읽을 수 있도록 하는 전송 형식에 관한
책임을 가지고 있습니다.
(7) 제7계층(Application Layer, 응용층)
응용층은 OSI 7계층의 최상위 계층입니다. 다른 어떤 계층과도
연관성을 가지지 않으며, 사용자나 데이터통신 서비스를 수행하는 프로그램등에 여러 서비스를 제공합니다. 스프레드 쉬트, 워드 프로세서등이 이 계층에 속합니다.
제목 : 제4강. 프로토콜이란?
제3강에 이어 이번 강의에서는 우리가 인터넷을 통하여 가장 많이 활용하는 서비스중 하나인 웹브라우저로 웹서버에 있는 인터넷 정보 검색을 할 때 OSI 7 Layer의 각 계층에서 해주는 역할을 실례를 들어 살펴보고, 네트워크에서 프로토콜이 무엇인지 알아보도록 하겠습니다. OSI 7 Layer의 각 계층별로 다양한 종류의 프로토콜이 있습니다. 우리가 본격적으로 공부하고자 하는 TCP/IP도 역시 프로토콜의 일종입니다. 그렇다면 그 프로토콜이란 도대체 어떤 것일까요?
이번 강의에서 살펴보도록 하겠습니다.
제4강. 프로토콜이란?
1. 웹브라우저로 인터넷 정보검색을 할 때 OSI7 Layer에 적용한 예
가. 응용 계층
KIM은 AA라는 컴퓨터에서 웹브라우저 S/W(Netscape나 Internet Explorer)를 수행시키고 영진.COM의 TCP/IP강좌 홈페이지에 접속하려고 주소에다가 "http://www.youngjin.co.kr/lecture/forum.asp?fid=37"를 입력하였습니다. 이 때 웹 브라우저는 통신에 관련된 부분과 그렇지 않은 부분으로 나누어집니다. AA컴퓨터에서 "http://www.youngjin.co.kr/lecture/forum.asp?fid=37"라는 데이터를 입력하는 것은 통신과는 관계가 없습니다. 그것을 영진.COM의 웹 서버에 보내는 부분은 통신과 관계가 있습니다. 통신과 관계가 있는 이 부분이 응용 계층의 대표적인 역할이 됩니다. 즉 응용프로그램안에서 이 데이터를 송신용 프로그램에 전달을 하게 됩니다.
나. 표현층
"http://www.youngjin.co.kr/lecture/forum.asp?fid=37"라는 데이터를 이 계층에서 컴퓨터가 알 수 있는 부호체계(이진수의 조합)로 변환합니다. 컴퓨터에서는 모든 문자나 특수 문자들은 고유한 16진수 값을 가지고 있습니다. 이 글자들을 컴퓨터가 이해 할 수 있는 부호체계로 바꾸어 주는 것입니다.
다. 세션층
이단계에서는 컴퓨터 AA가 영진.COM서버 컴퓨터로 데이터를 실어 보냅니다. 즉 AA컴퓨터에서 영진 웹 서버 컴퓨터로 가는 길을 확보하게 됩니다. 이 동작에 따라 컴퓨터 AA는 영진 웹 서버에 있는 데이터를 검색 할 수 있게 됩니다. 이 길을 연결(Connection)이라고 부릅니다.
라. 전송층
전송층은 데이터를 에러 없이 목적지에 도착시키는 역할을 합니다.
컴퓨터 AA와 영진 웹 서버 컴퓨터에 탑재되어있는 전송계층의 프로토콜은 데이터의 전송이 손실 없이 이루어졌는지 확인합니다. 예를 들면 "http://www.youngjin.co.kr/lecture " 는 도착했는데 "forum.asp?fid=37"가 도착하지 않을 수도 있습니다. 이것은 올바른 정보검색이 되기 어렵습니다. 영진 웹 서버 컴퓨터는 "http://www.youngjin.co.kr"만 도착하고 " /lecture" /forum.asp?fid=37"은 도달하지 않은 것을 AA에 전달 함으로써 올바른 데이터를 다시 보내도록 합니다.
마. 네트워크층
컴퓨터AA가 영진 서버 컴퓨터에 데이터를 보낼려면 서버의 IP주소가 필요합니다.
이 주소는 네트워크층의 주소 지정에 정의되어 있으며, 이 주소를 가지고 적절한 경로를 선택하게 됩니다.
바. 데이터링크층
실제적인 물리적인 매체에서의 데이터 통신로를 확보합니다.
사. 물리층
데이터를 전기적인 신호로 변환하여 전송합니다.
아. 서버측에서는 클라이언트에서 수행한 것과 반대의 순서대로 처리를 합니다.
그리고 처리한 데이터의 결과를 다시 AA컴퓨터에 전송을 해주게 됩니다.
AA컴퓨터는 수신한 데이터를 물리층에서 받아서 각 계층마다 필요한 정보를 취하고 응용층에 데이터를 전달하면 응용층에서 정보검색한 결과를 화면에 뿌려주게 됩니다.
2. 프로토콜이란?
프로토콜은 무엇이고 프로토콜은 왜 필요 할까요?
먼저 두 사람이 대화하는 것을 예로 들어 보겠습니다. A와 B라는 두 사람이 서로 대화를 하려고 합니다. 제일 좋은 것은 두 사람이 같은 언어로 대화를 하는 것입니다. 그러면 의사 소통에 문제는 없겠지요. A는 국어만 알고 국어로 이야기하는데 B가 영어 밖에 모른다면 두 사람 사이에 원활한 대화가 이루어 지기는 힘들 것입니다. 아니면 중간에 국어와 영어를 동시에 통역해 줄 수 있는 사람이 필요 합니다.
이것처럼 서로 다른 사람끼리 대화를 나눌 수 있도록 하는 국어 나 영어 같은 언어를 "프로토콜"이라 하고, 그 말의 내용을 "데이터"라 하고, 말의 내용에 따라 서로에게 의사 전달을 하는 것을 "통신"이라고 하면 쉽게 이해가 될 수 있습니다.
그러면 컴퓨터에서 프로토콜은 어떤 역할을 하는것일까요?
두대의 컴퓨터도 통신을 하려면 사람처럼 같은 언어를 사용하여야 통신을 할 수 있습니다. 여기서 언어에 해당하는 것을 우리는 프로토콜이라고 합니다.
두대의 컴퓨터가 서로 원활하게 통신을 하려면 같은 프로토콜을 사용하여야 하는것입니다. 컴퓨터는 사람처럼 다양한 이해력과 응용력 사고력을 가지고 있지 못합니다. 사람이 대화를 하기위해서는 언어만 이해를 하면 되지만 컴퓨터는 아주 논리적이고 규칙적인 순서를 정의해주어야만 통신을 할 수 가 있습니다. 제1계층의 물리층에 해당하는 연결 케이블이나 커넥터류부터 응용층에 해당하는 서비스 기능까지 아주 세세한 부분에 대한 것까지 정의를 하여 주어야 합니다. 각 계층마다 해당 하는 적절한 기능을 수행하기 위한 다양한 프로토콜들이 있습니다. 하나의 통신이 성립하기 위해서는 각 계층에 무수히 많은 프로토콜들이 제 기능을 수행하여야 합니다.
제3강에서 살펴본 OSI 7 Layer는 이러한 다양한 프로토콜들을 7개의 계층으로 나누어 각 계층마다 수행 해야 할 기능과 인터페이스를 표준화 시켜놓은 것입니다.
각 벤더 마다 제공하는 다양한 프로토콜의 종류를 예를 들어 보면
1) IBM의 SNA(System Network Architecture) Protocol Suite
2) Novell의 NetWare Protocol Suite
3) X.25 Protocol Suite
4) ISO Protocol Suite
5) DECnet의 Phase V Protocol Suite
6) XNS Protocol Suite
7) Apple의 AppleTalk Protocol Suite
8) 3COM의 Protocol Suite
9) Banyan의 Vines Protocol Suite
10) VPN(Virtual Private Network) Protocol Suite
11) SUN의 NFS(Network File System) Protocol Suite
12) H.323 Protocol Suite
12) Microsoft의 NetBEUI Protocol Suite
13) TCP/IP Protocol Suite등이 있습니다.
물론 실제로는 이것보다 훨씬 더 많은 벤더에서 더 많은 종류의 Protocol을 만들고 사용하여 왔으나 그 중에 대표적인 시스템에서 제공하는 Protocol만을 기술하여 놓은 것 입니다. 이중 특정 벤더 이름이 쓰여있지 않은 Protocol들은 표준으로 제정되어 있는 Protocol들입니다. 이 각각의 Protocol Suite들은 각 계층마다 고유한 기능을 제공하는 여러 종류의 Protocol로 구성이 됩니다.
TCP/IP는 이중 현재 가장 널리 사용되는 프로토콜로써 원래 TCP는 제4계층, IP는 제3계층의 기능을 제공하는 것으로 알려져 있지만 그 상위계층 기능을 제공하는 프로토콜과 그 하위 계층을 제공하는 Protocol의 쌍으로 이루어져 다양한 서비스를 제공합니다. TCP/IP Protocol은 특히 인터넷의 기본 프로토콜로 인터넷에 연결된 모든 컴퓨터 및 통신 장비들은 이 TCP/IP 기능을 기본으로 제공을 하고 있습니다.
그래서 TCP/IP가 중요한 쟁점으로 되어 있는 것입니다.
제목 : 제5강. TCP/IP프로토콜의 개요
제5강. TCP/IP프로토콜의 개요
TCP/IP(Transmission Control Protocol / Internet Protocol) 프로토콜은
1960년대 후반 이기종 컴퓨터간의 원활한 데이터통신을
위해 미국방성에서 개발한 통신 프로토콜입니다.
이기종 컴퓨터 라는 것은 서로 다른 운영체제, 서로 다른 데이터 표현방식을 사용하는 서로 다른 제조회사의 컴퓨터를 말합니다.
TCP/IP는 취약한 보안 기능 및 IP주소 부족등 제한성에도 불구하고
모든 통신 프로토콜은 OSI 7 Layer로 대체 될 것이라는 예상을 뒤엎고 전세계적으로 가장 널리 사용하는 업계 표준 프로토콜이 되었습니다.
현재는 거의 모든 컴퓨터가 이 프로토콜을 기본으로 제공하며, 인터넷 표준 프로토콜입니다. 물론 이 프로토콜의 취약성과 제한성을 극복하기 위한 다양한 방법이 존재 하고 또한 연구되고 있으며 차세대 인터넷 표준 프로토콜인 Ipv6도 거의 완성되어 시험 중에 있습니다.
먼저 TCP/IP의 역사를 개략적으로 살펴 보겠습니다.
(1) TCP/IP의 역사
- 1960년대 후반 미국방성에 의해 통신 기술에 관한 연구 개발 시작
- 1969년 ARPANET 탄생
- 1972년 TCP/IP 응용프로그램인 Telnet이 소개되었다.
- 1973년 FTP(File Transfer Protocol)가 처음으로 도입됨
- 1974년경 전송을 제어하는 TCP(Transmission Control Protocol)
프로토콜이 소개되었다.
- 1981년 IP(Internet Protocol)프로토콜이 RFC791표준으로 처음 발표
- 1982년경 TCP/IP가 본격적인 표준 프로토콜로 정착됨, UNIX 제공 시작
- 1983년 ARPAnet에서 기존에 사용하던 NCP에서 TCP/IP로 전환
하였으며, 이때 표준으로 채택됨
- 1984년 DNS(Domain Name Service)체계 도입
- 1980년대 후반에는 다양한 하드웨어 벤더들이 TCP/IP 프로토콜을
지원하기 시작
- 1990년대 인터넷의 급속한 성장과 함께 사실상 산업 표준 프로토콜이 됨
- 2000년에 접어들면 기존에 사용하던 IP주소 체계인
IPv4에서 IPv6로 점차 이전할 예정
(2) TCP/IP의 특징
가. 오픈 프로토콜입니다.
특정 회사나 기관의 소유물이 아닌 오픈 프로토콜 표준이므로
누구나 이 프로토콜을 무료로 적용하고 보완 할 수 있습니다.
나. 계층적 구조를 가집니다.
TCP층는 OSI 7 Layer중 전송층(제4층)에 해당하며
IP층은 네트워크층(제3층)에 해당합니다.
각각의 계층은 독립적인 기능을 수행하며
서로 다른 계층 간에는 영향을 끼치지 않습니다.
다. 많은 네트워크와 컴퓨터에 대한 논리적인 주소를 표기 할 수 있습니다.
네트워크 주소와 그 네트워크에 포함되는 Host주소로 나타내며
하나의 네트워크안에 최대 2,097,152개의 서브 네트워크를
표기 할 수 있고, 한 네트워크당 최대 16,777,214개의 노드를
표기 할 수 있습니다.
(3) TCP/IP 관련 Protocol
TCP/IP는 계층적 구조를 가지는 표준 프로토콜이며
각 계층 관련 프로토콜을 살펴보면 다음과 같습니다.
먼저 Internet 계층에 해당하는 IP, ICMP, IGMP, ARP가 있고
Transport 계층에 속하는 TCP, UDP가 있으며
Session 계층에 해당하는 Socket LIB와 Winsock LIB가 있습니다.
또한 Application 계층 서비스를 제공하는 프로그램들이 있습니다.
먼저 각 계층별 프로토콜의 주요 기능을 살펴 보면 다음과 같습니다.
가. Internet Layer
- IP(Internet Protocol)
최적한 경로를 선택해 데이터를 전송하며 이를 위하여
적절한 Addressing과 Routing 기능을 제공합니다.
- ICMP(Internet Control Message Protocol)
패킷 전송시 발생한 메시지와 에러 정보를 알려 줍니다.
- ARP(Address Resolution Protocol)
논리적인 IP주소에 해당하는 물리적인 주소(MAC주소)를
찾아 줍니다.
- RARP(Reverse Address Resolution Protocol)
ARP와 반대 되는 기능을 수행하며 물리적인 주소에
해당하는 논리적인 주소를 찾아 줍니다.
나. Transport Layer
- TCP(Transmission Control Protocol)
Connection-oriented 패킷 전송을 제어 하며
데이터 전송시 발생한 에러를 복구 할 수 있습니다.
- UDP(User Datagram Protocol)
Connectionless 패킷 전송을 제어 하며
데이터 전송시 발생한 에러를 복구 할 수 없습니다.
다. Session Layer
- Socket LIB
TCP 프로토콜과 UNIX 환경의 Socket응용프로그램 사이의
표준 인터페이스를 제공합니다.
이 library는 UNIX계열 Machine에 제공합니다.
- Winsock LIB
TCP 프로토콜과 windows환경의 Socket응용프로그램 사이의
표준 인터페이스를 제공합니다.
이 library는 Windows계열 Machine에서 제공합니다.
라. Application Layer
web browser, telnet, ftp, ping등 많은 프로그램이 있으며 서버용 프로그램과
클라이언트 프로그램이 따로 있습니다.
제목 : 제6강. TCP/IP프로토콜의 패킷 구조와 역할
패킷이란 데이터의 묶음 단위로 한번에 전송할 데이터의 크기를 나타냅니다.
제3계층 이상에서는 이 데이터 묶음을 패킷이라고 부르며, 제2계층에서는 프레임이라고 부릅니다. 이 패킷의 크기는 네트워크의 종류에 따라 달라지며 Ethernet은 최대 1500bytes크기를 갖고, IEEE 802.3표준에서는 최대 1492bytes크기를 갖습니다.
그렇다면 데이터를 보낼 때 처음부터 끝까지의 데이터를 한꺼번에 보내면 좋을 텐데 왜 패킷 단위로 데이터를 나누어서 보내야 할까?
그 이유는 다음과 같습니다.
네트워크상에는 하나의 컴퓨터만 있는 것이 아니고 여러 개의 컴퓨터가 있습니다.
이들은 서로 동시 다발적으로 데이터를 주고 받게 되는데 만약에 데이터를 분할하여 전송하지 않고 한번에 보낸다면 한 컴퓨터만 데이터를 주고 받게 되고 나머지 컴퓨터들은 끝날 때 까지 기다릴 수 밖에 없게 됩니다. 또한 이 큰 데이터를 전송하다가 중간에 에러가 발생하게 되면 이 큰 데이터를 처음부터 끝까지 다시 전송하여야 하는데 이것도 결과적으로 큰 문제가 되는것입니다. 그리하여 데이터를 어느 정도 전송에 적합한 크기로 분할 하여 전송을 하면 이러한 문제들을 해결 할 수 있게 됩니다. 그러한 이유로 데이터를 패킷 단위로 나누게 되고 아주 기본 적인 개념입니다.
이번 강의에서는 TCP/IP 프로토콜에서 데이터를 실어 나르는 패킷의 구조와 역할을 자세히 살펴보도록 하겠습니다.
아래의 설명에는 옥텟이라는 단어가 나오는데 옥텟은 바이트와 같은 단위입니다. 즉 1Octet은 1Byte와 같으며 8Bit를 나타내는 것입니다. 데이터 통신에서는 바이트 대신 옥텟이라는 용어를 자주 쓰기도 합니다.
제6강. TCP/IP프로토콜의 패킷 구조와 역할
앞에서 살펴본것처럼 TCP(Transmission Control Protocol)는 OSI 7 Layer중 제4계층의 기능을 제공하며 Connection-oriented 패킷 전송을 제어 하여 데이터 전송시 발생한 에러를 복구 하여 줍니다. IP(Internet Protocol)는 OSI 7 Layer중 제3계층의 기능을 제공하며
네트워크 상에서 최적한 경로를 선택해 데이터를 전송하며 이를 위하여
적절한 Addressing과 Routing 기능을 제공합니다.
이러한 기능을 제공하는 TCP와 IP패킷의 구조를 상세하게 살펴보면 다음과 같습니다.
1. TCP패킷 구조 및 역할
- Source Port(16bit)
상위 application이 어떤 것 인지에 따라 값이 정해지며
송신지 포트 번호를 나타냅니다.
- Destination Port(16bit)
수신지 포트 번호를 나타냅니다
- Sequence Number(32bit)
송신 Data의 일련 번호를 나타냅니다.
- Acknowledgement number(32bit)
수신 Data의 일련 번호를 나타냅니다
- Data Offset(4bit)
- Reserved(6bit)
- Control(6bit)
URG, ACK, PSH, RST, SYN, FIN등으로 TCP의 연결 및 종료를 제어합니다.
- Window(16bit)
메시지 전송시 흐름 제어를 합니다.
- Checksum (16bit)
에러 check를 합니다.
TCP메시지 검사 및 목적지에 제대로 도착했는지 확인합니다.
- Urgent Position(16bit)
- Options(24bit)
- Padding(8bit)
- DATA
상위계층에서 보낸 실제 데이터 부분입니다.
2. IP 패킷 구조 및 역할
- Version(4bit)
IP프로토콜의 버전을 나타냅니다.
현재 IP Version은 IPv4입니다. 즉 이값은 '4'이다.
- Internet Header Length(4bit)
IP 헤더의 크기를 나타냅니다. 4옥텟 단위로 나타냄. 값이 5이면
헤더 길이는 20옥텟이 된다.
- Type Of Service(8bit)
송신중인 IP주소의 서비스 유형을 나타냅니다. 이것은 상위 계층에 의해 지정되며 다음과 같습니다.
0 1 2 우선순위
3 낮은 지연 시간 요청
4 높은 처리 능력 요청
5 높은 신뢰성 요청
6 사용하지 않음
7 사용하지 않음
- Total Length(16bit)
IP헤더와 IP데이터를 포함한 패킷 전체의 길이를 나타냅니다.
- Identification(16bit)
패킷의 순서를 나타냅니다
- Fragment Flag (3bit)
패킷의 분할 된 부분이 더 있는지 마지막 패킷인지
해당 패킷을 더 분할 해야 하는지를 나타냅니다.
각 비트는 다음과 같은 의미가 있습니다.
비트0 사용하지 않음, 0이어야 함
비트1 분할해도 좋은지의 여부를 나타냄
0 - 분할 가능
1 - 분할 불가
비트2 분할된 패킷인 경우 마지막 패킷인지의 여부를 나타낸다.
0 - 마지막 분할 패킷
1 - 중간의 분할 패킷
- Flagment Offset(13bit)
분할된 단편이 원본 데이터의 어디에 위치하는지를 나타냅니다.
0부터 8192(2의13승)까지 나타낼 수 있습니다.
단위는 8옥텟이므로 원본 데이터로 나타낼수 있는 최대값은 8X8192=65536옥텟입니다.
- Time to Live(8bit)
패킷이 네트워크상에 얼마나 오래 머루를 수 있는지를 나타냅니다.
- Protocol(8bit)
어떤 상위프로토콜에 보내는지를 명기합니다.
TCP는 6, UDP는 17, ICMP는 1이 할당되어 있습니다.
- Header Checksum(16bit)
패킷 전송중 헤더 이상이 있는지를 check합니다.
- Source Address(32bit)
송신지 주소입니다.
- Destination Address(32bit)
수신지 주소입니다.
- Options(27bit)
보통은 사용하지 않으나 시험이나 분석을 할때만 사용한다.
보안단계, 소스경로, 루트 레코드, 시간소인(timestamp)등의 옵션을 사용 할 수 있습니다.
- Padding(5bit)
- DATA
상위계층 헤더를 포함한 데이터 영역입니다.
이상에서 TCP와 IP주소의 패킷 구조에 대해 자세히 살펴 보았습니다.
인터넷을 통해 TCP/IP를 사용하고 계신 여러분들은 한번씩 읽어만 보셔도 각각의 의미를 쉽게 이해 할 수 있을 것입니다.
여기서 조금 더 고려를 한다면 TCP에서 사용하는 포트 번호라는 것에 대한 것입니다. 여러 가지 TCP/IP서비스를 제대로 사용하기 위해서는 이 포트 번호에 대한 개념을 정확하게 알고 있으면 많은 도움이 됩니다.
제목 : 제8강. LAN과 TCP/IP
제8강. LAN/인터넷과 TCP/IP
앞에서 알아 본 것처럼 LAN이나 WAN, 인터넷이라고 하는 것은 네트워크의 종류입니다. 네트워크를 이루는 것에는 네트워크에 있는 컴퓨터를 연결하기 위해 물리적인 연결을 제공해주는 케이블부터 사용자가 원하는 서비스를 제공 받을 수 있도록 해주는 네트워크용 응용 프로그램까지 다양하게 있습니다.
1. LAN과 TCP/IP
우리가 네트워크상에서 물리적인 연결 방법을 제시하여 주고 연결을 제공하는 것들은 대체로 OSI 7 Layer의 제1계층과 제2계층 범위에 속합니다. 정확히 이야기하면 LAN의 여러 가지 표준이나 기술, 종류들은 모두 여기에 속하는 것들입니다.
LAN의 종류에는 아시는 바와 같이 이더넷, 토큰링, FDDI, 패스트 이더넷, Gigabit 이더넷, ATM등이 있습니다. 그러한 여러 가지 종류의 LAN들이 추구하는 바는 바로 어떻게 하면 좀 더 저렴한 가격으로 좀 더 빠르게 컴퓨터들을 연결하여 편리하게 사용 할 수 있도록 할까? 입니다.
그 각각에 대한 자세한 설명은 지난강좌 보기에서 "LAN설계 및 운영"편에 가시면 잘 볼 수 있습니다.
TCP/IP는 LAN과 WAN, 인터넷 상에서 최적한 데이터 전송 경로를 찾아주고, 데이터를 손실 없이 정확하게 실어 나를 수 있도록 하는 제3계층과 제4계층의 기능을 제공해주는 프로토콜인 것입니다.
이 TCP/IP가 각 네트워크상에서 하위계층의 LAN과 어떻게 통신 기능을 제공하는지 살펴보도록 하겠습니다.
먼저 LAN중에서 가장 널리 알려져 있고 현재에도 가장 인기있는 이더넷에서 TCP/IP 프로토콜이 어떻게 처리되는지 알아 보도록 하겠습니다.
제1계층과 2계층 기능을 제공하는 이더넷도 고유한 패킷 구조를 가지고 데이터를 전송하게 됩니다. 제2계층에서의 패킷 단위를 프레임이라고 하는 것은 앞에서 설명한 것과 같습니다. 이더넷 프레임에는 Ethernet Ver I, II프레임과 IEEE 802.3/802.2 프레임 형식, IEEE802.3/SNAP프레임이 있습니다. 이 프레임들은 거의 유사한 구조를 가지고 있으며 습니다.
먼저 Ethernet I, II프레임 구조를 살펴보면
목적지 주소(6bytes), 송신지 주소( 6bytes), ETYPE(2bytes),데이터, FCS로 이루어지고
IEEE 802.3/802.2 프레임 구조는
목적지 주소(6bytes), 송신지 주소( 6bytes), LENGTH(2bytes),DSAP, SSAP, CTRL, 데이터, FCS로 이루어지며
IEEE802.3/SNAP프레임 구조는
목적지 주소(6bytes), 송신지 주소( 6bytes), LENGTH(2bytes), DSAP, SSAP, CTRL, 벤더, ETYPE, 데이터, FCS와 같습니다.
여러 가지 프레임 형식이 있지만 TCP/IP의 헤더와 제어정보, 상위계층 데이터는 모두 위 프레임의 데이터 부분에 들어가게 되는 것입니다.
즉 Ethernet 프레임 목적지 주소(6bytes), 송신지 주소( 6bytes), ETYPE(2bytes), 데이터, FCS에서 이 프레임의 데이터 부분을 좀 더 자세하게 보면 IP헤더부분, TCP헤더부분, 상위계층데이터로 이루어지는 것입니다.
이 프레임을 다시 살펴보면
목적지 주소(6bytes), 송신지 주소( 6bytes), ETYPE(2bytes), IP헤더부분, TCP헤더부분, 상위계층데이터, FCS로 되는 것입니다.
각 프레임 구조에서 목적지 주소와 송신지 주소는 각 노드의 하드웨어적인 주소를 말합니다. 이 하드웨어 주소는 LAN에 접속되는 기기마다 고유하게 할당 되어 있는 MAC주소를 말합니다. 이더넷에서는 이 목적지 주소와 송신지 주소가 식별이 되고 나면 그 프레임을 수신한 목적지 컴퓨터에서 나머지 데이터 처리를 위해서 상위 계층에서 패킷을 처리하게 되는데 그 상위계층 프로토콜이 어떤 것인지를 구분하여 주는 것이 ETYPE이 됩니다. 이 ETYPE의 종류도 정해져 있어서 ETYPE값이 800h이면 상위 계층이 IP라는 것을 나타냅니다. 그러면 그 데이터는 IP패킷을 해석하는 방법으로 해석을 하게 되고 IP는 처리가 끝난 후 그 다음 상위 계층으로 데이터를 전달 해 주게 됩니다.
참고로 MAC은 Media Access Control의 약자로 6바이트의 고유한 16진수값으로 제조회사의 공장에서 출하할 때부터 정해져 있습니다. 또한 TCP/IP와 같은 역할을 하는 프로토콜에는 TCP/IP, UDP/ IP, IPX/SPX, NETBIOS, NETBEUI등이 있습니다.
2. 인터넷과 TCP/IP
LAN의 확장 개념인 WAN과 인터넷에도 LAN에서와 마찬가지로 적용하면 됩니다.
LAN을 WAN을 통하여 확장하거나 인터넷 접속을 위해서는 라우터라는 전송 장비가 필요합니다. 물론 라우터는 LAN에서 트래픽 제어를 위한 세그먼트를 분리 할 때도 활용을 할 수 있지만 WAN이나 인터넷에서는 무수히 많은 LAN과 LAN을 연결하여 주기 위해 없어서는 안되는 중요한 장비입니다. 이 라우터 장비는 제1계층에서 제3계층까지의 기능을 제공하며 TCP/IP프로토콜을 이용하여 인터넷 상에 있는 컴퓨터끼리 최적한 경로를 통하여 데이터전송을 할 수 있도록 경로를 찾아주는 역할을 합니다.
LAN과 차이점이 있다면 LAN에서는 사용하는 상위 계층 프로토콜이
TCP/IP, UDP/ IP, IPX/SPX, NETBIOS, NETBEUI등 여러 가지 프로토콜이 있지만
WAN에서는 라우팅 가능한 TCP/IP, IPX/SPX프로토콜만 사용 할 수 있고
인터넷상에서는 라우팅이 가능한 프로토콜 중 TCP/IP프로토콜을 사용한다는 것이 차이점이라고 할 수 있습니다. 결국 송수신한 데이터를 각 컴퓨터마다 처리해주는 것은 같은 방법으로 진행이 되는 것입니다.
LAN이든 인터넷이던 이러한 전송에 대한 서비스가 완벽하다고 가정을 하고 OSI 7 Layer의 제5계층부터 제7계층까지의 기능을 구현하여 각 사용자들이 직접 원하는 서비스를 제공 받을 수 있도록 하는 것은 각 프로토콜을 기반으로 하는 응용 프로그램들인 것입니다.
네트워크상에서 수행되는 프로그램들은 대부분 Client/Server구조를 지원하는 프로그램입니다. 클라이언트/서버구조라고 하는 것은 각 컴퓨터마다 클라이언트나 서버로 역할을 지정하여 서버는 클라이언트가 요청한 서비스에 대해서만 서비스를 제공하여 주도록 설계가 됩니다.
이러한 Client/Server구조로 된 프로그램들은 반드시 서버용 프로그램과 클라이언트용 프로그램이 따로 존재하게 되는데 그럴 경우 서버용 프로그램이 변경되면 클라이언트용 프로그램도 변경이 되어야 하고 각각의 클라이언트 마다 이 새로 변경된 프로그램을 다시 Upgrade하여 주어야 서버의 변경된 부분을 활용 할 수 있습니다.
또한 클라이언트/서버용 프로그램을 개발하여주는 툴들도 다양하여 각각의 기능을 구현하려면 여러 가지 툴에 대해 잘 알아야 합니다.
요즈음은 이러한 클라이언트/서버 구조에 웹의 개념이 많이 들어가 있습니다.
웹 기반의 솔루션들은 같은 서버/클라이언트 구조를 가지더라도 주로 서버쪽에서만 변경을 하여 주면 클라이언트에서는 웹브라우저 하나만 가지면 여러 가지 웹기반 서버용 프로그램을 마음껏 활용 할 수가 있습니다. 또한 개발 툴도 여러 가지가 필요하지 않기 때문에 훨씬 용이하게 되고 인터넷을 통하여 세계 어느곳에서든 LAN에 있는 서버/클라이언트용 프로그램을 웹브라우저 프로그램으로 사용 할 수 있기 때문입니다.
제목 : 제9강. IP주소 체계
제9강. IP주소 체계
우리가 현재 사용하고 있는 IP주소 체계는 IP 버전 4입니다. 약 40억개의 IP주소를 사용 할 수 있는 정도의 크기입니다. IP주소는 각각 32비트(4바이트) 크기의 고유한 주소를 가지며 1바이트씩 4 바이트의 십진수를 점(. , DOT)으로 구분하여 표시를 합니다. 예를 들면 165.133.107.77과 같이 표현을 하는 것입니다.
하나의 IP주소는 크게 네트워크주소와 컴퓨터주소 두 부분으로 나뉘며 네트워크의 크기나 호스트 컴퓨터의 수에 따라 Class A, B, C, D, Class E의 다섯 등급으로 나누게 됩니다.
이중 Class A, B, C가 일반 사용자에게 부여되는 클래스입니다.
IP주소를 이 클래스의 개념으로 나누는 이유는 네트워크의 크기나 호스트 컴퓨터의 수에 따라 네트워크를 구분하기 위해서 입니다. IP주소의 첫번째 바이트로 그 IP주소의 클래스를 알아낼 수 있는데 첫번째 바이트를 이진수로 나타내어 첫번째 비트가 1로 시작하면 클래스A를 나타내고, 첫번째 바이트의 비트 패턴이 10로 시작하면 클래스 B로 나타내고, 첫번째 바이트의 비트 패턴이 110로 시작하면 클래스 C, 첫번째 바이트의 비트 패턴이 1110로 시작하면 클래스 D를 나타냅니다.
추가로 여러 가지 수의 체계에 대한 이해가 필요합니다.
우리가 일상 생활에서 가장 많이 쓰는 숫자 체계는 10진수입니다.
10진수는 0에서 9까지 10개의 기호를 가지고 숫자를 나타내며
2진수는 0, 1 두 개의 기호로 모든 숫자 체계를 나타내며
16진수는 0에서 9까지 10개의 기호와 10에 해당하는 기호 A, 11에 해당하는 기호 B, 12에 해당하는 기호 C, 13에 해당하는 기호 D, 14에 해장하는 기호 E, 15에 해당하는 기호 F등 모두 16개의 기호를 가지고 모든 숫자를 나타냅니다.
그러면 각 클래스의 IP주소체계에 대해 자세히 알아보도록 하겠습니다.
1. 클래스 A
클래스 A는 초 대규모의 네트워크에 할당 됩니다. 총4바이트의 IP주소 중 최상위바이트의 7비트로 네트워크 주소를 나타내고 하위 3바이트는 호스트 컴퓨터의 주소를 표기하는데 사용합니다.
총126개의 네트워크를 만들 수 있으며, 각 네트워크당 1677만개의 노드를 연결 할 수 있습니다.
- IP주소의 구성
Network 주소.Host 주소.Host주소. Host주소
최상위 비트가 항상 0(2진수)이고, 하위7비트는 네트워크주소를
그 다음 24비트(3bytes)는 호스트 컴퓨터의 주소를 표기합니다.
- 처음 비트 패턴 : 0(2진수)
- 네트워크 주소 범위 : 1-126(10진수)
- 최대 네트워크 수 : 126개(2의 7승-2, 127은 loopback용임)
- 네트워크당 최대 노드 수 : 16,777,214개(2의 24승-2)
- default subnet mask : 255.0.0.0
Class A의 순수한 네트워크 주소를 알아내려면 10진수로
255.0.0.0주소로 mask를 하면 됩니다.
- Class A 주소 할당 범위 : (1-126).X.X.X
2. Class B
대규모 네트워크에 적용이 됩니다.
최상위 2비트가 항상 10(2진수)이고 하위14비트는 네트워크주소를
그 다음 16비트(2bytes)는 호스트 컴퓨터의 주소를 표기합니다.
총 16,382개의 네트워크를 만들 수 있으며 각 네트워크당 6만5천개의 노드를 연결 할 수 있습니다.
- IP주소의 구성
Network 주소.Network주소.Host주소. Host주소
최상위 2비트가 항상 10(2진수)이고 하위14비트는 네트워크주소를
그 다음 16비트(2bytes)는 호스트 컴퓨터의 주소를 표기합니다.
- 처음 비트 패턴 : 10(2진수)
- 네트워크 주소 범위 : (128-191).(1-254)(10진수)
- 최대 네트워크 수 : 16,382개(2의14승-2개)
- 네트워크당 최대 노드 수 : 65,534개(2의 16승-2)
- default subnet mask : 255.255.0.0
Class B의 순수한 네트워크 주소를 알아내려면 10진수로
255.255.0.0주소로 mask를 하면 됩니다.
- Class B 주소 할당 범위 : (128-191) .X.X.X
3. Class C
소규모의 네트워크에 적용이 되며
최상위 3비트가 항상 110(2진수)이고 하위21비트는 네트워크주소를
그 다음 8비트(1bytes)는 호스트 컴퓨터의 주소를 표기합니다.
총 2,097,150개의 네트워크를 만들 수 있으며
각 네트워크마다 254개의 노드를 연결 할 수 있습니다.
- IP주소의 구성
Network 주소. Network 주소. Network 주소. Host주소
최상위 3비트가 항상 110(2진수)이고 하위21비트는 네트워크주소를
그 다음 8비트(1bytes)는 호스트 컴퓨터의 주소를 표기합니다.
- 처음 비트 패턴 : 110(2진수)
- 네트워크 주소 범위: (192-223).(1-254).(1-254)(10진수)
- 최대 네트워크 수 : 2,097,150개(2의 21승-2)
- 네트워크당 최대 노드 수 : 254개(2의 8승-2)
- default subnet mask : 255.255.255.0
Class C의 순수한 네트워크 주소를 알아내려면 10진수로
255.255.255.0주소로 mask를 하면 됩니다.
- Class C 주소 할당 범위 : (192-223).X.X.X
4. Class D
IP멀티캐스트(다중방송통신, Multicast)의 용도로 사용됩니다.
최상위 4비트는 항상 1110(2진수) 값을 가집니다.
Class D 주소 할당 범위 : (224~239) .X.X.X
5. Class E
일반적인 용도로 사용하지 않습니다.
Class D 주소 할당 범위 : (240~247) .X.X.X
6. 시스템에 예약되어 있는 주소
즉 한 네트워크에서 사용자가 활용 할 수 없는 주소이며
Class A부터 Class C까지 공통 사항입니다.
위에서 보신 것처럼 각 Class마다 나타 낼 수 있는
최대 네트워크수 및 컴퓨터수는 해당 주소를 표기하는 비트수(n)를
2의 n승 –2한 값과 같습니다. 그 이유는 아래와 같습니다.
- 127네트워크 : loopback test용, 자기 자신을 나타내주는 네트워크를 나타내며
어떤 클래스에 속한 네트워크든 자신을 나타내기 위해 사용하는 주소입니다.
- Host 주소가 모두 0인 것
local node를 말합니다. 즉 자기 자신을 나타내는 주소입니다.
- Host 주소가 모두 1인 것
해당 네트워크의 모든 컴퓨터를 말합니다. 즉 해당 네트워크에 있는 모든
노드에 데이터를 전송하고자 할 때 쓰는 브로드캐스트 주소입니다.
- IP주소가 모두 0인것(0.0.0.0) : default route를 말합니다.
Default route라는 것은 외부로 나가고자 할 때 default gateway 즉 출구를 나타내 줍니다.
- IP주소가 모두 1인것(255.255.255.255)
네트워크의 모든 컴퓨터에 보내는 브로드 캐스트 주소로 사용합니다.
- 네트워크 주소가 모두 0인 것
local 네트워크, 즉 해당 네트워크를 말합니다.
- 네트워크 주소가 모두 1인 것
모든 네트워크를 말합니다.
[강의실]
--------------------------------------------------------------------------------
제목 : 제10강. TCP/IP설정 정보 등록
from 210.220.166.143 / 210.220.166.143
등록일 : 2000.01.28 00:24:07
키워드 :
ID marchkim
작성자명 김행진
조회수 411
본문
이번 강의에서는 IP주소를 클라이언트 컴퓨터에 설정할 때 필요로 하는 정보에 대해 알아보고 서버에서 이러한 정보를 관리하여 주는 방법에 대해 알아 보도록 하겠습니다.
제10강. TCP/IP설정 정보 등록
1. LAN 접속시 TCP/IP등록 정보
LAN상에 있는 클라이언트 컴퓨터가 TCP/IP접속을 하기 위해서는 다음과 같은 정보를 등록 해 주어야 합니다.
가. IP주소
TCP/IP를 사용하는 컴퓨터마다 하나씩 할당되는 32비트(4바이트) 주소입니다.
TCP/IP 프로토콜을 사용하는 컴퓨터는 이 IP주소를 반드시 하나 이상 가져야 통신을 할 수 있습니다.
나. Subnet Mask
목적지 IP주소가 Local Network에 있는지 Remote Network에
있는지를 찾아 주는 역할을 하며 32비트(4바이트) 주소입니다.
Default Subnet Mask값은 각 클래스마다 정해져 있으며
클래스A는 255.0.0.0, 클래스B는 255.255.0.0, 클래스C는 255.255.255.0입니다.
다. Default Gateway(Router 주소)
목적지 IP주소가 Local Network이 아닌 remote network에 있을 때
remote network을 찾아 가는 Gateway(출구) 역할을 합니다.
대개 각 네트워크의 라우터 주소가 게이트웨이 주소가 됩니다.
라. DNS 주소
TCP/IP에서는 IP주소로 최종 목적지를 찾아 갑니다.
그리고 모든 컴퓨터 사용자들은 이해하기 어려운 IP주소보다는
사용자들이 이해하기 쉬운 컴퓨터 이름(또는 Host이름)을 사용하여
통신 하기를 원합니다. 이때 사용자들이 찾는 컴퓨터 이름에
해당하는 IP주소를 찾아서 사용자들은 컴퓨터이름만 알아도
데이터 통신이 가능하도록 해주는 역할을 하는 서버 컴퓨터의 주소를 말합니다.
대개의 경우 중규모 이상의 LAN에서는 독자적으로
DNS서버를 운영하는 것이 좋으며, 소규모 네트워크에서는 인터넷 접속 서비스를 제공하는 해당 ISP의 DNS서버 주소를 사용하면 됩니다. 이 DNS서버에 대해서는 뒤에 자세히 설명을 드리도록 하겠습니다.
그러면 위에서 설명한 IP주소와 Subnet Mask, Default Gateway주소, DNS주소등은 클라이언트의 어느 부분에서 등록 하여 줄 수 있을까요?
이러한 값들은 WIN95/WIN98/WIN NT인 경우는
"바탕화면->제어판->네트워크->TCP/IP등록정보"에 가면 위의 값들을 등록하여
줄 수 있습니다.
"IP주소"탭에서는 '할당된 IP주소 사용' 버튼을 선택하고 이 컴퓨터에 할당된 'IP주소'와 '서브넷 마스크' 값을 설정하여줍니다.
"게이트웨이"탭에서는 할당된 '게이트웨이 주소'를 입력하고
"DNS구성"탭에서는 'DNS 사용' 버튼을 선택하고 DNS서버의 주소를 입력하면 됩니다.
위의 구성 정보 중 어떠한 값도 빼 먹거나 하면 제대로 네트워크 접속이 안될 수도 있습니다.
이번에는 LAN접속이 아닌 원거리에서 모뎀이나 초고속 모뎀으로 인터넷 접속을 하는 경우 필요한 등록 정보를 살펴보도록 하겠습니다. 이러한 연결을 지원하는 접속을 PPP접속 이라고 합니다.
2. PPP접속시 TCP/IP 등록 정보
PPP접속시에는 위에서 살펴본 IP주소나 Subnet Mask, Default Gateway, DNS서버 주소등의 정보를 클라이언트에서 등록하여 주지 않아도 서버에서 이러한 정보를 자동으로 관리하여 주는 방법을 많이 사용 합니다.
그러므로 WIN95/WIN98/WIN NT인 경우는 "바탕화면->제어판->네트워크->TCP/IP등록정보"에서 "IP주소"탭에서는 '자동으로 IP주소 지정' 버튼을 선택하고
"게이트웨이"탭에서는 아무것도 등록이 안되어 있는 것을 확인하고
"DNS구성"탭에서는 'DNS 사용 안함' 버튼을 선택하면 됩니다.
3. TCP/IP 등록 정보를 할당하여 주는 방법
각각의 컴퓨터에 TCP/IP등록 정보를 수동으로 입력하는 방법과
자동으로 TCP/IP등록 정보를 할당하는 방법이 있습니다.
두 가지 방법에 대해 개략적으로 살펴 보도록 하겠습니다.
1). 수동으로 TCP/IP 등록 정보를 입력
수동으로 등록 정보를 할당하는 방법은 LAN접속시 TCP/IP등록 정보를
할당하여 주는 방법과 같으며 TCP/IP통신을 원하는 모든 컴퓨터에
IP주소, Subnet 마스크, Gateway 주소, DNS주소등을 직접 입력 해야 하며
자신의 컴퓨터에 등록 할 각각의 주소에 대한 정보를 정확히 알고 등록해야 합니다.
2). 자동으로 TCP/IP등록 정보를 할당
TCP/IP등록 정보를 할당 해 주는 서버가 따로 있어 TCP/IP통신을 원하는 컴퓨터에 자동으로 이러한 정보를 할당해줍니다. 이러한 TCP/IP정보를 관리해주는 서버를 DHCP(Dynamic Host Configuration Protocol)서버라고 부르며 클라이언트 컴퓨터들은 자동으로 구성 정보를 할당 받기 위해
"바탕화면->제어판->네트워크->TCP/IP등록정보"에서 "IP주소"탭에서는 '자동으로 IP주소 지정'버튼을 선택하면 됩니다. PPP접속시 TCP/IP등록 정보를 부여하는 것과 유사합니다.
DHCP서버는 TCP/IP 구성 정보를 집중 관리하며
DHCP 클라이언트 컴퓨터의 TCP/IP 구성 정보를 자동으로 할당 해 줍니다.
DHCP 서버가 LAN상에 하나만 존재하면 IP Router는 RFC1542표준을 지원 해야 합니다. DHCP 서버의 TCP/IP 구성 정보는 수동으로 입력 해야 하며
DHCP Client(WIN95/WIN98/WIN NT)는 TCP/IP 구성 정보를 입력하지 않아도 되며 Non-DHCP Client(OS/2 또는 MAC)는 수동으로 데이터를 입력해 주어야 합니다.
제목 : 제11강. 공인/사설IP의 의미및 IP주소 설계 실습
제11강. 공인/사설IP의 의미및 IP주소 설계 실습
IP주소 설계 실습에 들어가기 전에 IP주소의 종류와 IP주소를 취득하는 방법에 대해 먼저 알아보도록 하겠습니다.
1. 공인 IP와 사설 IP
IP주소에는 공인IP와 사설IP 두 가지 종류가 있습니다.
공인IP(Public)와 사설IP (Private)의 주소 체계와 활용법은 동일합니다.
단지 공인IP는 공식 기관에서 표준 절차에 의해 인터넷을 사용하도록 공식적으로 할당한 IP주소를 말하며 인터넷 접속을 위해서는 반드시 이 공인 IP가 필요합니다. 또한 공인 IP는 주소를 획득하려면 약간의 시간과 절차가 필요하게 됩니다.
이것에 대해서는 아래에서 자세히 살펴보도록 하겠습니다.
이에 반하여 사설IP는 공인IP의 주소 부족 문제를 해결 하기 위한 하나의 방편으로 사용되는 방법이며 LAN상에서만 사용 할 수 있습니다. LAN상에서 사용하는 사설 IP는 어떤 것 일까요? 그것은 공인 기관에서 "어떤 클래스의 IP주소를 몇 개만 사용해라"하는 제약 없이 IP주소 체계에서 살펴본 IP주소 중 적절한 클래스의 IP주소를 LAN에서 IP설계자가 마음대로 선택하여 사용 할 수 있다는 것입니다. 그러나 LAN상에 있는 노드가 인터넷 접속을 하거나 인터넷 서비스를 제공하기 위해서는 반드시 공인 IP를 사용하여야 합니다.
LAN에서 사설 IP를 사용하려고 한다면 인터넷 접속을 위해서는 공인 IP가 필요합니다. 이러한 기능을 적절히 사용하려면 추가적인 장비나 솔루션이 필요한데 라우터나 프락시 서버등이 이러한 기능을 제공해줍니다. 또한 이러한 기능을 NAT(Network Address Translation)기능이라고 합니다. 즉 NAT기능을 제공하는 장비나 솔루션이 있으면 인터넷 접속을 필요로 하는 LAN에서는 사설IP를 사용 할 수가 있는 것입니다.
왜 이렇게 복잡한 용어들이 필요한 걸까요?
사설 IP니 공인 IP니, 이런 것들이 무슨 소용이겠습니까?
LAN에서는 사설 IP를 사용하고 인터넷에서는 공인 IP를 사용하고 NAT기능을 제공하는 솔루션이 필요하다는 둥!!! 어쩌고 저쩌고…
이 모든 것이 인터넷상에서 사용하는 IP주소의 부족 현상 때문에 생기는 문제랍니다.
현재 버전의 IP주소 체계로 연결할 수 있는 노드 수는 제한이 되어있고, 새로운 IP주소를 필요로 하는 사용자수는 빠른 속도로 늘어가고 하다 보니 IP주소의 부족이 아주 심각한 상황에 도달하고 있는 겁니다. 향후 몇 년 안에 IP주소가 고갈될 것이라는 심각한 우려도 나오고 있고 현재 IP주소 체계의 모든 문제를 해결하여 줄 차세대 IP주소 체계는 아직 시범 운영 단계에 있기 때문입니다. 그래서 이러한 주소 부족 문제를 일부분이나마 해결하기 위해 이러한 솔루션이 필요한 것 입니다.
그러면 인터넷에서 공인 IP주소가 왜 이렇게 필요한 걸까요? 그 이유는 다 아시는 바와 같이 인터넷 접속을 원하는 모든 컴퓨터는 고유한 IP주소를 가져야 목적지를 제대로 찾아 갈 수 있도록 설계가 되어 있기 때문입니다. 인터넷상에서 IP주소를 중복하여 사용할 수 없습니다. 물론 TCP/IP프로토콜을 사용하여 연결되는 모든 네트워크는 서로 중복되지 않는 IP주소를 가져야 합니다. 그래야 올바른 통신이 이루어 질 수 있는 겁니다.
2. 공인IP주소 취득 절차
이러한 절차가 필요한 곳은 LAN으로 인터넷 접속을 하고자 하는 모든 기관이나 회사, SOHO사업자, 학교등 입니다. 개인 사용자는 인터넷 서비스를 제공하는 회사에서 자동으로 IP주소를 관리하여 주기 때문에 IP주소를 따로 부여 받을 필요하 없습니다. 현재로 IP주소를 여러 개 받는다고 해서 비용을 물지는 않습니다. 다만 ISP와 접속하기 위한 WAN구간(전용선) 사용료를 지불하는 것으로 대신합니다.
절차를 간단하게 살펴보면
1) IP주소를 취득하기 위한 ISP를 선택한다.
2) 현재 LAN에서 필요로 하는 IP갯수를 신중하게 점검하고 향후 2~3년안에 확장할 노드 수 까지 고려하여 필요한 IP갯수를 정한다.
이것은 반드시 충분히 고려가 되어야 하는 부분으로 신규로 IP주소를 받은지 2년안에는 추가로 IP주소를 신청 할 수 없기 때문이다.
3) 1), 2)에서 고려한 정보를 바탕으로 해당 ISP로부터 신청 양식을 받아서 기입하여 ISP 담당자에게 IP주소를 신청한다. 보통은 이때 Domain이름도 같이 신청하는 경우가 많다.
4) 신청후 빠르면 1주일, 보통은 보름에서 한달 정도 후에 할당된 IP주소가 나온다.
이것은 그때 그때 상황에 따라 다르며 요청한 IP갯수가 많으면 그만큼 시간이 지연되기도 한다.
5) 신청한 IP주소를 받으면(사용 가능한 Network주소, Subnet Mask,
가용한 IP갯수 및 범위, Domain이름등의 정보를 알수 있슴)
LAN에서 각 노드나 장비마다 부여할 IP주소를 설계 한다.
IP주소 설계 부분은 아주 중요한 부분으로 한번 설계되어 설치된 IP주소는
바꾸기는 것이 힘들기 때문입니다.
6) KRNIC(Korea Network Information Center, 한국 인터넷 정보 센터)의 역할
직접 신청은 받지 않고 아시아 태평양 지역 NIC인 APNIC로부터 IP주소를
할당 받아 이를 국내 ISP에게 재할당하는 역할을 한다.
ISP는 가입자에게 IP주소를 할당해 준다.
7) IP주소의 할당 및 관리는 IANA가 총괄하며, 각 대륙별 NIC를 통해서 할당을
한다.
그러면 여기서는 가장 간단한 IP주소 설계 실습을 해보도록 하겠습니다.
3. IP주소 설계 실습
정식 절차에 의해 다음과 같은 IP주소를 할당 받은 경우레 대해 살펴보도록 하겠습니다.
할당 받은 Network 주소 : C클래스 한 개(192.1.1.0)
Subnet Mask : 255.0.0.0
가용한 IP갯수 및 범위 : 254개
Domain이름 : XXX.ac.kr
위의 예에서 보면 C클래스 하나를 통째로 이 학교에서 사용 할 수 있도록 할당을 받은 것입니다. 어떻게 아느냐구요? C클래스 범위에 속하는 것은 아시겠지요?
C클래스는 세바이트로 네트워크 주소를 나타내고 최하위의 한바이트로 컴퓨터주소를 나타내므로 여기서 할당받은 네트워크 주소는 192.1.1.0이고 서브넷 마스크값이 255.0.0.0으로 Default값이고 각 노드를 표시하는데 사용 할 수 있는 IP주소가 254개(2의8승-2개)이므로 C클래스 하나를 통째로 부여 받았다는 것을 단번에 알수 있는 것입니다.
그러면 여기서 각각의 TCP/IP 구성 정보를 할당해 보도록 하겠습니다.
1) 서브넷 마스크 값 결정
이 학교에서는 서브 네트워크가 필요 없고 하나의 네트워크로만 설치를 한다고 하면 그럴 경우 서브넷 마스크 값은 255.0.0.0을 그대로 사용을 하면 되고 이 값은 이 학교 전체에 있는 모든 TCP/IP노드에서 동일한 값을 가지게 됩니다.
2) 라우터 주소 지정(게이트웨이 주소)
외부 네트워크 접속을 위한 게이트웨이는 하나 밖에 없습니다.
이럴 경우 라우터가 게이트웨이 역할을 함으로써 라우터에 할당되는 IP주소가
바로 게이트웨이 주소가 됩니다. 보통은 가용한 IP주소중 맨 마지막 주소를
라우터 주소로 사용합니다. 그러면 라우터 IP주소는 192.1.1.254
3) 서버 주소 지정
서버는 여러 개 있을 수 있는 데 나중에 서버가 추가될 것을 고려하여 여분의 IP주소도 챙겨 둡니다. 보통은 가용한 IP주소중 맨 앞 주소 몇 개를 서버 주소로 사용합니다. 그러면 서버 IP주소는 192.1.1.1~192.1.1.9까지 10개의 IP주소를 할당합니다.
4) 클라이언트 컴퓨터 IP주소 지정
클라이언트 수 만큼 192.1.1.10-192.1.1.253번 까지 적절하게 할당하여 사용하도록 합니다.
5) DNS서버 주소
ISP의 DNS서버를 할용 할 경우는 특별히 따로 주소를 지정 할 필요가 없고 그 ISP에서 제공하는 DNS서버의 IP주소와 이름만 확인하여 등록 하여 줍니다.
독자적으로 DNS서버를 운영 하려면 그 DNS서버로 운영할 서버의 IP주소를 DNS서버 주소로 활용하면 됩니다.
이렇게 설계된 IP주소를 기본으로 하여 동적이나 수동적인 방법으로 서버나 클라이언트 또는 라우터등 장비등 기기의 역할에 맞게 TCP/IP 관련 정보를 등록하고 네트워크를 운영을 하면 됩니다.
제목 : 제12강. subnetting이 필요한 이유
제12강. subnetting이 필요한 이유
IP주소 체계를 살펴보면 클래스 A는 32비트중 앞의 8비트가 네트워크 주소를 식별하는 주소로 사용되고 뒤의 24비트는 호스트 주소를 나타내는 주소로 사용이 됩니다. 클래스 B는 앞의 16비트가 네트워크 주소를 나타내고 뒤의 16비트는 호스트 주소로 사용합니다. 클래스 B의 IP주소를 사용하는 경우 하나의 네트워크에 어림잡아 65,000대(2의 16승-2개)의 호스트(노드 또는 컴퓨터라고 함)를 연결 할 수 있는 정도의 네트워크인 것입니다. 이런 경우 65,000대의 컴퓨터를 한 네트워크에 연결 할 수 있을 만큼 큰 네트워크 이기는 하지만 과연 그 많은 컴퓨터를 하나의 네트워크 즉 하나의 세그먼트에 연결하여 무리없이 데이터를 주고 받을 수 있을까요? 사실 그것은 불가능한 이야기입니다. 위에서 하나의 세그먼트라는 것은 하나의 데이터 전송 도메인을 나타내며 모든 컴퓨터는 각각의 논리적이나 물리적인 단위의 세그먼트에 속해 있습니다.
참고로 서브넷 마스크(Subnet Mask)는 기본적으로 목적지 컴퓨터가 해당 네트워크에 있는지 아니면 다른 네트워크에 있어서 라우터를 통과하여 데이터를 전송해야 하는지를 알려 주어 순수한 네트워크 주소를 찾아주는 역할을 합니다.
각 클래스마다 고유한 default 서브넷 마스크 값을 가지며
이진수 값으로 표현하면
클래스 A는 11111111.00000000.00000000.00000000
클래스 B는 11111111.11111111.00000000.00000000
클래스 C는 11111111.11111111.11111111.00000000입니다.
십진수로 표현하면
클래스 A는 255.0.0.0
클래스 B는 255.255.0.0
클래스 C는 255.255.255.0입니다.
그러면 서브넷팅이 무엇인지 왜 필요한지를 지금부터 살펴보도록 하겠습니다.
1. 서브넷팅이란?
서브넷팅이란 말 그대로 하나의 LAN을 여러 개의 작은 네트워크로 분할 한다는 뜻입니다. 실제 LAN에서는 대부분 이 서브넷팅을 많이 활용하고 있습니다.
그러면 이 서브넷팅이 왜 필요한지 이유를 한번 살펴보도록 하겠습니다.
LAN에 연결되는 노드수가 50~100대 미만인 작은 중소규모의 LAN에서는 굳이 서브넷팅을 할 필요가 없겠지만 노드수가 적더라도 네트워크 사용율이 70%이상이 항상 된다면 서브넷팅을 할 필요가 있습니다. 이런 경우 서브넷팅을 하지 않으면 전체 네트워크가 하나의 데이터 전송 도메인인 세그먼트로 되어 네트워크 사용량이 많아지게 되고 그렇게 되면 네트워크의 효율성을 떨어뜨리게 됩니다.
결론적으로 서브넷팅이란 두가지 목적으로 사용한다고 할 수 있습니다.
첫째는, 같은 네트워크 장비를 가지고 네트워크의 효율을 최대로 높이기 위해 사용하는 것입니다. 물리적인 위치가 비슷한 노드나 해당 JOB이 비슷한 노드를 하나의 작은 네트워크로 묶어서 같은 네트워크 장비를 가지고도 데이터 전송 효율과 업무 효율을 최대로 높이기 위해 사용하는 방법인 것입니다.
둘째는, IP주소 부족 문제를 해결하기 위한 하나의 방법으로 활용하는 것입니다. 이것은 부족한 IP주소의 낭비를 줄이는 방법으로 어떤 A라는 회사가 자사의 LAN을 인터넷에 접속하고자 할 경우 필요한 IP주소가 50-60개 정도라고 가정하면 이회사는 50-60개 정도의 IP주소만 있으면 충분합니다. 그런데 이회사에 IP주소 체계 중 Class C에 해당하는 IP주소를 하나 할당한다면 나머지 200개 정도의 IP주소는 사용하지 않으므로 낭비가 발생하게 됩니다. 이때 Class C에 해당하는 IP주소를 분할하여 64개만 이 회사에 할당을 하더라도 이 회사는 충분함으로 나머지 192개의 IP주소는 다른 곳에서 낭비 없이 활용을 할 수 있게 되는 것입니다.
이것은 실제로 많이 활용을 하고 있는 방법이며 Class A, B, C 모두 이 서브넷팅을 활용 하고 있습니다. 어떤 ISP가 Class B에 해당하는 IP주소를 하나 부여 받았다면 이 회사는 자신의 고객들을 위해 이 IP주소를 서브넷팅하여 필요한 만큼 부여를 할 수가 있는 것입니다. 하나의 Class B주소로 최대 16382개의 서브네트워크로 분할을 할 수가 있고 각 서브 네트워크당 최대 연결 가능 노드수는 2대입니다.
실제에 적용을 하려면 여러 가지 상황을 고려하여 서브넷팅을 하여주어야 합니다.
그러면 서버넷팅을 구현하기 위해 IP주소 설계를 어떻게 해야 하는지 알아보도록 하겠습니다.
2. 서브넷팅을 위한 주소 설계
서브넷팅을 구현하기 위해서는 먼저 다음과 같은 사항을 고려하여 IP주소를 설계하여야 합니다.
가. 분할할 서브넷의 수를 결정합니다.
서브넷의 수가 결정이 되면 할당 받은 IP주소 가운데 호스트주소에 해당하는 몇 개의 비트를 서브넷 주소로 사용하게 됩니다. 예를 들어 서브넷을 두개로 하려면 호스트 주소중 최상위 한비트만 서브넷 주소로 사용하면 되고, 서브넷을 4개로 하려면 호스트 주소중 최상위 두비트만 서브넷 주소로 사용하면 됩니다.
서브넷수가 늘어나면 늘어 날수록 각 서브넷에 할당되는 호스트의 수는 그만큼 줄어들게 되는것입니다.
나. 각 서브넷에 할당될 최대 노드수를 결정합니다.
서브넷수가 결정이되면 그서브넷에 연결할 수 있는 노드수는 자동적으로 결정이 되는 것입니다. 그러므로 위의 서브넷의 수를 결정할 때 연결할 호스트 수도 고려하여 최적의 서브넷팅을 선택하도록 합니다.
각 서브넷마다 할당하여 사용 할 수 있는 IP수는 모든 비트가 0이거나 1인 노드는 사용 할 수 없으므로 -2개가 됩니다.
다. 전체 서브넷에서 사용할 공통의 서브넷 마스크 값을 결정합니다.
하나의 LAN에서 서브넷으로 분할된 네트워크는 공통의 서브넷 값을 가지게 됩니다. 서브넷 마스크 값은 이 서브넷을 제대로 찾아가기 위해 꼭 필요한 값이므로 default 서브넷 마스크값을 쓰면 안되고 반드시 분할한 네트워크를 제대로 찾아갈 수 있는 값을 할당해 주어야 합니다. 서브넷 마스크 값은 네트워크주소로 사용할 모든 비트를 2진수 1로 하고 호스트주소로 사용할 모든 비트를 2진수 0으로 한 값을 10진수로 표현하면 됩니다.
예를 들어 클래스 C 주소를 사용하는 네트워크에서 서브넷을 4개로 나누면 서브넷 마스크 값을 이진수로 나타내면 11111111.11111111.11111111.11000000이 되고 이것을 십진수로 표현하면 255.255.255.192가 됩니다.
다음 강의에서는 몇 개의 서브넷을 가지는 네트워크 환경에서의 IP주소 설계를 실습하고 클래스 A, B, C인 경우 가능한 서브넷 수와 서브넷 마스크, 각 서브넷마다 사용 가능한 호스트수를 자세히 살펴보도록 하겠습니다.
제목 : 제13강. subnetting실습 및 서브넷 예
제13강. subnetting실습 및 서브넷 예
1. IP주소 설계 실습(서브넷이 4개 필요한 경우)
할당 받은 Network 주소 : C클래스 한 개(192.1.1.0)
Subnet Mask : 255.0.0.0
가용한 IP갯수 및 범위 : 254개
Domain이름 : XXX.ac.kr
앞에서도 살펴본 것처럼 C class하나를 할당 받은 경우 LAN에서 서브넷을 4개로 분할하여 사용하려는 경우를 예를 들어 살펴봅니다.
그러면 여기서 각각의 TCP/IP 구성 정보를 할당해 보도록 하겠습니다.
1) 분할하려는 각각의 서브넷 주소
네개의 서브넷으로 분할 하려면 각각의 서브넷을 구분하기 위해서는 호스트 수를 나타내는 최상위 두 비트만 있으면 네개의 서브 네트워크를 나타내 줄 수가 있습니다.
이 경우 각각의 서브 네트워크의 주소는
첫번째가 192.1.1.0번,
두번째는 192.1.1.64번,
세번째는 192.1.1.128번,
네번째는 192.1.1.192번이 됩니다.
어떻게 이런 값을 가지게 될까요?
이것은 192.1.1.0네트워크에서 서브 네트워크를 분할 하기 위해 호스트주소를 나타내는 최상위 두 비트로 서브네트워크를 나타내는데 사용 함으로써
첫번째는 이 두 비트가 이진수로 00인 네트워크 즉 00000000(십진수로 0)
두번째는 이 두 비트가 이진수로 01인 네트워크 즉 01000000(십진수로 64)
세번째는 이 두 비트가 이진수로 10인 네트워크 즉 10000000(십진수로 128)
네번째는 이 두 비트가 이진수로 11인 네트워크 즉 11000000(십진수로 192)
이 되므로 위와 같은 네트워크 주소를 가지게 되는 것입니다.
2) 서브 네트워크 마다 사용 가능한 IP주소 개수
각 서브 네트워크 마다 사용 가능한 IP주소 개수와 범위를 살펴보면
네트워크 주소 범위를 제외한 나머지 6비트로 각각 서브넷에서 호스트가 사용 할 수 있는 IP주소를 할당하여 줄 수가 있는데 모두 두개의 IP주소를 사용 할 수가 없습니다.
그 이유는 이 6비트 중 모두 0이 되는 주소는 각 네트워크의 주소를 나타내므로 사용 할 수가 없고 모두 1이 되는 주소는 각 서브 네트워크의 브로드캐스트 주소로 사용함으로 일반 노드에는 할당 할 수 없는 주소이기 때문입니다.
그리하여 결과적으로 가용한 IP주소 범위는
192.1.1.0번 네트워크에서는 192.1.1.1번에서부터 192.1.1.62번 까지
192.1.1.64번 네트워크에서는 192.1.1.65번에서부터 192.1.1.126번 까지
192.1.1.128번 네트워크에서는 192.1.1.129번에서부터 192.1.1.190번 까지
192.1.1.192번 네트워크에서는 192.1.1.193번에서부터 192.1.1.253번 까지
가 됩니다.
처음 보시는 분들은 굉장히 생소하고 어렵게 여겨질 것이고 평소 의문을 가지고 계셨더 분들은 이해가 되실 것 같습니다.
어쨌던 이 개념은 꼭 한번쯤은 이해를 할 수 있도록 하고 있는 것이 좋습니다.
3) 서브넷 마스크 값 결정
서브넷 마스트값은 C클래스 기본 서브넷 마스값인
11111111.11111111.11111111.00000000에서 서브넷을 만들어 주기 위해
두 비트의 호스트주소를 네트워크 주소로 사용했으므로
11111111.11111111.11111111.11000000을 서브넷 마스크 값으로 사용하면 됩니다.
십진수로 나타내면 서브넷 마스크 값은 255.255.255.192가 됩니다.
이값은 전체 네트워크에서 동일한 값을 가집니다.
4) 라우터 주소 지정(게이트웨이 주소)
각각의 서브 네트워크마다 다른 게이트웨이 주소가 필요합니다.
각각의 범위에서 가용한 IP중 적절한 주소를 선택하여 사용하면 됩니다.
서브 네트워크로 분할한 환경에서는 이 라우팅 설정을 잘 해 주셔야 기본 네트워크를 운영하는데 문제가 없습니다. 대부분 가장 어렵게 여기는 부분입니다.
5) 서버 주소 지정
서버는 각 서브 네트워크 마다 다른 서버를 사용 할 수도 있고 같은 서버를 사용 할 수 있습니다. 이 부분의 설계도 정확하게 정의를 하셔서 혼선이 없도록 하여 주어야 합니다.
6) 클라이언트 컴퓨터 IP주소 지정
클라이언트 수 만큼 가용한 IP범위내에서 지정하여 주시면 됩니다.
7) DNS서버 주소
ISP의 DNS서버를 활용 할 경우는 특별히 따로 주소를 지정 할 필요가 없고 그 ISP에서 제공하는 DNS서버의 IP주소와 이름만 확인하여 등록 하여 줍니다.
독자적으로 DNS서버를 운영 하려면 그 DNS서버로 운영할 서버의 IP주소를 DNS서버 주소로 활용하면 됩니다.
이렇게 설계된 IP주소를 기본으로 하여 동적이나 수동적인 방법으로 서버나 클라이언트 또는 라우터등 장비등 기기의 역할에 맞게 TCP/IP 관련 정보를 등록하고 네트워크를 운영을 하면 됩니다.
그러면 각 클래스에서 사용 가능한 서브 네트워크 수와 호스트수를 전체적으로 한
번 정리를 해보도록 하겠습니다.
2.Class A에서의 가능한 서브넷 수,서브넷 마스크,서브넷당 호스트 수
Class A IP주소 표현 : Network addr.Host addr.Host addr.Host addr
클래스 A는 32비트중 앞의 8비트가 네트워크 주소를 식별하는 주소로 사용되고 뒤의 24비트는 호스트 주소를 나타내는 주소로 사용이 됩니다. 서브넷팅을 위해서는 24비트의 호스트를 나타내는 주소중 상위비트부터 차례로 서브넷 수에 따라 필요한 만큼 네트워크 주소로 사용을 하게 됩니다.
- 서브넷수 : 0개(0bit), subnet mask : 255.0.0.0, 호스트수 : 16,777,214개
- 서브넷수 : 2개(1bit), subnet mask : 255.128.0.0, 호스트수 : 8,388,606개
- 서브넷수 : 4개(2bit), subnet mask : 255.192.0.0, 호스트수 : 4,194,302개
- 서브넷수 : 8개(3bit), subnet mask : 255.224.0.0, 호스트수 : 2,097,150개
- 서브넷수 : 16개(4bit), subnet mask : 255.240.0.0, 호스트수 : 1,048,574개
- 서브넷수 : 32개(5bit), subnet mask : 255.248.0.0, 호스트수 : 524,286개
- 서브넷수 : 64개(6bit), subnet mask : 255.252.0.0, 호스트수 : 262,142개
- 서브넷수 : 128개(7bit), subnet mask : 255.254.0.0, 호스트수 : 131,070개
- 서브넷수 : 256개(8bit), subnet mask : 255.255.0.0, 호스트수 : 65,534개
- 서브넷수 : 5122개(9bit), subnet mask : 255.255.128.0, 호스트수 : 32,766개
- 서브넷수 : 1024개(10bit), subnet mask : 255.255.192.0, 호스트수 : 16,382개
- 서브넷수 : 2048개(11bit), subnet mask : 255.255.224.0, 호스트수 : 8190개
- 서브넷수 : 4096개(12bit), subnet mask : 255.255.240.0, 호스트수 : 4094개
- 서브넷수 : 8092개(13bit), subnet mask : 255.255.248.0, 호스트수 : 2046개
- 서브넷수 : 16382개(14bit), subnet mask : 255.255.252.0, 호스트수 : 1022개
- 서브넷수 : 32768개(15bit), subnet mask : 255.255.254.0, 호스트수 : 510개
- 서브넷수 : 65536개(16bit), subnet mask : 255.255.255.0, 호스트수 : 254개
- 서브넷수 : 131072개(17bit), subnet mask : 255.255.255.192, 호스트수 : 126개
- 서브넷수 : 262144개(18bit), subnet mask : 255.255.255.224, 호스트수 : 62개
- 서브넷수 : 524288개(19bit), subnet mask : 255.255.255.240, 호스트수 : 30개
- 서브넷수 : 1048576개(20bit), subnet mask : 255.255.255.248, 호스트수 : 14개
- 서브넷수 : 2097152개(21bit), subnet mask : 255.255.255.252, 호스트수 : 6개
- 서브넷수 : 4194304개(22bit), subnet mask : 255.255.255.254, 호스트수 : 2개
3. Class B에서의 가능한 서브넷 수,서브넷 마스크,서브넷당 호스트 수
Class B IP주소 표현 : Network addr.Network addr.Host addr.Host addr
클래스 B는 32비트중 앞의 16비트가 네트워크 주소를 식별하는 주소로 사용되고 뒤의 16비트는 호스트 주소를 나타내는 주소로 사용이 됩니다. 서브넷팅을 위해서는 16비트의 호스트를 나타내는 주소중 상위비트부터 차례로 서브넷 수에 따라 필요한 만큼 네트워크 주소로 사용을 하게 됩니다.
- 서브넷수 : 0개(0bit), subnet mask : 255.255.0.0, 호스트수 : 65,534개
- 서브넷수 : 2개(1bit), subnet mask : 255.255.128.0, 호스트수 : 32,766개
- 서브넷수 : 4개(2bit), subnet mask : 255.255.192.0, 호스트수 : 16,382개
- 서브넷수 : 8개(3bit), subnet mask : 255.255.224.0, 호스트수 : 8190개
- 서브넷수 : 16개(4bit), subnet mask : 255.255.240.0, 호스트수 : 4094개
- 서브넷수 : 32개(5bit), subnet mask : 255.255.248.0, 호스트수 : 2046개
- 서브넷수 : 64개(6bit), subnet mask : 255.255.252.0, 호스트수 : 1022개
- 서브넷수 : 128개(7bit), subnet mask : 255.255.254.0, 호스트수 : 510개
- 서브넷수 : 256개(8bit), subnet mask : 255.255.255.0, 호스트수 : 254개
- 서브넷수 : 512개(9bit), subnet mask : 255.255.255.192, 호스트수 : 126개
- 서브넷수 : 1024개(10bit), subnet mask : 255.255.255.224, 호스트수 : 62개
- 서브넷수 : 2048개(11bit), subnet mask : 255.255.255.240, 호스트수 : 30개
- 서브넷수 : 4096개(12bit), subnet mask : 255.255.255.248, 호스트수 : 14개
- 서브넷수 : 8092개(13bit), subnet mask : 255.255.255.252, 호스트수 : 6개
- 서브넷수 : 16382개(14bit), subnet mask : 255.255.255.254, 호스트수 : 2개
4. Class C에서의 가능한 서브넷 수 및 서브넷 마스크,서브넷당 호스트수
Class C IP주소 표현 : Network addr.Network addr.Network addr.Host addr
클래스 C는 32비트중 앞의 24비트가 네트워크 주소를 식별하는 주소로 사용되고 뒤의 8비트는 호스트 주소를 나타내는 주소로 사용이 됩니다. 서브넷팅을 위해서는 8비트의 호스트를 나타내는 주소중 상위비트부터 차례로 서브넷 수에 따라 필요한 만큼 네트워크 주소로 사용을 하게 됩니다.
- 서브넷수 : 0개(0bit) , subnet mask : 255.255.255.0, 호스트수 : 254개
- 서브넷수 : 2개(1bit) , subnet mask : 255.255.255.128, 호스트수 : 126개
- 서브넷수 : 4개(2bit) , subnet mask : 255.255.255.192, 호스트수 : 64개
- 서브넷수 : 8개(3bit) , subnet mask : 255.255.255.224, 호스트수 : 30개
- 서브넷수 : 16개(4bit) , subnet mask : 255.255.255.240, 호스트수 : 14개
- 서브넷수 : 32개(5bit) , subnet mask : 255.255.255.248, 호스트수 : 6개
- 서브넷수 : 64개(6bit) , subnet mask : 255.255.255.252, 호스트수 : 2개
제목 : 제14강. Supernetting이란?
제14강. Supernetting이란?
인터넷이 급속도로 성장하고 있는 현재 IP주소 부족 문제는 점점 더 커지고 있으며 이 문제를 해결 하기 위한 임시적인 방편으로 Supernetting이라는 개념을 적용하고 있습니다. 1985년경에 인터넷 표준 기관인 IETF에 의해 고안된 것으로 RFC1518과 1519에 정의 되어 있는 CIDR(Classless Inter- Domain Routing)은 클래스 없는 도메인간 경로 설정이라는 뜻이며 슈퍼넷팅 이라고도 부릅니다.
물론 장기적으로 IP주소 부족 문제를 해결 하기 위해서는 차세대 인터넷 표준 주소 체계인 IP 버전 6로 전환을 해야 하나 이것은 현재 네트워크에 접속되어 사용되고 있는 모든 하드웨어적인 장비와 소프트웨어를 변경해 주어야 하므로 단번에 Ipv6로 갈 수는 없으며 현재 상태에서 점진적인 전환을 해야 합니다. 그러기 위해서는 많은 시간과 노력이 필요한 것입니다.
서브넷팅이 IP주소중 호스트주소로 할당된 비트의 일부분을 빌려서 여러 개의 네트워크 세그먼트로 분할하여 네트워크의 효율을 높이고, IP주소 부족 문제를 해결하기 위해 사용하는 방법이라면, 슈퍼넷팅은 IP주소중 네트워크주소의 일부분을 빌려서 같은 클래스상의 연속된 여러 개의 네트워크 주소를 묶어서 같은 네트워크로 사용 할 수 있도록 하는 방법입니다.
슈퍼넷팅은 보통 여러 개의 C클래스 주소를 결합하여 B 클래스 처럼 사용하는데 적용하며, B클래스 주소의 부족 문제를 해결하는데 효과적으로 사용 할 수 있습니다. 즉 여러 개의 연속된 C클래스 주소를 하나로 묶어서 마치 B클래스 주소인 것처럼 사용하는 방법입니다. 이 기능을 구현하려면 라우터가 슈퍼넷팅 표준인 RFC1518과 1519를 지원해 주어야 합니다.
CIDR은 지금까지 IP주소에 대한 클래스 개념을 없애고 네트워크주소와 서브넷 마스크만으로 IP주소를 표현하는 것입니다. 그러므로 네트워크 규모에 맞는 크기의 네트워크 주소를 표현 할 수가 있습니다.
또한 CIDR개념을 이용하면 복잡한 라우팅 문제를 대폭 단순화 시켜 줄 수가 있습니다.
CIDR을 적용한 예를 들어 살펴 보도록 하겠습니다.
2500대 규모의 컴퓨터가 존재하는 회사에서 TCP/IP프로토콜을 적용하여 통신을 하고자 할 경우를 예를 들어 살펴보도록 하겠습니다.
B클래스의 IP주소를 사용하면 B클래스는 65,000여개의 IP주소를 제공함으로 너무 많은 주소가 낭비가 되고 클래스 C는 254개의 IP주소를 제공함으로써 주소가 너무 부족하게 됩니다. 또한 B 클래스의 IP주소는 고갈 상태에 이르렀으므로 사용하고 싶어도 사용할 수 없는 실정입니다.
이런 경우 슈퍼넷팅을 적용하면 여러 가지 잇점을 얻을 수 있습니다.
첫째, C클래스 주소를 16개 할당 받았다고 가정을 하고 각각의 클래스는 세그먼트 분할 없이 그대로 적용을 한다고 가정을 하더라도 이 네트워크는 16개의 서브 네트워크로 분할된 네트워크가 됩니다.
할당받은 IP주소가 204.58.16.0번 네트워크부터 204.58.31.0번 네트워크까지 라고 가정을 하면, 가용한 IP주소 범위는 204.58.16.1번부터 204.58.31.254번 까지 사용을 할 수 있습니다. 그러나 클래스 C로 16개의 네트워크가 분할되어 있으므로
각각의 세그먼트가 제대로 통신을 하려면 라우터의 라우팅 테이블을 잘 구성하여 주어야 합니다. 이를 위하여 각 세그먼트의 IP주소 할당을 보면
- 204.58.16.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.16.254
- 204.58.17.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.17.254
- 204.58.18.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.18.254
- 204.58.19.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.19.254
- 204.58.20.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.20.254
- 204.58.21.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.21.254
- 204.58.22.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.22.254
- 204.58.23.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.23.254
- 204.58.24.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.24.254
- 204.58.25.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.25.254
- 204.58.26.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.26.254
- 204.58.27.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.27.254
- 204.58.28.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.28.254
- 204.58.29.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.29.254
- 204.58.30.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.30.254
- 204.58.31.0번 네트워크, Subnet Mask : 255.255.255.0, Gateway주소 : 204.58.31.254
와 같이 되고
라우터의 라우팅 테이블은 이러한 정보를 다 셑팅하여 관리하여 주어야 합니다.
그러나 슈퍼넷팅을 사용하여 전체 세그먼트에 대하여 IP주소를 할당하면
네트워크 주소는 204.58.16.0번이 되고,
Subnet Mask는 255.255.240.0으로 하고,
Gateway주소는 204.58.16.254 하나로 통일하여 적용을 하면 됩니다.
또한 가용한 IP주소 범위는 204.58.16.1번부터 204.58.31.254번 까지가 됩니다.
일반 IP주소 체계를 사용하는 것보다 훨씬 간단해 집니다.
물론 네트워크에서 슈퍼넷팅을 적용하려면 라우터가 슈퍼넷팅에 대한 표준을 만족 시켜 주어야 합니다.
어떻게 그렇게 간단하게 될 수 있는 걸까요?
왜 서브넷 마스크 값을 255.255.240.0으로 해야 하는 걸까요?
슈퍼넷팅의 기본 원칙을 살펴보면
첫째는 슈퍼넷팅에 사용하는 IP주소는 주로 C클래스의 주소를 사용합니다.
C클래스의 주소를 여러 개 묶어 마치 B클래스 주소를 할당 받은것
처럼 사용하는 겁니다.
슈퍼넷팅을 적용 할 수 있는 주소는
실제로는 기본 클래스 정의가 되는 클래스A에서의 2의 24승,
클래스B에서의 2의 16승, 클래스C에서의 2의 8승을 제외한 다양한
종류의 네트워크 주소를 표현 할 수 있습니다.
둘째는 서브넷 마스크값은 맨 왼쪽 주소 비트부터 연속되어야 사용 할 수 있습니다.
셋째 네트워크 주소의 범위는 반드시 2의 거듭 제곱이 되어야 합니다.
위의 예에서 2500개의 노드를 표현하기 위해서는 네트워크 주소 범위가
20비트가 되면 위에서 세번째 바이트의 상위 4비트만 네트워크 주소로
사용하면 노드를 표현 할 수 있는 주소 범위는 2의 12승개(4096개)로
충분하게 됩니다.
이 4비트로 표현 할 수 있는 네트워크 주소는 2의4승개 이므로
16개가 되는 것입니다. 즉 16개의 연속적인 클래스 C주소를 이용하여 마치
B클래스 주소를 할당 받은 것처럼 사용하는 것입니다.
이 4비트를 네트워크 주소로 사용하는 서브넷 마스크 값은
11111111.11111111.11110000.00000000이면 되므로
십진수로는 255.255.240.0이 되는 것입니다.
이상 위의 예에서 살펴본 바와 같이 IP주소의 낭비 또는 부족을 최소한으로 줄이고
IP주소 체계의 복잡성을 최대한 줄여서 효율적인 네트워크를 구축 할 수
있도록 해보자는 것이 슈퍼넷팅의 목적이 되는 것입니다.
제목 : 제15강. ARP/RARP란
제15강. ARP/RARP란?
1. ARP란?
Address Resolution Protocol
(주소 결정 프로토콜)
IP주소 체계는 가상의 네트워크를 형성하는 논리적인 주소 지정 체계입니다.
그러나 실제로 물리적으로 연결되어 있는 네트워크를 통하여 데이터를 전송하려면
OSI 제3계층에서 만들어진 IP패킷들은 OSI 제2계층인 데이터 링크 계층의 프레임으로 캡슐화하여야 합니다. IP패킷은 고유의 IP주소를 가지고 프레임은 각 노드마다 고유한 물리적인 주소를 꼭 필요로 합니다.
이 물리적인 주소가 앞에서 이야기한 MAC주소가 됩니다.
MAC주소는 네트워크에 접속되어 있는 노드마다 고유한 값을 가지며
48비트(6바이트)의 크기를 가지고 한 바이트씩 16진수 값으로 표현이 되며
점으로 구분을 합니다. 예를 들면 44.45.53.54.00.6e와 같이 표현이 됩니다.
논리적인 IP주소를 가지고 물리적인 MAC주소를 찾아주는 역할을 하는 프로토콜을 Address Resolution Protocol이라고 합니다.
즉 '목적지 노드 IP주소'를 가지고 그 패킷을 '다음에 받을 노드'의 하드웨어 주소를 찾아주는 역할을 하는 프로토콜인 것입니다.
'목적지 노드'라 하지 않고 '다음에 받을 노드'라고 하는 이유는 목적지 IP주소가 같은 세그먼트안에 존재 하지 않아 라우터를 경유하여 다른 세그먼트에 있는 경우에는 목적지 노드의 하드웨어 주소보다는 해당 송신지 노드의 라우터의 하드웨어 주소를 먼저 알아야 하기 때문입니다.
왜냐하면 목적지 노드가 다른 세그먼트에 있는 경우 이 데이터 패킷은 먼저 해당 세그먼트의 게이트웨이인 라우터로 전송이 되고 이 라우터가 다시 송신지 하드웨어 주소가 되어 처음 '목적지 노드 IP주소'가 어디에 있는지를 찾아 그 다음 노드로 패킷을 전송하게 되기 때문입니다.
최종 목적지 노드를 찾을 때 까지 이 같은 작업을 반복하게 되는 것입니다.
결과적으로 송신지 IP주소와 목적지 IP 주소는 그 중간에 어떤 물리적인 네트워크가 있더라도 변하지 않으며, 하드웨어 주소는 각 물리적인 세그먼트에 따라 송신지
주소와 목적지 주소가 변하게 됩니다. 위에서 보신것처럼 TCP/IP통신을 위해 IP주소와 MAC주소(하드웨어 주소)는 서로 밀접한 연관을 가지며 이러한 기능을 수행해 주는 프로토콜이 ARP가 됩니다.
2. ARP의 동작 예
1) 송신지 노드 A와 목적지 노드 B가 같은 세그먼트 안에 있는 경우
① 노드 A의 IP주소는 192.1.1.1이 되고 노드 B의 IP주소는 192.1.1.2이며
노드 A에서 노드B로 데이터를 송신하고자 하는 경우에
송신지 IP주소는 192.1.1.1이 되고 수신지 IP주소는 192.1.1.2가 됩니다.
이 경우 네트워크의 주소는 192.1.1.0이고 노드A와 노드B는
같은 세그먼트 안에 있는 걸로 가정합니다.
② 노드 A는 노드B의 MAC주소를 알아내기 위해 ARP요청 패킷을 브로드캐스트합니다. 이 패킷에는 목적지 노드 B의 IP주소인 192.1.1.2가 포함 되어 있습니다.
③ ARP요청이 브로드캐스트 되면 같은 세그먼트에 있는 다른 노드들은 패킷을 수신하여 패킷의 내용을 해석합니다.
④ IP주소가 192.1.1.2인 노드 B는 ARP응답 패킷을 노드 A에 반송하고
이 응답 패킷에는 노드 B의 하드웨어 주소가 포함 되게 됩니다.
⑤ 노드A는 이 응답 패킷에 포함되어 있는 노드 B의 하드웨어 주소를 보고
이 하드웨어 주소로 데이터를 송신하게 됩니다.
2) 송신지 노드 A와 목적지 노드 B가 라우터를 경유하여 있는 경우
① 노드 A의 IP주소는 192.1.1.1이 되고 노드 B의 IP주소는 192.1.2.1이며
노드 A에서 노드B로 데이터를 송신하고자 하는 경우에
송신지 IP주소는 192.1.1.1이 되고 수신지 IP주소는 192.1.2.1이 됩니다.
이 경우 노드 A가 있는 네트워크의 주소는 192.1.1.0이고,
노드 B가 있는 네트워크 주소는 192.1.2.0으로 서로 다른 네트워크 주소를
가지며 라우터 하나를 경계로 하여 인접한 영역에 있습니다.
즉 노드A와 노드B는 서로 다른 세그먼트에 있습니다.
② 노드 A는 노드B의 MAC주소를 알아내기 위해 ARP요청 패킷을 브로드캐스트합니다. 이 패킷에는 목적지 노드 B의 IP주소인 192.1.1.2가 포함 되어 있습니다.
③ ARP요청이 브로드캐스트 되면 같은 세그먼트에 있는 다른 노드들은 패킷을 수신하여 패킷의 내용을 해석합니다.
④ IP주소가 192.1.2.1인 노드가 해당 세그먼트에 없으므로 이 패킷은 이 세그먼트의 게이트웨이 역할을 하는 라우터가 수신을 하게 되고 라우터가 ARP응답 패킷을 노드 A에 반송하게 됩니다.
이 응답 패킷에는 라우터의 하드웨어 주소가 포함 되게 됩니다.
⑤ 노드A는 이 응답 패킷에 포함되어 있는 라우터의 하드웨어 주소를 보고
이 하드웨어 주소로 데이터를 송신하게 됩니다.
⑥ 데이터를 수신한 라우터는 노드 B의 MAC주소를 알아내기 위하여 노드 B가 있는 세그먼트로 ARP요청 패킷을 보내게 됩니다. 이 패킷에는 목적지 노드 B의 IP주소인 192.1.1.2가 포함 되어 있고 송신지 노드의 IP주소인 192.1.1.1이 포함되어 있습니다.
⑦ ARP요청이 브로드캐스트 되면 세그먼트에 있는 다른 노드들은 패킷을 수신하여 패킷의 내용을 해석합니다.
⑧ IP주소가 192.1.2.1인 노드가 ARP응답 패킷을 라우터에 반송하게 됩니다.
⑨ 라우터는 이 응답 패킷에 포함되어 있는 노드 B의 하드웨어 주소를 보고
이 하드웨어 주소로 노드 A에서 전성한 데이터를 송신하게 됩니다.
IP주소로 MAC주소를 알아 내기 위해 보내는 패킷이 ARP 요청 패킷이고,
이 IP주소에 해당하는 노드가 자신의 MAC주소를 알리기 위해 반송하는 패킷이
ARP 응답 패킷입니다.
이 ARP에 의해 취득한 MAC주소는 ARP캐쉬라는 표에 등록이 되어 한동안 유지가 되므로 해당하는 IP주소에 대한 MAC주소가 ARP캐쉬에 등록이 되어 있으면 이 ARP패킷은 브로드캐스트 되지는 않고 바로 이 ARP캐쉬를 참조하면 알게 됩니다.
3. RARP
Reverse Address Resolution Protocol
(역주소 결정 프로토콜)
RARP는 ARP와는 반대로 하드웨어 주소로부터 IP주소를 알아 낼 때 사용하는 프로토콜입니다. 대부분의 컴퓨터는 자신의 하드디스크에 저장된 데이터로 자신의 IP주소를 알 수 있습니다. 그러나 하드 디스크가 없는 컴퓨터는 IP주소를 저장할 공간이 없으므로 RARP프로토콜을 이용하여 해당 컴퓨터의 하드웨어 주소에 해당하는 IP주소를 알려 달라고 요청을 할 수 있습니다. 이 프로토콜을 이용 하려면 반드시 RARP응답을 하여 줄 수 있는 RARP서버가 필요합니다.
ARP와 반대의 기능을 수행 하기 때문에 RARP라고 합니다.
제목 : 제16강. ICMP란
제16강. ICMP란?
1. ICMP란?
Internet Control Message Protocol
(인터넷 제어 메시지 프로토콜)
데이터를 전송시 발생한 에러 상황을 송신측에 알려 주는 프로토콜이 ICMP입니다.
ICMP는 IP와 같이 제3계층에 있으며 IP의 위에 위치하고 IP프로토콜상에서 작동합니다. IP레벨에서 발생한 장애가 반복적으로 발생되지 않도록 하기 위해 IP프로토콜에서 송신지에 에러정보를 통지하거나 진단하는 역할을 합니다.
이러한 오류는 대개 데이터 전송 경로를 찾아주는 라우터에서 탐지하게 됩니다.
그러면 ICMP의 여러 가지 종류를 살펴보도록 합니다.
2. ICMP서비스의 종류
ICMP가 제공하는 여러 가지 메시지는 다음과 같습니다.
1) TYPE 0/8 : ICMP ECHO
Type0 : ICMP echo request
Type8 : ICMP echo response
노드A에서 노드B가 통신 가능한지 확인 할 때 사용
PING 프로그램이 주로 이 메시지를 사용 합니다.
2) TYPE 1/2 : 지정하지 않음
3) TYPE 3 : ICMP Destination Unreachable
ICMP 목적지 도착 안함을 나타내는 메시지이며 다음과 같은 코드를 보고
세부적인 에러를 알 수가 있습니다.
- code0 : Network Unreachable(네트워크 도착 안함)
- code1 : Host Unreachable(호스트 도착 안함)
- code2 : Protocol Unreachable(프로토콜 도착 안함)
- code3 : Port Unreachable(포트 도착 안함)
- code4 : Fragmentation Needed and DF set(단편화 필요 및 DF 설정
- code5 : Source Route Failed(소스 경로 실패)
- code6 : Destination Network Unknown(목적지 네트워크 알 수 없음)
- code7 : Destination Host Unknown(목적지 호스트 알 수 없음)
- code8 : Source Host Isolated(소스 호스트 격리)
- code9 : Communication with Destination Network Administratively Prohibited
(관리자에 의한 목적지 네트워크와의 통신 금지)
- code10 : Communication with Destination Host Administratively Prohibited
(관리자에 의한 목적지 호스트와의 통신 금지)
- code11: Network Unreachable for Type of Service
(서비스 유형에 대한 네트워크 도착 안함)
- code12: Host Unreachable for Type of Service
(서비스 유형에 대한 호스트 도착 안함)
4) TYPE 4 : ICMP Source Quench
ICMP 소스 억제를 나타내는 메시지이며 저속의 WN 구간을 사용 할 경우 WAN 구간에서 트래픽이 많이 발생하여 데이터 송신측에서 WAN으로 데이터를 송신 할 수 없는 상태가 되면 이 메시지를 송신측 라우터가 송신지로 이 메시지를 보냅니다.
5) TYPE 5 : ICMP Redirect
ICMP 재지정 메시지로 IP라우터는 송신쪽 노드가 적합하지 않은 경로를
사용하고 있다는 것을 검출하면 그 노드에 대해 이 메시지를 보냅니다.
이 메시지에는 최적의 경로에 대한 정보와 소스 데이터그램이 들어 있습니다.
- code0 : 네트워크(또는 서브넷)에 대한 재지정 패킷
- code1 : 호스트에 대한 재지정 패킷
- code2 : 서비스 유형과 네트워크에 대한 재지정 패킷
- code3 : 서비스 유형과 호스트에 대한 재지정 패킷
6) TYPE6 : 대체 호스트 주소
7) TYPE7 : 지정하지 않음
8) TYPE 9/10 : 라우터 브로드캐스트/라우터 선택
9) TYPE 11 : ICMP Time Exceeded
ICMP 시간 초과 메시지로 IP 패킷의 Time To Live(활성화 지속 시간)을
가지고 있습니다. TTL값이 0이 되면 이 패킷은 폐기됩니다.
10) TYPE 12 : 매개변수 문제
11) TYPE 13/14 : ICMP Timestamp
type13 : ICMP Timestamp Request
type14 : ICMP Timestamp Response
ICMP 시간 소인 메시지는 송신측에서 송신 데이터의 네트워크 통과 시간을
계산하는데 사용 할 수 있습니다.
12) TYPE 15/16 : ICMP Information
Type15 : ICMP Information Request
Type16 : ICMP Information Reply
ICMP 정보 요청과 ICMP 정보 응답을 위한 메시지입니다.
지금은 사용 안함
13) TYPE 17/18 : ICMP Address Mask Request/ ICMP Address Mask Response
Type17 : ICMP Address Mask Request
Type18 : ICMP Address Mask Response
자기 자신의 서브넷 마스크 값을 알기 위해 사용하는 메시지입니다.
14) TYPE 19 : 예약(보안용)
15) TYPE 20-29 : 예약(충실도 실험용)
16) TYPE 30 : 경로 추적
17) TYPE 31 : 데이터그램 변환 오류
18) TYPE 32 : 이동식 호스트 재지정
19) TYPE 33 : Ipv6 위치 조회
20) TYPE 34 : Ipv6 위치 응답
21) TYPE 35 : 이동식 등록 요청
22) TYPE 36 : 이동식 등록 응답
23) TYPE 37-255 : 예약
IMS - IP Multimedia Subsystem (0) | 2009.05.20 |
---|---|
Raw Socket 날소켓 (0) | 2009.05.13 |
IP 주소와 MAC 주소 둘 다 사용하는 이유 (0) | 2008.12.25 |
네트워크 소켓 프로그래밍 FAQ (0) | 2008.08.22 |
gcc 함수 동기화(synchronization) pthread_mutex_lock() (0) | 2008.08.22 |