[Network] 4 계층 (Transport) (2)

2020. 1. 19. 18:27Network

1. TCP (Transmission Control Protocol)
   : 데이터 전달의 신뢰성을 최대한 보장
   : 연결지향 (데이터를 전달할 논리적인 연결을 먼저 구성 - 3 Way Handshake)
   : 신뢰성 보장 (순차적으로 데이터 전송, 확인 응답 및 재전송)
   : 흐름 제어 (데이터 전달에 지연 ㅎ녀상이 발생시 데이터의 양 조절 - Sliding Window)

2. TCP Header
   : Header의 크기는 Option Field의 크기에 따라 가변적이며 최소 20Byte - 최대 60Byte
   : TCP의 동작을 지시하는 메시지를 생성하여 연결상태를 제어 (TCP Flags)
   : 하나의 연결을 통해 한 단위의 Data(Application Data)를 전달

전체적인 TCP Header 구조


TCP Header 첫 번째 (0 - 4Byte Field)

   1) Source Port Address (2 Byte)
      : 출발지 Port 주소

   2) Destination Port Address (2 Byte)
      : 목적지 Port 주소


TCP Header 두 번째 (5 - 12Byte Field)

   3) Sequence Number (4 Byte)
      : 순서화된 일련번호
      : 초기순서번호는 임의의 값으로 설정 (ISN - Initial Sequence Number)
      : 전송되는 데이터의 크기를 누적시키며 순서를 알려줌

   4) Acknowledgment Number (4 Byte)
      : 확인 응답 번호로 데이터를 정상적으로 수신한 뒤 예상하는 다음 Sequence Number를 제시
         A. 받은 Sequence Number + Payload 크기
         B. 최초 SYN에 대한 응답은 받은 Sequence Number + 1의 값


TCP Header 세 번째 (13 - 16Byte Field)

   5) Data Offset (4 Bit)
      : TCP Header 길이 값으로 4개의 Bit로 표현되고 4Byte 단위로 표시됨 (최대 길이 60Byte)

   6) Reserved (4 Bit)
      : 예약된 Field

   7) TCP Flags (1 Byte)
      : 논리적인 TCP 연결회선 제어 및 데이터 관리를 위해 사용
      : TCP 메시지의 종류를 명시
      : 1Bit씩 메시지 종류가 지정되어 있고 해당 Bit값이 설정되면 지정된 기능을 수행

TCP Flags 종류

   8) Window (2 Byte)
      : 통신의 상대방에게 자신의 버퍼 여유용량 크기를 지속적으로 알려줌
      : 능동적인 흐름제어를 위해 사용
      : Sliding Window 기법 사용


TCP Header 네 번째 (17 - Variable Field)

   9) Checksum
      : 4 계층 Segment 전체와 3 계층 정보 중 일부분에 대한 오류 검사 값 (Pseudo Header 구성하여 오류 검출 수행)

   10) Urgent Poinger
      : 긴급 데이터의 마지막 위치를 나타내는 값

   11) TCP Options (0 - 40 Byte)
      : 지정된 구조에 따라 옵션 설정 (Option 종류 - 1Byte + Option 길이 - 1Byte + Option 데이터)
      : 기본적으로 필수 옵션이 사용됨

TCP Options 종류

3. TCP 3 Way Handshake
   : TCP 통신 시 상호간의 연결을 통해 신뢰성을 보장하기 위한 기법
   : TCP Segment를 전달하기 전 목적지와의 통신상태를 확인
   : 정상 통신이 가능하면 논리적인 양방향 연결을 맺은 후 Segment 전송

TCP 3 Way HandShke & 4 Way Handshake

   1) 일반 확인 응답
      : 출발지에서 Segment가 전달되면 반드시 목적지에 전달 받았음을 확인
      : 출발지는 목적지의 확인 응답 TCP 메시지를 전달 받아야지 다음 순서의 데이터를 전달 (Segment : ACK = 1 : 1)

일반 확인 응답 (목적지에서 확인 응답을 매순간 상대측에서의 데이터를 받을 때/못 받았을 때 전송)

   2) 누적 확인 응답
      : TCP 연결 설정을 통해 한번에 보낼 수 있는 Segment의 양을 약속함
      : 출발지에서는 지정된 양에 해당하는 Segment를 목적지의 확인 응답이 없어도 계속 전달
      : 목적지는 지정된 양의 Segment를 전달 받았을 때 하나의 확인 응답을 전달

누적 확인 응답 (목적지에서 Window 크기만큼 데이터를 받은뒤 응답 전송하며 못받을 경우 마지막으로 받은 데이터 삭제 후 다시 전달 받음)

   3) 선택적 확인 응답
      : 누적 확인 응답의 문제점 해결 (중간에 손실된 Segment 발생시 정상적으로 전달받은 Segment까지 재전송)
      : 누적 확인 응답과 비슷하지만 확인 응답 시 재전송이 필요없는 Segment의 정보를 알림

선택적 확인 응답 (데이터가 손실될 시 마지막으로 수신한 데이터의 정보도 포함하여 응답)

4. L4 Switch
   : TCP/UDP Port 번호를 이용하여 트래픽을 서비스 별로 분류하여 포워딩하는 장비 (Load Balancing)

L4 Switch

728x90

'Network' 카테고리의 다른 글

[Network] Well-Known-Port  (0) 2020.01.19
[Network] 4 계층 (Transport) (1)  (0) 2020.01.19
[Network] 3 계층 (Network) (5)  (0) 2020.01.19
[Network] 3 계층 (Network) (4)  (0) 2020.01.19