TCP 와 UDP 차이점
안녕하세요 jju_developer 입니다.
오늘은 Java TCP 와 UDP 차이점에 대해 간단하게 소개하는 시간을 갖겠습니다.
전송계층은 IP에 의해 전달되는 패킷의 오류를 검사하고 재전송 요구 등의 제어를 담당하는 계층입니다.
✔Java TCP란 무엇일까요? (Transmission Control Protocol)
연결 지향적 프로토콜 -> 시간 소요
통신 선로 고정 -> 전송 속도 느려질 수 있음
데이터를 정확하고 안정적으로 전달
TCP 네트워킹을 위해 java.net.ServerSocket, java.net.Socket 클래스를 제공하고 있습니다.
마치 전화 통화 하는 것과 비슷합니다.
✔Java UDP란 무엇일까요?(User Datagram Protocol)
비연결 지향적 프로토콜
- 연결 절차 거치지 않고 발신자가 일방적으로 데이터 발신하는 방식
- TCP 보다는 빠른 전송
통신 선로가 고정적이지 않음
- 데이터 패킷들이 서로 다른 통신 선로 통해 전달될 수 있음
- 먼저 보낸 패킷이 느린 선로 통해 전송될 경우, 나중에 보낸 패킷보다 늦게 도착 가능
데이터 손실 발생 가능성
- 일부 패킷은 잘못된 선로로 전송되어 유실 가능
- 데이터 전달 신뢰성 떨어짐
마치 우편과도 같아 한번 보낸 발신자는 상대방이 받았는지 여부를 알 수 없습니다.
✔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의 간략한 소개 및 설명이였습니다.
궁금하신 부분이나, 수정해야할 내용 있으시면 댓글 부탁드립니다.
감사합니다.