랜카드에 대해서 궁금한데요..

buildkdom의 이미지

왜 eDonkey 같은 프로그램 보면
내가 받는 데이터하고, 내가 보내는 데이터가
분명하게 위칸, 아래칸으로 나뉘어져 윈도우 화면에 나타납니다.

그럼 크게 보아 동시에 2개 이상의 방향으로 정보의 흐름이 가능하잖아요??
(들어오는 방향, 나가는 방향.. 이런식으로 해서요. )

첫째 질문인데요, 랜카드 입장에서, 동시에 데이터를 보내고, 데이터를 받는건가요??
아니면 조금 받고, 조금 보내고를 계속 반복하는 건가요??
랜카드.. 참 신기한 녀석 같습니다.

둘째 질문은.. eDonkey 같은 프로그램을 만들 때
랜카드를 통해서 오고 가는 데이터의 흐름을 잘 관리해야 할 텐데..
이런거 만드는 분들은 도대체 뭘 공부하셨길래 이런걸 만드실 수 있는건가요??

혹시 소켓 프로그래밍이 이런거하고 관련이 있나요?

뭐 아는게 없습니다;;

galadriel의 이미지

우선 결론부터 말하면 몰라도 상관없습니다.-_-;;;

첫번째 질문은 모두 패킷단위로 움직이기 때문에 상관없습니다(패킷 여러개가 순식간에 와서 흐름처럼 보이는것입니다. 영화필름과 같은원리라고 보셔도 되구요.). LAN은CSMA/CD 방식을 사용합니다. 우선 전송되는 데이터가 있는지 확인한뒤 없으면 전송하게 됩니다. 만약 동시에 전송이 일어난다면 랜덤하게 기다렸다가 다시전송하는 방식입니다. 이부분은 LAN의 전송규약에 의해서 일어나기 때문에 프로그래머는 알 필요가 없습니다.

두번째 질문도 마찬가지로 흐름은 LAN에서 알아서 관리합니다. 두개의 LAN카드에서 동시에 전송하게 되서 충돌 일어나면 랜덤하게 나중에 전송하구요. 만약 LAN의 bandwidth가 꽉 채워져서 packet 손실이 일어난다면 알아서 tcp 레벨의 흐름제어가 일어나게 되겠지요. 패킷 손실이 일어나면 일반적으로 전송속도를 반으로 줄여버리게 됩니다.
(packet loss는 온라인 게임하는데 치명적이더군요. 1분에 하나만 나도 왕짜증!)

아무튼 프로그래머는 별로 신경 안써도 되는부분입니다.

galadriel in the tower of elves

qufdl113의 이미지

먼저 프로그래머 입장에서는 윗분 말씀처럼 랜카드가 하는일에대해서 신경 쓰지 않으셔도 됩니다.
파일 공유프로그래밍을 하시려면, OSI 7계층에 대해서 간단히 보시고, 네트워크 프로그래밍관련 정보를 찾으시면서 소켓프로그래밍 연습을 하시면 됩니다.

sjang의 이미지

소켓프로그래밍을 조금만 해 보시면 신경 쓰지 않아도 알아서 잘 해준다는 것을 알 수 있지요.

보내고 받는 것에 대한 관리는 소켓 API를 사용할 때 리턴값으로
다 할 수 있습니다.

The Future !!!

buildkdom의 이미지

답변에 많은 감사드립니다.

인사가 늦었군요 ^^;;

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.