TCP와 UDP를 알기전에 먼저 알아야 할 부분이 있다.
IP 프로토콜의 한계
• 비연결성
• 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
• 비신뢰성
• 중간에 패킷이 사라지면?
• 패킷이 순서대로 안오면?
• 프로그램 구분 • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
아래와 같이 문제점들이 발생할 수 있습니다.
1. 대상이 서비스 불능, 패킷 전송 상태를 알수 없음
2. 패킷 전달 순서 문제 발생
이것을 개선하기 위해 나온것이 TCP입니다.
인터넷 프로토콜 4계층은 아래와 같습니다.
TCP 특징
• 연결지향 - TCP 3 way handshake (가상 연결)
• 데이터 전달 보증 (데이터를 전송했으면 데이터를 잘 받았다고 확인이 가능합니다)
• 순서 보장 (패킷을 순서대로 받을 수 있습니다)
• 신뢰할 수 있는 프로토콜
• 현재는 대부분 TCP 사용
TCP 3 way handshake (가상 연결) 에 대해 알아 봅시다.
사실 논리적으로 가상회선을 수립하는 단계입니다.
1. 클라이언트가 서버한테 SYN (접속요청) 을 하면
2. 서버에서 응답을 합니다. SYN+ACK (접속요청과, 응답)을 같이 해줍니다.
3. 마지막으로 클라이언트에서 ACK (응답)을 합니다.
UDP 특징
사용자 데이터그램 프로토콜(User Datagram Protocol)
• 하얀 도화지에 비유(기능이 거의 없음)
• 연결지향 - TCP 3 way handshake X
• 데이터 전달 보증 X
• 순서 보장 X
• 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
• 정리
• IP와 거의 같다. +PORT +체크섬 정도만 추가
-> 예를 들자면 개인이 한 pc에서 음악들으면서, 게임도하고, 웹서핑도하고, 유투브도 시청하고 여러개를
사용 중일경우 이 때 바로 UDP가 사용됩니다!
• 애플리케이션에서 추가 작업 필요
'기타 TIP' 카테고리의 다른 글
[SERVER] Tomcat catalina Log 관리 (0) | 2021.04.29 |
---|---|
동기(Sync) / 비동기(ASync) & 블로킹(Blocking) / 논블로킹(NonBlocking) (0) | 2021.04.13 |
[Network] 쿠키와 세션 개념 (0) | 2021.03.11 |
[Network] 인터넷 통신 (0) | 2021.03.08 |
[GIT] GitHub에 디렉토리 업로드 및 파일 업로드 (0) | 2021.02.28 |