주니어 기초 코딩공부

TCP 와 UDP 차이점

jju_developer 2022. 12. 9. 17:49
728x90

안녕하세요 jju_developer 입니다.

 

오늘은 Java TCP 와 UDP 차이점에 대해 간단하게 소개하는 시간을 갖겠습니다.

 

전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층입니다.

 

✔Java TCP란 무엇일까요? (Transmission Control Protocol)

 연결 지향적 프로토콜 -> 시간 소요
 통신 선로 고정 -> 전송 속도 느려질 수 있음
 데이터를 정확하고 안정적으로 전달
TCP 네트워킹을 위해 java.net.ServerSocket, java.net.Socket 클래스를 제공하고 있습니다.

jju_developer

마치 전화 통화 하는 것과 비슷합니다.

 

✔Java UDP란 무엇일까요?(User Datagram Protocol)

 비연결 지향적 프로토콜
- 연결 절차 거치지 않고 발신자가 일방적으로 데이터 발신하는 방식
- TCP 보다는 빠른 전송
 통신 선로가 고정적이지 않음 
- 데이터 패킷들이 서로 다른 통신 선로 통해 전달될 수 있음
- 먼저 보낸 패킷이 느린 선로 통해 전송될 경우, 나중에 보낸 패킷보다 늦게 도착 가능
 데이터 손실 발생 가능성
- 일부 패킷은 잘못된 선로로 전송되어 유실 가능
- 데이터 전달 신뢰성 떨어짐

jju_developer

마치 우편과도 같아 한번 보낸 발신자는 상대방이 받았는지 여부를 알 수 없습니다.

 

✔TCP 와 UDP의 공통점과 차이점 정리!

공통점 : 포트 번호를 이용하여 주소를 지정합니다.

둘다 데이터 오류 검사를 위한 체크섬이 존재합니다.

 

차이점: 

TCP : 수신자와 송신자 간의 연결이 성공해야 통신이 가능합니다. (연결형 프로토콜)

UDP: 연결 절차 거치지 않고 발신자가 일방적으로 데이터 발신하는 방식(비연결형 프로토콜)

 

TCP : 통신 선로 고정 -> 전송 속도 느려질 수 있습니다.

UDP: 통신 선로가 고정적이지 않습니다. - TCP 보다는 빠른 전송 -> 데이터 유실의 위험이 높습니다.

 

TCP : 데이터를 정확하고 안정적으로 전달

UDP: 데이터 손실 발생 가능성

- 일부 패킷은 잘못된 선로로 전송되어 유실 가능

- 데이터 전달 신뢰성 떨어짐

- 먼저 보낸 패킷이 느린 선로 통해 전송될 경우, 나중에 보낸 패킷보다 늦게 도착 가능

 

즉, 신뢰성이 요구되는 애플리케이션에서는 TCP를 사용하고 간단한 데이터를 빠른 속도로 전송하고자 하는 애플리케이션에서는 UDP를 사용합니다.

 

✔IP 주소와 포트(Port)

◎IP(Internet Protocol) 주소

• 네트워크상에서 컴퓨터를 식별하는 번호

• 네트워크 어댑터(랜 (Lan) 카드) 마다 할당

• IP 주소 확인 법 – 명령 프롬프트 (cmd.exe) 사용

• xxx.xxx.xxx.xxx 형식으로 표현 (xxx는 0~255 사이의 정수)

 

◎포트(Port)

• 같은 컴퓨터 내에서 프로그램을 식별하는 번호

• 클라이언트는 서버 연결 요청 시 IP 주소와 Port 같이 제공

• 0~65535 범위의 값을 가짐

• 포트 범위는 세 가지로 구분

 

 

이상 자바에서 사용하는 TCP와 UDP의 간략한 소개 및 설명이였습니다.

 

궁금하신 부분이나, 수정해야할 내용 있으시면 댓글 부탁드립니다.

 

감사합니다.

 

 

 

728x90