https://www.youtube.com/playlist?list=PL0d8NnikouEWcF1jJueLdjRIC4HsUlULi
위의 강의를 듣고 정리한 내용입니다
TCP를 이용한 통신과정
데이터 송수신 과정
TCP를 이용한 데이터 통신을 할 때 단순히 TCP 패킷만을 캡슐화해서 통신하는 것이 아닌
페이로드를 포함한 패킷을 주고 받을 때의 일정한 규칙이 있다
- 보낸쪽에서 또 보낼때는 SEQ 번호와 ACK 번호가 그대로다
- 받는 쪽에서 SEQ 번호는 받은 ACK 번호가 된다
- 받는 쪽에서 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 프로토콜 분석 실습
'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 |