240112 1stTIL : TCP/UDP와 http 및 https

HR J·2024년 1월 12일
0

스프링 개념 정리

목록 보기
5/7

TCP? UDP?

둘 다 인터넷 프로토콜 스위트의 핵심 프로토콜 중 하나로, 네트워크 통신에서 데이터를 전송하는 방법을 정의함.

TCP (Transmission Control Protocol)

  • TCP는 연결 지향적인 프로토콜로, 데이터 전송을 시작하기 전에 먼저 두 시스템 간에 연결을 설정. 이는 '3-way handshaking' 과정으로 이루어지고, 순서는 다음과 같다:
  1. 클라이언트가 서버에게 SYN 패킷을 보내 연결 요청.
  2. 서버는 SYN 패킷을 받고, SYN과 ACK (Acknowledgement) 패킷을 동시에 클라이언트에게 전송.
  3. 클라이언트는 ACK 패킷을 서버에게 보내 연결을 확립.
  • TCP는 이런 방식으로 데이터의 순서와 신뢰성을 보장함. 패킷이 손실되면 재전송을 요청하고, 도착한 패킷의 순서가 바뀌었다면 원래의 순서대로 재배열함.

UDP (User Datagram Protocol)

  • 반면, UDP는 연결이 설정되지 않은 상태에서 데이터를 전송하는 비연결형 프로토콜.
  • 이는 데이터를 빠르게 전송할 수 있는 장점이 있지만, 패킷의 도착 순서나 손실에 대한 보장이 없다.
  • 따라서, 신뢰성이 중요한 애플리케이션보다는 실시간성이 중요한 서비스에서 주로 사용됨.

자바 스프링에서는 TCP와 UDP 통신을 위해 java.net 패키지의 Socket과 DatagramSocket 클래스를 사용할 수 있다.

TCP에는 Socket과 ServerSocket 클래스를, UDP에는 DatagramSocket과 DatagramPacket 클래스를 사용.

이렇게 TCP와 UDP의 신뢰성 차이는 각 프로토콜의 특성과 그에 따른 처리 과정에서 비롯됨.
TCP는 데이터의 신뢰성을 보장하기 위해 연결 설정과 패킷 관리 과정을 거치지만, UDP는 이러한 과정 없이 빠르게 데이터를 전송함.

http? https?

둘 다 웹 상에서 정보를 주고받는 프로토콜.

http

  • HTTP는 클라이언트에서 서버로 요청을 보내고, 서버에서 클라이언트로 응답을 전달하는 방식으로 동작.
  • 하지만 HTTP는 암호화되지 않은 상태로 데이터를 전송하기 때문에, 중간에서 데이터를 가로채거나 변조하는 것이 가능.

https

  • 반면, HTTPS는 SSL(Secure Sockets Layer) 또는 그 후속인 TLS (Transport Layer Security) 프로토콜을 사용하여 통신 내용을 암호화함. 이로 인해 중간에서 데이터를 가로채더라도 내용을 알아볼 수 없음.

SSL인증서?

  • SSL 인증서는 이러한 암호화된 통신을 가능하게 하는 도구.
  • 데이터가 원본 그대로 전송되었는지 확인하는 역할.
  • 인증서는 공개키 암호화 방식을 사용하는데, 이는 데이터를 암호화하는 키와 복호화하는 키가 서로 다른 방식.

SSL인증서 적용 과정

  1. 서버는 공개키를 클라이언트에게 제공
  2. 클라이언트는 이를 이용해 데이터를 암호화하여 전송.
  3. 서버는 자신만이 가지고 있는 비밀키로 암호화된 데이터를 복호화합니다.
  • 장점
    I) 데이터의 기밀성: 중간에서 데이터를 가로채도 복호화할 수 없음.
    II) 데이터의 무결성: 데이터가 전송 중에 변조되지 않았음을 보장.
    III) 인증: 클라이언트는 SSL 인증서를 통해 서버의 신원을 확인할 수 있음.

  • 단점
    I) 처리 속도: 암호화와 복호화 과정으로 인해 HTTP에 비해 처리 속도가 느림.
    II) 인증서 발급 및 관리: 인증서를 발급하고 유지하기 위한 비용과 노력이 필요.

스프링 자바에서는 HttpServlet 클래스를 통해 HTTP 요청을 처리할 수 있고, java.net.http.HttpClient 클래스를 이용해 HTTP 또는 HTTPS 요청을 보낼 수 있다.
단, HTTPS 설정을 위해서는 서버 설정에 SSL 인증서를 등록해야 한다.

profile
Newbie Engineer&Programmer

0개의 댓글