SW 개발

간단히 TCP echo 서버 및 데이터 확인하기

. . . 2019. 10. 10. 17:00
반응형

간단히 임베디드 보드 및 호스트PC 에서 테스트용 서버, 클라이언트를 구성 테스트방법을 설명한다.

테스트용 서버나 echo 서버짠다고 괜히 시간낭비하지 말자

보드에서의 테스트용 서버구성

그냥 간단하게 다음과 같이 nc를 사용하면된다.

nc -l -p [포트번호] -v -o outputlog.txt
  • -l 옵션을 사용하면 listen 모드로 서버역할을 할 수 있다.
  • -p 옵션으로 포트번호를 지정한다.
  • -o 옵션으로 수신된 데이터를 hex 형식으로 파일에 저장한다.

클라이언트 테스트

대부분 임베디드 환경이라면 개발용 환경에서는 windows를 사용할것이다. windows 용 패킷 테스트 프로그램은 packetsender https://packetsender.com/ 를 사용하면된다.

  • opensource 기반으로 완전무료
  • 서버, 클라이언트 모두 수행가능
  • 아스키, hex 데이터등 원하는 형식으로 전송가능.

실제 구동화면

TIP - tcpdump 명령어로 확인

타겟 보드에서 조금더 자세하게 패킷을 볼 필요성이 있었다.

위의 nc 프로그램을 백그라운드에서 실행시키고, 다음과 같이 tcpdump를 사용하면 패킷을 쉽게 볼수있다.

tcpdump -i [네트워크인터페이스명] -vv -XX -Aq port [포트번호]

참고) tcpdmp 실행결과예제

02:25:31.433292 IP (tos 0x0, ttl 128, id 13996, offset 0, flags [DF], proto TCP (6), length 40)
    10.0.0.5.55753 > 10.0.0.2.7979: tcp 0
        0x0000:  0022 3344 5566 c8f7 5009 1b03 0800 4500  ."3DUf..P.....E.
        0x0010:  0028 36ac 4000 8006 b01d 0a00 0005 0a00  .(6.@...........
        0x0020:  0002 d9c9 1f2b 60e3 3803 7a2e efec 5010  .....+`.8.z...P.
        0x0030:  0805 97d2 0000 0000 0000 0000            ............
02:25:31.433832 IP (tos 0x0, ttl 128, id 13997, offset 0, flags [DF], proto TCP (6), length 160)
    10.0.0.5.55753 > 10.0.0.2.7979: tcp 120
        0x0000:  0022 3344 5566 c8f7 5009 1b03 0800 4500  ."3DUf..P.....E.
        0x0010:  00a0 36ad 4000 8006 afa4 0a00 0005 0a00  ..6.@...........
        0x0020:  0002 d9c9 1f2b 60e3 3803 7a2e efec 5018  .....+`.8.z...P.
        0x0030:  0805 8843 0000 6162 6361 6263 6162 6361  ...C..abcabcabca
        0x0040:  6263 6162 6361 6263 6162 6361 6263 6162  bcabcabcabcabcab
        0x0050:  6361 6263 6162 6361 6263 6162 6361 6263  cabcabcabcabcabc
        0x0060:  6162 6361 6263 6162 6361 6263 6162 6361  abcabcabcabcabca
        0x0070:  6263 6162 6361 6263 6162 6361 6263 6162  bcabcabcabcabcab
        0x0080:  6361 6263 6162 6361 6263 6162 6361 6263  cabcabcabcabcabc
        0x0090:  6162 6361 6263 6162 6361 6263 6162 6361  abcabcabcabcabca
        0x00a0:  6263 6162 6361 6263 6162 6361 6263       bcabcabcabcabc
02:25:31.433881 IP (tos 0x0, ttl 64, id 2458, offset 0, flags [DF], proto TCP (6), length 40)
    10.0.0.2.7979 > 10.0.0.5.55753: tcp 0
        0x0000:  c8f7 5009 1b03 0022 3344 5566 0800 4500  ..P...."3DUf..E.
        0x0010:  0028 099a 4000 4006 1d30 0a00 0002 0a00  .(..@.@..0......
        0x0020:  0005 1f2b d9c9 7a2e efec 60e3 387b 5010  ...+..z...`.8{P.
        0x0030:  00e5 1421 0000                           ...!..
반응형