⚡️HTTP/3
·
Computer Science/Network
HTTP/3은 HTTP/1.1, HTTP/2와 함께 월드 와이드 웹(WWW)에서 정보를 교환하는 데 사용되는 HTTP의 세 번째 공식 버전입니다.가장 큰 차이점은 TCP 위에서 동작하던 HTTP/2와 달리, QUIC이라는 새로운 프로토콜 위에서 동작하며 UDP를 기반으로 한다는 점입니다.HTTP/2의 핵심 장점이었던 멀티플렉싱은 그대로 가져오면서, 초기 연결 속도를 획기적으로 줄인 것이 HTTP/3의 강력한 특징입니다.🚀 초기 연결 설정 시 지연 시간 감소QUIC은 TCP를 사용하지 않습니다. 덕분에 통신을 시작할 때 거쳐야 했던 번거로운 '3-way 핸드셰이크' 과정이 필요 없습니다.QUIC은 첫 연결에 단 1-RTT(딱 한 번만 왕복)만 소요됩니다. 클라이언트가 서버에 신호를 한 번 주고, 서버가 ..
🔒 HTTPS
·
Computer Science/Network
HTTP/2는 기본적으로 HTTPS 위에서 동작합니다. HTTPS란, 우리가 아는 HTTP가 SSL/TLS라는 보안 계층을 거치는 것을 말합니다. 이 보안 계층은 애플리케이션 계층과 전송 계층 사이에 끼어들어, 우리가 주고받는 모든 '통신을 암호화'합니다.🛡️ SSL/TLS인터넷 통신(전송 계층)을 위한 보안 규칙(프로토콜)입니다. 클라이언트와 서버가 데이터를 주고받을 때, 제3자가 메시지를 도청하거나 변조하지 못하도록 꽁꽁 잠가줍니다.SSL/TLS 덕분에, 공격자가 서버인 '척'하며 중간에서 사용자 정보를 가로채는 '인터셉터' 공격을 막을 수 있습니다.SSL/TLS는 '보안 세션'이라는 연결 통로를 기반으로 데이터를 암호화합니다. 이 보안 세션을 만들 때, '서로를 어떻게 믿을지(인증)', '어떤 자..
🚀 HTTP/2
·
Computer Science/Network
HTTP/2는 HTTP/1.x의 느린 속도를 개선하기 위해 등장한 새로운 버전입니다. 웹 서핑이 훨씬 쾌적해지도록 지연 시간(Latency)을 줄이고 응답 속도를 높였죠.이 빠른 속도의 비밀은 '멀티플렉싱', '헤더 압축', '서버 푸시'라는 3가지 핵심 기술에 있습니다.HTTP/1.x는 기본적으로 한 번에 하나씩 파일을 요청하고 받아야 했습니다. 인터넷 연결이 한 번 맺어져도, 웹페이지에 필요한 이미지, CSS, JS 파일 등 수많은 리소스를 처리하려면 요청한 순서대로 차례차례 기다려야 했죠. 리소스가 100개면 100번의 대기 시간이 생기는 셈입니다.📌 멀티플렉싱(Multiplexing)HTTP/1.x가 1차선 도로라면, HTTP/2는 8차선 고속도로입니다. 하나의 TCP 연결 위에서 여러 개의 '..
🏗️ HTTP/1.1
·
Computer Science/Network
HTTP/1.0에서 발전한 것이 바로 HTTP/1.1 입니다. 매번 TCP 연결을 하는 것이 아니라 한 번 TCP 초기화를 한 이후에 keep-alive 옵션을 통해 여러 개의 파일을 송수신할 수 있게 바뀌었습니다. 참고로 HTTP/1.0에서도 keep-alive가 있었지만 표준화가 되어 있지 않았고, HTTP/1.1부터 표준화가 되어 기본 옵션으로 설정되었습니다. 한 번 TCP 3-웨이 핸드셰이크가 발생하면 그다음부터 발생하지 않습니다. 하지만 문서 안에 포함된 다수의 리소스(이미지, 동영상, css 파일, js 파일)를 처리하려면 요청할 리소스 개수에 비례해서 대기 시간이 길어지는 단점이 있습니다.📌 HOL Blocking(Head Of Line Blocking)네트워크에서 같은 큐에 있는 패킷이 ..
🕰️ HTTP/1.0
·
Computer Science/Network
HTTP는 애플리케이션 계층으로 웹 서비스 통신에 사용됩니다. HTTP/1.0 부터 시작해서 발전을 거듭해 지금은 HTTP/3 입니다.HTTP/1.0은 기본적으로 한 연결당 하나의 요청을 처리하도록 설계되었습니다. 이는 RTT 증가를 불러왔습니다. 서버로부터 파일을 가져올 때마다 TCP의 3-웨이 핸드셰이크를 계속 열어야 했기 때문에 RTT가 늘어나는 단점이 있었습니다.용어 설명: RTT:패킷이 목적지에 도달하고 다시 출발지로 돌아오기까지 걸리는 시간, 즉 패킷 왕복 시간⏱️ RTT의 증가를 해결하기 위한 방법매번 연결할 때마다 RTT가 증가하므로 서버 부담이 커지고 사용자 응답 시간이 길어졌습니다. 이를 해결하기 위해 이미지 스플리팅, 코드 압축, 이미지 Base64 인코딩 등을 사용하곤 했습니다.📌..
🧭 IP 주소
·
Computer Science/Network
🖥️ ARP(Address Resolution Protocol)컴퓨터끼리 통신할 때는 IP 주소만으로는 실제 목적지를 알 수 없기 때문에, ARP를 이용해 IP 주소에 맞는 MAC 주소를 찾아 통신합니다. 즉, ARP는 IP 주소와 MAC 주소를 연결해주는 다리 역할을 하는 프로토콜이에요.IP는 사람이 보기 쉬운 ‘가상 주소’, MAC 주소는 실제 장치에 부여된 ‘물리 주소’예요.그래서 ARP는 IP 주소 → MAC 주소로 바꿔주고, 반대로 RARP는 MAC 주소 → IP 주소로 변환합니다. 예를 들어, 장치 A가 “IP 주소 120.70.80.3은 누구야?”라는 ARP Request(브로드캐스트)를 보내면,해당 IP를 가진 장치 B가 자신의 MAC 주소를 알려주는 ARP Reply(유니캐스트)를 보내..
🪄 네트워크 기기, 계층별로 한눈에 정리하기!
·
Computer Science/Network
네트워크에는 여러 가지 장비들이 있는데요,이 장비들은 OSI 7계층 또는 TCP/IP 4계층 중 어느 계층을 처리하느냐에 따라 역할이 달라집니다.즉, 어떤 기기는 물리 계층만 처리하고, 어떤 기기는 애플리케이션 계층까지 처리할 수 있어요.👉 참고로 상위 계층을 처리할 수 있는 장비는 하위 계층도 처리 가능하지만, 그 반대는 불가능하다는 점도 알아두면 좋아요!애플리케이션 계층 : L7 스위치인터넷 계층 : L3 스위치데이터 링크 계층 : L2 스위치, 브리지물리 계층 : NIC, 리피터, API🖥️ 애플리케이션(application) 계층을 처리하는 기기🌈 L7 스위치(로드 밸런서)L7 스위치는 흔히 로드 밸런서라고 부릅니다. 여러 서버에 클라이언트 요청을 골고루 분산시켜주는 장치예요.즉, 트래픽이 ..
📚 PDU
·
Computer Science/Network
네트워크에서 데이터가 전송될 때, 한 계층에서 다른 계층으로 전달되는 단위를 PDU (Protocol Data Unit) 라고 합니다.PDU는 제어 정보가 담긴 헤더(Header) 와 실제 데이터인 페이로드(Payload) 로 구성되어 있으며, 각 계층마다 부르는 이름이 조금씩 다릅니다.애플리케이션 계층 : 메시지전송 계층 : 세그먼트(TCP), 데이터그램(UDP)인터넷 계층 : 패킷링크 계층 : 프레임(데이터 링크 계층), 비트(물리 계층)
🧩 TCP/IP 4계층과 OSI 7계층의 차이
·
Computer Science/Network
인터넷 프로토콜 스위트는 인터넷에서 컴퓨터들이 서로 정보를 주고받기 위해 사용되는 프로토콜의 집합이에요. 이를 TCP/IP 4계층 모델로 설명하거나, 좀 더 세분화한 OSI 7계층 모델로 설명하기도 합니다. 이 계층 모델은 네트워크에서 사용되는 통신 프로토콜들을 기능에 따라 구분한 구조로, 프로토콜의 역할과 네트워킹 범위에 따라 4개의 추상화 계층으로 구성되어 있습니다.TCP/IP 계층과 달리 OSI 모델은애플리케이션 계층을 세 개(응용, 표현, 세션 계층)로 나누고링크 계층을 데이터 링크 계층과 물리 계층으로 세분화합니다.또한, TCP/IP의 인터넷 계층은 OSI 모델에서 네트워크 계층이라고 부릅니다.이러한 계층 구조는 한 계층이 변경되어도 다른 계층에 영향을 주지 않도록 설계되어 있어요.🖥️ 애플리..
🤝 네트워크 프로토콜: 전 세계 컴퓨터의 약속
·
Computer Science/Network
네트워크 프로토콜(Protocol)이란 서로 다른 장치들이 통신하기 위해 만든 공통된 규칙이자 약속입니다.우리가 처음 만나는 외국인과 대화하려면 '영어'라는 공통된 언어를 사용해야 하듯, 삼성 노트북이 Apple 서버에 접속하거나 LG 스마트폰이 데이터를 보내려면 서로가 알아들을 수 있는 공통된 '컴퓨터 언어'가 필요합니다. 이 언어가 바로 프로토콜입니다.🔌 왜 표준화가 필요한가요?만약 모든 회사가 각자 자기들만의 통신 규칙을 만든다면 어떻게 될까요? 아마 삼성 기기는 삼성 기기끼리만, 애플 기기는 애플 기기끼리만 통신이 되는 끔찍한 상황이 벌어질 겁니다.이러한 혼란을 막고, 어떤 제조사가 만든 장비든 서로 문제없이 통신할 수 있도록 하기 위해 '표준화'가 필요합니다. 이 표준을 정하는 대표적인 단체..