관리 메뉴

Jerry

손에 익히며 배우는 네트워크 첫걸음 #9 본문

CS/Network

손에 익히며 배우는 네트워크 첫걸음 #9

juicyjerry 2021. 1. 6. 02:22
반응형

TCP는 적절한 애플리케이션 데이터를 전달하기 위해서 이용되는 프로토콜입니다.

프로토콜이란 컴퓨터끼리 통신할 때에 정해져 있는 '공통된 절차의 규약'입니다. ex) IP, HTTP, FTP, SMTP

 

 

TCP 기능으로 애플리케이션 간의 데이터 전달 외에도 데이터를 분할하는 기능이 있습니다. 데이터 사이즈 최대치인 MSS(Maximum Segment Size)를 넘을 경우 여러 개로 분할합니다.

 

 

출처: https://www.imperva.com/blog/mtu-mss-explained/

 

 

TCP 연결 성립

애플리케이션 간에 신뢰성 있는 데이터 전송을 수행하기 위하여 'Three-way handshake'라는 기법을 사용합니다.

  • A to B: 연결 요구(SYN 플래그) - 연결해도 될까요? / 데이터입니다.
  • B to A: 응답(SYN/ACK 플래그) - 네, 이쪽에서도 연결하겠습니다. / 받았습니다.
  • A to B: 응답(ACK 플래그) - 알겠습니다.

이처럼 TCP 연결을 성립시키는 것을 가리켜, 연결형 프로토콜이라고 부릅니다.

 

 

TCP 연결 종료

  • A to B: 연결을 종료해도 될까요? (FIN/ACK)
  • B to A: 네, 괜찮습니다. (ACK)
  • A to B: 이쪽에서도 연결을 종료하겠습니다(FIN/ACK)
  • B to A: 네, 알겠습니다. (ACK)

출처: https://en.wikipedia.org/wiki/Transmission_Control_Protocol

 

 

데이터 전송 시 동작

연결을 성립시킨 뒤에 애플리케이션끼리 데이터를 전송할 때, TCP는 '윈도우 제어', '재전송 제어', '혼잡 제어'와 같은 제어 기능을 구사합니다.

  1. 윈도우 제어: 얼만큼의 TCP 세그먼트들을 한 번에 보낼 것인가를 제어하는 시스템
  2. 재전송 제어: 어떠한 이유에 의해 데이터가 유실되는 경우, 유실된 TCP 세그먼트를 재전송하는 시스템
  3. 혼잡 제어: 네트워크의 혼잡을 회피하는 제어

이처럼 다양한 제어를 사용하여 신뢰성 높은 애플리케이션 간 데이터 전송을 실현합니다. 단, 이러한 제어 기능을 수행하기 위해서는 TCP 헤더에 다양한 정보가 필요합니다. 그러다 보니 필요하지 않은 정보가 포함이 되는데, 이러한 정보나 처리를 통틀어서 '오버헤드'라고 부릅니다. TCP 데이터 전송에는 많은 오버헤드가 발생할 가능성이 있습니다. 그래서 이용되는 것이 UDP입니다.

 

 

 

위 내용은 "손으로 익히며 배우는 네트워크 첫걸음, Gene, 한빛미디어를 직접 구매하여 공부하면서 메모한 내용입니다.
반응형