-
[Spring] TCP / UDPSpring 2025. 3. 27. 19:21
TCP, UDP
서버와 클라이언트간에 데이터를 신뢰성있게 전달하기 위해 만들어진 프로트콜
3Way HandShake -
> 논리적으로 컴퓨터를 연결한다.
컴퓨터 1 연결 요청을 한다(SYN), 컴퓨터2가 응답 ACK, 요청SYN 힌다, 컴퓨터1가 응답 ACK
ACK를 할때 데이터 전송도 가능.
ACK가 없다면 응답이 실패.
데이터 전송 여부를 확인이 가능하다.
패킷 순서(데이터가 크면 패킷으로 나눠서 보내는데, 누락이 되더라도 순서를 다시 요청하기 때문에 순서를 보장)
단점 위의 과정을 순차반복해야 하므로 조금 느리다.
SYN (Synchronize)**
- 클라이언트가 서버에게 연결을 요청하는 첫 번째 단계이다.
- 클라이언트는 서버에게 "연결을 시작하고 싶다"는 의사를 나타내기 위해 SYN 플래그가 설정된 패킷을 전송한다.
- 패킷에는 시퀀스 번호도 포함되어 있고 데이터 전송 순서를 관리할 준비를 한다.ACK (Acknowledge)**
- 서버가 클라이언트의 SYN 패킷을 받고, 이를 확인했다는 신호를 보내는 단계이다.
- 서버는 클라이언트의 SYN 요청을 수락하며, 자신도 연결을 시작하고 싶다는 뜻을 담아 SYN 플래그와 함께 ACK 플래그가 설정된 패킷을 클라이언트에게 전송한다.
- 이때, 서버는 클라이언트의 시퀀스 번호에 1을 더한 값을 ACK로 응답한다.
UDP
실시간 통신이나, 스트리밍 애플리케이션때문에 빠른 전송이 필요해서 만들어진것이 UDP(실시간 보성 중요.)
비연결성
신뢰성이 없는 전송 프로트콜
1. IP 방식과 거의 비슷하다.
- 3 way handshake를 하지 않는다.
- 데이터 전송, 응답, 순서를 보장하지 않는다.(비신뢰성)
2. 추가적인 기능이 거의 없다.
- 기능이 없고 연결을 하지 않는 대신 속도가 빠르다.
3.IP와 차이점으로 PORT 가 존재한다.
- TCP에도 PORT가 존재한다.
4. 데이터 무결성 검사 → 체크섬(Checksum)을 포함하고 있다.
- 잘못된 데이터가 전송되지 않도록 만들어준다.
PORT
프로세스 구분을 하기 위해서 사용한다.
1. 0 ~ 65535 할당 가능
2. 이미 사용되고 있는 포트 (0 ~ 1023)는 국제 도메인 관리기구에 의해 관리된다, 사용하지 않는것이 좋다'Spring' 카테고리의 다른 글
[Spring] HTTP (6) 2025.03.27 [Spring] DNS (Domain Name System) (0) 2025.03.27 [Spring] 과제 - 일정관리 앱 만들기LV1~2 (0) 2025.03.26 [Spring] 과제 - 일정관리 앱 만들기LV0 (0) 2025.03.24 [Spring] IP(Internet Protocol) (0) 2025.03.20