태터데스크 관리자

도움말
닫기
적용하기   첫페이지 만들기

태터데스크 메시지

저장하였습니다.
 

 
블로그 이미지
[www.netrain.co.kr]에서 네트워크/보안을 공부하시는 분들을 위해 서비스를 제공하는 블로그입니다 승진아빠
Follow silpir  on Twitter


Window size [윈도우 사이즈]의 개념

네트워크 기초 | 2010.04.21 13:10 | Posted by 승진아빠


금주는 너무 정신이 없어서 화, 목, 토요일에만 메일링이 나갈 예정이라고 지난주에 메일을 보내드렸는데 약 30%가 전달이 안되었더군요. 제목에 [공지사항]이라고 써서 Filtering이 되었나 봅니다. ^^

어제 저녁은 피곤한 상태에서 2시에 퇴근하면서 맥주 캔 하나를 마셨더니, 정신이 오락가락 하더군요. 그래서, 메일링 작성을 못했습니다.

아! 시험센터 금주에 홈페이지에 '시험센터 바로가기'를 추가해서 차주부터 진행할 예정입니다. 현재는 VUE 시험센터만 운영되며, 프로메트릭은 추후에 제공될 계획에 있습니다. 저녁 9시에도 시험칠 수 있는 시험센터, 주말에도 시험칠 수 있는 시험센터를 만들도록 하겠습니다.

항상 프로젝트 마무리단계에서는 정신이 없죠! 하루에도 추가로 요청하는 자료가 막 쏟아집니다. 고객이 원하시는거냐구요? 아니요... 고객이 어떤 자료를 원하실지 모르니 프로젝트 PM이 요구하는 겁니다. 고객이 요구한 후에 문서가 만들어지면 프로답지 않잖아요. 고객이 요청했을 때, 그러실줄 알고 이미 만들어 두었습니다.... 얼마나 프로페셔널해 보이나요! 그래서, 정신이 없어요. ^^

요즘 11시간 강의하고 새벽에 프로젝트 보고서를 만들고 있는데, 오늘 강의하다가 다리에 쥐가 나서 휘청~ 얼마나 창피하던지.... 차라리 쓰러질걸 그랬어요. 그러면 조금 더 멋졌을지 모르는데...

오늘은 TCP에서 Window size라는 것에 대해서 학습해 보도록 하겠습니다. 직역하면 [창문 크기]라는군요. 원리는 간단합니다. Window size는 한번에 받을 수 있는 데이터의 양이랍니다. 통신을 할 때 상대방에게 자신의 Windows size를 알려주면, 상대방은 그만큼의 양을 한번에 전송을 하고 상대방이 다 처리했는지 확인 후에 다음 데이터를 전송하는 것이지요. 쉽죠?

TCP Header에 Window size라는 Field가 있는데, 전체 16bit로 되어 있습니다. 즉 2^16까지 표시할 수 있고 단위는 Byte가 됩니다. 65535byte가 최대 표시할 수 있는 용량이겠군요. 즉, Window size의 최대 크기는 64Kbyte가 된다고 생각하시면 됩니다.

하지만, 요즘 1Gbps, 10Gbps 속도가 향상되고 있고, 전송할 데이터의 양도 많아지고 있죠! 그래서, 이 최대값을 변경할 수 있도록 만들었습니다. 그렇다고 TCP Header는 Fixed Header를 가지고 있기 때문에 16bit를 변경할 수 없습니다. 그럼 어떻게 Window size를 변경할 수 있을까요? 뒤의 자리는 무시해 버리는 방식을 사용합니다. 예를 들어 16bit 중 마지막 1bit를 무시한다고 하면 bit를 하나씩 shift 시켜서 2^17 까지 표시할 수 있겠죠.

하지만, 아직까지는 64Kbyte가 최대값이라고 생각하시는게 좋습니다. 그게 기본이니까요.

Default Window size는 시스템마다 다른데 Window Server 2003 같은 경우는 1Mbps 보다 저속에서는 8K, 1-100Mbps에서는 17K, 100Mbps 이상에서는 64K의 Window size를 사용합니다. 물론 1Gbps 이상이 되면 shift를 시켜 더 크게 만들고요.

기억하여야 하는 것은 TCP Header에 들어있는 Window size는 데이터를 받는 PC의 Window size라는 겁니다.  상대방은 그 정보를 보고 나서 Window size만큼 한번에 전송 후에 ACK를 기다리게 되는 것이죠. 그리고, Window size는 고정되어 있지 않습니다. 문제없이 전송이 되면 Window size를 늘리고, 중간에 데이터가 유실되거나 문제가 발생하면 Window size를 줄입니다.

즉, 통신이 잘되면 한번에 많은 데이터를 전송할 수 있는 것이고, 통신에 문제가 생기면 한번에 적은 양의 데이터를 전송하게 되죠. 이것을 우리는 'Sliding Window'라고 합니다.

오늘도 할일이 많아 많은 내용을 메일링에 담지 못하겠군요. 점심시간에 주절주절 써서 보내드립니다.

내일은 메일링을 쉬고, 모레는 CCIE Ended 2문제를 풀어드리고, 금주에 프로젝트가 어느정도 정리되면 일요일에 Sliding Window에 대해 자세하게 설명을 드리도록 하겠습니다.

행복한 오후 되세요. ^^
 

티스토리 툴바