네크워크 첫번째 발표

Jin·2022년 5월 18일
0

DevOps

목록 보기
21/25
post-custom-banner
  • 소켓과 포트의 특징을 작성하고, 그 차이점을 설명하세요.

소켓과 포트의 차이에 대해서 알기 위해서는 호스트라는 것에 대해 알아야 한다.

호스트는 IP 주소(네트워크 주소)가 할당된 노드*이다. (node는 컴퓨터 과학에 쓰이는 기초적인 단위이다. 대형 네트워크에서는 장치나 데이터 지점(data point)을 의미한다. 개인용 컴퓨터, 휴대전화, 프린터와 같은 정보처리 장치들이 노드이다.(위키백과))

할당된 IP 주소를 이용해서 호스트들끼리 서로 데이터를 주고받는다. 인터넷에 연결되어 있으면 다 호스트라고 하는 것 같다.

소켓과 포트의 차이

  • 어플리케이션이 네트워크와 통신을 하기위해서는 포트를 할당받아야 하는데 서버의 경우에는 보통 하나만 할당받는다.

왜냐하면 같은 어플리케이션이 같은 포트를 가지고도 여러개의 소켓을 열 수 있기 때문에 굳이 여러개의 포트가 필요가 없다

  • 하나의 어플리케이션 서버등 같은 프로토콜, 같은 IP주소, 같은 포트넘버를 가지는 수십 혹은 수만 개의 소켓을 가질 수 있다. 이런 이유 때문에 하나의 프로세스는 하나의 포트만으로도 다른 여러 호스트에 있는 프로세스의 요청을 처리할 수 있고 게임 서버의 동시 접속자 수가 수십수백만이 될 수가 있다.

HTTP 버전별 특징과 차이점을 설명하세요.

HTTP란 웹에서 클라이언트와 서버 간의 통신을 위한 프로토콜이다. 신뢰성 있는 연결을 위해 HTTP 0.9~2까지는 TCP를 기반으로 한다.

HTTP/0.9 - 원 라인 프로토콜

메소드 : GET(유일)

HTML 파일 자체를 보내주는 기능만 한다.

요청 단일라인, 응답도 극도로 단순.

HTTP/1.0

HTTP/0.9는 매우 제한적이었으며 브라우저와 서버 모두 좀 더 융통성을 가지도록 빠르게 확장되었다. 1.0에서 헤더가 생겼다. 헤더에는 HTTP 버전정도, 상태코드 등 여러 정보를 보낼 수 있게 되었다. Content-Type이라는 헤더도 생겨서 html 외에 다른 타입의 파일도 전송할 수 있게 됐다. 버전 정보와 요청 메소드가 함께 전송되기 시작했다.

HTTP/1.1 - 표준

1997년 등장, 지정한 타임아웃 동안 커넥션을 닫지 않는 방법을 통해 커넥션의 사용성이 높아졌다. Pipelining 추가되었다. 요청에 대한 응답을 기다리지 않고 순차적인 여러 요청을 연속적으로 보내고 그 순서에 맞춰 응답을 받는 방식이 등장하였다.

HTTP/2.0

기존 HTTP 1.x버전의 성능 향상에 초점을 맞춘 프로토콜로 2015년에 등장했다. 표준의 대체가 아닌 확장개념.

  • 특징
    • 1) HTTP 메시지 전송 방식의 전환
    • 2) Multiplexed Streams
    • 3) Stream Prioritization
    • 4) Server Push
    • 5) Header Compression

[ QUIC / HTTP 3.0 ]
• QUIC ?
◦ Google에서 개발한 UDP 기반의 전송 프로토콜 (Quick UDP Internet Connections)
◦ Google에서 TCP의 구조적 문제로 성능 향상이 어렵다고 판단하여 UDP 기반을 선택
◦ QUIC은 TCP의 3-way handshake과정을 최적화 하는 것에 초점을 두고 개발됨
◦ QUIC은 TCP의 Stream은 하나의 chain으로 연결되는 것과 다르게 각 Stream당 독립된 Stream chain을 구성하여 TCP HOL Blocking을 해결하였다
• HTTP 3.0
◦ QUIC을 기반으로 나온 새로운 HTTP 메이저 버전

profile
Today I Learned..
post-custom-banner

0개의 댓글