4.3 Managing TCP sessions 4조 임종철,임정묵,이규윤
◎목차 4.3.1 TCP 세그먼트의 재조합 4.3.2 TCP 재전송 4.3.3 TCP 의 응답과 흐름제어
4.3.1 TCP 세그먼트의 재조합 TCP서비스를 이용 데이터를 전송할 때 에는 순차번호(Sequence numbers)를 헤더에 지정하여 보낸다. 세션이 준비되는 동안 최초의 순차번호 ISN (Initial sequence Number) 가 설정되고 이 순차번호는 수신자가 받는 바이트의 초기값이 된다. 순차번호는 데이터 스트림의 순차성을 보장한다. 송신된 데이터는 분실될 수도 있고, 부주의로 중복될 수도 있고, 순서에 어긋나게 배달될 수도 있으며, 또는 손상될 수도 있다 이때 수신자측은 순차번호를 확인하여 수신자측에 재전송을 요구한다. 다음 그림과 같이 세그먼트를 재조합하고 받은 세그먼트들을 정리하는 과정을 거쳐 데이터 전송에 신뢰성을 높인다.
TCP 재전송 ACK와 NAK기반의 트래픽 제어 트래픽 제어의 가장 기본적인 방식으로, 전달된 데이터 블록에 대한 수신측 응답이 ACK (ACKnowledge)이면 정상 수신이고, NAK (Negative ACK) 이면 비 정상 수신(에러)을 의미한다. 송신자측은 일정시간내에 ACK값을 받지못하거나 수신자측으로부터 NAK코드 값을 받은 경우에는 데이터를 재송신한다. 다음 그림은 ACK의 요청을 나타낸것으로 순차번호는 그 데이터의 첫바이트를 나타내고 ACK는 그 다음 순차번호의 데이터를 요청한다.
TCP 재전송 자동 재전송요구(ARQ : Automatic Repeat Request) 수신측에서 받은 프레임에 에러가 감지되어 NAK를 응답할 경우 자동으로 해당 프레임을 재전송하는 즉, 에러를 복구하는 방식이다. go-back-N ARQ NAK로 응답 받은 프레임부터 다시 전송을 시작하는 방식으로 송신단에 윈도우 크기 * 최대 프레임 크기의 버퍼(buffer)를 두어 NAK 시 재전송할 수 있도록 전송된 프레임을 보관한다. selective reject ARQ NAK로 응답 받은 프레임만 다시 전송하는 방식이다. 송신단에 윈도우 크기 * 최대 프레임 크기의 버퍼(buffer)를 두어 NAK시 재전송할 수 있도록 전송된 프레임을 보관하고, 수신단에 역시 윈도우 크기 * 최대 프레임 크기의 버퍼를 두어 수신된 프레임을 일시 보관하여 에러 발생 시 재 전달 받은 프레임에 의해 어긋난 프레임의 수서번호를 재조정하도록 한다
4.3.4 TCP 혼잡제어 와 세그먼트 손실 최소화 Flow control(흐름제어) 흐름제어란 수신 스테이션의 용량 이상으로 데이터가 넘치지 않도록 송신 스테이션을 제어하는 기술 Window size? 수신 단말기로부터의 긍정응답을 기다리지 않고 연속적으로 논리적 통신로를 통하여 송출할수 있는 프레임의 수. 최초의 윈도우 사이즈는 3000byte로 설정 최초3000byte 송신후 수신자의 응답을 기다림 수신확인이 되면 그다음 데이터를 전송 만약 응답이 없거나 딜레이 가 생기면 송신자는 그 세션 을 위해 데이터송신을 중지
Windowing Windowing이란? 슬라이딩 윈도우라고도 불리는 기술로서 인터넷의 TCP에 의해 두 개의 컴퓨터 또는 네트웍 호스트간에 패킷흐름을 제어하기 위한 방법으로 사용 슬라이딩 윈도우는 하나의 확인으로 다수의 패킷 데이터를 확인할 수 있는 방법이다. 일단 윈도우(메모리버퍼 의 일정 영역)에 포함되는 모든 패킷을 전송하고, 그 패킷들의 전달이 확인되는대로 이 윈도우를 옆으로 옮김(slide)으로서 그 다음 패킷들을 전송하는 방식이다 TCP가 통지를 받으면 TCP는 윈도우를 데이터 흐름을 가로질러 움직이고(slide), 다음 메시지를 전송한다. 이로써 다중의 메시지를 작업함으로써 TCP는 동시에 많은 정보를 데이터 흐름으로 밀어넣을 수 있는 것이다. TCP가 통지를 기다리기 전에 몇 개의 메시지를 전송하기 때문에 TCP는 효율성과 전송-통지 사이클의 처리량을 크게 향상시킨다. 이같은 방법으로 보내는 측과 받는측은 3개의 패킷 폭을 가지는 슬라이딩 윈도우를 사용한다. 그러므로 보내는측은 아무런 통지 메시지를 기다리지 않고, 3개의 패킷을 보낸다.
TCP는 또한 TCP 연결 사이의 데이터 흐름을 협정해서 네트웍 대역폭을 최적화한다. TCP는 TCP연결 전체를 통해서 데이터 흐름의 비율을 협상한다. 이 협상 동안 TCP는 확장하고, 슬라이딩 윈도우의 폭과 접촉한다 인터넷의 데이터 이동량이 별로 없고, 교통 밀집이 적으면 TCP는 슬라이딩 윈도우의 폭을 확장한다. 이렇게 함으로써 TCP는 데이터를 통신 채널에 좀더 빠른 비율로 보낼 수 있다. 더 많은 데이터가 채널을 통해 차례로 처리량이나 네트웍 대역폭을 증가시킨다