CS 공부

TCP/UDP

TCP와 UDP는 네트워크 계층 중 전송 계층에 사용되는 프로토콜이며,

TCP와 UDP의 가장 큰 차이는 TCP는 신뢰성에 UDP는 속도 측면에 장점이 있다는 것이다.

 

TCP

먼저 TCP는 연결형 프로토콜이다. 따라서 신뢰성에 중점을 두었다.

  1. 연결형 서비스로 가상 회선 방식을 제공
  2. 흐름 제어 - 데이터 처리 속도를 조절하여 수신 측의 오버플로우를 방지
  3. 혼잡 제어 - 네트워크 내 패킷 수가 과도하지 않도록 조절
  4. 높은 신뢰성
  5. full-duplex - 전송이 양방향으로 일어날 수 있다. point-to-point - 각 연결이 정확히 2개의 종단점을 가지고 있음.

TCP의 통신 방식은 송신-수신 측이 연결되었음을 확인하기 위해 연결을 설정할 때 3-way handshaking을 한다. 송신측이 수신 측에게 연결 확인을 위해 무작위 값 SYN을 하나 보내는 것이 첫번째, 수신 측이 잘 받았다는 의미로 SYN와 ACK 값을 보내는 것이 2번째, 마지막으로 송신 측도 잘 받았다는 의미로 ACK를 다시 보냄으로서 연결 설정이 완료된다. 연결을 해제할 때는 4-hand로 진행된다.

이 같은 과정을 통해 가상 회선 방식, 즉 발신지와 수신지를 연결하는 논리적 경로를 배정하는 절차를 거친다.

이처럼 수신 여부를 확인하는 절차 때문에 연결 자체도 시간이 오래 걸리고, 전송 순서 보장 등의 검증도 해주기 때문에 시간은 오래 걸리지만 그만큼 높은 신뢰성을 보장한다.

 

UDP

UDP는 비연결형 프로토콜이고 속도에 중점을 두었다.

  1. 데이터그램 방식을 사용 - 데이터의 전송 경로가 다르고 그로 인해 순서가 보장되지 않는다.
  2. 데이터 수신 여부를 확인하지 않음 - no hand shaking
  3. 2번의 이유와 흐름 제어를 따로 하지 않기 때문에 신뢰성이 낮다.
  4. TCP보다 검증 과정이 적기 때문에 속도가 빠르다
  5. 1:1 1:N N:N 통신이 가능하다.

 

http, https 차이점

HTTP 는 클라이언트와 서버 간의 통신을 위한 규약으로 네트워크 통신을 작동하게 하는 기본 기술이다.

 

HTTPS는 HTTP에 secure를 더한 것으로 브라우저와 서버가 데이터를 전송하기 전 암호화된 연결을 설정한다.

HTTP는 OSI 7계층의 어플리케이션 계층 프로토콜이며 Request인지 Response인지에 따라 첫 줄에 startline 혹은 status line, 또한 header, body 이렇게 3가지 부분으로 이루어져 있다.

이 3가지 형태에 일치하게 데이터를 송수신하자 하는 게 HTTP 규약이다.

그러나 HTTP는 암호화되지 않은 데이터를 보내기 때문에 제3자가 가로챌 수 있는 위험성이 있다. 이 위험을 방지하기 위해 보안 계층이 추가된 HTTPS 프로토콜이 등장하였다.

HTTPS를 적용한 웹 사이트를 만들기 위해서는 독립된 인증 기관에서 발부하는 SSL/TLS 인증서를 획득해야한다. HTTPS가 적용된 웹사이트는 신뢰를 구축하기 위해 데이터 교환 전 브라우저와 인증서를 교환공유한다.

SSL 인증서는 암호화 정보도 포함하므로 서버와 웹 브라우저는 암호화된 데이터나 스크램블된 데이터를 교환할 수 있다.

HTTPS를 선택하면 좋은 이유

  1. 보안 - HTTP는 텍스트 기반이기 때문에 가로채기 쉽다.
  2. 권위 - 검색 엔진은 HTTPS 기반 웹사이트의 순위를 더 높게 지정한다. 고객도 이를 더 선호한다.
  3. 성능도 더 좋다.

'TIL' 카테고리의 다른 글

[24.01.16]  (0) 2024.01.17
[24.01.10]  (1) 2024.01.10
[24.01.09]  (0) 2024.01.10
[24.01.08]  (1) 2024.01.08
[24.01.05]  (0) 2024.01.05

+ Recent posts