본문 바로가기
컴퓨터 네트워크

컴퓨터 네트워크 27장 - TCP 프로토콜을 이용한 데이터 전송 -

by ChocoPeanut 2017. 5. 2.

컴퓨터 네트워크 27

- TCP 프로토콜을 이용한 데이터 전송 -

 

TCP 프로토콜전이중 방식의 양방향 통신을 지원하므로 가상 회선으로 연결된 두 프로세스가 동시에 데이터를 전송할 수 있다. 따라서 전송 데이터와 응답 데이터를 함께 전송하는 피기배킹 기능을 사용한다. TCP 프로토콜은 연결형 서비스를 제공하므로 데이터를 전송하는 과정은 연결 설정, 데이터 전송, 연결 해제 3단계를 순차적으로 진행하게 된다.


연결 설정3단계 설정을 통해 이루어진다. A 프로세스와 B 프로세스가 있다고 가정하면 A 프로세스에서 먼저 연결 설정을 요청한다. 임의의 순서번호를 선택한 후 SYN(연결 설정 요청하는 플래그 비트)을 전송한다. B 프로세스는 이에 대해 응답을 하는데 A 프로세스가 보낸 순서 번호에 1을 더해서 응답 번호를 보낸다. 이 때 응답 번호의 유효성을 알리는 플래그 비트의 ACK 값도 1로 설정하여 보내게 된다. 또한 임의의 순서번호를 포함해서 보내게 된다. A 프로세스가 B 프로세스가 A의 응답에 대한 순서 번호를 보내고 A의 순서번호에 대한 응답 번호를 1 더해서 보내게 된다. 이때는 전송할 데이터가 없는 경우이고 만약 보낼 데이터가 있다면 3번째 과정에서 바로 데이터를 전송할 수 있다.



데이터 전송 단계에서는 3번째 연결 설정 단계에서부터 데이터 전송을 바로 할 수 있다. 세그먼트는 데이터 크기에 따라 순서 번호를 할당하므로 데이터 크기만큼 순서 번호를 증가시켜 할당한다. 순서 번호에 대해서 데이터 값을 더한 값이 다음 데이터에 대한 순서 번호로 할당되는 것이다. 또한 서로 데이터를 전송하는 전이중 양방향이므로 한 프로세스의 순서번호는 다른 프로세스의 응답에 해당하게 된다. 물론 데이터의 크기를 더한 값으로 나타나게 된다.



데이터 전송에서 오류가 발생할 수 있다. 동일한 순서번호가 오게 되면 중복으로 판단하여 폐기를 하게 된다. 순서번호가 빠지는 경우는 분실로 판단해서 재전송을 한다. TCP 프로토콜의 경우 NAK(부정 응답)에 대한 지원을 하지 않고 오로지 타임아웃 기능에 의해 재전송을 하는 기능만 지원을 한다.



연결 해제 단계는 점진적 연결 해제 방식을 택한다. 해제하고자 하는 측에서 플래그 비트의 FIN 필드를 1로 전송하게 된다. FIN 플래그에 대해 응답으로 수신 프로세스 측에서도 FIN 플래그를 보낸다면 연결이 해제된다. 하지만 수신 측에서 FIN을 보내지 않는다면 아직 연결이 계속 유지가 되고 있는 상태가 된다. 따라서 양쪽 프로세스 모두 동의를 하여야만 해제가 되는 점진적 연결 해제 방식을 나타낸다.



TCP는 데이터를 전송할 때 혼잡 제어에 대한 기능을 수행한다. 앞장에서 설명한 TCP8비트 플래그 필드에서 앞의 2비트는 혼잡 제어를 관리하는 부분으로 ECE, CWR이라는 필드가 존재한다. 이 필드들은 혼잡 발생을 알려주어 송신 프로세스 스스로 트래픽을 완화하는 ECN 기술 기능을 지원하게 된다. ECE는 네트워크 트래픽이 많아질 때 라우터가 송신 프로세스에 명시적으로 혼잡을 알리는 용도로 사용된다.송신 프로세스에 직접 절달하지 않고, IP 헤더의 ECN필드에 CE 값을 지정하여 간접적으로 수신 프로세스에 알려준 후에 수신 프로세스의 중개를 거쳐 송신 프로세스에 통지된다. CWRECE 비트를 수신한 송신 프로세스가 전송 윈도우 크기를 줄였음을 통지하여 ECE를 전송하지 말라는 것을 의미한다



출처 - 데이터 통신과 컴퓨터 네트워크