컴퓨터과학/0 +컴퓨터 네트워킹

[컴퓨터 네트워킹] 4-1) TCP(Transmission Control Protocol)

힘들면힘을내는쿼카 2021. 9. 19. 12:35
728x90
반응형

Keyword

연결지향(connection-oriented): /수신기 사이의 물리적인 연결이 아닌 논리적인 연결을 의미하는 개념

핸드셰이크(handshake): 통신 관련 분야에서 둘 이상의 장치가 연결/단절을 위해 선행하는 약속된 협상 과정

최대 세그먼트 크기(Maximum Segment Size, MSS): TCP가 세그먼트 한 개로 보낼 수 있는 최대 데이터 크기

전이중 통신(full-duplex): 송신과 수신이 동시에 가능한 통신 방식(참조: https://ko.wikipedia.org/wiki/이중통신)

혼잡 윈도우(congestion window): 송신측에서 ACK 수신 없이 연속적으로 전송할 수 있는 최대 데이터 양

- AIMD (Additive Increase and Multiplicative Decrease): 혼잡 윈도우(congestion window)를 증가시킬 때는 선형적으로감소시킬 때는 지수적으로 감소시키는 TCP 혼잡제어의 기본 원칙 (https://en.wikipedia.org/wiki/Additive_increase/multiplicative_decrease)

 

 

TCP(Transmission Control Protocol)

  • Connection-oriented service
    • 신뢰성, 순차적 전송
    • 송신자와 수신자가 데이터를 교환하기 전에 서로의 상태를 점검
  • Pipelined transmission
    • Window size가 TCP 혼잡, 흐름 제어에 의해 결정
    • 혼잡제어(congestion control)
      • 네트워크의 혼잡을 막기위해 전송속도를 제어
    • 흐름제어(flow control)
      • 송신자는 수신자의 데이터 처리 속도를 고려하여 전송
    • MSS: Maximum segment size
    • 연결 수립 시 보낼 수 있는 최대 segment 크기
  • Full-duplex connection
    • 양방향 통신

 

 

TCP Segment 구조

Data offset = Header length: options에 의해 Header의 크기 변경

TCP Segment 구조

 

UDP Datagram segment 구조

UDP Datagram segment 구조

 

  • Seq number
    • 세그먼트의 데이터의 첫 번째 바이트의 바이트 스트림 숫자
  • Ack number
    • 수신자에게 예상되는 다음 세그먼트의 시퀀스 번호
    • Cumulative ACK
      • N+100과 N+199를 동시에 받으면 N+200의 ACK만 전송

 

SEQ, ACK

 

 

TCP Reliable Data Transfer

TCP는 신뢰성이 없는 IP의 서비스 위에서 신뢰성 있는 데이터 전송 서비스를 지원함.

Pipelined segments

Cumulative acks

Single retransmission timer

TCP Reliable Data Transfer

 

  • Go-back-N 과 유사
    • Cumulative ack
    • Single Transmission timer
    • Go-back-n은 순서에 맞지 않은 데이터가 들어오면 폐기..
  • Selective Repeat와 유사
    • TCP는 Buffer에 저장(Receive buffer가 허용하는 내)
728x90
반응형