sk_buff 의 수신 사이즈가 실제 패킷 사이즈와 차이점?

익명 사용자의 이미지

안녕하세요

sk_buff를 분석하던중 질문이 있습니다.

보통 패킷 캡쳐 프로그램 한번 수신 패킷당 사이즈 1500 -> 헤더사이즈 40 제외 실제 한번 수신시 최대 데이타 사이즈는 1460 이기에

실제 sk_buff로 수신되는것도 1500사이즈 고정일 것이라 생각 하였는데

확인해보니 여러 패킷 스트림이 모여서 수신 되는것 같더라구요

1. 실제 리눅스 커널의 패킷 수신은 어플리케이션단에서 캡쳐하는 패킷스트림과 짤리는(?) 사이즈의 크기가 다른가요?

2. 총 3만 바이트의 데이타 스트림을 수신할때 sk_buff->len 의 사이즈가 5000정되 되는 사이즈가 있었는데 ,
그렇다면 동일한 헤더로 데이타 스트림만 짤리어서 어플리케이션단에서 수신되는건가요?

len 만큼 각각 데이타를 확인 해보았을때 0 값이 무수히 많이 들어 가있더라구요 실제 데이타들 사이에.. 이 값들의 의미는 무엇인가요?

도움 부탁드립니다.

익명 사용자의 이미지

생각나는대로 씁니다.

1.실제 데이타수신되는 패킷 전체에 대한 전권은 커널이 갖고 있는게 아니고 장치 드라이버가
갖고 있습니다.따라서 사이즈의 최대 크기,DMA를 이용한 버퍼 메모리주소,이에대한 포인터 할당,기타 장치내재된 특별한 하드웨어적 루틴 수행(있다면),,,여기까지가 대충 드라이버가 하는일이고 그 다음이 커널이 되겠죠
이더넷 같은 경우 MTU 1500 이 보통 됩니다만 이것보다 큰게 있다면 점보프레임이 가능한 장치드라이버겠죠

2.rx_ring 버퍼(커널에 따라 다릅니다만 위 1번 버퍼가 이거라고 보시면 됩니다.)는 장치드라이버가 자른 매 패킷마다 1개씩 생기고
이것은 매 패킷마다 새롭게 완전한 헤드+데이타를 갖고 있어야 한다는 뜻입니다.
sk_buff 도 링버퍼의 포인터를 그대로 참조하므로 실제 데이타는 위 1번의 버퍼에 그대로 있습니다.
제가 말씀드릴 수 있는건 여기까지고 지금당장
왜 길이가 5000 인 데이타가 1번 버퍼에 있느냐.......000000 가 많은데 뭐냐....
이건 모르겠습니다.

익명 사용자의 이미지

fragment

댓글 달기

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