TCP

조원태·2023년 1월 19일
0

TCP((Transmission Control Protocol))란?

인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜(전송제어프로토콜)

-서버와 클라이언트간에 데이터를 신뢰성 있게 전달하기 위해 만들어진 프로토콜 이다.

-데이터를 전송하기 전에 데이터 전송을 위한 연결을 만드는 연결지향 프로토콜이다.

-데이터는 네트워크선로를 통해 전달되는 과정에서 손실되거나 순서가 뒤바뀌어 전달될 수 있는데, TCP는 손실을 검색해 내서, 인를 교정하고 순서를 재조합 할 수 있도록해준다

-메시지가 목표로하는 컴퓨터에 잘 도착하도록 해주는 역할을한다

네트워클 통신을 할 때 메세지를 그대로 전송하기 보다는 작은 단위로 쪼개서 전송을 한다 TCP는 이러한 패킷들을 재조립하고 손상되거나 손실된 패킷이 있다면 재요청을 한다 #패킷이란?(네트워크에서 전송되는 데이터의 기본단위)

예를들어 이미지를 작게 나누지 않고 큰상태 그대로 보내게되면 네트워크의 대역폭을 너무 많이 차지해서 다른패킷의 흐름을 막을 위험이 있다

IP는 이러한 데이터 조각들 정확한 목적지로 보내는 역할을 한다 조각들의 순서가 뒤바뀌거나 일부가 누락되더라도 크게 상관하지 않고 보내는대 집중하지만
TCP는 도착한 조각들을 점검해서 망가졌거나 빠진부분을 다시 요청한다 두방식을 조합해서 인터넷 데이터 통신을 하는것을 TCP/IP라고 부른다

TCP === 데이터를 안전하게 전송하는 전송 프로토콜

IP === 패킷들이 가장 효울적으로 최종 목적지로 갈 수있게 해주는 프로토콜

TCP/IP 모델

Application Layer --- http,브라우저
Transport Layer --- TCP
Internet Layer --- ip
Network Access Leyer -- 인터넷

특징

신뢰성

TCP의 가장 중요한 특징은 신뢰할 수 있는 말단 장치간 데이터 전달이다. 신뢰성을 제공 하려면, TCP는 손상되거나 없어지거나 중복되거나 네트워크 계층에서 순서가 틀어져서 전달된 데이터를 복구 해야한다. TCP는 신뢰성을 신현하기위해 적극적 수신, 통지, 재전송 체계를 사용한다

흐름제어

TCP 데이터 세그먼트를 송수신하는 컴퓨터는 CPU와 네트워크 대폭역의 차이 떄문에 서로 다른 데이터 속도로 작동할 수 있다 결국 수신자가 처리 할 수있는 것처럼 훨씬 더 빠른 속도로 송신자가 데이터를 보낼 가능성이 많다 TCP는 송신자가 보낸 데이터의 양을 제어하는 흐름 제어 메커니즘을 구현한다

즉, 신뢰성이 요구되는 애플리케이션인 경우에는 TCP를 사용하는게 안정적이다

TCP 동작 과정

연결형 서비스
연결형 서비스로 가상 회선 방식을 제공

  • 3-way handshaking 과정을 통해 연결을 설정
  • 4-way handshaking 을 통해 연결을 해제.

흐름제어 (Flow control)
데이터 처리 속도를 조절하여 수신자의 버퍼 오버플로우 방지

  • 송신하는 곳에서 감당이 안되게 많은 데이터를 빠르게 보내 수신하는 곳에서 문제가 일어나는 것을 막는다.

  • 수신자가 윈도우크기(Window Size) 값을 통해 수신량을 정할 수 있다.

    혼잡제어(COngestion control)
    네트워크 내의 패킷 수가 넘치게 증가하지 않도록 방지

  • 정보의 소통량이 과다하면 패킷을 조금만 전송하여 혼잡 붕괴 현상이 일어나는 것을 막는다.

신뢰성이 높은 전송 (Reliable transmission)

TCP Header 정보


응용 계층으로부터 데이터를 받은 TCP는 헤더를 추가한 후에 이를 IP로 전송 헤더에는 아래와 같은 표와 같은 방식으로 정보 포함

0개의 댓글