본문 바로가기

KOCW19

네트워크 6강 - 쿠키와 웹캐시 쿠키 : Cookie Http는 상태정보를 저장할 수 없어! 카톡 메세지 하나 보낼 때마다 카톡 로그인을 다시 해야한다고 생각해보자. 즉 자신의 로그인 상태가 저장이 안된다면(Stateless) 많이 곤란하다. Http 프로토콜 자체는 Stateless 한 프로토콜이다! 즉 State 정보 저장은 유저가 해야한다. http를 stateful하게 설계한다면 물리적으로 항상 같은 서버와 통신해야 하기 때문에 서버 측에서 확장하기 어렵다. 쿠키 : Cookie 쿠키는 Unique한 ID이다! Unique한 ID로 상태정보를 저장할 수 있다. 작동원리 클라이언트가 서버에게 요청을 보낸다. 서버는 클라이언트에게 Unique한 ID를 http헤더에 실어서 보내고 누구에게 어떤 ID를 할당했는지 서버 데이터베이스에 .. 2020. 8. 7.
네트워크 5강 - RTT, Http의 종류와 메세지 이번 포스팅에서는 앞으로 자주 나올 Round Trip Time (RTT)와 Http 연결 유지 여부에 따른 Persistent Http, Non-Persistent Http 그리고 Http 메세지에 대해서 알아보자. RTT : Round Trip Time RTT란? 아주 작은 패킷이 클라이언트와 서버 사이를 왕복하는데 걸리는 시간이다. '아주 작은 패킷'은 Transmission Delay를 무시한다는 뜻이다. 단위 패킷당 네트워크 왕복시간 정도로 해석하자. 앞으로 RTT는 기준이 되는 시간처럼 사용한다. Non-Persistent Http 앞에서 Http는 File Tansfer와 비슷하므로 Data Integrity가 중요하다고 했다. 따라서 Http는 UDP 가 아닌 신뢰성있는 TCP를 사용한다... 2020. 8. 6.
네트워크 4강 - Application Layer의 소개 우리는 일상적으로 웹서핑을 하거나 보이스톡으로 대화를 하면서 게임을 한다. 이전의 포스팅에서 얘기했듯이 평소 사용하는 프로그램 대부분은 네트워크를 이용하는 애플리케이션이다. 그러므로 먼저 네트워크 애플리케이션 계층을 살펴보도록 하자. 클라이언트 - 서버 아키텍쳐 클라이언트란? 클라이언트 프로세스는 서버로부터 서비스를 받는 프로세스이다. 예를들어 웹클라이언트( == 웹브라우저)는 웹서버에게 웹 서비스를 요청(Request)하고 웹서버로부터 응답(Response)을 받는다 클라이언트는 서비스를 받는 입장이므로 당연히 클라이언트끼리 직접적으로 통신하지않는다. 항상 켜져있을 필요도 없고 서버는 특정 클라이언트가 고유하게 누군지 식별할 필요 없으므로 고정된 IP가 필요없다. 서버란? 서버 프로세스는 클라이언트에게.. 2020. 8. 5.
네트워크 3강 - Metric, Network, Protocol 이번 글도 본격적인 네트워크 얘기를 하기 전 네트워크 전반적으로 사용되는 용어를 설명하는 글이다. Metric Metric : 무엇을 측정할 것인가? Metric이란? 지표라고 생각하자. 운영체제든 자료구조든 어떤 과목을 듣던지 이런 방식에는 이런 장단점이 있고 저렇게 하면 이런 장단점이 있다는 얘기는 빠지지 않고 나온다. 좀 더 크게 생각한다면 문제를 해결하는 여러 방법들은 각각 장단점이 있다. 예를 들어 알고리즘 속도를 빠르게 한다면 메모리를 많이 사용하고 메모리를 적게 사용한다면 추가적인 연산이 필요해서 속도가 느려진다. 이때 우리는 두가지에 관심을 갖는다. 속도와 메모리 사용. 이게 알고리즘에서의 Metric, 지표이다. 그러면 네트워크에는 무슨 지표가 있는지 알아보자. Metric 1. Dela.. 2020. 8. 4.
네트워크 2강 - 네트워크의 구성요소 이번 글에서는 네트워크의 개론적인 내용을 알아보자. 네트워크는 크게 Edge와 Core로 구성되어 있다. Edge는 네트워크를 사용하는 프로그램( 혹은 애플리케이션)이 실행되는 EndSystem, Access Network, Host로 구성되고 Core는 주로 길찾기 기능을 담당하는 Router들로 구성된다. 인터넷에서의 가장 중요한 원칙은 Core는 데이터 전송만 담당하고 복잡한 부분은 Edge로 몰아넣는 것이다. 호스트와 매체 호스트란? Network Application을 Hosting하는 디바이스다. Network Application은 네트워크를 사용하는 애플리케이션이다. 카톡이나 웹브라우저 등등 우리가 일상적으로 사용하는 거의 모든 프로그램은 네트워크 애플리케이션이다. 네트워크 애플리케이션이 .. 2020. 8. 4.