TCP 패킷의 최소 크기는 얼마입니까?


9

여기에 게시 :

http://blogs.adobe.com/dreamweaver/2011/02/optimal-css-tiled-background-image-size.html

"브라우저가 할 수있는 가장 작은 다운로드는 1K 바이트입니다."

네트워크를 통한 패킷의 최소 크기 때문입니까? 그렇지 않은 경우, 이것이 실제로 사실 인 경우 그 이유는 무엇입니까?


2
혼동을 피하려면 표준 용어를 고집하십시오. "패킷"은 IP 수준 용어입니다. "IP 패킷"이나 "TCP 패킷"도 아니고 "이더넷 패킷"도 아닙니다.
vtest

당신이 인용 한 문장 ( "브라우저에서 할 수있는 가장 작은 다운로드는 1K 바이트입니다.")은 사실이 아닙니다. 최소 다운로드 크기는 없습니다. 그리고 거기에있는 동안 ~이다. 최소 TCP / IP 패킷 크기 (@ DMA57361에 설명되어 있음)는 확실히 1KB가 아닙니다.
Piskvor

답변:


20

패킷 여기에 모호한 용어가 있습니다. 전송할 때 다른 요소를 참조하기 위해 오용되기 때문입니다. 당신의 데이터가 무엇에 싸여 있는지 볼 수 있고, 당신이 의미하는 바를 볼 수 있고, 당신이 원했던 대답을 얻었을 것입니다 :


1 바이트의 데이터를 전송한다고 가정합니다. 1 인터넷을 통해 TCP / IP 모델 .

그만큼 데이터 응용 프로그램 수준에서 시작되며 하위 수준의 머리글에 줄 바꿈하여 전달할 수 있어야합니다.

먼저 데이터가 TCP 세그먼트 이것은 20 바이트의 헤더를 추가합니다 (최소 크기는 21 바이트).
이것은 우리를 수송 수준으로 만든다.

이것은 다음에 래핑됩니다. IP 패킷 , 20 바이트의 다른 헤더를 추가합니다 (최소 크기는 41 바이트).
이제 우리는 인터넷 수준에 있습니다.
이 랩핑은 새 라우터가 데이터를 새 서브넷으로 전달할 때마다 변경됩니다.

이것은 링크로 싸여있다. 사용되는 링크 유형에 따라 사용되는 프레임 유형에 따라 머리글 및 바닥 글 크기가 달라지는 일부 유형의
이것은 링크 수준에 있습니다.
이 배치는 두 엔티티간에 전송 될 때마다 변경됩니다.

마지막으로 물리적 전송 (예 : 케이블, 전파 등의 전기 신호).

다음은 위키 피 디아에서 제공되는 유익한 이미지입니다. TCP / IP 모델 무슨 일이 일어나고 있는지 시각적으로 설명하는 데 도움이되는 페이지 :


Data encapsulation using UDP/IP


Connection via layers in the TCP/IP model


1. 0 바이트를 보낼 수 있을지도 모르지만 체크하지 않은 것 같습니다. 사실 1 바이트가 허용되는지는 확인하지 못했습니다.


4

올바르지 않으므로 다운로드에 필요한 최소 크기는 없습니다. 웹 서버에 작은 파일을 만들고 wireshark를 사용하여 파일을 다운로드 할 때 네트워크 트래픽을 볼 수 있습니다.

표준 이더넷 패킷의 최소 크기는 64 바이트입니다.


3

그것의 얼굴에, 당신이 인용하는 블로그 게시가 잘못되었습니다. HTTP에는 "최소 다운로드 크기"가 없습니다. (그리고 최소한의 패킷 크기에 대한 이론 또한 올바르지 않습니다.)

그러나 이것에 대한 진실이 있습니다. 다운로드하는 파일의 크기가 충분히 작 으면 HTTP 응답 메시지 (파일 및 HTTP 응답 헤더로 구성)가 단일 네트워크 패킷에 적합하다는 것입니다. 이 경우 브라우저는 응답을 보내기 위해 두 개 이상의 패킷을 보낸 경우보다 파일을 빨리 가져올 수 있습니다.

응답에서 하나의 패킷을 사용하면 패킷이 삭제되고 다시 보내야 할 확률이 적어지고 TCP / IP 흐름 제어 창이 패킷 확인을 위해 여분의 왕복 지연을 추가하지 않을 가능성이 커집니다. )

송수신되는 패킷의 최대 크기 (MTU)는 이더넷의 경우 1500 바이트입니다. IP 및 TCP 오버 헤드와 일반적인 HTTP 응답 헤더의 크기를 고려하면 응답의 첫 번째 패킷에 파일 데이터가 1K 남겨 둘 수 있습니다. 따라서 블로거의 논평에서 진실의 곡식.


웹 페이지 및 관련 리소스 (이미지, JS, CSS)가 아닌 해당 이미지 하나만 다운로드한다면 어쨌든 킵 얼라이브와 파이프 라이닝을 사용하므로 TCP 오버 헤드 및 패킷 크기는 훨씬 덜 관련이 있습니다. 당신 이 특별한 경우에 맞습니다 (하나의 이미지 만 다운로드 함). 그러나 그 빈도는 얼마나 자주 발생합니까? 블로거는 각 HTTP 요청이 자체 TCP 연결을 필요로하는 1999 년에 붙어있는 것 같습니다.
Piskvor

1

그것은 당신이 생각하는 것보다 더 나쁩니다.

느린 페이지 로딩은 브라우저가 1x1 픽셀을 800000 번 렌더링하는 데 문제가 있기 때문입니다 (예 : 브라우저 창을 1000x800로 설정). 몇 년 전, 아마도 1999 년에, 나는 16x16을 '가장 빠른'x 타일링을위한 가장 작은 것으로 규정 한 기사를 읽었습니다. 물론 렌더링이 다를 수 있습니다.

블로그 게시물을 읽는다면 실제로 불만은 느린 페이지 로딩에 관한 것입니다. 다운로드 속도가 느리지 않습니다. 흥미로운 토론 이었지만 패킷과 관련이 없습니다.

그래서 아마도 그 질문은 다시 말해야합니다.


이 경우 블로그 게시물을 완전히 오해했을 수도 있습니다. 핵심은 다음과 같습니다. "브라우저에서 수행 할 수있는 가장 작은 다운로드는 1K 바이트 [따라서 이미지 크기를 1K로 조정]입니다. 나는 "... 당신이 1K 바이트를 전송하고 있기 때문에, 당신의 이미지가 50 바이트 밖에 없다"(이것은 명백한 난센스입니다)라고 읽었습니다. 여기에있는 문제는 " size "둘 다 픽셀 크기 바이트 수의 경우, 그들을 모으고. 귀하의 설명은 의미가 있지만 이미지의 바이트 수와 관련이 없습니다 (블로그의 내용과는 반대).
Piskvor

블로그 게시물을 다시 읽은 후, 그는 세 번째 단락이 모순되는 것처럼 코스를 벗어난 것처럼 보입니다.
mockman

당신의 코멘트를 다시 읽은 후에 ... 그의 의도는 오프닝 단락에서 제기 된 문제를 해결하는 것입니다. 그러나 그는 실수로이 문제를 패킷 크기로 간주하고 그 나머지 부분에 패킷을 소비합니다. 내 대답은 느린 페이지 로딩의 이유를 설명했다. 다른 사람들이 지적했듯이, 패킷 특성은 원인이 아닙니다.
mockman
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.