안녕하세요..
벌써 한주가 다 흘러가고 있네요..어떠셨어요? 이번 한주도 뜻깊은 한주였나요?? ^^
무언가 계획한것이 있다면 아마 오늘까진 끝내셔야 할겁니다...저두 그렇구요..
어차피 TCP란 녀석에 대한 이야기가 나왔으니까..오늘은 TCP에서의 통신방식에 대한 이야기를 드릴까합니다..
계속말씀드린대로 TCP는 데이터를 전송하기전에 Connection 을 맺는 connection oriented 방식일뿐아니라 데이타 전송에서도 데이타를 보내고 받는애로 부터 ACK를 받아야.."아 내가보낸데이터가 잘갔구나.."이렇게 생각하고 다음 데이터를 보내게 됩니다.
아주 확인정신이 투철한 녀석이죠..
데이타 하나 보내놓고..응답기다라고..응답오면..또하나보내고..응답기다리고..응답안오면..다시보내고...
머 이런식으로 통신을 하는겁니다..이렇게 통신을 하니까..아무래도 통신에서의 신뢰도는 우수하겠죠?? ^^ 하지만 단점도 있습니다..고게 머냐면...바로 통신에서의 효율성이죠..즉 느리다는 겁니다..
그렇겠죠? 계속 데이터를 보내지않고..하나보내고 기다리고..또 하나보내고..기다리고..하니까요..
그래서 생각해낸게..바로 windowing 입니다. 즉 여기서 window size 란 보내는녀석이 응답을 기다리지 않고 우선 보낼수 있는 패킷의 숫자다..라고 생각하심 됩니다...
예를들어 지금까지 하나보내고 응답기다리고..하나보내고 응답기다리는 방식은 window size = 1 이었다는 겁니다..
그럼 window size =3 이라면 일단 3개보내고 응답기다리고..또 3개보내고 응답기다리고...하는 거죠..따라서 아까 하나보내고 기다리는 것보다는 훨씬 효율적이겠죠.?? 3개를 보낼때까진 응답을 기다릴 필요가 없으니까요...
하지만 이경우 받는쪽에서..능력이 없어서..다 못받게되면..받는녀석역시 자신이 받을수 있는 갯수를 window size 로 다시 보내게됩니다..
자 아래 그림 보실래요..??
그럼 이번에 보내는녀석은 3번 패킷과 4번패킷 두개만 보내는 겁니다. 하지만 이때도 window size= 3 이 그대로 날아갔죠? 그건 보내는 녀석은 window size=3 까지 한번에 보낼수 있다...머 이런 의미로 생각하심 됩니다..
이번엔 받는녀석이 3,4번 패킷을 제대로 받았죠?? 그러니까...ACK를 5번으로 보냅니다..즉 다음번엔 5번을 보내라는 의미죠... 이해가시죠?? ^^
음 자 그럼 결론..TCP는 하나보내고..확인하고..또하나보내고 확인하는 방식인데..요걸 개선한게..바로 window 개념이다...window size는 TCP통신에서 확인없이 보낼수있는 패킷의 수이다...
머 이정도입니다..자그럼 오늘은 여기까지..^^ 즐거운 금요일..그리고 주말되세요..^^ 안녕..
댓글을 달아 주세요