정보보안기사

TCP/IP(with TCP와 UDP 비교)

duduranran 2023. 1. 8. 00:01

TPC/IP 계층별 분류


1. 물리 계층

응용, 전송, 네트워크 데이터 링크에서의 통신은 논리적(logical)이고, 물리 계층의 통신은 물리적(physical)이다.

간단하게 호스트 대 라우터, 라우터 대 라우터, 라우터 대 호스트만을 보는데, 교환기도 물리적 통신에 포함된다.

데이터와 데이터를 표현하는 신호는 아날로그 or 디지털형태일 수 있다.

 아날로그 : 연속적인 정보

 디지털 : 이산적인 정보

 

2. 데이터링크 계층

데이터링크 계층에서의 통신은 노드 대 노드이다.

데이터링크 계층에서의 패킷은 일반적으로 프레임이라 부른다.

인터넷 상에서 하나의 지점으로부터의 데이터 유닛은 다른 지점에 도달하기 위해 LAN과 WAN과 같은 많은 네트워크를 통해 전달 된다.

이러한 LAN과 WAN은 라우터를 통해 연결되고, 이것은 노드와 링크로 네트워크를 타나태는 것이 일반적이다.

제공하는 서비스 : 프레임 짜기, 흐름 제어, 오류 제어(혼잡 제어는 제공하지 않는다.)

3. 네트워크 계층

 

 

 

 

4. 전송 계층

(1) UDP

  사용자 데이터그램 프로토콜(UDP)은 비연결형이고, 신뢰성이 없는 전송 프로토콜이다.

  (일은 빠르게 처리해, 근데 정확성이 없는 사람 생각하자.)

  호스트 간 통신 대신에 프로세스 간 통신을 제공하는 것을 제외하고는 IP서비스에 어떤 것도 추가하지 않는다.

  최소한의 오버헤드를 가진 매우 간단한 프로토콜

  만약 프로세스가 작은 메시지를 송신하길 원하고, 신뢰성에 관해 그다지 신경을 쓰지 않는다면 UDP사용!

  사용자 데이터그램이라고 부르는 UDP패킷은 각각 2바이트(16비트)인 4개의 필드로 만들어진 고정된 크기의 8바이트 헤더를 가진다.

 

(2) UDP  서비스

 (가) 프로세스-대-프로세스 통신

  UDP는 IP주소와 포트 번호의 결합인 소켓주소를 이용해 프로세스 대 프로세스 통신을 한다.

 

 (나) 비연결형 서비스

  UDP는 비연결형 서비스를 제공, 이것은 UDP에 의해 보내지는 각 사용자 데이터 그램은 독립된 데이터그램이란 것을 의미한다. 동일한 근원지 프로세스로부터 동일한 목적지 프로그램으로 간다해도 사용자 데이터 그램은 서로 관계가 없다.

 

 (다) 흐름 제어

  UDP는 매우 단순한 프로토콜이다, 흐름 제어가 없고 따라서 윈도우 메커니즘이 없다. 들어오는 메시지로 인해 수신자측에 오버플로우가 발생할 수도 있다.

  흐름 제어의 결여는 UDP를 이용하는 프로세스가 필요하다면 이러한 서비스를 스스로 제공해야만 함을 의미

  

 (라) 오류 제어

  검사합(Checksum)을 제외하고는 UDP에 오류제어 메커니즘이 없다. 이것은 송신자가 메시지가 손실이 되었는지 또는 중복이 되었는지 알 수 없음을 의미한다.

  수신자가 검사합을 통하여 오류를 검출했을 때는 사요자 데이터그램은 아무런 동작없이 제거된다.

  오류 제어의 결여는 UDP를 이용하는 프로세스가 필요하다면 이러한 서비스를 스스로 제공해야만 함을 의미  

 

 (마) 혼잡 제어

  UDP는 비연결 프로토콜이므로 혼잡 제어를 제공하지 않는다.

  UDP는 전송되는 패킷이 매우 작고 산발적이어서 네트워크에 혼잡을 발생시키지 않는다.

  이 가정은  오늘날 UDP가 음성과 영상의 상호작용적 실시간 전달에 사용되기 때문에 맞을 수도 맞지 않을 수도 있다.

 

 (바) 다중화 역다중화 

  TCP/IP 프로토콜 그룹에서 동작하는 호스트에서 1개의 UDP가 있으나 UDP서비스를 사용하기 원하는 다수의 프로세스가 있을 수 있다.

  이런 성향을 다루기 위해 UDP는 다중화 및 역다중화한다.

 

(2) UDP의 일반적인 응용

  UDP는 흐름 및 오류 제어를 하지않는 간단한 요청-응답 통신을 요구하는 프로세스에 적당하다.

  FTP와 같이 대량 데이터를 전송할 필요가 있는 프로세스에는 사용되지 않는다.

  UDP는 내부 흐름 및 오류 제어 기법을 가진 프로세스에 적당하다

  예를 들면 TFTP(간단한 파일 전송 프로토콜)은 흐름 및 오류 제어를 포함한다.

  UDP는 멀티캐스팅을 위한 전송 프로토콜이다. 멀티캐스팅 능력은 TCP소프트웨어가 아닌 UDP소프트웨어의 내부에 들어있다.

  UDP는 SNMP와 같은 관리 프로세스를 위해 사용된다.

  UDP는 라우티 정보 프로토콜(RIP)과 같은 경로 갱신 프로토콜을 위해 사용된다.

 

 

(1) TCP

  (가) 프로세스-대-프로세스 통신

   TCP는 UDP처럼 포트 번호를 사용하여 프로세스 간 통신을 제공한다.

 

  (나) 스트림 전송 서비스

   TCP에서 송신 프로세스는 바이트의 흐름(stream of Byte)으로 데이터를 전달하고, 수신 프로세스도 바이트의 흐름으로 데이터를 수신하도록 만든다.

  TCP는 인터넷으로 데이터를 운반하는 가상의 튜브(tube)에 의해 2개의 프로세스가 연결되는 것처럼 보이는 환경을 만든다.

 

  (다) 송신 및 수신 버퍼

   

  (라) 전이중 통신

   

  (마) 다중화 역다중화

   

  (바) 연결-지향 서비스

   

  (사) 신뢰성 있는 서비스

   TCP는 신뢰성 있는 전송 프로토콜이다.  TCP는 데이터의 안전하고 확실한 도착을 확인하기 위해 확인응답 기법을 사

   

5. 응용 계층

응용 계층의 주요 프로토콜은 아래와 같다

1) HTTP

  웹으로부터 웹페이지를 가져오기 위해 어떻게 클라이언트-서버 프로그램을 작성할지를 정의하는데, 사용.

  HTTP클라이언트는 요청, HTTP서버는 응답을 하고, 서버는 포트 80번 사용, 클라이언트는 임시 포트 번호 사용.

 

2) FTP

  하나의 호스트에서 다른 호스트로 파일을 복사하기 위해 TCP/IP가 제공하는 표준 프로토콜이다.

  파일 전송 시 몇 가지 문제를 고려 해야 한다.

  파일을 주고 받는 두 시스템이 서로 다른 파일 이름 부여방식을 사용할 수도 있고,

  서로 다른 데이터 방법으로 표현할 수도 있다.

  그리고 두 시스템은 서로 다른 디렉터리 구조를 가질 수도 있는데, 이러한 모든 문제를 FTP에 의해 매우 간단하고 편리한    방식으로 해결된다. 

 

3) TELNET

  TErminaL NETwork의 약어인 TELNET은 최초의 원격 로그인 프로토콜 중 하나이다.

  TELNET은 로그인 이름과 암호를 요구함에도 불구하고 모든 데이터를 평문으로 전송하기에 해킹에 취약하다.

  해커는 로그인 이름과 암호를 도청해서 얻을 수 있고, 이러한 보안 문제를 해결하기 위해 SSH(Secure Shell) 프로토콜이    사용되어 사용은 감소되었다.

 

4) DNS

  오늘날의 인터넷은 매우 거대하기 때문에 중앙 디렉터리 시스템은 모든 매핑을 보유할 수 없다. 또한 중앙 컴퓨터가 고장나는 경우 전체 통신망이 붕괴 된다.

  더 좋은 해결책은 이 엄청난 양의 정보를 작게 나누어서 전 세계의 서로 다른 컴퓨터에 저장하는 방법을 사용

  이 방법에서는 각 호스트는 매핑이 필요할 경우 이 정보를 가지고 있는 가장 가까운 컴퓨터와 통신하게 된다.

  DNS(Domain Name System)이 이 방법을 사용한다.

 

 

TCP와 UDP 단순 비교
서비스 TCP UDP
신뢰성 패킷이 목적지에 도달했는지 확인, 패킷이 도달될 때마다 ACK를 수신하기 때문에 신뢰성 있는 프로토콜 ACK를 보내지 않으며 패킷이 목적지에 도달되는 것을 보장하지 않기 때문에 신뢰성이 없는 프로토콜
연걸 연결지향적이므로, 핸드셰이킹 과정을 수행, 목적지 컴퓨터와 함께 가상연결 형성 비연결지향적이므로 핸드셰이킹 과정을 수행하지 않고, 가상연결도 형성하지 않음
패킷 순서 패킷 내에 순서번호를 사용하여 각 패킷이 순차적으로 수신되도록 한다. 순서번호를 사용하지 않는다.
혼잡 제어 목적지 컴퓨터는 송신지 컴퓨터의 너무 많은 데이터 전송으로 인해 처리가 어렵거나 전송속도가 느려질 경우 이를 통보 목적지 컴퓨터는 흐름제어에 대한 통보를 송신지 컴퓨터에 하지 않는다.
사용 신뢰성 있는 정보를 전송할 때 사용 스트리밍 비디오와 브로드캐스트 등 신뢰성 있는 전송이 불필요할 때 사용
속도와
오버헤드
상당한 양의 자원을 사용하며 UDP보다 느리다. 더 적은 자원을 사용하고 TCP보다 빠르다.