하나의 패킷을 보내고 응답을 받고 또하나의 패킷을 보내고 응답을 받는다 라고할때 패킷크기에 상관없이 1회 전송을 의미하
는 시간을 RTT/2 라고 합니다. 그래서 결과적으로 RTT 가 줄어들게됩니다.
왜 RTT는 패킷의 사이즈에 상관없는가? 는 데이터의 크기가 왠만큼 크지않아서는 한번의 Modulation 으로 전송을 할수있고 또 한번의 Modulation 으로 전송된전기적신호는 데이터의 크기를 변수로 갖지않는 그냥 전기적신호 입니다.(자세한것은 좀더 찾아보시길바랍니다.) 두번째로 송수신단에서만 윈도우사이즈를 정하는것이라고했지만 사실은 중간에 있는 CORE(router) 들도 결과적으로는 관여하는 변수에 포함됩니다. 송수신단의 컴퓨터 대역폭이 아무리 원활하더라도 core 단에 라우터에서 패킷이 폐기되면 , 결과적으로는 수신측은 응답메시지를 받지못하게되고 , 윈도우사이즈는 줄어듭니다.
=> 윈도우 사이즈는 송신자가 보낼수 있는 size 이긴 한데.... 송신측에서 관리한다는 말은 잘 모르겠습니다.
flow control 에서 recv window size는 수신자의 가용 buffer size를 ack에 실어서 송신자에게 알려준다는 걸로 알고 있는데요.(이 size가 ack 패킷의 win에 해당하는 것이구요.)
송신측에서 그것에 따라 윈도우 사이즈가 조절한다는 말씀은, congestion control에서 송신자의 window size 관리에 대해 말씀해 주신것 같아서요.
그 밑에 써주신 내용은 경로 MTU에 관련된 데이터 사이즈와 congestion control에서 중간 네트워크 상태에 따른 RTT 값과 송신자의 혼잡 윈도우 제어에 관련된 말씀인 것 같네요.
제가 궁금한 것은
1. ack 패킷의 win 필드(recv buffer size)가 segment 단위인지? byte 단위인지?
2. 1개의 서버가 recv buffer를 각 클라이언트 마다 할당 하는지? 하나의 recv buffer를 공유 하는지?
입니다.
두번째 질문이 더 궁금하긴 합니다.
혹시 실험 방법도 알려주시면 감사 하겠습니다.
그것은..
window size 는 늘어나기도 하고 줄어들기도합니다. 이때 어떤변수에의해 늘어나는지, 줄어드는지 찾아보시면
답을 아실수있을것입니다.
윈도우 사이즈는 송신시에 수신자로부터 확인응답을 받지않고 보낼수있는 size 를 말하는것이므로..
답변에 대해 굳이 답하자면 , 윈도우 사이즈는 송신측에서 관리합니다. 수신측에서는 송신측 윈도우 사이즈가 몇인지
알지못합니다. 그냥 수신측에서 응답을 주거나 안주거나 할뿐이고 , 송신측은 그것에따라서 윈도우 사이즈를 조절합니다.
그렇다면 윈도우 사이즈는 어떤측면에서 봤을때 성능상에 영향을 주냐 하고 묻는다면
하나의 패킷을 보내고 응답을 받고 또하나의 패킷을 보내고 응답을 받는다 라고할때 패킷크기에 상관없이 1회 전송을 의미하
는 시간을 RTT/2 라고 합니다. 그래서 결과적으로 RTT 가 줄어들게됩니다.
왜 RTT는 패킷의 사이즈에 상관없는가? 는 데이터의 크기가 왠만큼 크지않아서는 한번의 Modulation 으로 전송을 할수있고 또 한번의 Modulation 으로 전송된전기적신호는 데이터의 크기를 변수로 갖지않는 그냥 전기적신호 입니다.(자세한것은 좀더 찾아보시길바랍니다.) 두번째로 송수신단에서만 윈도우사이즈를 정하는것이라고했지만 사실은 중간에 있는 CORE(router) 들도 결과적으로는 관여하는 변수에 포함됩니다. 송수신단의 컴퓨터 대역폭이 아무리 원활하더라도 core 단에 라우터에서 패킷이 폐기되면 , 결과적으로는 수신측은 응답메시지를 받지못하게되고 , 윈도우사이즈는 줄어듭니다.
혹시 제 답변에 이상이있거나 보충해주실분이있으시다면 추가 조언 부탁드립니다.
두번째 질문은 좀더 연구해보시기바랍니다. 어렵지않은 내용입니다.
네..
윈도우 사이즈는 송신시에 수신자로부터 확인응답을 받지않고 보낼수있는 size 를 말하는것이므로..
답변에 대해 굳이 답하자면 , 윈도우 사이즈는 송신측에서 관리합니다. 수신측에서는 송신측 윈도우 사이즈가 몇인지
알지못합니다. 그냥 수신측에서 응답을 주거나 안주거나 할뿐이고 , 송신측은 그것에따라서 윈도우 사이즈를 조절합니다.
=> 윈도우 사이즈는 송신자가 보낼수 있는 size 이긴 한데.... 송신측에서 관리한다는 말은 잘 모르겠습니다.
flow control 에서 recv window size는 수신자의 가용 buffer size를 ack에 실어서 송신자에게 알려준다는 걸로 알고 있는데요.(이 size가 ack 패킷의 win에 해당하는 것이구요.)
송신측에서 그것에 따라 윈도우 사이즈가 조절한다는 말씀은, congestion control에서 송신자의 window size 관리에 대해 말씀해 주신것 같아서요.
그 밑에 써주신 내용은 경로 MTU에 관련된 데이터 사이즈와 congestion control에서 중간 네트워크 상태에 따른 RTT 값과 송신자의 혼잡 윈도우 제어에 관련된 말씀인 것 같네요.
제가 궁금한 것은
1. ack 패킷의 win 필드(recv buffer size)가 segment 단위인지? byte 단위인지?
2. 1개의 서버가 recv buffer를 각 클라이언트 마다 할당 하는지? 하나의 recv buffer를 공유 하는지?
입니다.
두번째 질문이 더 궁금하긴 합니다.
혹시 실험 방법도 알려주시면 감사 하겠습니다.
질문은 질문 게시판에 하는게 어떨까요
질문은 질문 게시판에 하는게 어떨까요
죄송합니다
KLDP가 처음이라 자게 성질을 잘 몰랐네요
댓글 달기