TCP
- point-to-point : 중간 과정에는 관심x
- 1대1 통신방식
- in-order : 순서를 지킨다
- flow control ⇒ receiver가 받을 수 있는 만큼 sender가 보내도록 한다(흐름 제어)
- receiver의 성능이 좋아져 별로 상관없어짐
- 누적 ACK 사용
- Sender가 Seq 1 ~ 5 패킷을 전송하고, Receiver가 잘 받았다면 Ack 6으로 응답한다.(다음엔 6부터 보내달라는 뜻, 5까지 잘 받았다는 의미)
- Timer은 Sendbase에만 있다.
- Timeout은 RTT보다 조금 크게 잡는다.
TCP segment의 구조
![](https://velog.velcdn.com/images/jsgcom/post/7bc82e1f-a01e-4ca9-9ac6-43be12cc55bf/image.png)
- TCP : 프로세서와 프로세서의 통신 → 포트번호 필요
- U : 1이면 Urg data pnter 해석해라 / 0이면 하지마라 → 현재는 안쓰임(0이든 1이든 신경쓰지않음, 해석x)
- A : ack , 0이면 ack 해석하지마라
- P : 안쓰임
- R(RST) : 1이면 sequence 잃어버렸으니 초기화해라
- S(SYN) : 1이면 접속하기 위해 정보를 주고받는 패킷 (3way-handshake 할때 사용)
- F(FIN) : 1이면 접속 끊자
- Receive window : 패킷 받을 수 있는 양 → flow control
- urg data pnter 안씀
- sequence num : 바이트 넘버 씀