티스토리 뷰
--------------------------------------------------------------------------------
소켓에서의 적정 전송량 이라는 부분에 대해 설명 부탁합니다.
참고한 글 : TCP SOCKET 에서 적정 전송량은?...
http://bbs.kldp.org/viewtopic.php?t=23760&highlight=tcp
>1024가 좋습니다.
>보통 패킷사이즈를 정할때는 MTU ,즉, 하드웨어가 한번에 보낼수 있는 최대 크기,
>를 참고하게 됩니다. Ethernet의 경우 1500바이트이고, TCP헤더, IP헤더, Ethernet헤더등을 고려하면 1024가 정답이 되는 경우가 많습니다.
>MTU보다 커지거나, 너무 작으면, 자르거나 붙여야 하는 오버헤드가 생기는데,
>이를 최소화한다는 생각이 보통은 그 기준이 됩니다
위에 참고한 글이 잘 이해가 안되서 그럽니다.
응용계층에서 보내는 데이터는 크기에 상관없이 버퍼링되고
패킷을 만든는것은 ip 레이어의 일 아닌가요?
버퍼에서 MSS 만큼 꺼내서 사용되는게 아닌가요?
프로그래머가 저렇게 크기를 지정해줘야 하나요?
미리 감사드립니다.
.. 언제쯤 고수가 될까나
위로
흑기사
expert
가입: 2003년 2월 20일
올린 글: 315
위치: 비밀숙소
올려짐: 2003년10월21일 8:54주제:
--------------------------------------------------------------------------------
어플리케이션 간에 전송하는데는 아무 문제 없지만,
패킷 분할, 합성 과정에서 OS 네트웍 처리부나 드라이버쪽에서 오버헤드가 걸리죠.
거기다 작은 패킷 여러개보다 큰 패킷 하나가 효율적이죠. 작은 패킷은 패킷마다
전부다 헤더가 붙어야 되니까. 물론 꼭 적은양의 데이터를 보내야 할 때는 어쩔
수 없지만, 큰 패킷 보낼때는 가급적이면 거기에 맞춰주라는
_________________
Written By the Black Knight
위로
김대원
novice
가입: 2003년 10월 20일
올린 글: 7
올려짐: 2003년10월21일 20:37주제:
--------------------------------------------------------------------------------
답변주셔서 고맙습니다~
답해주신 내용을 아직도 이해를 못해서 요리저리 찾다가
이렇게 늦었네요;;
그렇다고 답을 얻은것도 아닙니다. -_-;;
제가 아직 네트웍 i/o 처리부에 대해 개념을 못잡고
있는게 아닌가 합니다.
- tcp 에서의 윈도우크기 : 요것도 버퍼(send/rec 용 두개)
- 소켓에서의 버퍼 : 요것도 버퍼
개념을 좀 잡고 다시 질문을 올려야 곘네요 ㅜ.ㅜ
위로
bw001730
user
가입: 2003년 3월 27일
올린 글: 21
올려짐: 2003년10월22일 1:05주제:
--------------------------------------------------------------------------------
생각해볼만한 내용으로는 두가지로 생각됩니다.
1. 애플리케이션 상의 버퍼
즉, 우리가 char buf[1024] ;
이런식으로 소켓 프로그래밍에 코딩하는거
2. 소켓의 송수신 버퍼, 커널의 버퍼입니다.
참고:
윈도우는 소켓의 송수신 버퍼에서 한마디로
여유 공간의 크기를 의미합니다.
송신윈도우 - 현재 내가 보낼수 있는 최대량(송신버퍼의 여유공간)
수신윈도우 - 현재 내가 수신할 수 있는 최대량 (수신버퍼의 여유공간)
참고로 한번에 내가 수신할 수 있는 최대 크기는
상대가 보낼수 있는 최대크기와 내가 수신할 수 있는 최대 크기중에서
더 작은 것이 선택됩니다.
송신할수 잇는 최대크기는
내가 송신할 수 있는 최대크기와 상대가 수신할 수 있는 최대크기중
더 작은것이 선택됩니다.
내가 많이 전송할 수 잇어도 상대가 수신버퍼가 부족해 수신못하면
안되니깐요
대충 이렇다네요..
위로
김대원
novice
가입: 2003년 10월 20일
올린 글: 7
올려짐: 2003년10월22일 15:30주제:
--------------------------------------------------------------------------------
bw001730 님
답변 고맙습니다~
검색끝에 얻어낸 결과는 넘 충격(?) -_-;;
적이라 저 부분을 이해하기위해
어디서부터 손대야 할지 정말이지 난감하군요 ㅡㅜ
아래주소에 따르면
응용 -> 소켓 -> tcp -> 드라이버
요렇게 모든것이 영향을 준다는군요 ㅡㅜ
http://www-903.ibm.com/kr/techinfo/pseries/aixnl126.html
음 -_-;; 어려군요
'program' 카테고리의 다른 글
java.security.InvalidAlgorithmParameterException 에러 발생시 (0) | 2016.11.02 |
---|---|
aws tomcat java timezone 오류 (0) | 2016.10.15 |
[Linux] Select and Poll (0) | 2015.10.14 |
linux 에서 gcc,g++,glibc 설치하기 (0) | 2015.10.14 |
모바일웹에서 App 실행 및 설치여부 확인 (1) | 2015.05.18 |