TCP(1)_TCP 정의, 과정, 특징

eheka·2025년 3월 17일

컴퓨터 네트워크

목록 보기
1/3

Transport Layer의 프로토콜:

  1. UDP
  2. TCP
  3. SCTP 등



TCP

  • Transmission Control Protocol

TCP

Transport Layer의 프로토콜로 다른 컴퓨터와 data 통신을 하기 위한 프로토콜 중 하나입니다.



TCP process

  1. Buffer에 byte 씩 data를 저장함. data를 받은 buffer는 Not Sent 상태로 바뀜.
  2. 상대에게 packet으로 묶어 보냄. packet의 사이즈는 536byte ~ 약 1KB.
  3. 이 packet에 sequence number을 붙임. (* sequence number 아래 내용 참조)

    Q. 왜 packet에 sequence number이 존재할까?

    A. 잃어버린 packet을 알기 위해서.

  4. 각 packet을 상대에게 보냄.
  5. 상대의 buffer에 packet을 byte로 나눠 저장함. 정상적으로 받았는지 못 받았는지 보낸 곳에 신호를 보냄.

    Q. 상대에는 왜 buffer가 존재할까?

    A. 상대에게 들어가는 속도와 상대가 읽는 속도가 다르기 때문에 이를 조절하기 위해 buffer가 존재합니다.

  6. 만약 없어진 data가 존재하면, 해당 sequence number를 다시 보내달라고 요청함.

기존 data에는 경계가 존재합니다. 하지만 byte로 변환하고 buffer에 저장하면서 이 경계가 없어집니다. 완전히 없어진 것은 아니고 data에 경계가 어딘지 content에 작성이 되어있지만, 이를 buffer에 저장하고 보내는 과정에서는 content를 읽지 않기 때문에 이 경계를 신경 쓰지 않고 사이즈 별로 나눠서 저장하고 보냅니다.



TCP의 특징

  • 받은 데이터를 Buffer에 저장함.

  • Buffer의 상태 3가지: 1)Not Sent 2)Sent 3)Empty

    Q. data를 보내면 바로 버리면 되지 왜 Sent라는 상태가 존재하는가?

    A. 만약 상대가 받지 못하였다고 신호가 오면 그 정보를 보내줘야하기 때문에 Sent가 존재합니다. 받았다는 신호가 오면 Sent의 data를 버립니다. (상태를 Empty로 바꿈.)




sequence number

sequence number

TCP segment의 data에 붙여진 number를 말함.

  • 첫 sequence number는 랜덤한 번호임.
  • 다음 sequence number = (전 sequence number + segment 사이즈)



Acknowledgment number

  • = ACK
  • 상대방이 받고 싶은(받길 기대하는) 다음 sequence number(byte number)

1. Selective ACK

  • 받은 sequence number를 말함.

2. Cumulative ACK

  • =accumulative ACK
  • TCP 채택 방식
  • 받고 싶은 다음 sequence number를 말함.
profile
Hey there!

0개의 댓글