TINET 라는 것은

TINET는 토마코마이 전문고등학교 정보공학과에서 개발된 ITRON TCP/IP API 사양에 준거한 컴팩트한 TCP/IP 프로토콜 스택입니다. TINET 는 FreeBSD의 코드를 베이스로 하고 있기 때문에, 그 사용에 관해서는 TOPPERS 라이센스와 FreeBSD의 라이센스의 조건을 따를 필요가 있습니다.

TINET는 여기에서 다운로드할 수 있습니다.

TINET는 경제 산업성에 의한 헤세이 14년 즉효지역 신생 컴소시엄(卽型地域新生コンソ-シアム) 연구개발사업 채택 테마의 하나인 「임베디드 시스템·오픈 플랫폼의 구축과 그 실용화 연구」(위탁원: 東北경제산업국)로서 (재)미야기 산업 진흥기구에서 진행, 토마코마이(?小牧)고등전문학교에서 개발되었습니다.

TINET는 (사)TRON협회 ITRON전문 위원회, Embedded TCP/IP 기술 위원회에 의해 책정된「ITRON TCP/IP API 사양 Ver. 1.00.01」에 준거해 개발되었습니다. FreeBSD 버전 3.4를 베이스 소프트웨어로서 개발하여 안전성이 높은 임베디드 시스템의 성질을 고려한 TCP/IP 프로토콜 스택입니다.

FreeBSD 를 사용한 것은, 라이센스의 관계도 있습니다만, BSD로 개발된 TCP/IP 프로토콜 스택의 구현이 세계 표준으로서 인식되고 있기 때문입니다. 따라서, FreeBSD를 베이스로 한 TINET의 TCP 제어 알고리즘은, 세계표준인 BSD와 같게 되어 있습니다.

ITRON TCP/IP 사양에서는, 주로 아래를 필요성능으로 하고 있습니다.

  1. 최소 카피 횟수
  2. 동적 메모리 매니저먼트의 배제
  3. 비동기 인터페이스
  4. 각 API 의 에러의 상세화

또한, 아래의 설계를 목표로 하고 있습니다.

  1. 소켓 인터페이스 호환 라이브러리 작성의 용이성
  2. 각 프로토콜의 최적API 정의
  3. 리얼타임 OS와의 적합성
  4. 시스템 구축의 정적인 설정 고려

TINET 는 상기에 올린 성능을 채워, 임베디드 시스템의 제약에서 특히 어렵다는 메모리 용량의 제약에 대응을 우선적으로 하고 있습니다. 그리고, 임베디드 시스템의 네트워크 내에서의 사용 형태를 고려하여 BSD의 프로토콜 스택으로부터 임베디드 시스템의 오버 스펙인 기능을 삭감하였습니다. 이것에 의하여, 구현 타겟으로서 (주)르네상스 테크놀로지의 H8/3069F를 이용했을 경우, TCP/IP 프로토콜 스택에 필요한 메모리 용량은, 스택과 내부 버퍼를 포함해도, IPv4로 RAM이 약 10K바이트, ROM이 약 47K바이트이며, IPv6에서도 RAM이 약 11K바이트, ROM이 약 64K바이트와 경량 메모리성이 뛰어나 과도한 메모리 매니지먼트 기능(가상기억시스템이나 메모리 보호 기능)이나 2차 기억장치를 갖지 않는 임베디드 전용이면서, 폭넓은 응용 프로토콜에 대응하고 있습니다.

아래는 TINET 릴리즈1.5의 기능 개요를 나타냅니다.

  1. API
    • ITRONTCP/IPAPI 사양의 표준기능과 확장기능
    • 잠정적인 ITRONTCP/IP(버젼6)API 사양의 표준기능과 확장기능
  2. TCP
    • BSD의 통신기능
    • 최대 세그먼트 사이즈(MSS) 옵션
    • 소량 Copy API
    • Non-Blocking Call (임베디드 선택가능)
    • Task로부터의 Time Wait 상태의 TCP통신 단점 분리 기능 (임베디드 선택가능)
    • 송수신 윈도우 버퍼의 소량 Copy 기능 (임베디드 선택가능)
    • TCP 헤더의 Trace 출력 기능 (임베디드 선택가능)
  3. UDP
    • Non-Blocking Call (임베디드 선택가능)
  4. 이웃 탐색
    • 이웃 탐색 요청의 송수신
    • 이웃 탐색 통지의 송수신
    • 라우터 통지 메세지의 수신
    • 라우터 요청 메시지의 송신
    • 주소 중복 검출 기능
  5. ICMPv4
    • 에코 요구·응답의 송수신
    • 에러의 송신 (임베디드 선택가능)
    • 방향을 바꾼 메시지의 수신 (임베디드 선택가능)
  6. ICMPv6
    • 에코 요구·응답의 송수신
    • 에러의 송신 (임베디드 선택가능)
    • 방향을 바꾼 메시지의 수신 (임베디드 선택가능)
    • Path MTU
  7. IPv4
    • 정적 경로표
    • IP데이터그램의 분할·재구성 (임베디드 선택가능)
    • IPSEC (임베디드 선택가능, Hook만 구현)
  8. IPv6
    • 주소의 자동 설정
    • 정적 경로표
    • 비PC계 디지털 기기에의 적용을 향한 IPv6 최소 요구 사양의 IPv6 최소 호스트 사양에 준거
    • 확장 헤더의 에러의 통지
    • 단편 헤더 (임베디드 선택가능)
    • 호스트 정보 캐쉬 (임베디드 선택가능)
  9. 기타
    • ARP 요구·응답의 송수신
    • ARP 로의 IPv4주소 중복 검출 기능
    • DHCP 에의 대응
    • SNMP용 관리 정보 베이스(MIB)의 제공

타겟 시스템

TINET는 아래의 타겟 프로세서, 타겟 시스템을 서포트하고 있습니다. GNU 개발 환경을 표준의 소프트웨어 개발환경으로 하고 있습니다. 타겟 프로세서는 H8입니다. H8용 간이 모니터를 여기에서 배포하고 있습니다.

프로세서 타겟 시스템
H8/3048F AKI-H8/3048F(秋月電子通商)
H8/3068F AKI-H8/3068F 넷 대응(秋月電子通商)
H8/3069F AKI-H8/3069F 넷 대응(秋月電子通商)
NKEV-010H8(品川通信計裝サ-ビス)

또한, 아래의 네트워크 인터페이스를 서포트하고 있습니다.

  • 시리얼 (PPP)
  • 루프 백
  • 이더넷 (NE2000호환NIC)(※)

※AKI-H8/3048F에서는 비대응입니다.

개발 스탭

TOPPERS 프로젝트의 멤버로서 TINET의 개발에 참가하고 있는 개발 스탭은 다음과 같습니다. (소속은 참가한 시점)

이름 소속 시기
츠카사 아베(阿部司) 토마코마이 공업고등전문학교 정보공학과 2001년