본문 바로가기

Computer Science/Network

(14)
<네트워크> http 버전 별 특징 (3.0) 1. HTTP/3 - HTTP/3 은 UDP 기반의 프로토콜인 QUIC을 사용하여 통신하는 프로토콜이다. 아직 HTTP/2 도 점유율이 50%가 되지 않는데 놀랍다. 아직 표준은 아니지만 구글은 이미 실험적으로 사용하고 있다. - UDP를 모른다면 TCP와의 비교에 대해 먼저 알아보는 것을 추천한다. 어쨌든 UDP를 조금이라도 안다면 이런 생각이 들 것이다. TCP보다 당연히 빠르지만 신뢰성도 떨어지고 전송 순서도 보장되지 않는 프로토콜 아닌가? 이는 반은 맞고 반은 틀렸다. TCP는 신뢰성있는 통신을 위해 몇 가지 방법을 사용하였다. 이들 또한 클라이언트와 서버와의 통신이므로 레이턴시가 발생하고, 이는 TCP라는 프로토콜이 생길 때부터 정의된 표준이므로 무시할 수가 없다. 2. TCP의 문제점 - 위에..
<네트워크> http 버전 별 특징 (0.9 / 1.0 / 1.1 / 2.0) 1. http/0.9 - 초기 단계의 http 프로토콜은 버전 번호도 없었으며 매우 간단했다. 이후 버전과 구별하기 위해 0.9라고 불리게 되었다. - http/0.9 요청은 단일 라인으로 구성되며 리소스에 대한 경로로 가능한 메서드는 GET이 유일했다. GET /myapp.html - 응답 또한 매우 단순하게 파일 내용 자체로 구성되어 있었다. 헤더도 없이 html파일만 전송될 수 있으며 다른 유형의 문서는 전송될 수 없음을 의미했다. 상태코드도 없어서 문제가 있을 경우 파일 내부에 문제에 대한 설명과 함께 보내곤 했다. 2. http/1.0 - http/1.0은 이전에 비해 브라우저와 서버에서 확장성있게 진화되었다. 1.0이라는 버전정보가 전송되기 시작했고, 상태코드가 응답의 시작 부분에 붙어 전송되..
<네트워크> 페이지 렌더링 과정 1. 소개 - 지난 포스팅에서는 페이지 로딩 과정에 대해 알아보았다. 거기서 렌더링을 간단하게 짚어보았는데, 이번 포스팅에서는 그 부분에 대한 과정을 좀 더 자세히 알아보고자 한다. - 브라우저가 렌더링 하는 과정을 간단하게 미리 언급하자면, 먼저 html과 css를 처리하여 DOM트리와 CSSOM 트리를 빌드한다. 그리고 그 둘을 결합하여 렌더트리(렌더링트리)를 만들고, 각 레이아웃을 실행하여 형태를 계산한다. 마지막으로 그들을 그린다. 이제 이 과정을 세세하게 알아보자. 2. 과정 * DOM - 다운받은 html을 파싱하며 DOM트리를 만든다. - html을 파싱하는 것은 다음 일련의 과정을 거친다. ∙ Conversion : 바이트를 읽고 인코딩하여 문자열로 바꾸는 과정을 의미한다. ∙ Tokeni..
<네트워크> 페이지 로딩 과정 1. 소개 - 이번 장에서는 우리가 브라우저에서 특정 페이지로 이동할 때 어떤 과정을 거치는지 알아보자. - 흔히 우리는 브라우저가 URL을 해석하고 HTTP를 사용하여 웹페이지를 다운로드하여 사용자에게 보여준다고 알고있다. 이 장에서는 그 뒷면에서 어떤 과정들을 거치는지 알아볼 것이다. 2. 과정 - 여기서 설명하는 과정은 현재의 페이지(www.current.com) 에서 특정한 다음 페이지(www.next.com) 로 이동한다고 가정한다. - 이 때 웹 페이지를 로드하는 과정은 아래의 W3C Spec을 따른다. - 아래의 노란 부분은 JS로 건드릴 수 없고, 네트워크 Level에서 작업된다. * Prompt for unload - 현재 페이지에서 다른 페이지로 이동할 때 발생하는 이벤트이다. - js..
<네트워크> 무선 랜 1. 무선 랜의 구조 * 무선 랜이란. - 이전 장까지는 랜 케이블로 연결하여 통신하는 유선 랜의 구조에 대해 공부하였다. - 무선 랜 : 무선 신호 전달 방식을 이용하여 두 대 이상의 장치를 연결하는 기술이다. 정식 명칭은 wireless LAN이지만 Wi-Fi라는 마케팅 네임으로 주로 사용한다. - 장점 : 케이블이 없으므로 걸리적거리지 않고 깔끔하고 편하다. 랜 케이블이 닿지 않는 근처에서도 통신이 가능하다. - 단점 : 유선보다 속도가 불안정하고 전파가 약하면 연결이 잘 안될 수 있다. 유선에 비해 보안에 취약하다. - 무선랜은 다음과 같이 무선 액세스 포인트와 무선 클라이언트로 구성된다. - 컴퓨터가 무선 액세스 포인트와 통신하려면 무선 랜 칩과 무선 랜 어댑터가 필요하다. 최근에 나온 컴퓨터는..
<네트워크> OSI모델의 흐름 1. 랜카드에서의 데이터 전달 및 처리 * 네트워크의 구성 - 이번 포스팅에서는 지금까지의 내용을 총 정리해보자. - 웹 사이트에 접속하였을 때 OSI 모델 상위 응용 계층부터 하위 물리 계층까지의 작업을 정리해보자. - 응용 계층 : (세션 계층과 표현 계층 포함) 애플리케이션 등에서 사용하는 데이터를 송수신하는 데 필요 - 전송 계층 : 목적지에 데이터를 정확하게 전달하는 데 필요 - 네트워크 계층 : 다른 네트워크에 있는 목적지에 데이터를 전달하는데 필요 - 데이터 링크 계층 : 랜에서 데이터를 송수신하는 데 필요 - 물리 계층 : 데이터를 전기 신호로 변환하는 데 필요 - 컴퓨터, 스위치, 라우터, 웹 서버로 구성된 네트워크가 있다고 가정해보자. - 위 그림에서 네트워크는 총 세 개로 구성되어 있..
<네트워크> 응용 계층 1. 응용 계층의 역할 * 응용계층 - 애플리케이션 : 운영 체제에서 실행되는 모든 소프트웨어를 의미한다. 인터넷 익스플로러 같은 웹브라우저부터 Outlook과 같은 메일프로그램 등을 포함한다. - 클라이언트 : 서비스를 요청하는 측을 의미한다. 웹 브라우저나 메일프로그램 등을 의미한다. - 서버 : 서비스를 제공하는 측을 의미한다. 웹 서버 프로그램과 메일 서버 프로그램 등을 의미한다. - 위와 같은 애플리케이션들이 응용 계층에서 동작한다. 참고로 이 장에서의 응용 계층은 세션 계층과 표현 계층을 포함하는 것으로 생각한다. - 응용계층은 사용자 측의 요청을 전달하기 위해 통신 대상이 이해할 수 있는 메시지(데이터)로 변환하고 전송 계층으로 전달한다. - 클라이언트 측 애플리케이션(웹 브라우저, FTP,..
<네트워크> 전송 계층 1. 전송 계층의 역할 * 전송 계층의 두 가지 역할 - 이전 장까지 물리 계층, 데이터 링크 계층, 네트워크 계층을 살펴 보았다. 그러나 이 계층들은 목적지에 데이터를 보내는 중에 데이터가 손상되거나 유실되더라도 아무것도 하지 못한다. - 전송 계층은 목적지에 신뢰할 수 있는 데이터를 전달하기 위해 오류를 점검하고, 애플리케이션을 식별하는 기능을 가지고 있다. - 전송 계층은 오류가 발생하면 점검하여 데이터를 재전송하도록 요청한다. - 컴퓨터가 데이터를 받더라도 어느 애플리케이션에 전달해야할지 알아야 한다. 홈페이지인지 메일프로그램인지 등을 구분하도록 전송된 데이터의 목적지가 어떤 애플리케이션인지 식별한다. * 연결형 통신과 비연결형 통신 - 연결형 통신 : 신뢰할 수 있고 정확한 데이터를 전달하는 통..
<네트워크> 네트워크 계층(2) 1. 네트워크 주소 & 브로드캐스트 주소 * 네트워크 주소와 브로드캐스트 주소란 - IP주소에는 네트워크 주소와 브로드캐스트 주소가 있다. 이들은 특별한 주소로 컴퓨터나 라우터가 자신의 IP로 사용하면 안된다. - C클래스 사설IP 주소의 예는 다음과 같다. - 네트워크 주소 : 전체 네트워크에서 작은 네트워크를 식별하는데 사용된다. 호스트 ID가 10진수로 0이면 그 네트워크 전체를 대표하는 주소이다. - 브로드캐스트 주소 : 네트워크에 있는 컴퓨터나 장비 모두에게 한 번에 데이터를 전송하는 데 사용되는 전용IP 2. 서브넷 * 서브넷 - 서브넷 : 하나의 네트워크가 분할되어 나눠진 작은네트워크를 의미한다. 클래스 단위로만 분류를 한다면 적절한 네트워크의 크기로 구분할 수 없다. 따라서 서브넷으로 분할..
<네트워크> 네트워크 계층(1) 1. 네트워크 계층의 역할 * 네트워크 간의 연결 구조 - 다른 네트워크에 있는 목적지로 데이터를 전달하려면 네트워크 계층의 기술이 필요하다. - 지난 장에서 다룬 데이터 링크 계층에서는 이더넷 규칙을 기반으로 데이터 전송을 담당했다. 따라서 같은 네트워크에 있는 컴퓨터로만 전송이 가능했다. - 네트워크 A~C와 같이 네트워크 간 통신을 가능하게 하는 것이 네트워크 계층의 역할이다. 이 때 라우터라는 네트워크 장비가 필요하다. - 라우터는 해당 목적지까지 어떤 경로로 가는 것이 좋을지를 알려준다. - IP 주소: 랜에서는 MAC주소만으로 목적지를 판단했으나 네트워크 간에는 네트워크를 식별할 수 있는 별도의 주소가 필요하다. - 라우팅 : 목적지 IP 주소까지 어떤 경로로 데이터를 보낼지 결정하는 것 - ..