1. Environment 2/18 1. Environment 본장에서는기본적으로네트워크프로그래밍을수행하기위한기본적인환경을구축하는실습을다루도록하겠다. 본실습에서는기본적으로프로그래밍플랫폼인리눅스의서비스중하나인 Samba Server와프로그래밍을구조적으로할수있게도와주는 S

Similar documents
Microsoft Word - Network Programming_01.docx

Microsoft Word - ntasFrameBuilderInstallGuide2.5.doc

Windows 8에서 BioStar 1 설치하기

PowerPoint 프레젠테이션

Microsoft Word - src.doc

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft PowerPoint - chap01-C언어개요.pptx

Microsoft Word - Armjtag_문서1.doc

1. 자바프로그램기초 및개발환경 2 장 & 3 장. 자바개발도구 충남대학교 컴퓨터공학과

목차 윈도우드라이버 1. 매뉴얼안내 운영체제 (OS) 환경 윈도우드라이버준비 윈도우드라이버설치 Windows XP/Server 2003 에서설치 Serial 또는 Parallel 포트의경우.

ISP and CodeVisionAVR C Compiler.hwp

SQL Developer Connect to TimesTen 유니원아이앤씨 DB 기술지원팀 2010 년 07 월 28 일 문서정보 프로젝트명 SQL Developer Connect to TimesTen 서브시스템명 버전 1.0 문서명 작성일 작성자

Microsoft Word - 3부A windows 환경 IVF + visual studio.doc

소프트웨어공학 Tutorial #2: StarUML Eun Man Choi

운영체제실습_명령어

침입방지솔루션도입검토보고서

Network Security - Wired Sniffing 실습 ICNS Lab. Kyung Hee University

[Brochure] KOR_TunA

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint Android-SDK설치.HelloAndroid(1.0h).pptx

리눅스설치가이드 3. 3Rabbitz Book 을리눅스에서설치하기위한절차는다음과같습니다. 설치에대한예시는우분투서버 기준으로진행됩니다. 1. Java Development Kit (JDK) 또는 Java Runtime Environment (JRE) 를설치합니다. 2.

Install stm32cubemx and st-link utility

1. Windows 설치 (Client 설치 ) 원하는위치에다운받은발송클라이언트압축파일을해제합니다. Step 2. /conf/config.xml 파일수정 conf 폴더에서 config.xml 파일을텍스트에디터를이용하여 Open 합니다. config.xml 파일에서, 아

Windows Server 2012

The Pocket Guide to TCP/IP Sockets: C Version

표준프레임워크 Nexus 및 CI 환경구축가이드 Version 3.8 Page 1

Microsoft PowerPoint SDK설치.HelloAndroid(1.5h).pptx

슬라이드 1

SAS9.2_SAS_Enterprise_Miner_install_guide_single_user_v2

1. 도구개요 CppUnit Testing 소개 CppUnit 는 C++ 용 testing Framework 로 Java 의 JUnit 을 C++ 로구현 C++ 언어에서사용할수있도록개발된 Open Source 프로젝트로, source code 의특정 Module 이의도

경우 1) 80GB( 원본 ) => 2TB( 복사본 ), 원본 80GB 는 MBR 로디스크초기화하고 NTFS 로포맷한경우 복사본 HDD 도 MBR 로디스크초기화되고 80GB 만큼포맷되고나머지영역 (80GB~ 나머지부분 ) 은할당되지않음 으로나온다. A. Window P

Microsoft Word - windows server 2003 수동설치_non pro support_.doc

Microsoft PowerPoint - 02_Linux_Fedora_Core_8_Vmware_Installation [호환 모드]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

Raspbian 설치 라즈비안 OS (Raspbian OS) 라즈베리파이 3 Model B USB 마우스 USB 키보드 마이크로 SD 카드 마이크로 SD 카드리더기 HDM I 케이블모니터

4S 1차년도 평가 발표자료

Studuino소프트웨어 설치


슬라이드 1

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

FreeBSD Handbook

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

PowerPoint 프레젠테이션

Mango-IMX6Q mfgtool을 이용한 이미지 Write하기

Interstage5 SOAP서비스 설정 가이드

Microsoft Word - CPL-TR LNP-guide.doc

JVM 메모리구조

기존에 Windchill Program 이 설치된 Home Directory 를 선택해준다. 프로그램설치후설치내역을확인해보면 Adobe Acrobat 6.0 Support 내역을확인할수 있다.

PowerPoint 프레젠테이션

Endpoint Protector - Active Directory Deployment Guide

MySQL-Ch10

API - Notification 메크로를통하여어느특정상황이되었을때 SolidWorks 및보낸경로를통하여알림메시지를보낼수있습니다. 이번기술자료에서는메크로에서이벤트처리기를통하여진행할예정이며, 메크로에서작업을수행하는데유용할것입니다. 알림이벤트핸들러는응용프로그램구현하는데있어

1) 인증서만들기 ssl]# cat > // 설명 : 발급받은인증서 / 개인키파일을한파일로저장합니다. ( 저장방법 : cat [ 개인키

iii. Design Tab 을 Click 하여 WindowBuilder 가자동으로생성한 GUI 프로그래밍환경을확인한다.

초보자를 위한 C++

작성자 : 기술지원부 김 삼 수

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

PowerPoint Template

지난시간에... 우리는 kernel compile을위하여 cross compile 환경을구축했음. UBUNTU 12.04에서 arm-2009q3를사용하여 간단한 c source를빌드함. 한번은 intel CPU를위한 gcc로, 한번은 ARM CPU를위한 gcc로. AR

FreeBSD Handbook

목차 백업 계정 서비스 이용 안내...3 * 권장 백업 정책...3 * 넷하드(100G 백업) 계정 서버로 백업하는 2가지 방법...3 * 백업서버 이용시 주의사항...3 WINDOWS 서버 사용자를 위한 백업서비스 이용 방법 네트워크 드라이브에 접속하여

ODS-FM1

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

FreeBSD Handbook

Solaris Express Developer Edition

슬라이드 1

슬라이드 1

쉽게 풀어쓴 C 프로그래밊

리눅스 프로세스 관리

슬라이드 1

RHEV 2.2 인증서 만료 확인 및 갱신

System Recovery 사용자 매뉴얼

윈도우시스템프로그래밍

슬라이드 1

API STORE 키발급및 API 사용가이드 Document Information 문서명 : API STORE 언어별 Client 사용가이드작성자 : 작성일 : 업무영역 : 버전 : 1 st Draft. 서브시스템 : 문서번호 : 단계 : Docum

<4D F736F F D D31312D30312D53572D30312DBBE7BFEBC0DABCB3B8EDBCAD5FBFDCBACEB9E8C6F7BFEB2E646F63>

슬라이드 1

SBR-100S User Manual

Sena Technologies, Inc. HelloDevice Super 1.1.0

APOGEE Insight_KR_Base_3P11

(Microsoft PowerPoint - \270\266\300\314\305\251\267\316\304\250USB_Host_Device_\272\316\306\256\267\316\264\365\275\307\275\300_Philip.ppt)

..,. Job Flow,. PC,.., (Drag & Drop),.,. PC,, Windows PC Mac,.,.,. NAS(Network Attached Storage),,,., Amazon Web Services*.,, (redundancy), SSL.,. * A

C# Programming Guide - Types

아이콘의 정의 본 사용자 설명서에서는 다음 아이콘을 사용합니다. 참고 참고는 발생할 수 있는 상황에 대처하는 방법을 알려 주거나 다른 기능과 함께 작동하는 방법에 대한 요령을 제공합니다. 상표 Brother 로고는 Brother Industries, Ltd.의 등록 상

Sun Java System Messaging Server 63 64

슬라이드 1

OM2M 기반의 OHP-M2M 오픈소스설치가이드 2015 년 8 월 경북대학교통신프로토콜연구실 최예찬, 강형우 요약 사물인터넷 (Internet of Things: IoT) 이이슈가되면서다양한사

FreeBSD Handbook

2009년 상반기 사업계획

서현수

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

네이버블로그 :: 포스트내용 Print VMw are 에서 Linux 설치하기 (Centos 6.3, 리눅스 ) Linux 2013/02/23 22:52 /carrena/ VMware 에서 l

NTD36HD Manual

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

tut_modelsim(student).hwp

vi 사용법

Snort Install Manual Ad2m VMware libnet tar.gz DebianOS libpcap tar.gz Putty snort tar.gz WinSCP snort rules 1. 첫번째로네트워크설정 1) ifconf

Level 학습 성과 내용 1수준 (이해) 1. 기본적인 Unix 이용법(명령어 또는 tool 활용)을 습득한다. 2. Unix 운영체계 설치을 익힌다. 모듈 학습성과 2수준 (응용) 1. Unix 가상화 및 이중화 개념을 이해한다. 2. 하드디스크의 논리적 구성 능력

목차 데모 홖경 및 개요... 3 테스트 서버 설정... 4 DC (Domain Controller) 서버 설정... 4 RDSH (Remote Desktop Session Host) 서버 설정... 9 W7CLIENT (Windows 7 Client) 클라이얶트 설정

Transcription:

1. Environment 1/18

1. Environment 2/18 1. Environment 본장에서는기본적으로네트워크프로그래밍을수행하기위한기본적인환경을구축하는실습을다루도록하겠다. 본실습에서는기본적으로프로그래밍플랫폼인리눅스의서비스중하나인 Samba Server와프로그래밍을구조적으로할수있게도와주는 Source Insight를사용하는방법을다루도록한다. 1.1 Samba Server 를통한 Linux 접근 1.1.1 Samba Server[1] SAMBA( 삼바 ) 는 LINUX 플랫폼에서작동하는 File 및 Printer 를공유할수있게해주는공개 Protocol이다. SAMBA를설치함으로써 SAMBA서버와연결된각종 OS(Window, OS/2) 는강력하고방대한자원을자유자재로사용할수있게된다. Samba란 LINUX서버에서동작하면서마이크로소프트사의랜매니저기능을흉내내는소프트웨어 ( 또는데몬 ) 이다. 즉, PC쪽의랜매니저호환의각종클라이언트로하여금 LINUX 쪽의파일시스템 (UFS(4.2 File System), NFS(Network File System), AFS (Andrew File System)) 과 LINUX쪽의프린터를원거리접근이가능하도록만드는기능을제공하는것이다. 한마디로 PC쪽에서 LINUX서버의하드디스크와네트워크프린터자원을공유하도록환경을설정하는프로그램인셈입니다. 물론 Samba를통해 LINUX 쪽에서 PC쪽의파일시스템및프린터로도접근가능하다는것이다. Samba 버전 2.x대에들어와서는 Windows NT에서제공하는각종서비스를 ( 비록불완전하나마 ) 상당수제공하고있다. 동일한하드웨어환경에서라면 LINUX에 Samba를설치한서버가 Windows NT를설치한서버보다성능이월등히우세하다는장점이있으며현재많은곳에서리눅스의에디팅및 GUI에익숙한사람들을위해서많이사용되고있다. 즉, 간단하게다시정리하자면, 윈도우에서접근이가능한리눅스의파일서버의개념으로생각하면된다. 많은곳에서리눅스에서프로그래밍하기위하여서터미널에서작업을하지만 Samba를사용하므로인하여서터미널작업의불편함을덜어줄수있으며, 윈도우에서자신의파일시스템처럼리눅스의파일시스템을사용할수있게된다. 1.1.2 Samba Server 접속하기 먼저, 앞절에서다루었던것처럼윈도우에서리눅스파일시스템을적용하기위한방식이므로, 먼저윈도우에서 Samba Server가설치가된서버로접속을하여야한다. 따라야하는동작은다음과같다. 윈도우의탐색기를실행시킨다. 주소필드에 \\URL 또는 IP 주소를넣는다. 본실습의서버는 220.67.124.129로하겠다.

1. Environment 3/18 접속이완료가되면, 접근을위한계정정보를입력하는절차를거치게된다. 계정정보는수업시간에부여가된다. 접속을수행하면, 자신이엑세스할수있는디렉토리리스트가정렬된다.

1. Environment 4/18 결과적으로자신계정에등록이된리눅스파일시스템의디렉토리를윈도우에서도마치윈 도우파일시스템의디렉토리인듯사용할수가있다. 자신의디렉토리에있는임의의파일을리눅스의디렉토리에복사 1.1.3 Network Drive 로연결 Samba 로연결된디렉토리를마치나의로컬컴퓨터에있는디렉토리인듯사용하는방법에 대해서실습한다. 일반적으로윈도우계열 OS 에서는네트워크디렉토리를지원한다. 연결하면 내컴퓨터 에서마치로컬디렉토리처럼접속이가능해진다. 위의그림처럼자신의계정의이름으로된디렉토리에마우스오른쪽클릭을하여오른쪽그림의메뉴에서 네트워크드라이브연결 을선택하도록한다. 그런후에다음과같이네트워크드라이브설정이나오면자신의로컬컴퓨터에맞는드라이버를선택한후완료를하도록한다.

1. Environment 5/18 그후에 내컴퓨터 를확인해보면, 그안에네트워크드라이브가연결된것을파악할수 있다. 자신의리눅스계정의디렉토리가윈도우의디렉토리로완전히오러래핑이된다.

1. Environment 6/18 1.2 Source Insight 사용법 Source Insight 는객체지향의프로그램편집기이며코드브라우저로 C/C++, C# 및 Java program의분석기를내장하고있다. Source Insight 는소스코드를분석하여작업중에동적으로기호정보에관한자체데이터베이스를유지하여자동적으로유용한문맥 (contextual) 정보를제공한다. Source Insight는훌륭한프로그램편집기일뿐아니라레퍼런스트리, class inheritance diagrams 및 call tree 를보여줍니다. Source Insight는어떤프로그래밍편집기의소스코드및소스정보를빨리찾아주는기능을갖추고있다. Source Insight는에디트중에소스코드와소스정보를빠르게찾아바로유용한정보및분석을제공하여다른편집기와는차별화를두어서큰단위의프로젝트를다룰수있다. 본실험에서는 Samba와함께리눅스에서프로그래밍을할때사용하는사용자환경을구축하도록한다. 1.2.1 Source Insight 설치 일반어플리케이션을설치할때와같이간단한절차를통하여서설치하면된다. 설치후실 행을하도록한다. Source Insight 에서자신이 C/C++, MFC 또는 JAVA 의기존라이브러리와연동하고싶

1. Environment 7/18 다면경로를선택해서사용하면더좋다. 고급사용자가선택하는부분이나, 이번실습에서는 제외하고, Continue 을버튼을통해서 Skip 하도록한다. 1.2.2 Source Insight 로프로젝트관리 본절에서는설치한 Source Insight 로프로젝트를생성, 관리하여서사용하는방법에대해 서실습해보도록한다. Menu > Project > New Project 종전에연결한네트워크디렉토리를사용하도록한다. 이름은 FileCopy 라고한다. 다음과같이화면에나올것이다. 이렇게나오면프로젝트가제대로생성이된것이다. 실습을하기위해서 C 프로그래밍을간단하게하도록하겠다. 주제는 FileCopy 이다. 먼저 FileCopy.h 만들어서필요한정의를하도록한다. 새로운파일을만들기위해서는오른쪽에프로젝트파일리스트창에마우스오른쪽클릭을

1. Environment 8/18 수행한후에 New File 명령어를통해서만들수있다. FileCopy.h 파일을만들도록하겠다. New File 선택한후에자신의네트워크드라 이브에프로젝트의이름으로디렉토리를만든후파일명을넣어서만들도록한다. 그림에서보면오른쪽파일리스트에 FileCopy.h 이생긴것이다. 이는기본적으로리눅스명 령어의 vi FileCopy.h 와같은명령어라고할수있다. 헤더파일을작성하도록한다. 헤더는다음과같다.

1. Environment 9/18 위의 5 와같은과정을통해서 FileCopy.c 파일을작성하도록한다. 컴파일을하기위한 Makefile 을작성한다.

1. Environment 10/18 #Makefile 의작성에대한 Reference (http://www.nicklib.com/library/make/make-1.html) 코딩이다되었으니, 이제 SSH 클라이언트프로그램을사용한후에 Complie 을하도록한 다. 이실습에서는 Xshell 프로그램을사용한다. 자신의아이디로접속을한후에자신의프로젝트로들어간다음 make 를실행한다../FileCopy 를실행해보고실제로제대로복사가되었는지파악하도록한다.

1. Environment 11/18 1.3 UNP Library 설치 부교재로사용중인 UNIX, by W. Richard Stevens 의소스코드는기본적으로기존에제작된 Library를사용한다. 독자들의이해를돕고자하는 Wrapper Function들과교재의예제코드들로구성되어있다. 자세한내용은교재를참고하길바랍니다. Solaris, Linux, FreeBSD 등에설치가가능함. UNP Library 의설치방법은다음순서를따른다. 먼저실습게시판에있는 UNP Library 파일을다운받은후자신의계정디렉토리에 Copy 를한다. ( 네트워크디렉토리사용 ) http://www.unpbook.com/unpv13e.tar.gz 파일이있는디렉토리에서아래의명령어를이용하여서압축을푼다. n Tar xvfz unpv13e.tar.gz

1. Environment 12/18 다음표의설치방법을따르도록한다. cd unpv13e./configure cd lib make cd../libfree make cd../intro # into the basic directory that all programs need # try to figure out all implementation differences # build the basic library that all programs need # use "gmake" everywhere on BSD/OS systems # continue building the basic library # build and test a basic client program Intro 디렉토리에있는 daytimetcpsrv 와 daytimetcpcli 의파일을자신에게할당된포트번 호로적절히수정한후실행해보도록한다. UNP Library 의 Directory 구조는다음과같다. ü ü ü config*.* : library 설치관련파일 ex> config.h, config.h.in, config.log, config.status, configure.in 등 libunp.a : UNP library archive 파일 lib, libfree : library 에서추가한함수들의 object 파일

1. Environment 13/18 1.4 LAB 1.4.1 Simple TCP Server/Client Source [TCP Server Code] : UNP 의예제를간단히구동하여본다.

1. Environment 14/18 [TCP Client Code]

1. Environment 15/18 1.4.2 Netstat & Strace l Netstat n n 활성화된연결에대한여러네트워크관련데이터구조의내용을표시 u 열려있는포트번호와같은네트워크상태를확인하기위해서사용함 Command Option Option Discription -a 현재다른호스트와연결 (Established) 되어있거나, 대기 (Listening) 중인 모든포트번호확인 -r 라우팅테이블확인및 Connection 되어있는포트번호확인 -n 현재다른호스트와연결 (Established) 되어있는포트번호확인 (IP 주소로화면출력 ) -i 네트워크의패킷전송상태를검사 -c Netstat 의결과를연속적으로출력 -l 현재 listen 되고있는소켓정보출력 -p 실행되고있는각프로그램과 PID 정보출력 n 실행화면

1. Environment 16/18 l Strace n 네트워크프로그램코드의대부분은시스템콜 (system call) 로구성된임무를수행한다. 결국이런시스템콜들을적절히추적할수있다면, 네트워크프로그램에서수행되는모든흐름을정확히이해하고디버깅하는효율적임 n 사용법 u Strace [ 사용프로그램 ] u Strace c [ 사용프로그램 ] 시스템콜사용통계 u Starce o [ 사용프로그램 ] - 시그널추적및통계 n 실습 u Step 1 : 간단한 daytime Client 프로그램을작성 l $unp/intro/daytimetcpcli 127.0.0.1

1. Environment 17/18 u Step 2: strace 사용으로 system call 동작확인 l [ 통계자료, strace 모두포함 ]

1. Environment 18/18 1.4.2 실습보고서 l 1. Simple TCP Server/Client 을수행해보고, netstat 을이용해아래의 TCP State Diagram 에어떻게접근하게되는지작성하시오. 그림 1 TCP State Diagram l 2. Daytimeclient 구동하는동작을 strace 로 debugging 한후 socket 과관련한 system call 에대해서작성하시오.