네트워크/개념 (8) 썸네일형 리스트형 [Network] - 네트워크 계층 목차1. 들어가며2. 네트워크 계층?3. 네트워크 4계층4. 마치며 들어가며 네트워크 계층은 이전에 학교 수업시간에도 들었던 내용이지만 블로그에 따로 정리해놓은 글이 없어서 이번 기회에 정리를 해놓으려고 한다. 네트워크 계층?더보기 인터넷 protocol suite는 인터넷에서 정보(패킷)을 주고받는 일종의 규약인 프로토콜들의 집합이다. 가장 유명한 것이 OSI 7 layer, 그리고 TCP/IP 4계층 모델 두가지 이다. TCP/IP 4계층을 좀 더 세분화해서 설명하는 것이 OSI 7 layer이므로 결국 둘다 같은 개념을 설명하고 있다고 보면 된다. OSI 7 layer에서는 애플리케이션 계층을 3개로 세분화하고 Network Access(data link) 계층을 .. [Network] - 프록시(proxy) 목차 1. 프록시란? 2. Forward Proxy VS Reverse Proxy 3. 마치며 1. 프록시란 더보기 프록시 서버(proxy server)는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용 프로그램을 가리킨다. - 위키백과 위키백과에서는 프록시에 관해 위와같이 정의하였다. 즉 프록시는 인터넷상에서 대리자 역할을 하며 클라이언트와 서버 어느쪽에 붙는 지에 따라 Forward, Reverse 프록시로 구분된다. 2. Forward Proxy VS Reverse Proxy 더보기 앞서 언급하였듯이 프록시가 붙는 위치에 따라 Forward Proxy, Reverse Proxy로 구분된다. 먼저 Forward Proxy는 위의 그림과 같이.. [Network] - 로드 밸런싱(Load Balancing) 목차 1. 로드 밸런싱(LB) 이란? 2. ELB(Elastic Load Balancer) 3. Nginx란? 4. 마치며 1. 로드 밸런싱(LB) 이란? 더보기 로드 밸런싱(load balancing)은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나누는 것을 의미한다. - 위키백과 위키백과에서는 로드 밸런싱에 대해 위와같이 정의하고 있다. 쉽게 이해하자면 서버 이용자가 많아짐에 따라 트래픽이 과부하되어 서버가 뻗는 것을 방지하기 위해 트래픽을 분산시키는 일련의 작업을 의미한다. 현재 시장에 나와있는 서비스들은 많은 수의 이용자들을 대상으로 개발되기 때문에 로드 밸런싱은 필수적으로 이루어진다고 볼 수 있다. 2. ELB(Elastic Lo.. [Network] - Overlapped IO vs Nonblocking IO 흔히 IOCP서버에 대해 공부하다보면 Overlapped IO라는 개념에 대해 먼저 공부하게 된다. 개념 자체는 직관적이나 이전에 알고 있었던 Nonblocking IO(비동기 입출력)과 다른 것이 없는 데 자료마다 부르는 이름이 달라지는 것 같아 혼란이 와서 이 글에 정리 하려고 한다. 먼저 Overlapped IO라는 것은 입출력이 중첩되는 상황을 말하는데, 그림으로 보자면 아래와 같다. 중첩된 입출력이란 대상에 대해 입출력 작업이 진행되는 와중에 다른 입출력 작업을 진행되는 경우로 위와 같은 상황을 말한다. Overlapped IO라는 것은 따라서 비동기 작업을 기본 전제로 한다. 즉 이런 중첩된 입출력을 위해서는 기본적으로 비동기 방식으로 동작해야 한다는 것이다. 그럼 여기서 한 가지 의문이 드는.. [Network] - Session 네트워크를 배우면서 Session이란 용어가 자주 나오는데, 정확한 의미를 알 수가 없어서 조금 알아보았다. session명사 1.(의회·회의가) 개회 중임; (법정이) 개정 중임; (거래소의) 개장, 입회go into session개회하다 2.회의, 회합 3.(의회의) 회기, 개회기, 개정기 a long session 긴 회기 영단어로써의 의미는 위와 같지만 네트워크 통신 분야에서의 의미는 조금 다르다. 위키백과에는 아래와 같이 session이란 용어에대해 설명하였다. 세션(session)은컴퓨터 과학에서, 특히 네트워크 분야에서 반영구적이고 상호작용적인 정보 교환을 전제하는 둘 이상의 통신 장치나 컴퓨터와 사용자 간의 대화나 송수신 연결상태를 의미하는 보안적인 다이얼로그(dialogue) 및 시간대를.. [Network] - 멀티 프로세싱 서버 다중접속 서버를 구현하는 방법으로는 여러 가지가 있는데, 멀티 프로세싱, 멀티 플렉싱, 멀티 쓰레딩 등 여러 방법이 있습니다. 이런 방법을 쓰지 않더라도 while, for등의 반복문을 통해서도 여러명의 클라이언트가 접속할 수 있는 서버를 구현할 수 있지만, 성능면에서 많이 차이가 납니다. 클라이언트 한명과 통신이 끝날때 까지 서버는 다른 클라이언트를 상대할 수 없으니 그런 서버는 솔직히 1대1이 아닌이상 의미가 없는 서버일 것 입니다. 이 글에는 첫 번째로 멀티 프로세싱에 대해 정리를 해보고자 합니다. 대부분의 내용은 윤성우 저자의 '열혈 TCP/IP 소켓 프로그래밍' 를 읽은 내용과 인터넷에서 자료를 찾아서 읽고 최종적으로 정리 하였습니다. - 서론 일단 서버 프로그램을 실행하면 그에대한 프로세스가 .. [Network] - 소켓에 동일한 포트 번호 할당 소켓 프로그래밍 공부를 하면서 매우 헷갈리는 것이 있다. 문제 - 소켓에는 동일한 포트번호를 할당 가능한가? 현재 읽고 있는 책에서는 불가능하다고 한다. 그 이유인 즉슨, 포트 번호는 하나의 운영체제 안에서 소켓을 구분하는 목적으로 사용되기 때문에 하나의 운영체제 내에서 동일한 퐅트번호를 둘 이상의 소켓에 할당 할 수 없기 때문이다. 데이터 전송 시에 동일한 포트번호를 사용하는 소켓이 둘 이상 존재하면 데이터를 어느 소켓을 통해 송신을 할지 운영체제 로서는 알 길이 없기 때문이다. 확실히 맞는 말이다. 그러나 문제는 이게 아니다. 소켓과 포트에 대해 알아보기 위해 구글에 검색을 하면 이런 글들도 많다. 일반적으로 동일한 포트에서 수십 수만개의 소켓을 생성 할 수 있기때문에 서버에서는 매우 많은 수의 클라.. [Network] - Nagle 알고리즘 네트워크 공부를 하다가 책에서 Nagle 알고리즘이라는 개념이 나와서 좀 더 찾아보고 이해한 내용에 대해 정리해 보고자 한다. Nagle 알고리즘은 네트워크상에서 돌아다니는 패킷들이 흘러 넘치는 것을 막기 위해서 사용되는 알고리즘 입니다. 이는 TCP/IP 상에서 적용되는 단순한 알고리즘으로, 간단히 말하면, 데이터를 전송 할때 적은 양의 데이터를 여러번에 나눠서 보내는 것이 아니라 한번에 많은 양의 데이터를 모아 보내서 네트워크의 효율성을 높이는 알고리즘 입니다. 처음에는 'TCP 소켓의 특징이 아닌가?' 라고 생각을 했는데, 그건 기본적으로 TCP소켓은 Nagle 알고리즘을 적용해서 데이터를 전송하기 때문에 그렇다고 합니다. int opt_val = 1; setsocketopt(sock, IPPROT.. 이전 1 다음