안녕하세요 ~ 


요 몇일동안 포스팅을 못했네요~

학교 수업 외에 이것저것 하려니 몸이 따라주질 않네요 ㅜㅜ

지금도 일곱시밖에 안됬지만 엄청 피곤피곤~

얼른 포스팅 하고 집 가서 자야지 ㅋㅋㅋㅋ

아!! 어제 파리바게트에서 꿀식빵 사묵었는데 맛있더라구요 ㅎ..ㅎ 

빵에 꿀 발라져 있는것 처럼 보이지만 버터가 발라져 있어서, 후라이팬에 요리조리 구워 먹으니까 맛있어염ㅋ..ㅋ

함 드셔보세요 ㅎㅎㅎㅎ



이제 딴소리 그만하고, 공부합시다.

오늘은 마스크부터 시작하려 합니다.


디폴트 마스크와 서브넷 마스크는 bit operation 을 주로 사용합니다. 이 부분을 공부 하면서 " 아.. C언어도 따로 포스팅을 해야겠군 " 이라는 생각이 많이 들었습니다. 마스크 내부에서 shift를 사용하기 때문에, 이를 정확히 이해 하려면 C언어에서 shift연산자를 이용해서 많이 갖고 놀아봐야 이해가 빠를 것 같습니다.......앞으로 C언어의 포스팅도 늘려야 하나 생각이 드네요ㅎㅎㅎㅎㅎㅎ


흠흠 또 이상한곳으로 빠지네 ㅋㅋㅋ 

시작하죠.


네트워크 주소인 첫 주소는 목적지 주소로 패킷을 전송하는데 사용되므로 매우 중요합니다. 인터넷이 n개의 네트워크로 구성되어 있고 라우터는 m개의 인터페이스를 가지고 있다고 가정합시다. 임의의 호스트로부터 패킷이 라우터에 도착하면 라우터는 패킷이 어떤 네트워크로 보내져야 하는지 알아야 합니다. 라우터는 패킷이 어떤 인터페이스를 통해 전송되어야 하는지 알아야 합니다. 패킷이 네트워크에 도착 하려면 네트워크 주소를 통하여 알아냅니다( 이부분은 나중에 포스팅할 예정입니다.)네트워크 주소를 찾은 후 라우터는 라우팅 테이블을 참조하여 패킷이 전송되어야 할 인터페이스를 찾습니다. 네트워크 주소는 실제로 네트워크의 식별자 입니다.  각 네트워크는 네트워크 주소에 의해 식별됩니다.


네트워크 주소는 네트워크의 식별자 입니다.


여기에서 지난 포스팅에서 했던 이야기를 훑어보고 가겠습니다.

블럭속에서 사용할 수 없는 주소가 몇 번 몇 번 있었다고 했죠~?



-> 블럭 속에선 0번과 255번을 사용할 수 없다고 했습니다!


0번은 네트워크 주소는 블록에서 첫 번째 주소입니다.

0번 주소는 인터넷에 속하는 네트워크를 나타내기 때문에, 라우팅에서 사용합니다.

A,B,C 클래스 어떤 클래스가 됬든 하나의 블럭은 하나의 기관에 부여할 수 있습니다. 기관은 그 주소를 이용하여 잘 나눠서 사용하죠. 이 말은 즉슨, IP를 보면 어디 기관인지를 알 수 있습니다.

예를들어 단국대 IP가 있습니다. 단국대 학생이 IP를 이용해서 인터넷에서 무슨 행동을 하면, 모든 인터넷은 " 아 재 단국대 학생인데! " 라는 생각과 함께, 단국대 학생인 것을 인식하게 됩니다. 이런 원리로 북한이 한국에게 해킹이나 디도스 공격을 날렸을 시 알 수 있는것이죠. ( 북한에게 할당된 IP는 없지만, 북한은 중국에게 IP를 빌려서 사용하고 있습니다. )


이와같이 IP를 알아내면, 해당하는 IP의 블럭이 어디에 소속되어 있는지 알 수 있습니다. 예를들어 10.0.0.0 블럭은 나사에 등록되어 있고~~ 17.0.0.0블럭은 단국대에 할당되어 있고~~ 이런식으로 알 수 있는거죠~

이 주소를 주어지면 많은 정보를 알 수 있습니다. 

만약 17.0.0.1 아이피가 있다고 가정합시다.

가장 먼저 할 수 있는 것이, 해당 주소는 A클래스인 것을 알 수 있습니다.( 너무 기초적이죠ㅋㅋㅋㅋ )

그리고, 네트웤주소는 17번 이며, 17.0.0.1부터 17.255.255.255번 까지 나타낼 수 있습니다.(물론 맨 앞의 번호 0 과 255번호는 사용할 수 없습니다.)


이와 같이 네트워크 주소를 주면 클래스를 알 수 있고, 블럭을 알 수 있고 블럭의 범위도 알 수 있습니다.


그러면 네트워크가주소가 아니라 우리가 사용하고 있는 IP주소를 보면 그 IP주소로 부터 네트워크 주소를 알아 낼 수 있는것이 문제입니다!!!!!


이것을 알 수 있어야 하죠!!! 매우 중요합니다! 그래야지 IP주소로부터 네트워크 주소를 알아낼 수 있어야지 그 네트워크주소로부터 클래스와 블럭의 갯수, 그리고 블럭의 범위를 알 수 있기 때문입니다. 그리고 라우팅에 사용할 수 있죠!


기계는 이것을 마스크를 이용해서 계산합니다.


만약 임의의 IP주소 134.45.72.2 라는 IP를 발급받았습니다.

인간인 우리는 보자마자 " 아 블럭의 숫자가 128보단 크고 192보단 작으니 B클래스겠네 쉽고만 " 이라고 말하죠.

하지만 기계는 하드웨어적으로 bit operation을 사용해서 처리할 수 있습니다.

Bit을 왼쪽으로 shift하게되면 ( 이 값은 레지스터에 들어가죠 ! ), 가장 앞에 있던 bit가 register에 input이 되면서, 이 값을 가지고 1이냐 0이냐를 판별할 수 있게 되는거죠.




이와 같이 어떤 IP주소가 들어오게 되면 shift해서 주소를 인식합니다.



위 그림만 봐서는 감이 오질 않는다!


네 그래서 방금 언급한 134.45.78.2를 bit으로 표현 한번 더 해드리죠!





이제 이해가 되시나요!!!

이런 것이 Default Mask ( Network Mask ) 입니다!


인터넷 내의 라우터는 패킷의 목적지 주소로부터 네트워크 주소를 추출하기 위하여 알고리즘을 사용합니다. 알고리즘에 접목시키 위하여 네트워크 마스크를 사용합니다. 클래스기반 주소지정에서의 네트워크 마스크 또는 디폴트 마스크는 n개의 왼쪽 비트들은 1이고(32-n)개의 오른쪽 비트들은 0인 32비트 수 입니다.


패킷의 목적지 주소로부터 네트워크 주소를 추출하기 위하여 AND연산을 사용합니다. 목적지 주소(또는 블록 내의 임의의 주소)가 디폴트 마스크와 AND되면 결과는 네트워크 주소로 나옵니다(위 그림처럼)

라우터는 주소와 마스크에 대해 2진법 또는 16진법으로 AND연산을 적용하지만 클래스가 없는 주소지정에서는 빠른 방법을 사용합니다(10진법 표기법을 사용하여 마스크를 지정한다.)

디폴트 마스크는 블록 내의 주소 수와 마지막 주소를 찾기 위하여 사용될 수 있습니다.



아..졸립네요 다음껏도 포스팅 하고 갈까 말까 고민이 심히 되는데~~


다들 저녁은 드셨나요




서브네팅은 다음 포스팅에서 뵙도록 하겠습니다~


모두 열공~

+ Recent posts