네트워크 드라이버 및 커널 인터페이스..

eou4의 이미지

안녕하세요.

네트워크 초보입니다. 좀 질문이 이상해도 이해해주십시오;

일반적으로 TCP/IP에서 소켓이 아주 많이 생성될 수 있는 것으로 압니다.(정확한 숫자는 모르지만...)

근데 하드웨어 TCP/IP 칩이 있습니다. 채널이 제한적입니다.

이럴경우 디바이스 드라이버를 만든다면.. 네트워크 드라이버로 만들어야하는지.. 커널 네트워크 인터페이스가 잘 될런지...호환이 가능한지... 모르겠습니다.

머릿속도 명확하지않고 질문도 명확치않아 질문올리기가 뭐하지만 올려봅니다.

답변 부탁드립니다~~

hie의 이미지

먼저 일반적인 데스크탑을 생각해 봅시다. 이 경우 NIC가 있고
해당 NIC을 제어하는 DD가 있습니다. 다 아시는 이야기겠지만
DD는 수신된 데이터를 상위 스텍으로 넘겨주는 역활을 합니다.

만약 H/W TCP/IP 칩을 사용한다면 이 모든 과정을 H/W가 처리하겠죠.
따라서 이 경우 DD의 역활은 해당 칩의 제어를 담당하면 됩니다.

커널의 TCP/IP와는 별개입니다.

참고로 해당 칩의 설정 그리고 칩으로부터 User Land로 데이터를
보내기 위한 방법은 칩의 메뉴얼을 *반드시* 참조하여 구현해야 합니다.

eou4의 이미지

답변 감사드립니다.
그렇다면 기존에 네트워크 관련 어플리케이션과는 호환이 안되는것인지요?
돼게 하려면 커널 해킹이 필요한 것인지.. 궁금합니다...
(인터넷으로 검색하기가 어렵던데.. 네트워크와 커널이 어떻게 연관돼어있는지.. 참고할만한 책이나 사이트를 아시면 좀 알려주셔요~)

ㅎㅁㅎ

hie의 이미지


그렇다면 기존에 네트워크 관련 어플리케이션과는 호환이 안되는것인지요?
돼게 하려면 커널 해킹이 필요한 것인지.. 궁금합니다...

UDP port 8888을 사용하는 데몬을 만들었다고 가정해 봅시다.
이 경우 칩으로 수신된 패킷중 UDP 8888 패킷을 User Land로 보내 줘야
원래 의도한 작업을 수행할 수 있지요. 그렇다면 누가 이것을 보내 줄까요?? 커널이??
아닙니다. 해당 칩에서 보내 줘야 합니다. 실제로 앞서 말한 DD에
이러한 부분이 있어야 합니다. 일반적으로 칩 벤더에서 이러한 DD를
제공하는데 확인해 보시기 바랍니다. 물론 대부분 초기 버전은 오류가
많으니 많은 삽질이 필요합니다.

칩의 User's Guide 혹은 Programmer's Guide를 잘 읽어 보시면
반드시 이러한 내용이 있을 것입니다.

참고로 하드웨어에 대한 지식이 있으면 큰 도움이 됩니다.

(인터넷으로 검색하기가 어렵던데.. 네트워크와 커널이 어떻게 연관돼어있는지.. 
참고할만한 책이나 사이트를 아시면 좀 알려주셔요~)

칩과 네트워크 관련 커널의 관계라는 관점에서 보면,
제 경험으로는 벤더에서 제공하는 문서를 정독하는 것을 추천합니다.

다시한번 이야기하지만 칩에 내장된 TCP/IP와 커널의 TCP/IP는 별개입니다.
물론 주된 기능은 동일하겠지요.

hie의 이미지

제가 2번의 답글을 달았는데.. 전제는 사용하시는 칩이
가속기( ex. IPSec 가속기 )등이 아니라는 것을 전제로 합니다.

미리 이야기를 했어야 하는데.. ㅡ.ㅡ.;
오해 없으시길 바랍니다..

eou4의 이미지

아.. 그렇다면 커널의 TCP/IP대신 이 칩의 TCP/IP를 쓰고 다른 기존 네트워크 어플과 호환이 되게 할 수는 없나요? 이게 궁금합니다.. 가능한지... 뭐부터 봐야하는지;;

ㅎㅁㅎ

hie의 이미지

이에 대한 대답은 벌써 했습니다.

칩에 대한 메뉴얼이 없어 정확한 대답은 하지 못하겠습니다.
제가 예전에 사용했던 칩은 가능했었습니다. 그렇다고 해서
사용하시는 칩에서도 가능하다고는 보장할 수는 없습니다.

먼저 칩 메뉴얼을 정독하시기 바랍니다. 아니면 칩 벤더에
질의를 해 보세요.

eou4의 이미지

답변 감사드립니다~

ㅎㅁㅎ

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.