블로그 이미지
Terapi

calendar

1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
2009.09.01 11:01 [Project]LIN/[Project] FTP

ftp 프로그래밍을 하다보면 많은 명령어가 나온다.
(참조 http://terapi.tistory.com/entry/FTP-Request-명령어)


그중에서  PORT라는 명령어가 있다.
(출처 : http://www.nsftools.com/tips/RawFTP.htm)

설명문을 본다면

Tells the server to enter "passive mode". In passive mode, the server will wait for the client to establish a connection with it rather than attempting to connect to a client-specified port. The server will respond with the address of the port it is listening on, with a message like:
227 Entering Passive Mode (a1,a2,a3,a4,p1,p2)
where a1.a2.a3.a4 is the IP address and p1*256+p2 is the port number.



여기서 중요한것은 a1,a2,a3,a4,p1,p2

머 영어 문장을 해석 하지않아도 무엇을 의미하는지 알것이다.

클라이언트가 로긴후에 client의 port정보를 넘겨줘야하는데 넘겨줄때 사용되는것이 client 자신의 주소와 port정보이다

만약 포트를 9999로 잡았다고 가정을 하자.

그럼 p1 과 p2 는 무엇이 들어가겠는가?
 p1은 9999/256   즉 몫 값이 입력이 되고
 p2는 9999%256  즉 나머지 값이 입력이 된다.
신고

'[Project]LIN > [Project] FTP' 카테고리의 다른 글

FTP PORT  (0) 2009.09.01
FTP Request 명령어  (0) 2009.09.01
TCP SERVER/CLIENT 함수 호출관계  (0) 2009.05.26
OSI 7layer & tcp/ip layer  (0) 2009.05.26
TCP socket 생성 PF_LOCAL,PF_INET  (0) 2008.12.29
posted by Terapi
TAG address, ftp, P1, P2, port
2009.09.01 10:52 [Project]LIN/[Project] FTP

 

Request

설명

1

ABOR

이전 명령을 중지

2

ACCT

지정한 account 무시

3

ALLO

비어있는 저장공간을 할당

4

APPE

file 첨가

5

CDUP

현재 작업 directory 부모 directory 이동 1

6

CWD

작업 directory 이동 1

7

DELE

file 삭제 1

8

HELP

help 정보 출력

9

LIST

directory file list 출력 (``ls -lgA'')

10

MKD

directory 생성

11

MDTM

file 마지막 변경시간 출력

12

MODE

data transfer mode 지정

13

NLST

directory file list name 보여준다.

14

NOOP

do nothing

15

PASS

password 지정

16

PASV

server server간은 전송 비교

17

PORT

data connection port 지정 1

18

PWD

현재 작업중인 directory 출력

19

QUIT

session 마침

20

REST

불완전한 전송을 재시도

21

RETR

file 정정

22

RMD

directory 제거

23

RNFR

filename으로 부터 rename 지정

24

RNTO

filename으로 rename 지정

25

SITE

일반적이지 않은 commands (다음 section 참조)

26

SIZE

file size 출력

27

STAT

server 상태 출력

28

STOR

file 저장

29

STOU

특정한 이름으로 file 저장

30

STRU

data transfer structure 지정

31

SYST

server system OS type 출력 1

32

TYPE

data transfer type 지정 1


신고

'[Project]LIN > [Project] FTP' 카테고리의 다른 글

FTP PORT  (0) 2009.09.01
FTP Request 명령어  (0) 2009.09.01
TCP SERVER/CLIENT 함수 호출관계  (0) 2009.05.26
OSI 7layer & tcp/ip layer  (0) 2009.05.26
TCP socket 생성 PF_LOCAL,PF_INET  (0) 2008.12.29
posted by Terapi

C파일생성

더보기





(1) gcc -fPIC -c file1.c file2.c 
    fPIC 옵션은 cc1 컴파일러에게 위치에 관계없이 수행하는 코드를 컴파일 하라는 옵션
(2) gcc –shared –W1,-soname,libmy.so.0 –o libmy.so.0.0.0 file1.o file2.o


더보기

신고
posted by Terapi


Bluetooth 

 






<그림1> 일반적인 Bluetooth Protocol


  위에 보이는 <그림1> 은 Protocol 스택이란 그림이며 보여지는 바와 같이 하위 계층부터 상위 계층까지 쌓아 올린 Protocol의 집합을 말한다. 이 Protocol 스택은 보통 HCI(host controller interface)를 기준으로  호스트 컨트롤러(Host controller) Protocol과  호스트(Host) Protocol로 나뉘게 된다.

  <그림1>을 보면 HCI가 두 개의 계층에 위치하는데 바로 아래쪽 HCI가 호스트컨트롤러에 포함되는 것이고 , 위쪽의 HCI가 호스트에 포함 되는 것 이다.
여기서 호스트컨트롤러에 포함되는 HCI를 HCI_buttom 호스트 에 포함되는 HCI를 HCI Top이라고 말하기도 하며 두 개의 HCI사이는 물리 링크인 UART, USB, PCMCIA등의 인터페이스로 연결된다. 
  그러나 항상 호스트와 호스트 컨트롤러 사이의 Protocol 스택의 배분이 위와 같은 것은 아니다. 위에서 설명한 바와 같이 HCI를 기준으로 Protocol을 배분하는 것이 가장 일반적인 방법이기는 하나 호스트의 종류에 따라서 <그림 2>와 같이 세 종류로 나뉠 수 있다.


<그림2> Protocol Stack의 구현 및 배분의 3가지 구조

위에서 설명한 구조는 Standard Two-processor architecture 가 위에서 설명했던 가장 일반적인 구조이다. 그러나 사실 HCI상위 계층의 L2CAP, RFCOMM, SDP,TCS 등의 많은 Protocol을 구현하고 어플리케이션을 수행하는데에는 호스트에 걸리는 작업 로드가 크고, 많은 리소스를 필요로 하게 된다,

따라서 핸드폰과 같이 Bluetooth Protocol 스택을 위해 할당된 리소스가 적은 호스트인 경우에는 2번과 같이 Embedded Two-Processor Architecture 형태로 Protocol 스택을 배분한다. <그림3>의 세 번째 구조인 Wholly-Embedded single-processor Architecture는 별도의 호스트가 존재하지 않는 구조이다. 즉 호스트 컨트롤러인 Bluetooth 모듈만이 존재하고, 이 모듈내에서 모든 Protocol 스택이 구현되어있다.

   

Bluetooth Protocol

BaseBand

베이스 밴드와 링크 컨트롤은 물리적으로 RF(물리층 : 무선부분)와 Bluetooth 탑재기기를 접속할 때에 사용된다. Bluetooth는 패킷상태의 데이터가 시분할된 주파수 대역을 전송하는 주파수 호핑 스펙트럼 확산 방식을 이용하고 있기 때문에, 이런 Protocol 스택들은 Inquiry(조회)와 Paging(호출)의 방법을 이용하여 Bluetooth기기의 호핑 주파수와 클럭의 동기를 맞추는 역할을 한다. 베이스밴드는 두 가지 물리적인 접속방법을 제공하는데, Synchronous Connection Oriented(SCO) -데이터 통신과 음성-와 Asynchronous Connection Less(ACL) -주로 데이터 통신-이다.

LINK Manager Protocol

링크 매니저 Protocol은 Bluetooth 기기간의 링크를 설정하는 역할을 한다. 이 Protocol은 security역할을 담당하며, link나 암호키의 생성, 교환, 체크와 베이스 밴드의 패킷 사이즈를 제어한다. 또한, Power mode, 피코넷의 접속상태를 컨트롤하는 역할도 수행한다.

Logical Link Control and Adaptation Protocol(L2CAP)

L2CAP은 baseband의 상위에 위치하는 Protocol이며 Bluetooth 스택에서 사용되는 기본 Protocol ,상위의 Protocol 스택에 대하여 다중통신기능, 데이터의 분할과 조합, 그룹의 추상화 역할을 담당하는 서비스를 제공한다. L2CAP에 의해 상위의 Protocol 및 Application은 64k바이트까지의 길이를 가지는 L2CAP 패킷 데이터를 송수신하는 것이 가능하다. 이 Protocol은 상위 Protocol의 패킷들을 잘게 나눠 섞어서 HCI레이어에 전달하는 역할을 한다. 이를 통해 한 Protocol이 대역폭을 점유하는 것을 방지함
핸즈프리와 같이 호스트가 없는 시스템의 경우에는 링크메니저에 패킷을 직접전달하기도 함RFCOMM – (Radio Frequency Communication)은 L2CAP위에서 RS-232시리얼 포트를 에뮬레이트 해주는 Protocol 시리얼 포트 에뮬레이션 이라고 부리기도 하며 Bluetooth 프로파일 중 하나인 시리얼 포트 프로파일이 RFCOMM밑에서 동작.

Service Discovery Protocol(SDP)

SDP는 Bluetooth의 이용용도를 미리 결정하는 서비스를 제공하고 중요한 역할을 담당한다. SDP를 이용함으로써 각각의 기기가 가진 정보, 서비스의 내용을 파악하여 기기간의 접속을 할 수 있게 된다.

Cable Replacement Protocol Protocol(RFCOMM)

RFCOMM은 Cable Replacement Protocol이라는 것에서도 알 수 있듯이 모뎀을 연결하는 RS-232C등의 시리얼 송신을 대체하는 Protocol이며, ETSI 07.10의 사양을 베이스로 하고 있다. RFCOMM은 OBEX등 시리얼 송신기능을 필요로 하는 상위 Protocol에 대해 RS-232C 의 컨트롤이나 베이스 밴드상의 데이터 신호를 서포트하는 역할을 맡고 있다.

Telephony Control Protocol Specification Binary (TCS Binary/TCS BIN)

TCS BIN은 Bluetooth 기기간의 음성이나 호출 데이터를 확립하기 위한 호출제어신호를 규정한다. 이뿐만 아니라 TCS를 탑재하는 Bluetooth 기기 그룹의 관리를 할때의 매니지먼트 절차를 규정한다. TCS BIN은 ITU-T Recommendation Q.931의 Annex D를 기본으로 하여 Bluetooth의 사양상에 정의 되어 있다.

AT명령

Bluetooth는 다양한 이용용도에 따라 휴대전화나 모뎀을 제어하는 AT Commands를 정의하고 있다. Bluetooth에서 이용되는 AT Commands는 ITU-T Recommandation V.250과 ETS 300 916(GSM 07.07)을 베이스로 하여 만들어졌다.

PPP

Bluetooth에서는 1대 1의 접속을 확립하기 위하여 RFCOMM의 상위에 PPP가 정의되어 있다. PPP는 IETF의 Point-to-Point Protocol이다. PPP의 네트워크가 확립된다고 하는 것은 PPP사이에서 IP팔레트가 이용된다는 것을 의미한다.

TCP/UDP/IP

이 Protocol 스택들은 IETF에서 정의되어 인터넷으로 접속할 때 이용되고 있다.
이 Protocol 스택들이 Bluetooth에 이용된다는 말은 Bluetooth기기가 인터넷에 액세스가 가능하게 되는 것을 의미한다.

OBEX Protocol (Object Exchange Protocol)

OBEX(IrOBEX)는 오브젝트를 교환하기 위해 Infrared Data Association(IrDA)에 의해 정의된 세션레이어(OSI7 제 5계층)의 Protocol 스택이다. OBEX는 기본적으로는 HTTP와 같은 기능을 가지지만, 보다 고성능인 것으로 되어 있다.    클라이언트/서버 모델을 이용하고 트랜스포트 기능을 하지만 트랜스포트 API와는 독립하고 있다. 현재의 Bluetooth의 사양에서는 RFCOMM이 OBEX의 트랜스포트층이 역할을 맡고 있지만, 이 후에는 TCP/IP도 서포트 하도록 할 것이다.

FTP

상대방의 파일 시스템을 액세스하기 위한 용도로 사용되는 프로파일이다. 폴더 및 파일을 검색 생성 수정 삭제할 수 있으며 OBEX Protocol 위에서 동작한다.

 

 

OSI 모델에 따른 Bluetooth Stack

 

<그림3> OSI 와 Bluetooth 계층비교

 Bluetooth Profile

Bluetooth Spec에서 찾아볼 수 있는 중요한 특징 중 하나는 프로파일이다.
Bluetooth 기술이 제작의도를 생각한다면 여러 이기종 간의 데이터 교환을 단일화하여 무선 통신기술을 정립화 하는 것 이다.
그러기 때문에 Bluetooth여러 서비스들간에 구현방법에 대해서 별도의 표준안을 가지고 정리된 문서를 프로파일이라고 부른다.
Bluetooth를 처음쓰는 사람은 Protocol과 프로파일의 개념을 혼돈하기 쉽다 프로파일은 Protocol보다 좀더 넓은 개념이며, 프로파일 스펙안에 Protocol의 사용방법이나 필드의 구조등을 포함할 수 있다.
현재 22 가지 이상의 프로파일이 있는데, 다른 프로파일의 기본기술로 사용되는 용도로 제작된 것이 있으며 서비스의 최상단에서 제품의 상품성이나 특징을 결정짓는 프로파일이 있다.

신고

'[Project]LIN > [Project] Bluetooth' 카테고리의 다른 글

Bluetooth profile  (0) 2009.05.30
posted by Terapi
2009.05.26 15:03 [Project]LIN/[Project] FTP

TCP SERVER/CLIENT 함수 호출관계 를 나타내었다.

FTP도 현재 위 구조와 FILE를 교환한다는 점말고는 함수호출관계도는 유사할것으로 판단한다.

FTP에 앞서 test source 로 echo server/client , iterative server 를 사용해볼것

신고

'[Project]LIN > [Project] FTP' 카테고리의 다른 글

FTP PORT  (0) 2009.09.01
FTP Request 명령어  (0) 2009.09.01
TCP SERVER/CLIENT 함수 호출관계  (0) 2009.05.26
OSI 7layer & tcp/ip layer  (0) 2009.05.26
TCP socket 생성 PF_LOCAL,PF_INET  (0) 2008.12.29
posted by Terapi
2009.05.26 14:55 [Project]LIN/[Project] FTP

신고

'[Project]LIN > [Project] FTP' 카테고리의 다른 글

FTP PORT  (0) 2009.09.01
FTP Request 명령어  (0) 2009.09.01
TCP SERVER/CLIENT 함수 호출관계  (0) 2009.05.26
OSI 7layer & tcp/ip layer  (0) 2009.05.26
TCP socket 생성 PF_LOCAL,PF_INET  (0) 2008.12.29
posted by Terapi
2008.12.29 12:18 [Project]LIN/[Project] FTP



소켓프로그래밍에서 소켓에 들어가는 파라메타에 따른 성질을 나타내었다

socket(도메인, socket유형, 프로토콜);

신고

'[Project]LIN > [Project] FTP' 카테고리의 다른 글

FTP PORT  (0) 2009.09.01
FTP Request 명령어  (0) 2009.09.01
TCP SERVER/CLIENT 함수 호출관계  (0) 2009.05.26
OSI 7layer & tcp/ip layer  (0) 2009.05.26
TCP socket 생성 PF_LOCAL,PF_INET  (0) 2008.12.29
posted by Terapi
prev 1 next

티스토리 툴바