네트워크 - Principles of Application(2)

2020-11-13

컴퓨터 네트워크를 공부하면서 정리를 한 내용들 입니다.

-참고 K-mooc 부산 대학교 유영환 교수님 : 컴퓨터 네트워크 강의


Requirements of Network Applications

다양한 네트워크 애플리케이션들이 요구하는 특성을 한번 살펴보겠습니다.

이 응용들이 요구하는 requirement,

요구사항을 살펴 보면 파일 트랜스퍼(file transfer)나 이메일(e-mail),

웹 도큐먼트(web documents), 텍스트 메세징(text messaging) 같은 경우에 데이터를 잃어버려서는 안된다고 나와있습니다.

데이터 전송의 신뢰성을 요구합니다.

Elastic : 전송량은 좀 들쭉날쭉 해도 상관없음.

무슨 뜻이냐 하면 여러분이 친구한테서 어떤 파일을, 압축된 파일을 받는 경우에

파일의 한 비트 두 비트라도 에러가 있으면 압축이 풀리지 않습니다.

그렇기 때문에 모든 비트가 정확하게 도착 해야 합니다.

정확하게 도착 하기만 하면 조금 빨리 도착하나 늦게 도착하나 크게 상관 없다는 것 입니다.

반면에 오디오/비디오의 경우 loss-tolerant 하다 이렇게 되어있습니다.

Tolerant : 무엇을 잘 견딘다.

Loss가 조금 있어도 상관이 없다는 것입니다.

동영상을 본다고 가정했을 때,

비디오 같은 경우에 보면 초당 30프레임의 그림 파일이 날아 와서 연속적으로 내 컴퓨터에서 보여지면서

화면으로 보이는 것인데 30프레임 중에 한 두 프레임 깨졌다 해도 나머지 영상을 보고 즐기는 데에는 크게 문제가 없습니다.

만약에 한 두 프레임도 깨지는 것이 싫다,

그래서 30프레임 중에 25프레임 까지는 잘 받았고, 26번째 27번째 프레임이 안 왔다 할 경우

25프레임을 화면에 보여주고 26번째, 27번째를 기다리기 위해서 화면이 멈춰 있으면 사용자는 더 답답함을 느낄겁니다.

이렇게 응용 별로 요구사항이 대비 되게 다를 수가 있습니다.

requirement들은 누가 제공해 줄까?

트랜스포트 레이어 프로토콜이 이런 data lossthroughput에 대한 요구사항을 만족시켜주는 프로토콜입니다.

트랜스포트 레이어 프로토콜의 대표적인 것이 TCPUDP입니다.

## TCP

TCP에서 가장 중요한 것이 error control, 보내는 데이터의 에러가 없도록 해 줍니다.

만약 데이터를 받았을 때 에러가 있다면,

재 전송을 요구해서 에러가 없어질 때 까지 전송을 요구해서 에러가 없는 데이터가 도착 했을 때

그 때 애플리케이션 레이어에 전달을 해 줍니다.

그래서 실제로는 네트워크 상에서 에러가 발생하더라도 트랜스포트 레이어 프로토콜의 TCP가 이 문제를 이미 다 해소 한 상태에서

애플리케이션 레이어에 전달을 해 주기 때문에 애플리케이션 레이어 프로토콜이 보기에는

에러가 전혀 없는 그런 통신처럼 보입니다.

에러가 없기 때문에 우리가 이것을 신뢰성 있는 프로토콜이다 이렇게 이야기 합니다.

TCP의 서비스는 이것 외에 flow control, congestion control이 있습니다.

flow control은 간단하게 말하면 senderreceiver가 받을 수 없는 이상의,

받을 수 있는 용량 이상의 데이터를 한꺼번에 보내지 않도록 하는 것 입니다.

congestion control은 중간에 있는 인터넷 토킹 장비들, 라우터나 스위치에

데이터가 쌓이지 않도록 제어하는 것을 이야기 합니다.

TCP는 지연시간과 최소 전송량, 보안적인 security를 보장하지 않습니다.

UDP

반면에 TCP하고 대비되는 것이 UDP인데,

UDPTCP가 제공하는 error controlflow control, congestion control를 제공하지 않습니다.

그렇기 때문에 unreliable 하다고 말합니다.

데이터가 깨지면 깨진 대로 애플리케이션 레이어에 전달을 해 줍니다.

UDP는 왜 사용하는가?

응용들의 특성이 다르기 때문에 TCP를 요구 하는 것도 있고,

UDP를 요구 하는 것도 있습니다.

오디오나 비디오 같은 멀티미디어 데이터를 전달하는 네트워크 응용 같은 경우에,

TCP를 사용하게 되면 에러가 발생했을 때 너무 긴 지연시간이 발생할 수 있다는 것입니다.

그런데 UDP는 에러가 있으면 있는 대로 넘겨 버리기 때문에

초당 30프레임 중에 한 두 프레임 에러가 났다, 또는 우리가 인터넷 전화를 하는 중에

한 두 문장 에러가 났다고 해서 지연 시간이 길어지거나 하는 것 없이 그냥 있는 그대로,

내가 받은 그대로 전달해 줍니다.

그래서 UDPTCP보다 전반적으로 속도가 빠른 특성이 있습니다.

그래서 응용 프로그램, 멀티미디어 프로그램에 적합합니다.

우리가 많이 쓰는 애플리케이션과 그 애플리케이션이 사용 하고 있는 TCP프로토콜이 정리된 표 입니다.