Top

임베디드 네트워킹 [이더넷과 인터넷 구축]

  • 원서명Embedded Ethernet and Internet Complete (ISBN 9781931448000)
  • 지은이Jan Axelson
  • 옮긴이김동혁
  • ISBN : 8989975549
  • 28,000원
  • 2005년 01월 13일 펴냄
  • 페이퍼백 | 500쪽 | 190*250mm
  • 시리즈 : 임베디드 시스템

책 소개

<책소개>

네트워크 기능을 지원하는 소형 디바이스의 디자인과 프로그래밍!!


이 책에서는 임베디드 시스템이 로컬 이더넷 네트워크와 인터넷을 통해 통신할 수 있도록 디자인하고 프로그래밍하는 과정을 소개한다.

- 임베디드 디바이스에 네트워크를 구축하는 데 필요한 하드웨어와 펌웨어를 알아보고 어떻게 동작하는지를 설명한다.
- TCP/IP 계열의 프로토콜을 이용해서 임베디드 디바이스가 로컬 네트워크와 인터넷으로 메시지를 교환하도록 프로그래밍을 할 수 있다.
- 동적으로 실시간 데이터를 보여주고 사용자의 입력에 반응하는 임베디드 웹사이트를 만든다.
- 임베디드 디바이스가 SMTP와 POP3를 이용해 e-메일 메시지를 보내고 받으며, FTP를 이용해 파일을 전송할 수 있게 한다.
- 로컬 네트워크가 인증되지 않은 접근을 차단해 임베디드 디바이스를 보호하는 방법을 알려준다.


또한 각 챕터들은 2개의 섹션으로 이뤄져 있다. 하나는 "가볍게 살펴보기"이고, 다른 하나는 "자세히 살펴보기"이다. 가볍게 살펴보기 섹션에서는 실질적인 정보와 작업에서 곧바로 사용할 수 있는 예제를 수록했다. 자세히 살펴보기 섹션에서는 가볍게 살펴보기 섹션에서 다뤘던 예제에서 사용하는 프로토콜과 테크놀러지에 대해 더 자세히 설명한다.
섹션을 읽는 순서는 독자의 필요와 기호에 따라 달라질 수 있다. 책에서 나열한 순서대로 각 주제들에 대해 차례대로 읽어나갈 수도 있다. 혹은 원하는 주제를 잡고 가볍게 살펴보기 섹션을 먼저 훑어본 후, 자세히 살펴보기 섹션을 참조해도 좋다. 아니면 자세히 살펴보기 섹션을 먼저 읽어 배경 지식을 쌓은 다음, 가볍게 살펴보기 섹션을 읽어봐도 무방하다.

이 책에서는 임베디드 시스템의 네트워크에 어떻게 연관되는지를 중심으로 설명한다. 대기업의 웹사이트에 들어갈 웹페이지를 만드는 것과 제한된 리소스만 있는 디바이스에 홈페이지를 만드는 것은 완전히 다르다. 하지만 소형 시스템을 위한 디자인은 단순히 규모만의 문제는 아니다. 예를 들어, 임베디드 시스템에서 제공하는 웹페이지는 정적이고 변화가 없는 텍스트로 구성된 기본 내용 이상을 제공해야 한다. 즉, 실시간 정보를 제공하는 페이지여야 하며 사용자의 입력도 받을 수 있어야 한다.
소형 디바이스라는 하드웨어와 소프트웨어 제약 사항에도 불구하고, 임베디드 시스템에서 네트워크와 애플리케이션 요구 사항에 충족시키기 위해 필요한 것들을 이 책에서 설명하고 있다. 대부분 작업에 맞는 하드웨어와 소프트웨어 모듈을 사용함으로써 작업을 단순화시키는 방향을 선택하는 경우가 많다.

이 책에서 나온 예제 애플리케이션은 이더넷을 지원하는 두 가지 모듈을 사용한다. 하나는 Dallas Semiconductor에서 나온 TINI 모듈이고, 다른 하나는 Rabbit Semiconductor에서 나온 RabbitCore 모듈이다. 두 가지 모듈 모두 책의 내용을 실습해보는 데 충분한 기능이 있으며, 손쉽게 독자의 프로젝트에 사용할 수 있다. 책에서는 두 가지 모듈에 대한 내용을 모두 수록하고 있다.
TINI 예제에서는 자바 프로그래밍 언어를 사용한다. Rabbit 예제에서는 Rabbit Semiconductor에서 임베디드 시스템용으로 구현한 C 프로그래밍 언어인 Dynamic C를 사용한다. 이 책에 나온 모든 애플리케이션은 TINI와 RabbitCore 두 가지 버전으로 수록돼 있다. 그리고 여러 프로젝트에서 사용할 수 있는 다른 컴포넌트에 대한 설명도 빼놓지 않았다.


★ 누가 이 책을 읽어야 하는가? ★

이 책은 네트워크를 지원하는 임베디드 시스템을 디자인하고, 프로그래밍하고자 하는 이들을 위한 것이다. 이 책에서 나오는 질문들은 다음과 같다.

▶ 임베디드 시스템으로 이더넷을 사용하는 장점과 한계는 무엇인가? 이더넷이 독자의 프로젝트에 적당한 테크놀러지인지 생각해보라.
▶ 임베디드 시스템을 이더넷 네트워크에 연결하려 할 때 사용할 수 있는 하드웨어와 프로그램 코드는 어떤 것이 있는가? 이더넷을 지원하는 임베디드 컨트롤러에 대한 옵션은 다양하다. 네트워크를 지원하는 하드웨어와 소프트웨어를 지원하는 모듈을 구입하는 것부터 직접 독자가 구현하는 것까지 다양하다. 이 책은 독자의 시스템에 맞는 컴포넌트를 선택하는 데 도움을 줄 것이다.
▶ 어떻게 네트워크를 구축하는가? 이더넷을 지원하는 디바이스라고 하더라도 네트워크에 연결돼 있지 않다면 통신을 할 수 없다. 네트워크 케이블과 허브를 선택하는 방법과 이것들을 이용해서 이더넷 네트워크를 구축하는 방법을 찾아보라.
▶ 개발한 디바이스 혹은 네트워크를 어떻게 인터넷에 연결할 수 있는가? 인터넷 연결은 디바이스가 인터넷의 모든 곳에 도달할 수 있도록 디바이스의 접근 영역을 확장해준다. 독자의 디바이스를 인터넷에 연결하는 방법을 찾아보고, 독자의 디바이스가 필요한 통신을 할 수 있도록 네트워크 설정이 제대로 됐는지 살펴보라.
▶ 어떻게 하면 독자의 디바이스가 로컬 네트워크나 인터넷을 통해서 메시지를 주고 받을 수 있는가? 인터넷과 로컬 네트워크에서는 TCP/IP의 각종 프로토콜과 인터넷 프로토콜을 이용해서 다양한 종류의 메시지를 주고 받는다. 이 책에서는 임베디드 시스템에서 메시지를 교환하는 데 사용할 수 있는 프로토콜에 대해 설명한다.
▶ 어떻게 하면 임베디드 시스템에서 웹사이트를 호스팅할 수 있는가? 매우 간단한 임베디드 시스템이라고 할지라도, 다른 컴퓨터가 웹페이지를 요청할 때 이에 응답할 수 있는 웹서버로 동작할 수 있다. 웹서버로 동작하는 데 무엇이 필요한지 찾아보고, 디바이스에서 제공할 수 있는 페이지를 어떻게 생성할 수 있는지 살펴보라.
▶ 어떻게 하면 독자의 웹서버의 페이지에 동적이고 실시간적인 내용을 추가하고 사용자의 입력에 반응하게 할 수 있는가? 이 책에서는 사용자의 입력에 반응하거나 최신 정보를 출력하게 하는 방법을 알려줄 것이다.
▶ 어떻게 임베디드 시스템에서 e-메일을 주고 받거나, FTP 서버와 파일을 교환하고, 다른 컴퓨터에서 접속할 수 있는 FTP 서버를 호스팅할 수 있는가? 이 책에는 각 애플리케이션에 대한 예제가 수록돼 있다.
▶ 어떻게 하면 디바이스에 저장된 프로그램과 다른 정보를 인터넷 상에서 안전하게 보호할 수 있는가? 보안 기법을 적절히 사용함으로써 인증받지 못한 사용자가 디바이스의 설정 내용을 변경하거나 보호된 내용을 볼 수 없도록 막을 수 있다. 또한 보안 기법은 부주의나 사고나 실수로 인해 발생할 수 있는 문제를 막는 데도 도움을 준다. 독자의 디바이스와 로컬 네트워크를 보호하고 제대로 동작하게 하기 위해서 무엇이 필요한지 찾아보라.

이 책은 독자들이 임베디드 시스템에 필요한 디지털 회로 디자인과 마이크로컨트롤러 혹은 마이크로프로세서 프로그래밍에 대해 이미 기본 지식이 있다고 가정한다.

저자/역자 소개

<저자 소개>

Jan Axelson : USB Complete / Serial Port Complete / Parallel Port Complete 저


<역자 소개>

김동혁
smallvug@hananet.net

서울대학교 컴퓨터공학부에 재학 중이며 한국MDS에서 만든 순수 국산 RTOS인 Velos 개발에도 참여했다. .NET과 객체지향 프로그래밍 등 여러 분야의 책을 저술한 바 있다.


<역자서문>

요즘처럼 임베디드라는 용어가 인기를 누린 적은 없었던 것 같다. 유비쿼터스라는 용어와 함께 이제 모든 임베디드 디바이스에 네트워크 기능이 들어가는 것은 거의 필수처럼 보인다. 그리고 임베디드 네트워크 기능을 수월하게 탑재하기 위해서 OS를 사용하는 것을 부담스럽게 생각하지도 않으며, 심지어 Windows CE .NET과 같은 OS에는 소규모의 HTTP 서버도 올라가 있을 정도다.

네트워크 기능의 필요성이 점점 커지면서, 개발자들의 전문지식도 절실한 상태이다. 하지만 네트워크라는 기능이 포함된 하드웨어와 소프트웨어 지식의 방대함에 어려움을 겪는 사람들이 많은 것 같다. 임베디드 디바이스를 개발하기 위해 어떤 하드웨어를 사용해야 하는지, 그 디바이스가 들어있는 네트워크를 어떤 식으로 구성할 수 있는지, 네트워크를 구성하는 데 어떤 종류의 장비와 케이블을 쓸 수 있는지와 같은 하드웨어적인 내용을 먼저 이해하고 있어야 한다. 그리고 이렇게 마련된 하드웨어 기반 위에 어떤 종류의 프로토콜을 사용할 것인지, 만약 HTTP나 FTP 혹은 SMTP처럼 잘 정의된 프로토콜을 사용할 경우라면 어떤 종류의 애플리케이션을 사용할 수 있는지 등의 소프트웨어적인 문제 또한 해결해야 한다.

임베디드라는 것이 하드웨어와 소프트웨어를 망라하고 있는 분야이기 때문에, 임베디드 네트워크를 공부하려는 독자들은 보통 하드웨어에 대한 서적 따로, 소프트웨어에 대한 서적을 따로 구입해서 보는 경우가 많다. 하지만 하드웨어와 소프트웨어에 대한 각각의 지식뿐만 아니라, 둘의 경계 지점에서 어떤 원리를 통해서 서로 통신하고 상호 작용하는지에 대한 이해가 더 중요하다. 바로 [임베디드 네트워킹-이더넷과 인터넷 구축]은 이 경계 지점에서 가장 이해하기 쉽게 종합적으로 설명하고 있는 책이다. 특히 실제로 보면서 따라할 수 있는 구체적인 소스코드까지 제공하기 때문에, 임베디드 디바이스에 네트워크 기능을 지원하려는 독자들에게 더할 나위 없이 좋다.

이번 책 번역에 많은 분들이 도움을 주셨다. 긴 번역 기간 동안 인내심을 갖고 지원해 주신 에이콘출판사의 여러분들에게 먼저 감사의 말씀을 드린다. 그리고 옆에서 따뜻한 성원을 보내준 연지와 부모님께도 고마움을 전한다. 이 책이 임베디드 네트워크에 대한 지식을 깊이 하려는 독자들에게 도움이 됐으면 하는 바람이다.

목차

목차
  • 1장 네트워킹 기본 지식
    • 가볍게 살펴보기: 네트워크의 구성 요소
      • 컴포넌트
      • 모듈 별 디자인
      • 네트워크 프로토콜 스택
      • 클라이언트와 서버
      • 인터넷 통신의 요구 사항
      • 웹 서버에 대해서
    • 자세히 살펴보기: 이더넷 내부
      • 장점
      • 한계
      • PC로 네트워크 통신
      • IEEE 802.3 표준
      • 프레임
      • 미디어 접근 제어: 언제 전송할지 결정하기
      • 물리적인 주소
      • 프로토콜 분석기를 이용해서 이더넷 트래픽 살펴보기
  • 2장 네트워크 구축: 하드웨어 옵션
    • 가볍게 살펴보기: PC 연결
      • 컴포넌트와 설정
      • 다른 옵션
    • 자세히 알아보기: 케이블, 연결과 네트워크 속도
      • 용도에 따른 케이블 종류
      • 연선 케이블
      • 광섬유 케이블
      • 동축 케이블
      • 열악한 환경에서의 연결
      • 전력 공급
      • 무선으로 가기
      • 미디어 시스템
      • 이더넷 컨트롤러와 인터페이싱
      • 리피터 허브, 이더넷 스위치 그리고 라우터 사용
  • 3장 디자인 선택
    • 가볍게 살펴보기: 컴포넌트 선택
      • 완벽한 솔루션
      • 특수 목적 모듈
    • 자세히 살펴보기: 이더넷 컨트롤러
      • 하드웨어는 무엇을 하는가?
      • 이더넷 컨트롤러 기본 지식
      • ASIX AX88796
      • Realtek RTL8019AS
      • SMSC LAN91C96
      • Cirrus Logic CS8900A
  • 4장 인터넷 프로토콜을 이용한 로컬 통신과 인터넷 통신
    • 가볍게 살펴보기: 인터넷에 연결하기
      • 인터넷에 연결하는 방법 고민하기
      • 연결 방법에 대한 테크놀러지
      • 고정 IP 주소와 유동 IP 주소
      • 여러 컴퓨터를 인터넷에 연결
      • 방화벽을 통해서 통신
      • 도메인 네임 얻어서 사용
    • 자세히 살펴보기: 인터넷 프로토콜의 내부
      • IP는 무슨 일을 하는가
      • IP 주소
      • IP 헤더
      • 호스트에 IP 주소 할당
      • IP 주소에 맞는 이더넷 인터페이스 찾기
      • 데이터그램이 어떻게 목적지까지 찾아가는가
      • 인터넷 제어 메시지 프로토콜 / ICMP
  • 5장 UDP와 TCP를 이용해서 메시지 주고받기
    • 가볍게 살펴보기: 통신 기본 지식
      • 네트워크 통신을 할 수 있도록 디바이스 설정하기
      • UDP 데이터그램 전송
      • UDP 데이터그램 받기
      • TCP를 이용해서 메시지 주고받기
      • PC 애플리케이션에서의 UDP와 TCP
    • 자세히 살펴보기: UDP와 TCP의 내부 동작
      • 소켓과 포트에 대해서
      • UDP: 기본 지식
      • TCP: 핸드쉐이크와 흐름 제어 추가
  • 6장 동적 데이터로 웹 페이지 보여주기
    • 가볍게 살펴보기: 두 가지 접근 방법
      • 동적 데이터로 된 페이지 제공
      • Rabbit 실시간 웹 페이지
      • TINI 실시간 웹 페이지
    • 자세히 살펴보기: 웹 페이지를 제공하는 프로토콜
      • HTTP 사용
      • HTTP 버전
      • HTTP 메시지의 구성 요소
      • HTML에 대해서
      • SSI 지시어
  • 7장 사용자의 입력에 반응하는 웹 페이지 만들기
    • 가볍게 살펴보기: 디바이스 컨트롤러
      • 디바이스 컨트롤러의 웹 페이지
      • Rabbit 디바이스 컨트롤러
      • TINI 디바이스 컨트롤러
    • 자세히 살펴보기: CGI와 서블릿 사용하기
      • 임베디드 시스템을 위한 CGI
      • 임베디드 시스템을 위한 서블릿
      • 폼 데이터 받기
  • 8장 임베디드 시스템을 위한 이메일
    • 가볍게 살펴보기: 메시지 주고 받기
      • Rabbit에서 e-메일 전송
      • TINI에서 e-메일 전송
      • Rabbit에서 e-메일 받기
      • TINI에서 e-메일 받기
    • 자세히 살펴보기 : e-메일 프로토콜들
      • e-메일 동작 원리
      • SMTP 사용하기
      • URL로 e-메일 전송하기
      • POP 사용
  • 9장 파일 전송 프로토콜 사용
    • 가볍게 살펴보기: FTP 클라이언트와 서버
      • Rabbit FTP 클라이언트
      • TINI FTP 클라이언트
      • Rabbit FTP 서버
      • TINI FTP 서버 4
    • 자세히 살펴보기: 파일 전송 프로토콜의 내부
      • 요구사항
      • 파일전송
      • 명령어
      • URL로 파일 요청하기
  • 10장 네트워크 보안과 독자의 디바이스 보호
    • 가볍게 살펴보기: 암호로 접근 제한하기
      • 기본 인증 사용하기
      • Rabbit에서 구현한 기본 인증
      • TINI에서 구현한 기본 인증
    • 자세히 살펴보기: 독자의 디바이스와 로컬 네트워크 보안을 위한 네 가지 규칙
      • 방화벽 사용
      • 사용자명과 암호를 이용해서 접근 제한
      • 사용자 데이터 유효성 검증

도서 오류 신고

도서 오류 신고

에이콘출판사에 관심을 가져 주셔서 고맙습니다. 도서의 오탈자 정보를 알려주시면 다음 개정판 인쇄 시 반영하겠습니다.

오탈자 정보는 다음과 같이 입력해 주시면 됩니다.

(예시) p.100 아래에서 3행 : '몇일'동안 -> 며칠동안