728x90
TCP는 장치들 사이에 논리적인 접속을 성립하기 위하여 연결을 설정하여 신뢰성을 보장하는 연결형 서비스이다.
State 정보
LISTEN
: 포트가 열려있어서 연결을 기다리고 있는 상태CLOSED
: 포트가 닫힌 상태SYS_SENT
: 연결 요청한 상태SYN_RECV
: SYN 요청을 받고 상대방의 응답을 기다리는 중ESTABLISHED
: 포트 연결 상태CLOSE_WAIT
: Close를 받은 상태LAST_WAIT
: Close 호출 후 진입하는 상태TIME_WAIT
: Server로 부터 FIN을 수신하더라도 일정시간(default 240초)동안 세션을 남겨놓고 잉여 패킷을 기다리는 과정
Flag 정보
- TCP Header에는 CONTROL BIT(플래그 비트, 64bit)가 존재하며, 각각의 bit는 “URG-ACK-PSH-RST-SYN-FIN”의 의미를 가진다.
SYN
(Synchronize Sequence Number) : 연결 요청 플래그ACK
(Acknowledgement) : 응답 플래그FIN
(Finish) : 연결 종료 플래그RST
(Reset) : 연결 재설정 플래그PSH
(Push) : 밀어넣기URG
(Urgent) : 긴급 데이트 플래그
3 way handshake
- TCP 통신을 이용하여 데이터를 전송하기 위해 네트워크 연결을 설정(Connection Establish)하는 과정
- 양쪽 모두 데이터를 전송할 준비가 되었다는 것을 보장하고, 실제로 데이터 전달이 시작하기 전에 한 쪽이 다른 쪽이 준비되었다는 것을 알 수 있도록 한다.
TCP의 3 way handshake 과정
- Client는 Server에 접속을 요청하는 SYN 패킷을 보내고 SYN_SENT 상태가 된다.
- Server는 Client로부터 SYN 패킷을 받고 응답 패킷 ACK과 SYN 패킷을 보낸다. 상태는 LISTEN에서 SYS_SENT로 바뀐다.
- Client는 받은 패킷에 대한 응답으로 ACK 패킷을 보내도 상태는 ESTABLISHED가 되고, Server는 상태가 ESTABLISHED가 된다.
4 way handshake
- TCP의 연결을 해제(Connection Termination)하는 과정
TCP의 4 way handshake 과정
- Client에서 Server와의 연결 종료를 위해 Server에 FIN 패킷을 보내고 FIN_WAIT1 상태가 된다.
- Server는 Client로부터 FIN을 받고 응답 패킷 ACK을 보낸다. 상태는 CLOSE_WAIT가 된다.
- Server가 연결을 종료할 준비가 되면 클라이언트에게 FIN 패킷을 보내고 LAST_WAIT 상태가 된다.
- Client는 확인 패킷 ACK을 보내고 TIME_WAIT 상태가 된다.
참고
728x90
'CS > Network' 카테고리의 다른 글
[CS/Network] 대칭키&공개키 (0) | 2023.06.28 |
---|---|
[CS/Network] TCP/IP 4계층 모델 (0) | 2023.06.22 |
[CS/Network] 네트워크 기초 (0) | 2023.06.20 |
[CS/Network] OSI 7계층 (0) | 2023.06.15 |