반응형

IT 지식/네트워크(Network) 24

컴퓨터 네트워크 - Socket program - TCP(Web) & UDP

Socket 프로세스 간에 메시지 송수신시에 소켓을 통해 전달한다. 소켓은 애플리케이션 프로세스와 종단 Transport protocol(TCP or UDP)의 데이터 전달 통로의 역할을 한다. 프로세스는 소켓을 통해 Transport 층으로 데이터를 보내고 인터넷을 통해 전달이 되면 Transport층에서 소켓을 통해 프로세스로 전달하게 된다. Socket program Socket(소켓) 프로그래밍이란 네트워크 상에서 두 개의 애플리케이션 프로세스가 특정 포트를 통해 메시지를 주고받는(양방향 통신)이 가능하도록 만들어주는 방법이다. 서버와 클라이언트는 특정 포트를 통해 연결을 유지하고 있어 실시간으로 양방향 통신하는 것을 소켓 프로그래밍이라 한다. 실시간으로 데이터를 주고받는 상황에서 사용되며 실시간..

컴퓨터 네트워크 - P2P applications

P2P (Peer to Peer, Peer-Peer) P2P는 단말(end system = peer) 간에 양방향 파일 전송 시스템이다. 각 단말이 서버이면서 동시에 클라이언트의 역할을 한다. P2P에서 파일 전송은 망을 구성하는 peer들의 성능에 의존되는 통신망이다. P2P를 사용하는 대표적인 프로그램으로 비트토렌트, 소리바다 등이 있다. 클라이언트 서버구조에서는 클라이언트(peer)가 늘어날수록 전송 속도가 선형적으로 증가하는 반면, P2P 구조에서는 Peer가 증가하더라도 비선형적으로 전송 속도가 크게 늘어나지 않는다. P2P가 큰 네트워크에서도 파일 전송에 더 적은 시간이 걸리며 확장성이 있다. Pure P2P Pure P2P 구조에서는 always-on 서버(중앙 서버)가 존재하지 않고 pee..

컴퓨터 네트워크 - DNS: Domain Name System

DNS (Domain Name System) 인터넷 프로토콜의 장비들(라우터, 링커)이 통신하기 위해서는 IP 주소를 알아야 한다. 32 bit로 이루어진 이 주소는 사람이 기억하거나 해석이 어려워 사람이 사용하기 쉬운 이름을 붙인 것이 Domain Name이다. 하지만 Domian name은 소프트웨어가 인식할 수 있는 이름이 아니다. 사람에게는 IP 주소를 Domain name으로 소프트웨어에게 Domain name을 IP 주소로 바꿔주는 것(resolve)이 DNS이다. DNS 계층 구조 DNS는 많은 name 서버들의 계층 구조로 구현된 분산 데이터베이스로 이루어져 있다. 중앙 집중식(centralized) 서버의 경우 공격을 받거나 문제가 생기면 전체 웹 서비스가 멈출 수 있기 때문에 분산한다...

컴퓨터 네트워크 - E-mail (SMTP, POP3, IMAP)

E-mail (Electronic Mail) E-mail에는 대표적으로 user agents, mail servers, SMTP 3가지 컴포넌트가 있다. 이 세 가지의 컴포넌트들이 E-mail 전송에서 필요로 한다. User agents (mail reader) 메일 메세지를 작성, 수정, 읽기 등의 기능을 한다. End system(Host)에 존재하며 대표적으로 Outlook, elm, Mozilla Thunderbird 등이 있다. 이를 관장하는 메일 서버가 존재하여 전송 및 수신되는 메시지들은 서버에 저장된다. User agents는 메시지를 읽을 때에 서버에서 메일 메시지를 꺼내와 읽게 된다. 대표적인 메일 접근 프로토콜로 POP, IMAP, HTTP가 있다. Mail Server 메일 서버에는..

컴퓨터 네트워크 - FTP

FTP (File Transfer Protocol) 클라이언트와 서버 간에 파일 저장, 전송, 공유 등에 사용되는 프로토콜이다. TCP 통신을 사용하며 파일 전송을 위해서는 2가지의 연결을 맺어야 한다. 서버의 21번 포트에 파일을 가져오는 명령, ID, password 전송, 디렉토리 검색 등을 위한 연결(control connection)과 20번 포트에 실제 데이터를 전달하는 연결(data connection)을 맺어야 한다. 21번 포트에 TCP 연결 후 파일 전송 요청을 받으면 20번 포트에 TCP 연결을 맺고 파일 전송을 수행한다. 하나의 파일을 전송한 뒤, 21번 포트 data connection을 닫는다. 매 파일 전송 마다 data connection을 열고 닫으며, control con..

컴퓨터 네트워크 - Cookie & Cache

Cookies 쿠기에 대해 알아보기 앞서 HTTP의 stateless 속성에 대해 알아야 한다. HTTP는 stateless의 속성을 가져 사용자의 요청에 대한 기록을 서버에서 저장하지 않는다. 그렇기 때문에 사용자의 행위에 대한 기록을 서버에 남겨, 다음 행위에서 이전 기록을 통해 무언가를 하고자 할 때에 쿠기가 사용된다. Stateless 한 HTTP에서 stateful 한 성격을 구현하는 것이 쿠키이다. 쿠기는 클라이언트가 서버에 접속 시에 서버가 쿠키값을 생성하여 클라이언트에 부여한다. 쿠키 값은 서버에서 생성하여 부여하되, 보관은 클라이언트와 서버 양쪽에서 한다. 클라이언트는 쿠키 값을 받아 저장한 뒤, 동일한 서버에 다시 접속 시에 쿠키값을 같이 전송한다. 이 쿠키값을 가지고 서버는 클라이언트..

컴퓨터 네트워크 - Web and HTTP (Application layer)

컴퓨터 네트워크 - Web and HTTP (Application layer) Web Page 웹 페이지는 오브젝트로 구성되어 있다. 오브젝트는 HTML file, JPEG image, Java applet(소형 프로그램), audio file 등이 될 수 있다. 웹 페이지는 기본적인 HTML-file에 여러 참조 오브젝트를 포함하고 있다. 각 오브젝트는 URL로 지칭된다. 예시로 www.dlee0129.tistory.com/manage/posts에 www.dlee0129.tistory.com는 호스트 네임에 해당하고, /manage/posts 는 path(Object URL) name이다. HTTP Overview HTTP(Hypertext Transfer Protocol)은 서버 HTTP 프로그램과 ..

컴퓨터 네트워크 - Application layer

컴퓨터 네트워크 - Application layer Network Application 응용은 단말(end system)에 올라가게 된다. 네트워크 장비에는 응용 프로그램이 올라가지 않으며 올릴 시 속도가 감소하게 된다. 네트워크 장비는 심플하며 빠른 속도를 갖는 것을 원칙으로 가지며, 응용 프로그램과 같이 복잡한 기능은 단말에 올리는 것이 원칙이다. Application architectures Client-server Peer-to-Peer (P2P) Hybrid of client-server and P2P Client-server architecture 우리가 사용하는 대부분의 네트워크는 client-server의 구조로 이루어져있다. Server : 항상 실행(always-on) 호스트이여야 하며..

컴퓨터 네트워크 - Security

컴퓨터 네트워크 - Networks under attack: Security Network Security 네트워크 보안은 공격자가 어떠한 방법으로 네트워크를 공격할 것인지와 공격에 대해 어떻게 대처할 것인지 그리고 네트워크를 공격에 대비하여 어떻게 설계할지 등에 대하여 연구하는 것이다. 초기 인터넷은 상호 간에 신뢰하는 소수의 연구자들끼리 그룹을 위해 만든 네트워크로 원래 보안을 고려하여 만든 네트워크가 아니었다. 하지만 추후 인터넷이 대중적으로 확산이 되며 보안에 대한 이슈들이 생겨났고 보안 기능이 인터넷 프로토콜의 각 층에 고안되었다. Malware (악성 코드) 대표적인 악성코드로 virus, worm, trojan horse 등을 들 수 있다. 이밖에도 spyware malware와 같이 키 입..

컴퓨터 네트워크 - Protocol layers, service model

컴퓨터 네트워크 - Protocol layers, service model Protocol Layer 프로토콜 레이어란 컴퓨터 관련 공부를 하다 보면 자주 접할 수 있는 application - presentation - session - transport - network - link - physical로 나눠져 있는 OSI 7계층과 application - transport - network - link - physical로 나눠져 있는 인터넷 프로토콜 스택이 있다. 이렇게 프로토콜을 층(layer)로 만드는 이유는 각 층이 특정한 기능을 수행하도록 정의하기 위함이다. 프로토콜의 디버깅과 기능의 업그레이드 등에서 유리하다. 이는 한 층의 기능변화가 다른 층에 영향을 주지 않도록 하여 일부 층만 만든 ..

반응형