[C511] 소켓과 포트의 특징을 작성하고, 그 차이점을 설명하세요.
소켓은 인터넷 프로토콜을 사용하여 통신을 하기 위한 연결점을 나타내는 개념입니다. 소켓은 IP 주소와 포트 번호로 (엔드포인트) 구성되며 이를 통해 데이터 통신을 수행할 수 있습니다. IP 주소는 데이터를 전달받을 호스트의 주소를 가리키고, 포트 번호는 그 데이터를 전달받을 호스트 안에서 원하는 프로세스를 찾는 용도로 사용됩니다.
즉, 소켓은 데이터를 주고받는 논리적인 연결점을 의미하며, 포트는 이러한 연결점이 어느 프로그램이나 서비스에 할당되어 있는지를 나타내는 식별자입니다.
추가적으로 소켓과 포트의 차이점은 하단 테이블 확인
[C512] HTTP 버전별 특징과 차이점을 설명하세요.
HTTP/0.9 : 최초 버전으로 GET 메소드만 지원하며 헤더 정보가 없었고 HTML 문서를 전송하는 용도로 사용됬습니다.
HTTP/1.0 : 0.9 버전 비해 POST, HEAD 메소드가 추가 되었고, 헤더 정보를 전송 할 수 있습니다. 상태 코드 라인도 응답의 시작부분에 추가되어 브라우저 요청의 성공과 실패를 파악 할 수 있음. 단 한계는 커넥션 하다당 요청 하나와 응답 하나 만 처리가 가능했음
HTTP/1.1 : 다수의 메서드와 헤더 필드를 추가하였으며 Persistent Connection 기능이 추가되면서 연결이 끊기지 않고 응답 속도 단축. Chunked Transfer encoding, Keep alive 등 기술들이 도입됐고, Pipelining 통해 순차적으로 하나씩 요청 / 응답 처리되는 기존 방식을 개선 했습니다. 한계는 Head of Line blocking (응답이 너무 오래걸리면 뒤 요청은 Blocking 되는 사태) 와 Header 구조의 중복 문제가 있습니다.
HTTP/2 : 바이너리 프로토콜을 도입하여 헤더 압축 및 다중화(Multiplexing)를 지원합니다. Multiplexed Streams는 Stream으로 요청 / 응답이 교환되어 동시에 여러 요청을 처리 하는 것입니다. 또한 Stream prioritization 통해 리소스간 우선순위를 설정할 수 있게 됐습니다.
요청 및 응답을 동시에 처리할 수 있으며, 서버 푸시(Server Push)를 지원하여 웹 페이지 로딩 속도를 개선합니다. Header compression은 요청과 응답의 헤더 메타데이터를 압축해서 오버헤드를 감소하는 것입니다.
HTTP/1.x에서는 동시에 하나의 요청만 처리할 수 있었지만, HTTP/2에서는 다수의 요청을 병렬 처리할 수 있어 성능을 크게 향상시켰습니다. 한계는 TCP 고유의 HOL blocking이 존재 (하나 문제가 생기면 처리 할 때까지 지연)
HTTP/3 : 기존의 TCP 프로토콜 대신 QUIC 프로토콜을 사용합니다. (3 way handshake 과정을 최적화)
지연 시간을 줄이고 대역폭 효율성을 높여 성능을 개선합니다. (HOL blocking 해결)
HTTP/2에서 도입된 기술을 보완하고, 보안성과 신뢰성을 높입니다.
'네트워크 기초' 카테고리의 다른 글
DevOps Day 25 (4.10) 네트워크 기초_Proxy Server 구현 (0) | 2023.04.10 |
---|---|
DevOps Day 24 (4.7) 네트워크 기초_아키텍처를 구성하는 요소들 (0) | 2023.04.07 |
DevOps Day 23 (4.6) 네트워크 기초_OSI 7계층과 TCP / IP 4계층 (0) | 2023.04.06 |