recv함수는 버퍼에 받아 논것을 보내주는 거죠?

lkjt의 이미지

recv함수는 버퍼에 받아 논것을 보내주는 거죠?

즉, 잘라가면서 찾거나, 한꺼번에 받아서 찾거나

속도는 마찬가지이죠???

sylphong의 이미지

버퍼에서 가져오는건 맞습니다..하지만 recv할때 유저모드에서 커널모드로 context switching을 하기때문에 오버헤드가 생깁니다..따라서 1바이트씩 가져와서 처리하는거보다 한꺼번에 가져와서 처리하는게 빠릅니다..

lkjt의 이미지

아, 제가 말하는 속도는

인터넷 속도 엿습니다.

그런데 서버에게

100줄 부터

200줄 까지만 보내주세요

이런식으로 보내는 방법은 없나요???

RFC에서 찾아볼땐 없는거 같네요, (제가 못찾은건가요?)

lkjt의 이미지

그리고,,또,,

인터넷 소스 가져오는것은 멀티 쓰레드를 사용해서 처리하는게 더 빠를까요?

mastercho의 이미지

likesylph wrote:
버퍼에서 가져오는건 맞습니다..하지만 recv할때 유저모드에서 커널모드로 context switching을 하기때문에 오버헤드가 생깁니다..따라서 1바이트씩 가져와서 처리하는거보다 한꺼번에 가져와서 처리하는게 빠릅니다..

커널 모드로 내려가는것이 반드시 context switching를 유발한다고는
보이지 않습니다

왜냐면 예전에 테스트를 해보았습니다 -_-;

context switching는 페이지 폴트가 나면 나는것이지

recv함수를 호출한다고 발생되는건 아닌거 같더군요

단 커널 모드로 내려갈때는 오버헤드가 큰건 사실인거 같습니다

참고로 리눅스에서 테스트 해보았습니다

승자는 자기보다 우월한 사람을 보면 존경심을 갖고 그로부터 배울 점을 찾지만 패자는 자기보다 우월한 사람을 만나면 질투심을 갖고 어디 구멍난 곳이 없는지 찾는다.
- 하비스

bugiii의 이미지

lkjt님의 질문은 항상 생각하게 만드는군요. 조금 더 자세하게 상황과 의문점을 제시하시는 것이 좋은 답변을 유도하는 방법이라고 생각합니다.

sunge의 이미지

서버에게 100줄부터 200줄까지 보내달라는건 네트웍쪽하고는 상관 없는 서버에서 처리해줄 부분이니 처리하는 부분을 직접 만들어 주셔야죠 -_-a;;

Simple is best, all of the time...
저거 맞나...

lovemyin의 이미지

클라이언트에서 서버에게 데이터를 받을 때 데이터를 나누어서 받느냐 한번에 받느냐 문제를 말하는 듯 해서 답을 합니다.
우선 TCP/IP 통신을 하는 과정에서 데이터를 주고 받을때 가장 권장하는 데이터 크기는 MTU보다 작은 양입니다.
약 1500 바이트이지요...
그 크기에 맞춰서 데이터를 보내시면 될 듯 합니다.
그건 당연히 프로그래머가 해야할 일이구요...^^

/***************************************************
* 가장 심플한 것이 가장 아름다운 것이다.
***************************************************/

댓글 달기

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