CS지식/네트워크

TIL 정리_130(TCP 전송, 상태)

ran4 2022. 8. 5. 23:38

https://www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi 

위의 강의를 듣고 정리한 내용입니다


TCP를 이용한 통신과정

데이터 송수신 과정

TCP를 이용한 데이터 통신을 할 때 단순히 TCP 패킷만을 캡슐화해서 통신하는 것이 아닌

페이로드를 포함한 패킷을 주고 받을 때의 일정한 규칙이 있다

 

  1. 보낸쪽에서 또 보낼때는 SEQ 번호와 ACK 번호가 그대로다
  2. 받는 쪽에서 SEQ 번호는 받은 ACK 번호가 된다
  3. 받는 쪽에서 ACK 번호는 받은 SEQ 번호 + 데이터의 크기로 구성된다

 

1. 클라이언트 --------> 웹 서버

 

Eth IPv4 TCP Data
(100)

 

Flag : PSH + ACK

S : 101

A : 2001

 

 

2. 웹 서버 --------> 클라이언트

 

Eth IPv4 TCP Data
(500)

 

Flag : PSH + ACK

S : 2001(ACK 크기)

A : 201 (SEQ + 받은 데이터 크기 100)

 

 

3. 클라이언트 --------> 웹 서버

 

Eth IPv4 TCP

 

Flag : PSH + ACK

S : 201 (ACK 크기)

A : 2501 (SEQ + 받은 데이터 크기 500)

 

 


TCP 상태 전이도

데이터를 주고받을 때 SEQ번호와 ACK번호가 바뀌는데,

TCP의 연결상태도 변화한다

 

 

TCP의 여러 가지 상태

LISTEN 상태

  • 포트번호를 프로그램이 사용하고 있는 상태이다
  • 클라이언트의 요청을 서버가 듣고있는 상태라고 생각하면 된다
  • 서버를 실행했을 때 실행한 해당 서버의 상태가 LISTENING 상태인지 확인해야한다

 

ESTABLISHED 상태

  • 연결이 수립이 된 상태이다
  • 3Way Handshake 과정이 끝난 후 이 상태가 된다
  • 통신이 가능해진다

 

 

연결을 수립하는 3Way-Handshake 과정에서의 상태변화

1. 서버는 Listening 상태여야 받을 수 있다

받고나면 SYN_RECEIVED 상태가 된다

 

2. 서버가 다시 클라이언트에게 전송하면

클라이언트는 SYN_SENT 상태가 되고, ESTABLISH 상태가 된다

 

*LISTENING => ESTABLISH 상태가 되어야 서로 데이터를 주고받을 수 있는 상태가 된다*

 

 

실습 

 

TCP 프로토콜 분석 실습

https://youtu.be/WseqBDo-j3Y

'CS지식 > 네트워크' 카테고리의 다른 글

7계층 프로토콜 HTTP | TIL_142  (0) 2022.09.12
NAT와 포트포워딩 | TIL_141  (0) 2022.09.07
TIL 정리_129(TCP 3Way Handshake)  (0) 2022.08.03
TIL 정리_128(TCP 구조와 플래그)  (0) 2022.08.01
TIL 정리_127(UDP)  (0) 2022.07.29