반응형

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승  &#8211;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  :  예약

반응형

'Network' 카테고리의 다른 글

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

+ Recent posts