logo

전송 계층 프로토콜

  • 전송 계층은 TCP와 UDP의 두 가지 프로토콜로 표시됩니다.
  • 네트워크 계층의 IP 프로토콜은 소스 호스트에서 대상 호스트로 데이터그램을 전달합니다.
  • 오늘날 운영 체제는 다중 사용자 및 다중 처리 환경을 지원하며 실행 프로그램을 프로세스라고 합니다. 호스트가 다른 호스트에 메시지를 보내는 것은 소스 프로세스가 대상 프로세스로 프로세스를 보내는 것을 의미합니다. 전송 계층 프로토콜은 프로토콜 포트라고 하는 개별 포트에 대한 일부 연결을 정의합니다.
  • IP 프로토콜은 소스 호스트에서 대상 호스트로 패킷을 전달하는 데 사용되는 호스트 간 프로토콜인 반면, 전송 계층 프로토콜은 IP 프로토콜의 최상위에서 작동하여 원래 호스트에서 패킷을 전달하는 포트 간 프로토콜입니다. 포트에서 IP 서비스로, IP 서비스에서 대상 포트로.
  • 각 포트는 양의 정수 주소로 정의되며 16비트입니다.
전송 계층 프로토콜

UDP

  • UDP는 다음을 의미합니다. 사용자 데이터그램 프로토콜 .
  • UDP는 간단한 프로토콜이며 비순차적 전송 기능을 제공합니다.
  • UDP는 비연결 프로토콜입니다.
  • 이 유형의 프로토콜은 안정성과 보안이 속도와 크기보다 덜 중요한 경우에 사용됩니다.
  • UDP는 상위 계층의 데이터에 전송 수준 주소, 체크섬 오류 제어 및 길이 정보를 추가하는 종단 간 전송 수준 프로토콜입니다.
  • UDP 프로토콜에 의해 생성된 패킷을 사용자 데이터그램이라고 합니다.

사용자 데이터그램 형식

사용자 데이터그램에는 아래와 같은 16바이트 헤더가 있습니다.

전송 계층 프로토콜

어디,

    소스 포트 주소:메시지를 전달한 애플리케이션 프로세스의 주소를 정의합니다. 소스 포트 주소는 16비트 주소입니다.대상 포트 주소:메시지를 수신할 애플리케이션 프로세스의 주소를 정의합니다. 대상 포트 주소는 16비트 주소입니다.총 길이:이는 사용자 데이터그램의 전체 길이를 바이트 단위로 정의합니다. 16비트 필드입니다.체크섬:체크섬은 오류 감지에 사용되는 16비트 필드입니다.

UDP 프로토콜의 단점

  • UDP는 전송의 종단간 전달에 필요한 기본 기능을 제공합니다.
  • 이는 순서화 또는 재정렬 기능을 제공하지 않으며 오류 보고 시 손상된 패킷을 지정하지 않습니다.
  • UDP는 오류가 발생했음을 발견할 수 있지만 특정 데이터 세그먼트의 ID나 시퀀스 번호가 포함되어 있지 않기 때문에 어떤 패킷이 손실되었는지 지정하지 않습니다.

TCP

  • TCP는 전송 제어 프로토콜을 나타냅니다.
  • 이는 애플리케이션에 전체 전송 계층 서비스를 제공합니다.
  • 연결 지향 프로토콜은 전송의 양쪽 끝 사이에 연결이 설정되는 것을 의미합니다. 연결을 생성하기 위해 TCP는 전송 기간 동안 발신자와 수신자 사이에 가상 회선을 생성합니다.

TCP 프로토콜의 특징

    스트림 데이터 전송:TCP 프로토콜은 연속적인 바이트 스트림 형태로 데이터를 전송합니다. TCP는 바이트를 TCP 세그먼트 형태로 그룹화한 다음 대상으로 전송하기 위해 이를 IP 계층에 전달합니다. TCP 자체가 데이터를 분할하여 IP로 전달합니다.신뢰할 수 있음:TCP는 전송된 각 바이트에 시퀀스 번호를 할당하고 수신 TCP로부터 긍정적인 승인을 기대합니다. 시간 초과 간격 내에 ACK가 수신되지 않으면 데이터가 대상으로 재전송됩니다.
    수신 TCP는 시퀀스 번호를 사용하여 세그먼트가 순서 없이 도착하는 경우 세그먼트를 재조립하거나 중복 세그먼트를 제거합니다.흐름 제어:TCP를 수신할 때 내부 버퍼를 오버플로하지 않고 수신할 수 있는 바이트 수를 나타내는 승인을 보낸 사람에게 다시 보냅니다. 바이트 수는 문제 없이 수신할 수 있는 가장 높은 시퀀스 번호 형식으로 ACK로 전송됩니다. 이 메커니즘을 창 메커니즘이라고도 합니다.멀티플렉싱:멀티플렉싱은 다양한 응용 프로그램의 데이터를 받아들이고 다른 컴퓨터의 다양한 응용 프로그램으로 전달하는 프로세스입니다. 수신 측에서는 데이터가 올바른 애플리케이션으로 전달됩니다. 이 프로세스를 역다중화라고 합니다. TCP는 포트라고 알려진 논리 채널을 사용하여 패킷을 올바른 애플리케이션으로 전송합니다.논리적 연결:소켓, 시퀀스 번호, 창 크기의 조합을 논리적 연결이라고 합니다. 각 연결은 프로세스를 보내고 받는 데 사용되는 소켓 쌍으로 식별됩니다.전이중:TCP는 동시에 양방향으로 데이터 흐름을 제공하는 Full Duplex 서비스를 제공합니다. Full Duplex 서비스를 구현하려면 각 TCP에는 세그먼트가 양방향으로 흐를 수 있도록 송신 및 수신 버퍼가 있어야 합니다. TCP는 연결 지향 프로토콜입니다. 프로세스 A가 프로세스 B로부터 데이터를 보내고 받기를 원한다고 가정합니다. 다음 단계가 발생합니다.
    • 두 TCP 사이에 연결을 설정합니다.
    • 데이터는 양방향으로 교환됩니다.
    • 연결이 종료됩니다.

TCP 세그먼트 형식

전송 계층 프로토콜

어디,

    소스 포트 주소:소스 컴퓨터에서 응용 프로그램의 주소를 정의하는 데 사용됩니다. 16비트 필드입니다.대상 포트 주소:대상 컴퓨터에서 응용 프로그램의 주소를 정의하는 데 사용됩니다. 16비트 필드입니다.시퀀스 번호:데이터 스트림은 두 개 이상의 TCP 세그먼트로 나뉩니다. 32비트 시퀀스 번호 필드는 원본 데이터 스트림의 데이터 위치를 나타냅니다.승인 번호:32필드 승인 번호는 다른 통신 장치의 데이터를 승인합니다. ACK 필드가 1로 설정되면 수신자가 수신할 것으로 예상하는 시퀀스 번호를 지정합니다.헤더 길이(HLEN):32비트 단어로 TCP 헤더의 크기를 지정합니다. 헤더의 최소 크기는 5단어, 최대 헤더 크기는 15단어입니다. 따라서 TCP 헤더의 최대 크기는 60바이트이고, TCP 헤더의 최소 크기는 20바이트입니다.예약된:향후 사용을 위해 예약된 6비트 필드입니다.제어 비트:제어 필드의 각 비트는 개별적으로 그리고 독립적으로 기능합니다. 제어 비트는 세그먼트의 사용을 정의하거나 다른 필드에 대한 유효성 검사 역할을 합니다.

제어 필드에는 총 6가지 유형의 플래그가 있습니다.

    촉구:URG 필드는 세그먼트의 데이터가 긴급함을 나타냅니다.ACK:ACK 필드가 설정되면 승인 번호의 유효성을 검사합니다.PSH:PSH 필드는 발신자에게 더 높은 처리량이 필요하므로 가능하면 더 높은 처리량으로 데이터를 푸시해야 함을 알리는 데 사용됩니다.우선:재설정 비트는 시퀀스 번호에 혼동이 발생한 경우 TCP 연결을 재설정하는 데 사용됩니다.동기화:SYN 필드는 연결 요청, 연결 확인(ACK 비트가 설정된 경우) 및 확인 확인의 세 가지 유형의 세그먼트에서 시퀀스 번호를 동기화하는 데 사용됩니다.끝:FIN 필드는 송신자가 데이터 전송을 완료했음을 수신 TCP 모듈에 알리는 데 사용됩니다. 종료 요청, 종료 확인, 종료 확인 확인 세 가지 유형의 세그먼트에서 연결 종료에 사용됩니다.
      창 크기:창은 창의 크기를 정의하는 16비트 필드입니다.체크섬:체크섬은 오류 감지에 사용되는 16비트 필드입니다.긴급 포인터:URG 플래그가 1로 설정된 경우 이 16비트 필드는 마지막 긴급 데이터 바이트임을 나타내는 시퀀스 번호의 오프셋입니다.옵션 및 패딩:추가 정보를 수신자에게 전달하는 선택적 필드를 정의합니다.

TCP와 UDP의 차이점

비교의 기초 TCP UDP
정의 TCP는 데이터를 전송하기 전에 가상 회선을 설정합니다. UDP는 수신자가 수신할 준비가 되었는지 여부를 확인하지 않고 대상 컴퓨터로 직접 데이터를 전송합니다.
연결 타입 연결 지향 프로토콜입니다. 비연결 프로토콜이다
속도 느린 높은
신뢰할 수 있음 신뢰할 수 있는 프로토콜입니다. 신뢰할 수 없는 프로토콜입니다.
헤더 크기 20바이트 8바이트
승인 데이터 승인을 기다리고 손실된 패킷을 다시 보내는 기능이 있습니다. 승인을 받지도 않고 손상된 프레임을 재전송하지도 않습니다.