2.1 네트워크 애플리케이션의 원리

네트워크 애플리케이션 : 다른 위치의 종단 시스템에서 동작하고 네트워크를 통해 서로 통신하는 프로그램 웹 애플리케이션에는 서버와 클라어인트라는 두 가지 프로그램이 있다. 클라이언트 : 사용자의 호스트에서 실행되는 브라우저 프로그램 웹 서버 호스트에서 실행되는 웹 서버 프로그램 새로운 애플리케이션을 개발할 때, 라우터나 링크 계층 스위치처럼 네트워크 코어 장비에서 실행되는 소프트웨어까지 작성할 필요는 없다. 네트워크 코어 장비는 애플리케이션 계층에서 기능하지 않는 대신 네트워크 계층 및 그 하위 계층에서 기능한다. 종단 시스템에서만 애플리케이션 소프,트웨어가 존재한다. 2.1.1 네트워크 애플리케이션 구조 애플리케이션 구조는 네트워크 구조(ex. 1.5장에 나온 프로토콜 스택)와 다르다. 개발자 관점에서 네트워크 구조 : 고정되어 있고 해당 애플리케이션에 특정 서비스 집합을 제공 애플리케이션 구조(application architecture) : 개발자가 설계하며 애플리케이션이 다양한 종단 시스템에서 어떻게 조직되어야 하는지를 알려줌. 최근 가장 많이 사용하는 애플리케이션 구조가 현대 네트워크 애플리케이션에서 사용되는 “클라이언트-서버” 구조와 P2P 구조 클라이언트-서버 구조(client-server architecture) 서버(server) : 항상 동작하고 있는 호스트 클라이언트(client) : 서버에 서비스 요청을 보냄 이 구조에서, 클라이언트는 서로 직접적으로 통신하지 않는다. 서버는 고정 IP 주소를 갖는다. 클라이언트의 요청이 많을 경우 단일 서버 호스트가 모든 요청을 처리하긴 힘들다. 많은 수의 호스트를 갖춘 **데이터 센터(data center)**가 강력한 가상의 서버를 생성하는 역할을 함. P2P 구조 항상 켜져있는 인프라스트럭처 서버에 최소로 의존하거나 의존하지 않음 대신 **피어(peer)**라는 간헐적으로 연결된 호스트 쌍이 서로 직접 통신 피어(peer) : 서비스 제공자(service provider)가 소유하지 않고 사용자들이 제어하는 데스크톱과 랩톱 한 엔드시스템이 서버 역할을 해준다. 토렌트가 대표적인 P2P 구조 P2P구조는 **자가 확장성(self-scalability)**이 있다. 각 피어들이 파일을 요구함으로써 작업 부하를 만들어낸다. 하지만 파일을 다른 피어들에게 분배함으로써 그 시스템에 서비스 능력을 추가함. 토렌트에서 다운로드 받고 업로딩하는 사람이 많을 수록 그 파일은 다운로드 속도가 빨라지는데, 이유가 바로 이것이다. 서버 인프라스트럭처와 서버 대역폭이 필요하지 않아 비용 효율적이다. 보안, 성능, 신뢰성이 단점이다. 2.1.2 프로세스 간 통신 운영체제 용어에서 실제 통신하는 것은 프로그램이 아니라 **프로세스(process)**다. 프로세스(process) 종단 시스템에서 실행되는 프로그램 통신 프로세스가 같은 종단 시스템에서 실행될 때 그들은 서로 프로세스 간에 통신한다. 프로세스 간의 통신을 위한 규칙은 종단 시스템의 운영체제에 의해 좌우된다. 여기서 다룰 통신은 같은 호스트에서 프로세스가 통신하는 방법이 아닌, 다른 호스트에서 실행되어 통신할 때이다. 2개의 종단 시스템에서 프로세스는 컴퓨터 네트워크를 통한 메시지(message) 교환으로 통신한다. 송신 프로세스 : 메시지를 만들어서 네트워크를 보낸다. 수신 프로세스 : 메시지를 받고 역으로 메시지를 보내 응답한다. 클라이언트와 서버 프로세스 네트워크 애플리케이션 : 서로 메시지를 보내는 두 프로세스로 구성 ...

2024년 1월 24일 · 5 분 · 배준수

1.5 프로토콜 계층과 서비스 모델

1.5 프로토콜 계층과 서비스 모델 1.5.1 계층구조 프로토콜 계층화 네트워크 설계자는 프로토콜을 **layer(계층)**로 조직한다. 각 프로토콜은 한 계층에 속한다. 한 계층은 상위 계층에 **서비스(service)**를 제공한다. 이것을 계층의 **서비스 모델(service model)**이라고 한다. 각 계층은 그 계층 내부에서 어떤 동작을 수행하거나, 직접 하위 계층의 서비스를 사용한다. 프로토콜 계층은 소프트웨어, 하드웨어 또는 둘의 통합으로 나타낼 수 있다. 애플리케이션 계층(HTTP, SMTP)과 트랜스포트 계층 : end system의 소프트웨어로 구현 물리(physical) 계층과 데이터 링크 계층 : 네트워크 인터페이스 카드(이더넷, 와이파이 인터페이스 카드) 네트워크 계층 : 하드웨어와 소프트웨어로 혼합 구현 n계층 프로토콜은 네트워크를 구성하는 종단 시스템, 패킷 스위치, 그 외의 요소 사이에 분산되있다. ⇒ 각 네트워크 구성요소에는 하나의 n계층 프로토콜이 있다. 프로토콜 스택 : 다양한 계층의 프로토콜을 모두 합한 것 이 프로토콜 스택에서 애플리케이션 계층부터 다루어 내려가는 것이 top-down approach. 5개 계층의 인터넷 프로토콜 스택 애플리케이션 트랜스포트 네트워크 링크 물리 애플리케이션 계층 네트워크 애플리케이션과 애플리케이션 계층 프로토콜이 있는 곳 HTTP(웹 문서 요청과 전송 제공), SMTP(전자메일 전송 제공), FTP(두 종단 시스템 간의 파일 전송 제공) 같은 프로토콜들을 포함 이 계층에 있는 DNS(Domain Name Server)가 우리에게 친근한 인터넷 주소를 32비트 네트워크 주소로 변환한다. 애플리케이션 계층 프로토콜 : 여러 end system에 분산. 한 end system에 있는 app이 다른 end system에 있는 app과 **메시지(정보 패킷)**를 교환하는데 사용 트랜스포트 계층 클라이언트와 서버 간에 애플리케이션 계층 메시지를 전송 인터넷에는 TCP와 UDP 라는 트랜스포트 프로토콜이 있다. TCP : 연결지향형 서비스. UDP : 비연결형 서비스. 간단한 서비스. 세그먼트(segment) : 트랜스포트 계층 패킷 네트워크 계층 한 호스트에서 다른 호스트로 **datagram(데이터그램)**을 라우팅한다. 인터넷 트랜스포트 계층 프로토콜이 보낸 트랜스포트 계층 세그먼트와 목적지 주소를 목적지 호스트의 트랜스포트 계층으로 전달 IP 프로토콜 IP 데이터그램의 필드를 정의 종단 시스템과 라우터가 이 필드에 어떻게 동작하는지를 정의 네트워크 계층을 가진 모든 인터넷 요소는 IP 프로토콜을 수행해야만 한다. 인터넷 네트워크 계층은 출발지와 목적지 사이에서 데이터그램이 이동하는 경로를 결정하는 라우팅 프로토콜을 포함한다(많이). IP 계층이라고도 불린다. 링크 계층 인터넷의 네트워크 계층은 출발지와 목적지 간 일련의 패킷 스위치(인터넷에서는 라우터)를 통해 데이터그램을 라우트한다. 노드에서 노드로 패킷을 이동하기 위해 네트워크 계층은 링크 계층 서비스에 의존한다. 노드 간의 이동 과정 출발 노드의 네트워크 계층이 데이터그램을 아래 링크 계층으로 보냄 링크 계층은 데이터그램을 경로상의 다음 노드에 전달 다음 노드의 링크 계층은 데이터그램을 상위 네트워크 계층으로 보냄 링크 계층에서 제공하는 서비스는 그 링크에서 채용된 특정 링크 계층 프로토콜에 의해 결정 데이터그램은 경로상의 각기 다른 링크에서 다른 링크 계층 프로토콜에 의해 처리될 수 있다. 프레임(frame) : 링크 계층 패킷 물리 계층 링크 계층의 기능은 전체 프레임을 한 네트워크 요소에서 이웃 네트워크 요소로 이동하는 것 물리 계층의 기능은 프레임 내부의 각 비트를 한 노드에서 다음 노드로 이동하는 것 1.5.2 캡슐화(encapsulation) 호스트 : 다섯 계층을 구현 링크 계층 스위치 : 하위 1~2 계층 구현(물리, 링크) ⇒ IP 주소를 인식 못하지만 이더넷 주소는 인식하는 이유다. 라우터 : 하위 1~3 계층 구현(물리, 링크, 네트워크) 각 계층에서 패킷은 헤더 필드와 **페이로드 필드(payload field)**로 구성된다. 계층 캡슐화 헤더 필드 페이로드 필드 애플리케이션 애플리케이션 계층 메시지 애플리케이션 계층 메시지 트랜스포트 트랜스포트 계층 세그먼트 트랜스포트 계층 헤더 정보 애플리케이션 계층 메시지 네트워크 네트워크 계층 데이터그램 네트워크가 추가한 헤더 애플리케이션 계층 메시지 트랜스포트 계층 헤더 정보 링크 링크 계층 프레임 링크가 추가한 헤더 애플리케이션 계층 메시지 트랜스포트 계층 헤더 정보 네트워크가 추가한 헤더

2024년 1월 16일 · 3 분 · 배준수

1.1 인터넷이란 무엇인가?

1. 컴퓨터 네트워크와 인터넷 1.1 인터넷이란 무엇인가? 구성요소를 기술하거나 분산 애플레키에션에 서비스를 제공하는 networking infrastructure 관점으로 기술할 수 있다. 공부를 시작하기 전의 나라면 수 많은 사람들의 컴퓨터가 연결되어 있는 연결망 이라고 대답할 것 같다. 1.1.1 구성요소로 본 인터넷 인터넷은 수 많은 컴퓨팅 장치를 연결하는 컴퓨터 네트워크이다. 이전에는 데스크톱 PC, 서버뿐이었지만 스마트폰과 태블릿을 넘어 가전제품, 자동차 등 다양하게 연결되는 중! 인터넷에 연결된 모든 장치를 호스트(host) 혹은 **종단 시스템(end system)**이라고 부른다. end system : **통신 링크(communication link)**와 **패킷 스위치(packet switch)**의 네트워크로 연결된다. ...

2023년 8월 2일 · 3 분 · 배준수