TCP를 이용한 클라이언트 & 서버 연결 과정
3Way Handshake
- 클라이언트가 서버에게 요청 패킷 전송
- 서버가 클라이언트의 요청을 받아들이는 패킷 전송
- 클라이언트는 이를 최종적으로 수락하는 패킷을 전송 Handshake
S, A의 전송값 결정 과정
- 첫 번째 S(Sequence) 값: 송신자가 랜덤한 값을 생성하여 전송.
- 두 번째 S(Sequence) 값: 수신자가 랜덤한 값을 생성하여 송신자에게 응답.
- 두 번째 A(Acknowledgment) 값: 송신자가 보낸 S 값에 +1을 더한 값으로 설정하여 응답.
- 세 번째 과정:
- 송신자는 수신자로부터 받은 A 값을 새로운 S 값으로 설정.
- A 값은 수신자가 보낸 S 값에 +1을 더하여 전송.
TCP를 이용한 데이터 송/수신 과정
1. 첫 번째 과정
- S 값: 클라이언트와 웹 서버가 연결된 마지막 S 값을 생성.
- A 값: 연결된 마지막 A 값을 생성.
- 요청 데이터 크기(100)를 패킷에 페이로드 하여 전송
2. 두 번째 과정
- S 값: 송신자가 보낸 A 값을 그대로 사용.
- A 값: 수신자가 송신자의 S 값에 요청한 데이터 크기를 더해 생성하여 응답.
- 응답 데이터 크기(500)를 패킷에 페이로드 하여 응답.
3. 세 번째 과정
- S 값: 수신자가 응답한 A 값을 그대로 사용.
- A 값: 송신자가 수신자의 S 값에 응답한 데이터 크기(500)를 더한 값을 생성하여 전송.
TCP 연결 상태의 변화
- LISTEN 상태: 클라이언트의 요청을 항상 응답 할 수 있도록 열어놓은 상태
- ESTABLISHED 상태: 클라이언트와 서버 연결이 서로 수립이 된 상태
- SYN_SENT 상태: SYN를 보낸 상태
- SYN_RCVD 상태: SYN를 받은 상태
'Network' 카테고리의 다른 글
Network_7계층 HTTP 프로토콜 (0) | 2024.12.31 |
---|---|
Network_NAT & 포트포워딩 (0) | 2024.12.30 |
Network_4계층 프로토콜 (0) | 2024.12.29 |
Network_라우팅 테이블 (0) | 2024.12.29 |
Network_ICMP 프로토콜, IPv4 조각화 (0) | 2024.12.29 |