안녕하세요..

벌써 한주가 다 흘러가고 있네요..어떠셨어요? 이번 한주도 뜻깊은 한주였나요?? ^^

무언가 계획한것이 있다면 아마 오늘까진 끝내셔야 할겁니다...저두 그렇구요..

어차피 TCP란 녀석에 대한 이야기가 나왔으니까..오늘은 TCP에서의 통신방식에 대한 이야기를 드릴까합니다..

계속말씀드린대로 TCP는 데이터를 전송하기전에 Connection 을 맺는 connection oriented 방식일뿐아니라 데이타 전송에서도 데이타를 보내고 받는애로 부터 ACK를 받아야.."아 내가보낸데이터가 잘갔구나.."이렇게 생각하고 다음 데이터를 보내게 됩니다.

아주 확인정신이 투철한 녀석이죠..

데이타 하나 보내놓고..응답기다라고..응답오면..또하나보내고..응답기다리고..응답안오면..다시보내고...

머 이런식으로 통신을 하는겁니다..이렇게 통신을 하니까..아무래도 통신에서의 신뢰도는 우수하겠죠?? ^^ 하지만 단점도 있습니다..고게 머냐면...바로 통신에서의 효율성이죠..즉 느리다는 겁니다..

그렇겠죠? 계속 데이터를 보내지않고..하나보내고 기다리고..또 하나보내고..기다리고..하니까요..

그래서 생각해낸게..바로 windowing 입니다. 즉 여기서 window size 란 보내는녀석이 응답을 기다리지 않고 우선 보낼수 있는 패킷의 숫자다..라고 생각하심 됩니다...

예를들어 지금까지 하나보내고 응답기다리고..하나보내고 응답기다리는 방식은 window size = 1 이었다는 겁니다..

그럼 window size =3 이라면 일단 3개보내고 응답기다리고.. 3개보내고 응답기다리고...하는 거죠..따라서 아까 하나보내고 기다리는 것보다는 훨씬 효율적이겠죠.?? 3개를 보낼때까진 응답을 기다릴 필요가 없으니까요...

하지만 이경우 받는쪽에서..능력이 없어서..다 못받게되면..받는녀석역시 자신이 받을수 있는 갯수를 window size 로 다시 보내게됩니다..

자 아래 그림 보실래요..??

사용자 삽입 이미지

 보내는 녀석이 window size =3 으로 3개를 보냈습니다.. 하지만 받는녀석입장에서는 ...능력에 벅찬거죠..그래서 두개만 받고 하나는 떨어트렸습니다..그러니까..받는녀석은 ACK 3 으로 보낸거죠..즉 다음번에 3번부터 보내라는 의미 입니다.. 그리고 window size= 2 를 보내는 겁니다.

그럼 이번에 보내는녀석은 3번 패킷과 4번패킷 두개만 보내는 겁니다. 하지만 이때도 window size= 3 이 그대로 날아갔죠? 그건 보내는 녀석은 window size=3 까지 한번에 보낼수 있다...머 이런 의미로 생각하심 됩니다..

이번엔 받는녀석이 3,4번 패킷을 제대로 받았죠?? 그러니까...ACK 5번으로 보냅니다..즉 다음번엔 5번을 보내라는 의미죠... 이해가시죠?? ^^

음 자 그럼 결론..TCP는 하나보내고..확인하고..또하나보내고 확인하는 방식인데..요걸 개선한게..바로 window 개념이다...window size TCP통신에서 확인없이 보낼수있는 패킷의 수이다...

머 이정도입니다..자그럼 오늘은 여기까지..^^ 즐거운 금요일..그리고 주말되세요..^^ 안녕..

2007/05/03 19:38 2007/05/03 19:38

트랙백 주소 :: http://thinkit.or.kr/network/trackback/248

댓글을 달아 주세요