Computer Science/데이터 통신

Protocol Architecture, TCP/IP, and Internet-Based Applications

seungwon9201 2024. 9. 27. 14:15

Protocol Architecture가 필요한 이유

아래 4가지는 데이터전송을 하면서 무조건 해야 하는 일들이다.

  1. source는 무조건 통신 경로를 활성화시키거나 목적지의 네트워크를 알려주어야 한다.
  2. source는 무조건 목적지에서 데이터를 수신할 준비가 됐는지 확인해야 한다.
  3. 소스에 파일 전송 애플리케이션은 목적지의 관리 프로그램이 파일을 받고 저장할 수 있는지 확인해야 한다.
  4. 두 시스템 간의 포멧이 다를 경우 포맷 변환 기능을 수행해야 한다.

위의 4자기는 통신 과정에서 필수적인 작업인데, 이 작업이 복잡해질수록 우리는 이것을 처리하기 위한 구조화된 프로토콜이 필요하다.

 

Protocol Architecture의 기능

Protocol Architecture는 로직을 subtask모듈로 분할해서 각각을 별도로 구현한다.

그래서 모듈들은 수직 스택으로 배열되며 각각의 스택 layer안에서 하위의 기능을 수행한다. 또한 각 계층은 기본적인 기능을 위해서 하위 계층에 의존한다. 그러나 한계층에서의 변경이 다른 계층에 영향을 주면 안 된다.

간단히 설명하면 통신작업을 작은 하위의 모듈로 분리해서 독립적으로 구현하고 모듈들을 수직 스택으로 배열하는 기능을 한다.

 

Protocol의 핵심 특징들

프로토콜은 peer layer(동일한 계층의 통신 상대) 간에 통신이 가능하도록 만든 rule 혹은 conventions(관례)이다.

  • Syntax(구문) : 데이터 블록의 format을 다룬다. 즉, 데이터가 어떻게 만들어지고 포맷되어야 하는지 정한다.
  • Semantics(의미) : 데이터 블록 안에서 error handling과 coordination을 위해 정보를 control 한다. 
  • Timing : 속도를 일치시키고 순서를 관리한다.

 

Communication Layers

통신계층에 어떤 계층이 있고 어떤 역할을 하는지 알아보자.

  • Network access layer
    • A end system과 이 system과 연결된 네트워크 사이에서 교환하는 데이터를 다룬다.
    • 주요 이슈 3가지로 목적지 주소제공, 우선순위 같은 특정 서비스 요청, 같은 네트워크에 연결된 두 시스템 사이의 데이터를 접근하거나 라우팅 처리한다.
  • Transport layer(전송 계층)
    • 데이터를 reliable 하게 전송한다.(succesful) 
    • 모든 애플리케이션들이 공통으로 사용하는 계층
    • nature of application(응용 프로그램)의 종류와 상관없이 독립적으로 동작한다.
  • Application layer
    • applications을 서포트하기 위해서 로직을 포함하는 계층이다. 즉, 웹 브라우저, 이메일 등 각각의 application들이 잘 작동하도록 지원하는 계층이다.
    • 각 application마다 별도의 모듈이 필요하다. 이메일전송은 SMTP 파일전송은 FTP 등 서로 다르게 작동하기 때문이다.

 

Protocol Architecture and Networks

PC A, B, C가 통신하는 과정을 그림으로 보자.

PC A에서 B에게 데이터를 보낸다고 가정해 보자.

우선 A의 Application계층에서 데이터를 생성하고 Transport계층으로 전달한다. Transport계층에서 reliable 하게 데이터를 전송한다. 이 데이터를 Network access계층에서 받아서 목적지 주소를 지정하고 네트워크 라우팅을 한다. 그래서 Communication network를 통해서 목적지로 데이터를 전송한다. 목적지 B로 도착하면 다시 Network access계층에서 데이터를 받고 transport계층으로 전송한다. 최종적으로 Application계층으로 도달하면 사용자는 A에서 보낸 데이터를 B에서 확인할 수 있게 된다.

 

 

Protocol in a Simplified Architecture

이번에는 두 컴퓨터 간의 통신을 계층적인 구조로 보자.

 

A에서 Application계층 안에 있는 Entity X가 데이터를 생성해서 B에 있는 Entity Y에게 전송하려고 하는 상황이다.

이 데이터는 1번 포트를 통해서 Transport 계층으로 전달된다. Transport계층에서 Application계층에서 받은 데이터를 통해서 데이터 블록을 만든다. 여기서 port 1번에서 2번으로 간다는 정보를 만든다. 그다음 Network access계층으로 넘어가서 PC A에서 B로 전달한다는 정보를 추가해서 최종적으로 Communication network로 데이터를 전송한다. 그러면 B는 Communication Network에서 데이터를 받고 Network access계층이 분석한다. Network access계층에서 PC A에서 B로 보내는 정보라는 것을 확인한 후 Transport계층으로 전달한다. Transport 계층에서 남은 데이터를 읽고 port 2번을 통해서 데이터를 다시 application 계층에 있는 Entity Y에게 보낸다. 이렇게 최종적으로 데이터가 전송된다.

 

Addressing

Communicaton layer(3계층)에서 네트워크 통신을 성공적으로 수행하려면 addressing(주소지정)이 필요하다.

  • 네트워크에 연결된 각 PC는 고유한 네트워크 주소를 갖고 있다.
  • 각 PC안에 있는 application들도 고유한 주소(포트)를 가져야 한다. 이것을 SAP(Service Access Point)라고 한다.

그래서 성공적으로 통신을 위해서는 전체 시스템 내의 모든 객체들이 고유한 주소를 가져야 한다.  

 

 

Protocol Data Unit(PDU)

PDU는 Data와 control information이 결합된 것이다. 일반적으로 PDU 헤더에 control information이 포함되어 있다. control information은 peer transport protocol에서 사용된다. 그리고 헤더 안에는 source 포트, 목적지 포트, 순서 번, 오류 검 코드가 있다.

 

Network Access Protocol

Network Access Protocol은 Network access 계층이 Transport 계층으로부터 segment를 받은 후에 네트워크를 통해서 데이터를 전송하는 역할을 한다. Network Acces protocol이 control information을 포함한 데이터와 함께 PDU 패킷을 만드는 작업을 한다. 만든 PDU 헤더안에는 PC의 source와 PC의 도착지, 그리고 Facilities request(기능 요청 ex.우선순위)를 포함한다.

 

TCP/IP Protocol Architecture

TCP/IP 프로토콜 아키텍처는 ARPANET에서 진행한 프로토콜 연구와 개발의 결과물이었다. TCP/IP는 단일 프로토콜이 아니라 인터넷에서 표준으로 사용하는 다수의 프로토콜로 구성되어 있다. TCP/IP protocol suite라고 부른다.

 

TCP/IP Layers and Example Protocols

  • Application Layer : 사용자가 사용하는 애플리케이션에 서비스를 제공하는 계층, 분산정보 제공함
  • Host-to-Host Layer(Transport Layer) : relaible한 데이터 전송을 보장하는 계층
    • 모든 application들이 공유하는 계층
    • 주로 TCP프로토콜을 많이 사용
  • Internet Layer : 여러 네트워크 간의 데이터 전송을 담당하는 계층
    • 라우팅기능을 사용하기 위해 IP(Internet Protocol) 사용
    • end system과 라우터에서 구현된다.(하나의 네트워크에서 다른 네트워크로 보내는 역)
  • Network Access Layer : 동일한 네트워크에 연결된 두 end system(컴퓨터) 간의 데이터 교환을 담당하는 계층, 실제 데이터를 물리적인 네트워크를 통해 전송하는 역할
    • 목적지 주소제공
    • 두 end system이 동일한 네트워크에 연결되어 있을 때 데이터 접근 or 라우팅을 담당
  • Physical Layer : 컴퓨터와 네트워크 간의 물리적인 인터페이스를 담당하는 계층. 즉, 컴퓨터가 네트워크에 연결될 때 사용하는 케이블, 신호 전송방법과 같은 물리적인 방법을 정의하는 계층이다.
    • 데이터 전송매체의 물리적인 특징을 규정(유선 or 무선)
    • 네트워크에서 데이터를 보낼 때 신호의 특성을 정의
    • 데이터가 전송되는 속도인 대역폭을 결정

 

Operation of TCP/IP

TCP/IP의 동작을 그림으로 살펴보자.

 

각 계층을 거칠 때마다 각 계층에 맞는 헤더가 추가된다.

TCP/IP Address 요구사항

addressing이 필요한 두 단계가 있다.

  • 각 호스트에게 고유한 IP주소를 할당해야 한다.
  • 호스트 내에서 실행되는 각 그로세스들을 구분하기 위해서 포트번호를 할당해야 한다.

이러한 두 가지 이유 때문에 각 호스트들에게 IP주소를 주고 그 각각의 호스트들의 프로세스(앱)를 식별하기 위해서 고유한 번호(포트번호)를 TCP가 할당해 준다.

 

Transmission Control Protocol(TCP)

TCP는 transport 계층에서 가장 많이 사용되는 프로토콜이다.

TCP는 application들 간의 데이터를 reliable 하게 연결해 준다.

TCP segment는 기본적인 프로토콜 유닛이다.

TCP는 연결되는 시간 동안 각 엔티디들의 segment들을 추적한다.

 

TCP Header

총 30bit*옥텟 = 160비트로 구성되어 있다. 아래는 각각의 특징이다.

  • Source port : 송신 측 애플리케이션의 출발지 포트
  • Destination port : 수신 측 애플리케이션의 도착지 포트
  • Sequence Number : 각 segment의 고유번호로 데이터가 올바른 순서로 도착하는지 확인하고 재조합한다.
  • Acknowledgment Number : 수신 측이 마지막으로 수신한 segment에 대한 확인응답 값을 나타낸다.
  • Window : 흐름제어용도
  • Checksum : 페이로드(헤더를 제외한 실제 데이터 정보) 안에서의 에러 검출을 해준다.
  • Header length : 헤더 길이
  • Reserved : 미래에 사용하는 용도인 예약 필드(확장할 때 사용가능)
  • Flags : 제어 플래그
  • Urgent Pointer : 긴급데이터의 끝을 가리키는 포인터
  • Options and Padding : TCP헤더에 추가적인 옵션을 붙이는 필드, 패딩은 TCP헤더의 길이가 32비트의 배수가 되도록 맞춰줌

User Datagram Protocol(UDP)

TCP의 대안으로 속도는 빠르지만 reliable한 전송을 보장하지 않고 순서 유지, 중복 보호 등을 보장하지 않는다.

UDP는 포트번호를 사용해서 IP에 포트번호 주소 지정기능을 사용할 수 있다.

Simple Network Management Protocol(SNMP)처럼 빠른 데이터 전송이 필요한 프로토콜과 함께 사용한다.(안전x)

 

UDP header

8바이트로 고정되어 있다.

  • source port 
  • Destination port
  • segment Length : 전체 UDP 패킷의 길이(헤더 + 데이터)
  • Checksum : 에러검출, 그러나 추가조치하지 않음. 또한 선택적으로 함.(in header)

 

IPv6

128비트 주소체계를 사용해서 더 많은 IP주소 공간을 제공한다. 또한 더 빠른 속도와 그래픽, 비디오 데이터를 처리할 수 있다.

IPv4 : 2^32-1

IPv6: 2^128-1 

이렇게 각각의 주소공간 다르다.

 

Standardized Protocol Architectures

표준화된 프로토콜 아키텍처는 전체 통신 기능을 여러 개의 계층으로 분리해서 각 계층이 독립적으로 작동하고 계층 간의 간섭을 최소화하는 구조를 제공한다. 각각의 계층은 상위 계층에게 서비스를 제공하며, 동일한 계층간의 프로토콜 간의 통신을 통해서 데이터를 주고받는다. 이러한 아키텍처로 인해서 확장성 있고 유연성 있게 할 수 있게 되었다.

 

Layer Specific Standards

각각의 계층에서의 표준화는 가지 요소가 있다.

  • Protocol Specification : 상호 운용성을 위해 정확한 Protocol Specification(프로토콜 사양)
  • Service Definition : 서비스의 기능적인 설명(어떤 서비스를 제공하는지 설명)
  • Addressing :  SAP를 통한 각 계층에서의 주소지정

이렇게 각 구조는 계층마다 독립적으로 기능을 수행하되, 다른 계층과는 효율적으로 상호작용할 수 있게 해 준다.

 

OSI Standardization(OSI 표준화)

이번에는 OSI 모델의 표준화에 대해서 알아보자.

세 가지 주요 요소

  • Protocol Specification : 상호 운용성을 위해 정확한 Protocol Specification(프로토콜 사양)
  • Service Definition : 계층 간의 상호작용은 다른 시스템과 상호운용성에 영향을 미치지 않으면서 시스템마다 다른 방식으로 서비스를 제공할 수 있어야 한다.
  • Addressing :  SAP를 통한 각 계층에서의 주소지정

사실상 layer 구조화와 동일

 

Service Primitives and Parameters

Primitives type

  • REQUEST : 서비스 사용자가 서비스를 요청할 때 사용
  • INDICATION : 서비스 제공자가 서비스 사용자에게 정보 전달
  • RESPONSE : 서비스 사용자가 서비스 제공자의 INDICATION의 응답
  • CONFIRM : 서비스 제공자가 서비스 사용자의 REQUEST에 대해 확인

Primitives는 수행할 기능을 지정하기 위해 사용한다. Parameters는 데이터를 전달하고 제어 정보를 전달하는 데 사용된다.

 

Multimedia Terminology(용어)

  • Media : 정보의 형태를 나타내며 텍스트, 이미지, 비디오 등을 의미
  • Multimedia : 텍스트, 그래픽, 음성 등을 포함하는 인간과 컴퓨터 간의 상호작용(Interaction)을 의미한다.
  • Streaming media : 수신 후 즉시 재생되는 비디오나 오티오 같은 멀티미디어 파일을 의미. 즉, 파일이 다운로드되기 전에 재생

멀티미디어 구성요소
관련 애플리케이션
탄력적 트래픽과 비탄력적 트래픽

Elastic traffic : 인터넷의 변화에 따라 적응하는 트래픽을 의미

Inelastic Traffic : 변화에 쉽게 적응하지 못하는 트래픽을 의미

'Computer Science > 데이터 통신' 카테고리의 다른 글

데이터 통신 총정리  (0) 2024.10.16
Data Transmission  (3) 2024.10.13
Data Communications, Data Networks, and the Internet  (0) 2024.09.12