반응형

tftp 프로그램 다운로드: http://tftpd32.jounin.net/

 

TFTPD32 : an opensource IPv6 ready TFTP server/service for windows : TFTP server

  The industry standard TFTP server  Tftpd64 is a free, opensource IPv6 ready application which includes DHCP, TFTP, DNS, SNTP and Syslog servers as well as a TFTP client. The TFTP client and server are fully compatible with TFTP option support (tsize, blo

tftpd32.jounin.net

[실행 순서]

 

1. window에서 tftp 실행

   - 설치가 아님. 다운받아서 바로 실행하면 됨.

   - current directory: 복사할 파일 경로로 정하면 됨

   - server interfaces: tftp가 실행되고 있는 pc ip로 하면 됨.

 

2.임베디드리눅스에서 tftp로 파일 가져오기

   - tftp -g -r file명 ip주소

     복사 메시지 제거 방법: tftp -g -r smt_t283 ip주소 1>/dev/null 2>/dev/null

   

반응형

http://blog.naver.com/PostView.nhn?blogId=yababies&logNo=220029067066&parentCategoryNo=&categoryNo=34&viewDate=&isShowPopularPosts=true&from=search


에서 JSON 타입의 데이터 통신을 할 일이 생겼다. 참 난감했다.

JSON이 뭔지도 모르는데 JSON 타입으로 통신을 하라니...

naver사전을 보면 아래와 같다.

 

 JSON(제이슨, JavaScript Object Notation)은, 인터넷에서 자료를 주고받을 때 그 자료를 표현하는 방법이다. 자료의 종류에 큰 제한은 없으며, 특히 컴퓨터 프로그램 변수값을 표현하는 데 적합하다.

그 형식은 자바스크립트의 구문 형식을 따르지만, 프로그래밍 언어 플랫폼에 독립적이므로 C, C++,C#, 자바, 자바스크립트, , 파이썬 등 많은 언어에서 이용할 수 있다.

 

자 이제 가능하다는 것을 알았으니 한번 해 보자.

 

 

1. library받기


사용하기 위해서 아래사이트에서 우측 메뉴에서 Download Zip을 통해 library를 받자.

https://github.com/json-c/json-c

 


 

 

2. library 컴파일

 

컴파일은 받은 파일의 압축을 풀고 ./configure, make, make install ( root user )을 실행하면 된다. 

 

./configure를 default로 하면 header는 /usr/local/include/json 아래에 라이브러리는 /usr/local/lib에 copy된다.

 

header나 library를 다른 위치에 copy하고 싶으면 아래와 같이 하고 이때는 make install을 꼭 root user로 할 필요는 없다.

    ./configure --libdir=/home/lib --includedir=/home/include

 

또한 .so가 싫을 경우 아래와 같이 하면 .a가 만들어진다.

    ./configure --enable-static=yes --enable-shared=no 

 

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
\/]$ ls
./  ../  json-c-json-c-0.11-20130402.tar
\/]$ 
\/]$ 
\/]$ tar xvf json-c-json-c-0.11-20130402.tar 
json-c-json-c-0.11-20130402/
json-c-json-c-0.11-20130402/.gitignore
json-c-json-c-0.11-20130402/AUTHORS
json-c-json-c-0.11-20130402/Android.configure.mk
json-c-json-c-0.11-20130402/COPYING
json-c-json-c-0.11-20130402/ChangeLog
json-c-json-c-0.11-20130402/Doxyfile
json-c-json-c-0.11-20130402/INSTALL
.....
\/]$ 
\/]$ cd json-c-json-c-0.11-20130402
\/]$ ./configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a thread-safe mkdir -p... /bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make sets $(MAKE)... (cached) yes
checking for style of include used by make... GNU
checking for gcc... gcc
.....
\/]$ make
\/]$ su - root
\/]# cd json-c-json-c-0.11-20130402
\/]# make install
 

 

 

 

3. 소스 테스트


자 이제 간단한 소스를 짜서 테스트 해 보자.

아래는 json.c 입니다. 

 


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include <stdio.h>
#include <json/json.h>
 
int main(int argc, char **argv)
{
    json_object *myobj, *dataobj;
    
    // 메모리 할당
    myobj = json_object_new_object();
    dataobj = json_object_new_object();
    
    json_object_object_add(dataobj, "test1", json_object_new_int(1));
    json_object_object_add(dataobj, "test2", json_object_new_string("TEST2"));
    json_object_object_add(myobj, "testData", dataobj);
    
    printf("myobj.to_string()=%s\n", json_object_to_json_string(myobj));
    
    // 메모리 해제
    json_object_put(dataobj);
    json_object_put(myobj);
    
    return(0);
}

 

 

Makefile 입니다.

 


1
2
3
4
5
6
7
8
9
10
11
12
13
CC  = gcc
INC  = -I. 
LIBS = -ljson-c
CFLAGS = -O2 -g -Wall ${INC}
 
json : json.o
 $(CC) $(CFLAGS) -o $@ $< $(LIBS)
clean :
 rm -f *.o core
 
.SUFFIXES: .o
.c.o :
 $(CC) $(CFLAGS) -c $<

 

 

컴파일 및 실행해 보면 아래와 같이 나옵니다.

 


1
2
3
4
5
6
7
8
9
\/]$ 
\/]$ make json
gcc -O2 -g -Wall -I. -c json.c
gcc -O2 -g -Wall -I. -o json json.o -ljson-c
\/]$ 
\/]$ json
myobj.to_string()={ "testData": { "test1": 1, "test2""TEST2" } }
\/]$
 

 

 

이상으로 간단하게 json library 설치 및 테스트에 대한 포스팅을 마칩니다.


반응형

ezterm.zip
다운로드

출처: 솔내시스템

https://blog.naver.com/eztcpcom/221009285557

https://www.sollae.co.kr

 

TCP 테스트(send, receive)를 할 수 있는 프로그램 입니다.

이거저거 찾아봤는데 이게 제일 나은 듯 하네요.

찾았던 프로그램

- tcpip server&client sw

- TestClient+

- SocketTest3

- tcptesttool

- tcp/ip builer 1.9

- tcp test tool 3.0

반응형

http://s2kiess.blog.me/220156859118

반응형

출처: https://kldp.org/node/71205

 

dns 서비스 사용하기

-> wowdns dyndns 등등 다양하고 공짜도 많음

'통신 > LAN' 카테고리의 다른 글

tftp로 파일 복사  (0) 2019.09.06
TCP 테스트 프로그램  (0) 2018.03.20
socket 통신  (0) 2016.10.28
무선랜 WPA-PSK와 WPA2-PSK 방식에서 TKIP와 AES 암호화 방식 사용의 혼동  (0) 2010.06.03
반응형

http://unix.co.kr/HOWTO/PPP/PPP-HOWTO.html#toc15

15.2 ppp-on 스크립트

이것이 실제로 연결을 시작하는 스크립트 짝 중 앞의 것이다.


#!/bin/sh
#
# PPP 연결을 초기화하는 스크립트다. 이것은 스크립트 쌍의 첫
# 부분이다. 이것은 'ps' 명령으로 볼 수 있으므로 안전한 스크립트 쌍은
# 아니다. 하지만 간단하다.
#
# 이것이 변수이다. 필요하면 고친다.
TELEPHONE=555-1212      # 연결용 전화번호
ACCOUNT=george          # 로긴을 위한 계정 이름('George Burns'같이)
PASSWORD=gracie
# 계정에 대한 비밀 번호(그리고 'Gracie Allen')LOCAL_IP=0.0.0.0
# 알고 있다면 로컬 IP 주소. 동적 = 0.0.0.0REMOTE_IP=0.0.0.0
# 원한다면 상대편 IP 주소. 보통 0.0.0.0NETMASK=255.255.255.0
# 필요한 경우 정확한 netmask
#
# 'ppp-on-dialer'에 쓸 수 있도록 이 정보를 보냄
export TELEPHONE ACCOUNT PASSWORD
#
# 전화를 걸고 로긴하는 스크립트의 위치를 정한다. $PATH 변수가 연결
# 선택사항에서는 먹지 않으므로 파일 이름의 절대 경로를 써야
# 한다. ('루트'계정에서 그렇게 하는 것은 보안구멍이 되므로 요청하지
# 않는다)
#
DIALER_SCRIPT=/etc/ppp/ppp-on-dialer
#
# 연결의 초기화
#
exec /usr/sbin/pppd debug /dev/ttySx 38400 \
        $LOCAL_IP:$REMOTE_IP \
        connect $DIALER_SCRIPT

이것이 ppp-on-dialer 스크립트다.:-


#!/bin/sh
#
# 이것이 ppp-on 스크립트의 두번째 부분이다. 이것은 원하는 연결을 위해
# 연결 프로토콜을 보여준다.
#
/usr/sbin/chat -v                                                 \
        TIMEOUT         3                               \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT$TELEPHONE                  \
        CONNECT         ''                              \
        ogin:--ogin:    $ACCOUNT                        \
        assword:        $PASSWORD

PPP-2.2에서 ppp-off스크립트는 아래와 같다:-For PPP-2.2, the ppp-off script looks like:-


#!/bin/sh
######################################################################
#
# 끊을 장치를 정한다.
#
if [ "$1" = "" ]; then
        DEVICE=ppp0
else
        DEVICE=$1
fi

######################################################################
#
# ppp0 pid 파일이 있고 프로그램이 실행중이면 그것을 중지시킨다.
if [ -r /var/run/$DEVICE.pid ]; then
        kill -INT `cat /var/run/$DEVICE.pid`
#
# kill이 작동하지 않으면 이 pid에 대해 진행 중인 과정이 없는 것이다.
# 아마 잠금 파일이 아직 남아 있음을 뜻할 것이다. 동시에 이 잠금 파일도
# 지워야 할 것이다.
        if [ ! "$?" = "0" ]; then
                rm -f /var/run/$DEVICE.pid
                echo "ERROR: Removed stale pid file"
                exit 1
        fi
#
# 성공. pppd가 필요없는 흔적을 깨끗이 지우도록 한다.
        echo "PPP link to $DEVICE terminated."
        exit 0
fi
#
# ppp 과정이 ppp0에 대해 실행되지 않는다.
echo "ERROR: PPP link is not active on $DEVICE"
exit 1

15.3 제공된 PPP 시작 스크립트의 편집

두 부분으로 새 스크립트를 받았으면 순서대로 편집하자.

ppp-on 스크립트

이 스크립트를 인터넷 서비스 업체가 준 사용자 이름과 비밀번호, 전화번호를 감안해 편집한다.

TELEPHONE=같은 각 행은 '=' 오른쪽의 정보(물론 딸린 설명까지 포함해서)를 포함하는 쉘 변수를 실제로 설정한다. 따라서 이 행을 편집해서 인터넷 서비스 업체와 연결에 대해 정확하게 만들어야 한다.

마찬가지로, /etc/ppp/options파일에 있는 IP 주소를 (필요할 경우) 설정할 때는 아래와 같은 행을 삭제한다.


$LOCAL_IP:$REMOTE_IP \

또한, 쉘 변수 DIALER_SCRIPT가 완전한 위치와 실제로 쓰고자 하는 전화걸기 스크립트 이름을 가리키고 있는지 확인해야 한다. 따라서 이를 옮겼거나 스크립트 이름을 고칠 작정이라면, ppp-on 스크립트에서 이 행을 정확히 편집했는지도 확인해야 한다!

ppp-on-dialer 스크립트

이것이 ppp 연결을 실제로 만드는 스크립트의 뒷 부분이다.

주의: chat 스크립트는 원래 모두 한 줄에 쓰게 되어있으며역슬래쉬는 행이 바뀌었을 때도 한 줄로 인식할 수 있게 해주는 문자이다(사람이 읽을 수 있도록). 따라서 스크립트 자체의 일부는 아니다.

하지만, 어떤 일이 실제로 진행되는지(추측해서) 이해할 수 있도록 세부 사항을 보는 데는 대단히 쓸만하다.

15.4 Chat 스크립트가 뜻하는 것...

chat 스크립트는 "예상_문자열" "전송_문자열" 쌍의 연속이다. 특별히 내 쪽에서 뭔가 보내기 전에 항상 받을 것을 무언가 기다린다는 점에 주의하자.

아무것도 먼저 받지 않고서 뭔가를 보내려고 한다면 예상_문자열에 빈 문자열을 써야만 하고(""로 쓴다). 아무것도 보내지 않고 뭔가를 받으려 할 때도 비슷하다. 또한, 문자열이 몇개의 낱말로 구성되어 있다면(예를 들어 NO CARRIER), 반드시 chat가 하나의 항목으로 받아들이도록 이 문자열을 다 따와야 한다.

예제에서 chat 행은:-


exec /usr/sbin/chat -v

chat를 부른다. -v는 chat보고 모든 입출력을 시스템 log(보통 /var/log/messages파일)에 복사하도록 시킨다. 일단 기분좋게 chat 스크립트가 믿음직하게 동작했으면 이 행을 편집해서 syslog를 어지럽히는 -v를 지운다.


TIMEOUT         3

이는 예상하는 문자열의 입력을 삼초동안 기다리는 것이다. 모뎀이 진짜 느린 거라면 5초나 10초로 늘려줄 필요가 있다.


ABORT           '\nBUSY\r'

BUSY라는 문자열을 받게 되면 동작을 중지한다.


ABORT           '\nNO ANSWER\r'

NO ANSWER 라는 문자열을 받으면 동작을 중지한다.


ABORT           '\nRINGING\r\n\r\nRINGING\r'

RINGING이라는 문자열이 (반복적으로) 수신되면, 동작을 중지한다. 이 경우 누군가 당신에게 전화를 거는 중이기 때문이다.


"              \rAT

모뎀에서 아무것도 기다리지 않고 AT 문자열을 보낸다.


OK-+++\c-OK   ATH0

이건 좀 복잡한데 chat의 오류 복구 능력 중 일부를 쓰기 때문이다.

뭐라는 뜻이냐 하면... OK를 기다렸다가, 받지 못하면 (모뎀이 명령행상태가 아니라서) +++(표준 헤이스 호환 모뎀에서 명령행 상태로 돌아가는 문자열이다)를 보내고 나서 OK를 기다린다. 그런 다음 ATH0(모뎀 끊기 문자열)을 보낸다. 모뎀이 회선 상에서 먹통이 되어 있는 상황에서 스크립트가 처리할 수 있도록 해준다!


TIMEOUT         30

스크립트의 나머지 부분에 대해 30초의 시간 제한을 설정한다. chat 스크립트가 시간 제한 때문에 취소되는 문제를 겪는다면 45초나 그 이상으로 늘리면 된다.


OK              ATDT$TELEPHONE

OK를 기다렸다가 (모뎀이 ATH0 명령에 대답한 것이다) 원하는 전화번호로 전화한다.


CONNECT         ''

CONNECT를 기다리고 (이것은 상대방 모뎀이 대답할 때 내쪽 모뎀이 보낸다) 아무것도 보내지 않는다.


ogin:--ogin:    $ACCOUNT

다시 몇가지 오류 복구용이 여기 있다. login 프롬프트를 기다리고(...ogin:) 시간이 지나도 받지 못하면, 실행키를 보낸 다음 다시 login 프롬프트를 찾기 시작한다. 프롬프트를 받으면 사용자 이름(쉘 변수 $ACCOUNT에 저장되어 있다)을 보낸다.


assword:        $PASSWORD

비밀번호 프롬프트를 기다리고 내 비밀번호를 보낸다 (역시 쉘 변수에 저장되어 있다).

이 chat 스크립트는 적당한 오류 복구 능력을 갖고 있다. chat는 여기에 보인 것보다 더 많은 기능을 갖고 있다. 더 많은 정보를 원한다면 chat man 페이지를 본다.(man 8 chat)

PPP를 서버에서 시작하기

로긴한 다음 서버에서 자동적으로 pppd를 시작하는 경우에 ppp-on-dialer는 잘 작동하지만 몇몇 서버는 서버에서 PPP를 명확히 시작하도록 요구한다.

서버에서 PPP를 시작하기 위해 어떤 명령을 주어야 한다면, ppp-on-dialer 스크립트를 편집해야 한다.

스크립트의 맨 끝에(비밀번호 행의 뒤에) 추가적으로 expect send쌍을 넣어야 한다. 이것은 로긴 프롬프트를 검색할 것이다(본쉘에서 특별한 의미를 갖는 문자-예를 들어 $ 과 [ or ] (각 인용부호의 여닫이 기호)같은것도 주의한다.

chat가 쉘 프롬프트를 찾으면, chat는 인터넷 서비스 업체 쪽 PPP 서버에서 요구하는 ppp 시작 명령을 내야 한다.

내 경우, PPP 서버는 표준 리눅스 배쉬(bash) 프롬프트를 쓴다.


[hartr@kepler hartr]$

그리고 서버에서 PPP를 시작하도록 입력할 것을 요구한다.


ppp

몇가지 오류 복구를 할 수 있도록 하는 것이 좋을 것 같다, 내 경우는 아래와 같이 쓴다.


        hartr--hartr    ppp

이것은 시간 내에 프롬프트를 받지 못하면, 실행키를 보내고 프롬프트를 다시 찾는 것이다.

프롬프트를 받게 되면 ppp행을 보낸다.

주의: 앞 행의 맨 뒤에 \하나를 집어 넣어 chat가 chat 스크립트 전체를 한 행으로 생각하도록 하는 것을 잊어 먹으면 안된다!

운나쁘게, 몇몇 서버는 다양한 변종의 프롬프트를 준다! 미니콤을 써서 수회 로긴해 어떻게 나오는지 알아내고 안정적인 "예상" 문자열을 골라야 한다.

15.5 PAP/CHAP 인증 연결용 chat 스크립트

인터넷 서비스 업체가 PAP/CHAP를 쓸 경우, chat 스크립트는 더 간단하다. chat 스크립트에서 해야할 것은 전화해서, 연결을 기다린 다음 pppd가 로긴을 다루도록 하는 것 뿐이다!


#!/bin/sh
#
# 이것은 ppp-on 스크립트의 두번째 부분이다. 원하는 연결을 위해 연결
# 프로토콜을 보여준다.
#
exec /usr/sbin/chat -v                                  \
        TIMEOUT         3                               \
        ABORT           '\nBUSY\r'                      \
        ABORT           '\nNO ANSWER\r'                 \
        ABORT           '\nRINGING\r\n\r\nRINGING\r'    \
        ''              \rAT                            \
        'OK-+++\c-OK'   ATH0                            \
        TIMEOUT         30                              \
        OK              ATDT$TELEPHONE                  \
        CONNECT         ''                              \

15.6 pppd 오류 추적과 option_file 파일 선택사항

이미 앞에서 본 것처럼, pppd에서 -d를 선택해서 로긴하면 오류 추적 정보를 받을 수 있다. 이 '오류 추적' 선택사항은 아래 것과 동등하다.

새 스크립트를 가지고 새 연결을 구축하는 것이므로, 현재까지는 오류 추적 선택사항을 그냥 두자. (경고: 디스크 공간이 적을 경우, pppd 로긴을 바꾸는 것이 syslog 파일을 급격하게 키우고 문제가 생길 수도 있다 - 이것을 하면 연결에 실패할 것이고 몇분 정도 뒤에 다시 시도할 수 있다)

기분좋게 모든 것이 제대로 작동한다면, 이 선택사항을 없앨 수 있다.

/etc/ppp/options/etc/ppp/options.ttySx가 아닌 ppp 선택사항 파일을 불러냈다면, pppd의 file 선택사항에 파일 이름을 적어 주어야 한다 - 다음과 같은 식이다.


exec /usr/sbin/pppd debug file options.myserver /dev/ttyS0 38400 \
반응형
출처 : http://hook.tistory.com/

무선랜의 보안방식에서 취약한 WEP 대신에 등장한 것이 WPA 이고,
이후에 WPA2 라고 AES 암호화를 사용하는 방식이 새로이 만들어 진 것은 불변의 진리이다.

즉, 
WPA 는 TKIP 암호화를 사용하고, Michael 이라는 무결성 검증 알고리즘을 사용하며,
WPA2는 AES 암호화를 사용하여, 무결성까지 보장한다는 것이었다.

그런데, 오래전부터 의문점이 들었지만 확인하지 않은 사항이 있었다.
바로, 무선랜 AP 또는 무선랜 클라이언트에 보면
분명히 WPA-PSK 방식에서도 TKIP 암호화와 AES 암호화를 모두 선택할 수 있다는 것이다.
이건 WPA2-PSK 방식에서도 마찬가지로 TKIP 또는 AES를 선택할 수 있다.

앞에서 기술하였듯이, 분명히 WPA는 TKIP, WPA2는 AES라고 알고 있었는데, 이해할 수 없는 상황이었다.

구글 검색을 통해서, 해답을 얻었다.


누구인지는 정확하게 모르겠지만,
DSLrgm
Premium,MVM
join:2002-08-22
Oak Park, MI

본인이 직접 802.11i 표준에 관여했다고 밝힌 분께서  정확한 내용을 풀어놨다. 
(원문은 맨 뒤로~)

잘 해석해 보면,

WPA와 WPA2는 3가지 보안 구성요소를 가지고 있다.
인증, 키 확립, 데이터 보호(Authentication, Key Establishment, Datagram Protection) 가 그 세가지이다.

그 중에서 일반인들이 신경쓰지 않지만, 키 확립(Key Establishment)부분에서 WPA와 WPA2는 차이가 있다.
WPA2가 좀 더 빠르고, pre-cached PSKs 라는 기능을 지원한다.

데이터 보호(Datagram Protection) 부분에서 WPA와 WPA2는 모두 TKIP와 AES를 선택할 수 있다.
다만, WPA에서 TKIP만 인증받은 방식이고, WiFi 그룹에서 AES는 테스트되지도, 인증을 받지도 않았다.
WPA2는 호환성을 위해서 TKIP를 지원하고 있는데, TKIP를 사용한다면, WPA와 WPA2는 차이가 없다. 즉, 똑같다.
그리고, (WPA2 경우를 말하는 것 같은데, 확실하지 않다. )AES128 With CCM에서 파이프라이닝을 개선하는 몇 가지 문제를 해소했지만, 알고리즘이나 다른 보안 영역에 수정을 가한 것은 아니다.

인증은 WPA나 WPA2나 동일하게 다양한 인증방식을 사용할 수 있다.


결론:
사용자 입장에서 볼 때, WPA나 WPA2나 모두 TKIP와 AES를 사용할 수 있고, 
차이점은 거의 없다.



설맹 원문  ================================================================
said by Test Eng See Profile:

I mean WPA as TKIP only and WPA2 as AES and TKIP by the way
Not quite true. AES-CCM is IN WPA, but not TESTED by WiFi.

So the confusion came from the box saying it had WPA, as in TKIP, but in the actual security menu it had AES mode too.
The confusion comes in confusing the 3 aspects of WPA and WPA2 (aka 802.11i)

Belkin obviously changed something just at the point when i got mine. I expect later versions support WPA and WPA2
WPA and WPA2 have 3 security components:

Authentication
Key Establishment
Datagram protection

Although there is a difference in Key Establishment between WPA and WPA2, you really don't care. In WPA2 we have it working faster and supporting pre-cached PSKs.

In datagram protection the choices are: TKIP with Michael (just called TKIP) and AES-128 in CCM mode (called AES or CCMP). Both are in WPA, but only TKIP is 'certified'. There were no changes in TKIP between WPA and WPA2. With CCM we cleaned up some issues that improves pipelining, but is not a change to the algorithm or the security boundaries.

In authentication, thee first choice is full 802.1X or Preshared keys (technically, the Key Exchange uses 802.1X KEY frames, so you are always engaging some part of 802.1X but this is quibbling).

In 802.1X there is the choice of EAP method and basically it comes down to 3 open methods: TLS, PEAP, or TTLS. Of course, both PEAP and TTLS have imbedded methods, so the is even another tree branch!

Vendors would do a great service to separate Authentication from datagram protection, as by munging it all together they confuse instead of simplify (as each vendor calls everything by different names!)

'통신 > LAN' 카테고리의 다른 글

tftp로 파일 복사  (0) 2019.09.06
TCP 테스트 프로그램  (0) 2018.03.20
socket 통신  (0) 2016.10.28
집에서 사용하는 인터넷 고정 ip 사용하기  (0) 2014.11.05
반응형
반응형

CCITT(지금은 ITU-T)에서 정한 통신 기준의 하나인 것 같다.

ITU-T (International Telecommunications Union - Telecommunication Standardization Sector)http://www.itu.int/net/home/index.aspx

ITU-T[아이티유 티]는 통신장비 및 시스템의 조합표준을 육성하기 위한 제일의 세계적인 조직체이다. 전에는 CCITT로 알려져 있었으며, 스위스 제네바에 본부를 두고 있다.

 

참고 싸이트 :
http://www.menie.org/georges/embedded
http://blog.naver.com/elkiss?Redirect=Log&logNo=140047858434
http://tong.nate.com/cadmus4u/46246280
http://www.sanity-free.org/133/crc_16_ccitt_in_csharp.html
http://cafe.naver.com/iwillgosu.cafe?iframe_url=/ArticleRead.nhn%3Farticleid=153

'통신 > 에러 체크' 카테고리의 다른 글

STOP BIT  (1) 2009.05.12
에러검출(parity bit, checksum, CRC)  (1) 2009.05.12
반응형

Asynchronous serial communication

From Wikipedia, the free encyclopedia

Jump to: navigation, search

Asynchronous serial communication describes an asynchronous, serial transmission protocol in which a start signal is sent prior to each byte, character or code word and a stop signal is sent after each code word. The start signal serves to prepare the receiving mechanism for the reception and registration of a symbol and the stop signal serves to bring the receiving mechanism to rest in preparation for the reception of the next symbol. A common kind of start-stop transmission is ASCII over RS-232, for example for use in teletypewriter operation.

Image:Rs232 8n1.PNG

In the diagram, a start bit is sent, followed by eight data bits, no parity bit and one "stop bit", for a 10-bit character frame. The number of data and formatting bits, and the transmission speed, must be pre-agreed by the communicating parties.

The "stop bit" is actually a "stop period"; the stop period of the transmitter may be arbitrarily long. It cannot be shorter than a specified amount, usually 1 to 2 bit times. The receiver requires a shorter stop period than the transmitter. At the end of each character, the receiver stops briefly to wait for the next start bit. It is this difference which keeps the transmitter and receiver in synchronism.


'통신 > 에러 체크' 카테고리의 다른 글

CRC16 CHECK  (0) 2009.05.25
에러검출(parity bit, checksum, CRC)  (1) 2009.05.12

+ Recent posts