응용프로그램 작성을 위한 약속이 Application Layer 에 해당한다. 대표적으로, 서버와 클라이언트간의 통신에 사용되는 HTTP가 있다. HTTP HTTP 는 전송계층 프로토콜로 TCP 를 활용하며, 80번 포트를 사용한다. 쿠키 로컬에 저장되는 유저관련 데이터 조각. 구분해야 할 것이, 서버에 저장되는 유저 데이터는 세션이라고 불린다. 이는 HTTP 헤더에 포함되어 보내진다. 웹캐시의 역할 프락시 서버이다. response time 줄이고, traffic 도 줄이는 역할을 한다. 웹 캐시 서버의 데이터들 expiration time 있다. hit 율이 높을수록 좋다. DNS (Domain Name System) 도메인 네임을 IP 주소로 변환해주는, UDP 를 사용하는 응용계층 프로토콜이다. ..
Overview 전송계층은 물리적인 연결, 인접 스테이션간의 신뢰성 있는 데이터 전송부터 네트워크 간의 연결 보장과 같은 1~3 계층까지의 구현에 문제가 없음을 가정하고, end-to-end 간의 신뢰성있는 데이터 전송을 보장하는 것을 목표로 한다. 전송계층에선 보내고자하는 메세지를 세그먼트 단위로 쪼개며, 각 세그먼트의 헤더에 시작지와 도착지의 포트 번호를 적어 이를 3계층에 내려준다. 즉, 응용계층에서는 데이터의 크기에 대한 큰 고려 없이 이를 전송계층에 전달하며, 전송계층에서 이를 적절하게 쪼개어 목적지로 보내고, 수신측에서는 반대로 이를 합쳐서 다시 응용계층으로 올려준다. 여기서 end-to-end 간의 데이터 전송이란 호스트상에 존재하는 여러개의 어플리케이션간의 전송을 의미한다. 쉬운 예시로, ..
이번 포스팅에선 HTTP가 발전되어온 과정과 그 특징들을 살펴보려고 한다. HTTP/0.9 HTTP/0.9 의 경우 매우 초기 버전의 프로토콜로, 단순히 GET 요청에 응답을 주고받는 기능에 불과하였다. HTTP/1.0 HTTP/1.0 버전에서 헤더가 추가되었고, GET외에도 PUT, POST, DELETE 등의 메소드를 구분하여 요청할 수 있게 되었다. 기본적으로 HTTP는 TCP/IP를 기반으로 동작하는데, HTTP/1.0 버전에선 동일한 서버에 대한 모든 요청에는 별도의 TCP 커넥션이 수립되어야 했다. TCP 커넥션 수립 자체도 3-way handshake 같은 과정이 수행되어 네트워크를 통해 여러번의 요청을 주고받아야 했기 때문에 이는 성능 저하, 서버 부하 비용증가로 이어졌다. HTTP/1.1..
Neywork Layer 다음으로 3계층 네트워크 레이어에 대하여 살펴보겠다. 3계층의 역할은 네트워크를 거쳐 원하는 목적지까지의 연결성을 제공하는 것이다. 중요한 특징은 3계층은 best-effort 방식으로, 최대한의 노력은 하지만 항상 데이터 전송이 성공하는 것을 보장하지 못한다. 이에 따른 신뢰성 보장은 4계층에서 담당한다. 또한, connection less 라는 특성을 가지기 때문에 TCP 커넥션이 맺어져도 경로는 매번 다를 수 있다. 3계층의 주요 프토콜은 IP(Internet Protocol)이다. 3계층의 장비들은 서로를 인식하고 통신하기 위해 IP주소를 활용한다. 이 때 3계층의 주요 장비는 라우터이며, 핵심 기능은 forwarding 과 routing 이 있다. 라우터에선 routin..
Link Layer 2계층은 인접한 스테이션간의 신뢰성 있는 통신을 보장한다. 여기서 인접한 스테이션이란 직접 연결되어 있는 다른 네트워크 장비라고 생각할 수 있다. 데이터를 전송하면 여러 네트워크 장비를 거치며 최종 목적지까지 도달하게 될텐데, 매 과정마다 자신과 가장 인접한 네트워크 장비에 데이터를 보내는 과정이 포함될 것이다. 2계층은 그러한 인접 스테이션간의 데이터 전송 신뢰성을 보장하는 계층이다. 어떻게 보장한다는 걸까? 먼저 신뢰성을 보장한다는 것을 크게 2가지로 분류하면 다음과 같다. 데이터가 깨지거나 누락되지 않아야 한다. 여러 인접 스테이션이 한 인접 스테이션으로 데이터를 전송할 때 데이터가 겹치지 않고 문제없이 전송되어야 한다. 이 두가지를 보장해주는 것이 사실상 2계층에서 제공하는 핵..
Overview OSI 7 계층은 네트워크의 구조를 7개층으로 계층화 한 모델로, 네트워크의 전반적인 통신 과정을 보다 수월하게 파악할 수 있도록 도와준다. 이와 비슷한 역할의 TCP/IP protocol 모델도 존재하는데, 이 둘의 차이는 TCP/IP 모델에선 OSI 7 Layer 의 5~7 계층을 하나의 Application 계층으로 통일 했다는 점이다. 이번 포스팅에선 OSI 7 Layer 기준에 따라 1~4 계층에 대하여 bottom-up 방식으로 공부하여 정리해보고자 한다. 위와 같이 각 계층 별로 데이터 단위가 존재하며, 1~4계층의 정보단위를 각각 비트, 프레임, 패킷, 세그먼트라고 칭한다. 각각의 계층에 대한 역할 및 기능을 파악해 두는 것이 좋다. 먼저 1계층 Physical Layer ..