network 32

#006_Window_Network_IP, DNS

안녕하세요 삽잡이입니다. 이번 시간에는 IP와 DNS에 대해서 생각해보려고합니다. 여러분은 Domain Name Server를 아십니까? DNS라고 부르는데요...클라이언트와 서버가 있다고 생각해봅시다.클라이언트가 서버에 접속하려는데, 따라서 클라이언트의 위치를 알아야겠지요.... 그것이 바로 IP입니다.반대로, 서버도 위치가 있어야지 접속을 할 수 있지 않겠습니까...이 위치도 IP를 말합니다. 서버는 어차피 클라이언트가 붙게되면 IP를 알게 되니까 상관 없지만,처음에 접속할 때 클라이언트는 서버의 위치 즉, IP를 모르면 접속을 할 수 없습니다. 우리가 인터넷을 접속을 위해 sapzapee.tistory.com 과 같이 입력을 하고 접속하면 원래는 IP로 접속 되는 것입니다.사실, 다음, 네이버도 모..

#005_Window_Network_구조체 멤버 정렬

안녕하세요 삽잡이입니다. 이번 시간에는 구조체 멤버 정렬에 관해 배워보도록 하겠습니다. MSG라는 구조체의 크기는 몇일까요?char 1바이트 int 4바이트 double 8바이트... 총 13바이트가 나오지 않을까요? 하지만, 16바이트가 출력이 됩니다. 제가 계산을 잘못한 것일까요?아닙니다. 16이 나오는 것이 맞다는 것입니다. 그 이유에 대해서 알아보도록 하겠습니다. 자... 그런데 감히 잡히시지 않습니까?저기 저 주석 처리된 메크로가 의심스럽니다. 아무튼...이 문제는 구조체 바이트 정렬에 의해서 생겨난 일입니다. 우선 말씀드리고 싶은 말이 있습니다. '구조체를 함부로 날리지 않는다. 구조체를 함부로 받지 않는다.'만약, 통신하는 다른 PC와 서로 구조체 정렬 방식이 다르다면,연산이 잘못되는 문제가..

#004_Window_Network_바이트 정렬

안녕하세요 삽잡이입니다. 이번 시간에는 바이트 정렬에 대해서 알아보도록 하겠습니다. 우선 바이트 정렬이 뭔지 알아보기 전에 변수 하나를 생성하고 그 안에 값을 채웠다고 해보겠습니다.그러면 데이터는 어떻게 채워질까요?채워지는 방법에는 두가지 방법이 있습니다. int n = 0x1234 라는 값을 초기화 했다고 가정해봅시다. n은 int형 변수로써 4개의 바이트를 가지고 있겠지요...위의 그림과 같이 데이터가 저장됩니다.그런데 왜 두가지가 표현됬을까요? 바로 두 방식이 모두 표준이기 때문입니다. 작은쪽의 주소에 끝값을 보관하고, 큰 쪽 주소에 앞쪽 값을 보관하고 있는 방법.작은쪽의 주소에 앞쪽 값을 보관하고, 큰쪽 주소에 끝 값을 보관하고 있는 방법. 작은 쪽 주소에 끝값을 저장한다고 해서 리틀 엔디안 방식..

#003_Window_Network_ 윈도우 소켓 초기화 및 종료

안녕하세요 삽잡이입니다. 이번 시간에는 기본적으로 네트워크 프로그래밍에 도움이 될만한 것들을 찾아서 알아보도록 하겠습니다. 네트워크 프로그래밍을 하면서 가장 기초적인 작업은바로, 윈도우 소켓을 장착시키는 것입니다. 너무도 당연하지요.... 윈도우 소켓도 종류가 많은데 가장 최신버전은 2.2버전입니다. 그 헤더는 winsock2.h이지요...이전 시간에 언급을 했었습니다. 윈도우 소켓을 사용한다는 것은 다른 PC와의 통신이 가능한 프로그램을 만들기 위해서라구요...우리가 통신을 하며 데이터를 주고 받는데 OS의 역할이 필요한데,OS가 역할을 하기 위해서는 통신을 위한 네트워크 lib가 필요하다고 했었습니다.물론 모든 기능들은 DLL 파일에 있겠지만, DLL의 암묵적인 연결을 지원하는 라이브러리 말입니다. ..

#002_Window_Network_ Intro (TCP/IP 4계층)

안녕하세요 삽잡이입니다. 이번 시간에는 TCP/IP 4계층을 통해데이터가 목적지의 PC에 어떻게 전달되는지 생각해보는 시간을 가져보겠습니다. 네트워크에는 전송을 위한 OSI 7계층이라는 개념이 있습니다. 이론 쪽인데...소켓을 처음 고안해낸 버클리 대학쪽에서 TCP/IP라는 4계층을 만들어 냈습니다...이를 통해 우리는 데이터가 어떻게 날라가는지 확인을 해보도록 하지요... 각 계층별로 핵심을 소개하겠습니다.이해가 가지 않더라도 우선은 가볍게 보시길 바랍니다. 우선 링크 계층에서는 '일대일 전송'을 보장해주고, 데이터 통신을 위한 하드웨어에 관련된 정의를 담당합니다. 다음으로 인터넷 계층에서는ID 번호를 보고 컴퓨터간에 통신을 할 수 있도록 해줍니다.그리고 'IP'를 집어넣습니다... 따라서 데이터를 보..

#001_Window_Network_ Intro (라우터)

안녕하세요 삽잡이입니다. 이번시간부터는 윈도우즈 네트워크 프로그래밍에 대해서 배워보려고합니다.네트워크... 그림으로 같이 표현해줘야하는데... 이게... 핑계같지 않은 핑계로 시간 때문에... 글로만 서술하는 것이 참 힘들군요 허허... 아무튼 달려보도록 하겠습니다. 네트워크는 기본적인 개념이 상당히 중요합니다. 네트워크란 우선 무엇일까요?기본적으로 우리말로 해석하면 Network는 '연결'을 의미합니다.연결이 되려면 단일 시스템으로 안됩니다.그래서 네트워크라는 개념이 들어가면 최소한 시스템 두 대가 연결되어야합니다. 네트워크는 연결되어있는 시스템을 가리켜'네트워크에 물려있는 End System'이라고 부릅니다. 왜 Computer라고 부르지 않을까요?우리는 컴퓨터로 인터넷 하지 않나요...굳이 End ..

[Surro] :: Network 라우터

라우터(Router) - 지능을 가진 경로 배정기 > 외부에 어떤 인터넷 사이트를 찾아가는 데이터가 있다면 라우터는 이 데이터를 목적지까지 가장 빠르고 효율적인 길을 스스로 찾아 안내해주는 기능을 하고있다. - Layer 3 장비. (Layer 3, 네트워크 계층에서 동작하기 때문에) - Path Determination(경로 결정) > 데이터 패킷이 목적지까지 갈 수 있는 길을 검사하고 어떤 길로 가는 것이 가장 적절한지를 결정. - Switching(스위칭) > 경로 결정후 정해진 경로로 데이터 패킷을 스위칭해준다. - CPU, 메모리, 인터페이스(라우터에 나와있는 접속 가능한 포트)를 가지고있다. > 라우팅 프로토콜(라우팅 알고리즘)을 사용하기 위해 라우팅 테이블을 만들어 사용한다. >> 좋은 경로..

[Surro] :: Network 스위치(2)

MAC Address : 스위치나 브리지가 출발지에서 들어오는 맥 어드레스를 보고 그것을 자신의 맥 어드레스 테이블에 저장한 다음, 그 주소 테이블에 있는 맥 어드레스를 찾으면 그 쪽 포트로만 보내고 나머지 포트는 막아줌으로써 스위치의 기본 기능 중 하나인 콜리전 도메인을 막는 역할을 한다. > 자동으로 배우는 방식(디폴트) = Dynamic 방식. >> 300초(디폴트)가 지나도록 다시 사용하지 않으면 이 주소는 MAC 테이블에서 지워진다. > 절대 지워지지 않도록 맥 어드레스를 저장하는 방식 = Permanent 방식. >> 수동으로 맥 어드레스를 넣어준다. > ex. Catalyst 2950 스위치에서 맥 어드레스 테이블을 보는 방법. Switch# show mac-address-table Mac ..

[Surro] :: Network 스위치

스패닝 트리 프로토콜 (Spanning Tree Protocol) - 스위치 or 브리지에서 발생하는 루핑을 막아주기 위한 프로토콜. > 스위치나 브리지 구성에서 출발지로부터 목적지까지의 경로가 두 개 이상 존재할 때 한 개의 경로만을 남겨두고 나머지는 모두 끊어 두었다가 사용하던 경로에 문제가 발생하면 그때 끊어 두었던 경로를 하나씩 살린다. - 브리지 ID(Bridge ID) : 브리지나 스위치들이 통신할 때 서로를 확인하기 위해 하나씩 가지고 있는 번호. > Bridge Priority (2byte, 16bit) + MAC Address(6byte, 48bit) = 8byte >> Bridge Priority : 디폴트 값 = 32768, 범위 = 0~ 65535 - Path Cost : 장비와 장..

[Surro] :: 네트워킹 basic (3)

Part 4. IP - TCP/IP 프로토콜을 만들 때 이 프로토콜을 사용하는 모든 장비들을 구분해주기 위해 만들어 낸 주소. > 서로간의 통신을 위해 구분할 주소가 필요했기 때문에. - IP의 주소는 이진수 32자리. 각 8자리(십진수 = 최대 255), 즉 옥테트(octet) 사이에 점을 찍는다. - 라우터에 배정해야 하는 IP 주소 > 이더넷 인터페이스 용 : 부여 받은 번호 중 하나를 사용. > 시리얼(Serial) 인터페이스 용 : 인터넷 제공업체에 문의해서 사용. + 네트워크가 서로 다른 두 장비 간의 통신은 라우터를 통해서만 가능하다. - 모든 IP 주소는 네트워크 부분과 호스트 부분으로 나뉜다. > 하나의 네트워크란? 라우터 없이도 통신이 가능한 하나의 브로드캐스트 영역. 한 네트워크 상에..