'DNS'에 해당되는 글 1건

* 애플리케이션 구조(개발자가 직접 설계)

 

 애플리케이션 개발자 관점에서 네트워크 구조는 고정되어 있고 애플리케이션에 특정 서비스 집합을 제공한다. 애플리케이션 구조는 애플리케이션 개발자에 의해 설계되고 애플리케이션이 다양한 종단 시스템에서 어떻게 조직되어야 하는지를 지시한다. 애플리케이션 구조 선택에 있어서 애플리케이션 개발자는 현대 네트워크 애플리케이션에 사용되는 두가지 우수한 구조, (클라이언트/서버) 구조 혹은 P2P 구조 중의 하나로 작성할 것이다.

 

클라이언트/서버 구조  - 항상 켜져있는 호스트를 서버라고 부르며, 서버는 클라이언트라는 다른 많은 호스트의 요청을 받는다.

 

P2P 구조 - 애플리케이션은 피어라는 간헐적으로 연결된 호스트 쌍이 서로 직접 통신하도록 한다. 피어는 서비스 제공자가 소유하지 않고, 사용자들이 제어하는 데스크톱과 랩톱이 소유한다. 특정 서버를 통하지 않고 피어가 직접통신하므로 이를 P2P(피어투피어)라고 한다.

 

P2P구조의 가장 주목할 만한 특성 중의 하나는 자가확장성이 있다는 것이다. 예를들어, P2P 파일 공유 애플리케이션에서 비록 각 피어들이 파일을 요구함으로써 작업 부하를 만들어 내지만 각 피어들은 또한 파일을 다른 피어들에게 분배함으로써 그 시스템에 서비스 능력을 추가한다.

 

* 애플리케이션이 이용 가능한 트랜스포트 서비스

 

 어플리케이션의 요구에 가장 적합한 서비스를 제공하는 전송 프로토콜을 선택해야한다.

 

고려사항 : 신뢰적 데이터 전송, 처리량(두 프로세스간의 비트를 전달할 수 있는 비율), 시간, 보안

 

* 인터넷 전송 프로토콜이 제공하는 서비스

 

 인터넷은 2개의 전송 프로토콜 UDP와 TCP를 제공한다.

 

TCP와 UDP는 트랜스포트 계층을 설명할때 자세히 다룬다.

 

 

* 어플리케이션 계층 프로토콜

 

어플리케이션 계층 프로토콜은 다른 종단 시스템에서 실행되는 애플리케이션의 프로세스가 서로 메시지를 보내는 방법을 정의한다.

 

1) HTTP(HyperText Transfer Protocol)

 

하이퍼텍스트(Hypertext, 문화어: 초본문, 하이퍼본문)는 참조(하이퍼링크)를 통해 독자가 한 문서에서 다른 문서로 즉시 접근할 수 있는 텍스트이다.

기존의 문서가 순차적이면서 서열형 구조라면, 하이퍼텍스트는 링크에 따라 그 차례가 바뀌는 임의적이면서 나열형인 구조를 가진다

 

WWW 상에서 정보를 주고받을 수 있는 프로토콜이다. 주로 HTML 문서를 주고받는 데에 쓰인다. TCP를 사용하며, 80번 포트를 사용한다.

 

HTTP 서버는 클라이언트에 대한 정보를 유지하지 않으므로, HTTP를 비상태 프로토콜이라고 한다.

 

HTTP 메시지 포맷

 

요청라인 : 방식필드, URL필드, HTTP버전 필드

 

헤더라인 : HOST, Connection(지속연결, 비지속연결 설정), User-agent(브라우저), Accept Language

 

웹에서의 사용자와 서버간의 상호 작용 - 쿠키

 

쿠기 - 처음으로 사이트에 접속 요청이 들어오면 그 서버는 유일한 식별번호를 만들고 이 식별번호로 인덱스되는 백엔드 데이터베이스 안에 엔트리를 만든다.

 

Set - cookie : 1678

 

그후 계속 그 사이트를 살펴봄에따라 그녀의 브라우저는 쿠키파일을 참조하고 이 사이트에 대한 그녀의 식별번호를 발췌하고 HTTP 요청에 식별번호를 포함하는 쿠키 헤더파일을 넣는다.  이러한 방식으로 사이트 서버는 사용자의 활동을 추적한다.

 

2) SMTP

 

인터넷에서 이메일을 보내기 위해 사용되는 프로토콜이다. 사용하는 TCP 포트 번호는 25번이다.

 

1)송신자는 메시지를 작성하고 사용자 에이전트에게 메시지를 보내라고 명령한다.

 

2) 사용자 에이전트는 메시지를 메일 서버로 보내고 메시지 큐에 놓인다

 

3) 송신자 메일 서버에서 동작하는 SMTP 클라이언트 측은 메시지 큐에 있는 메시지를 본다. 수신자의 메일서버에서 수행되고 있는 SMTP 서버에게 TCP연결 설정

 

4) 3-way HandShaking 이후에 SMTP 클라이언트는 송신자의 메시지를 TCP연결로 보낸다.

 

5) 수신자의 메일서버 에서 SMTP 서버측은 메시지를 수신하고 메일박스에 놓는다.

 

5) 수신자는 편한시간에 사용자 에이전트를 가동하여 메시지를 읽는다.

 

HTTP는 풀 프로토콜이다(사용자 요청시 서버로부터 정보를 가져오기위해 HTTP사용) SMTP는 푸시 프로토콜(송신자가 먼저 TCP를 통해 메일서버로 보냄)이다.

 

 

3) DNS

 

사람은 좀 더 기억하기 쉬운 호스트 네임 식별자를 좋아하지만 라우터는 고정 길이의 계층구조를 가진 IP 주소를 선호합니다. 이러한 선호차이를 절충하기 위해 호스트 네임을 IP주소로 변환해 주는 서비스인 DNS가 존재한다.

 

4) FTP(File Transfer Protocol)

 

TCP연결을 통해 원격호스트의 호스트네임을 제공하여 로컬 호스트에 있는 FTP 클라이언트 프로세스가 원격호스트에 있는 FTP와 연결하게 한다.

 

HTTP 와 다른 점은 두 TCP연결, 제어연결과 데이터연결을 동시에 사용한다는 것이다.

 

여기서 제어연결은  두 호스트 간에 사용자 계정 및 비밀번호와 같은 정보를 보내는데 사용된다.

 

FTP가 별도의 제어 연결을 사용하므로 FTP는 제어 정보를 아웃밴드로 보낸다고 표현한다. HTTP는 TCP연결로 요청과 응답 헤더라인을 보낸다. 즉 제어종보를 인밴드로 보낸다 .

 

 

또한 FTP 서버는 세션을 통해 사용자에 대한 상태를 유지해야 한다. 반면 HTTP는 비상태유지 애플리케이션이다.

 

 

 

 

 

 

 

 

 

 

'이론 > 컴퓨터통신' 카테고리의 다른 글

Network Layer(L3)  (0) 2015.10.17
Transport Layer(L4)  (0) 2015.10.17
Application Layer(L7)  (0) 2015.10.14
컴퓨터 네트워크 개론  (0) 2015.10.13
블로그 이미지

종환 Revolutionist-JongHwan

github.com/alciakng 항상 겸손하자.

댓글을 달아 주세요