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

Q. 왜 packet에 sequence number이 존재할까?
A. 잃어버린 packet을 알기 위해서.
Q. 상대에는 왜 buffer가 존재할까?
A. 상대에게 들어가는 속도와 상대가 읽는 속도가 다르기 때문에 이를 조절하기 위해 buffer가 존재합니다.
기존 data에는 경계가 존재합니다. 하지만 byte로 변환하고 buffer에 저장하면서 이 경계가 없어집니다. 완전히 없어진 것은 아니고 data에 경계가 어딘지 content에 작성이 되어있지만, 이를 buffer에 저장하고 보내는 과정에서는 content를 읽지 않기 때문에 이 경계를 신경 쓰지 않고 사이즈 별로 나눠서 저장하고 보냅니다.
받은 데이터를 Buffer에 저장함.
Buffer의 상태 3가지: 1)Not Sent 2)Sent 3)Empty
Q. data를 보내면 바로 버리면 되지 왜 Sent라는 상태가 존재하는가?
A. 만약 상대가 받지 못하였다고 신호가 오면 그 정보를 보내줘야하기 때문에 Sent가 존재합니다. 받았다는 신호가 오면 Sent의 data를 버립니다. (상태를 Empty로 바꿈.)
sequence number
TCP segment의 data에 붙여진 number를 말함.
