TCP 프로토콜
인터넷에 연결된 컴퓨터에서 실행되는 프로그램 간 통신을 안정적으로, 순서대로, 에러 없이 교환할 수 있게 한다.
- 중요한 데이터를 안전하게 주고 받을 때 사용한다.
- UDP 보다 느리다.
- 날아가면 안 되는 데이터를 통신할 때 사용 (ID, PW 등)
TCP 플래그
: 보낼 때 양식 종류
Ack와 Syn이 제일 중요함 !
- U : Urgent - 긴급 bit
- A : Acknowledgment - 승인 bit
- P : Push - 밀어넣기 bit
- R : Reset - 초기화 bit
- S : Syn - 동기화 bit
- F : Fin - 종료 bit
UDP 프로토콜
일반적으로 오류의 검사와 수정이 필요 없는 프로그램에서 수행할 것을 가정으로 한다.
- 전송 방식이 단순해서 서비스의 신뢰성이 낮고, 데이터그램 도착 순서가 바뀌거나 중복되거나, 심지어는 통보 없이 누락시키기도 한다.
- TCP보다 빠르다.
- 날아가도 되는 데이터를 통신할 때 사용한다. (영상)
TCP 통신 - 3 Way Handshake
: TCP를 이용한 데이터 통신을 할 때 프로세스와 프로세스를 연결하기 위해 가장 먼저 수행되는 과정이다.
1. 클라이언트가 서버에게 요청 패킷을 보내고
2. 서버가 클라이언트의 요청을 받아들이는 패킷을 보내고
3. 클라이언트는 이를 최종적으로 수락하는 패킷을 보낸다.
위의 3개의 과정을 3 Way Handshake 라고 부른다.
1. 클라이언트가 서버에게 요청 패킷을 보냄
- SYN을 보낸다. (이때 SYN 번호는 랜덤)
- 통신을 동기화해서 시작해도 되냐고 요청하는 것
2. 서버가 응답과 동시에 클라이언트에게 연결해도 되는지 요청을 보낸다.
- 웹 서버 프로그램이 플래그를 두 개 설정한 프로토콜을 만들어서 보낸다.
- SYN + ACK
- SYN에 대한 응답을 ACK로 하면서 SYN으로 요청을 보낸다.
- 이 때 ACK는 받은 SYN 번호에서 +1을 해서 보낸다.
3. 클라이언트가 다시 응답하는 패킷을 보낸다.
- 이때 ACK 번호는 SYN + 1이다.
'CS' 카테고리의 다른 글
모니터링 환경 구성 (Prometheus, Grafana) / Grafana Dashboard 설정 (0) | 2024.12.06 |
---|---|
[CS] 컴파일 언어 vs 인터프리터 언어 / 자바 / 자바 환경변수 설정 (0) | 2024.12.02 |
[CS] 객체 지향 / 데이터 모델링 (0) | 2024.11.26 |
형상관리 (0) | 2024.11.25 |
웹 서버, 웹 어플리케이션 서버(WAS), DB 서버 연동 실습 (0) | 2024.11.25 |