본문 바로가기
프로그래밍/TCP IP

[TCP/IP] TCP와 중요 프로토콜(UDP, Telnet, FTP, SMTP, HTTP)

by HI_Ai 2023. 12. 20.
반응형


네트워크 프로토콜은 현대 통신에서 중추적인 역할을 합니다. 이들은 인터넷 상에서 데이터를 전송하고, 통신하는 방법을 정의합니다. 이러한 프로토콜들 없이는 이메일, 웹 서핑, 파일 전송과 같은 일상적인 디지털 활동이 불가능할 것입니다.


TCP(Transmission Control Protocol)와 UDP(User Datagram Protocol)는 데이터 전송을 위한 두 가지 기본적인 프로토콜입니다. TCP는 신뢰성 높은 데이터 전송을 제공하는 반면, UDP는 빠르고 가벼운 전송을 목적으로 하지만 신뢰성은 다소 떨어집니다. 각각의 사용 사례와 장단점을 이해하는 것은 네트워크 통신의 기본을 파악하는 데 필수적입니다.


또한, Telnet과 FTP 같은 오래된 프로토콜들은 여전히 특정 상황에서 중요한 역할을 합니다. 이들은 각각 원격 터미널 접속과 파일 전송을 담당하며, 보안상의 이슈에도 불구하고 특정 환경에서는 여전히 유용합니다. SMTP는 이메일 전송에, HTTP는 웹 페이지 요청과 전송에 사용됩니다. 이들은 인터넷의 핵심 기능인 이메일과 웹 브라우징을 가능하게 하는 핵심 프로토콜입니다.


이 장에서는 이러한 네트워크 프로토콜들의 기본적인 기능과 중요성에 대해 탐구해보겠습니다. 이를 통해 디지털 세계의 작동 원리를 보다 명확히 이해할 수 있을 것입니다.


TCP: 전송 제어 프로토콜

https://www.pearsonitcertification.com/articles/article.aspx?p=1829351

 

TCP, 즉 전송 제어 프로토콜은 인터넷에서 데이터를 신뢰성 있게 전송하는 데 사용되는 핵심 프로토콜입니다. 데이터의 순서 보장, 오류 검출 및 수정, 흐름 제어 등을 통해 안정적인 데이터 전송을 보장합니다. 이러한 기능은 TCP를 이메일, 파일 전송, 웹 페이지 로딩 등과 같은 중요한 애플리케이션에 이상적으로 만듭니다.

TCP는 데이터를 순차적이고 신뢰할 수 있는 바이트 스트림으로 처리합니다. 이는 데이터가 전송 과정에서 분실되거나 순서가 바뀌는 것을 방지하며, 필요한 경우 재전송을 통해 데이터 무결성을 유지합니다. 또한, 네트워크 혼잡 상황에서 효율적인 데이터 전송을 위해 윈도우 크기 조정과 같은 흐름 제어 기술을 사용합니다.

TCP 헤더는 프로토콜의 기능을 이해하는 데 중요한 역할을 합니다. 이 헤더에는 소스 및 대상 포트 번호, 순서 및 승인 번호, 플래그, 윈도우 크기 등과 같은 필수 정보가 포함되어 있습니다. 이러한 정보를 통해 TCP는 효율적이고 안정적인 통신을 가능하게 합니다.

TCP 연결 설정 및 종료 과정은 '세 방향 핸드셰이크'와 '네 단계 프로세스'로 진행됩니다. 이 과정을 통해 클라이언트와 서버 간의 안정적인 연결이 구축되고, 데이터 전송이 완료된 후에는 연결이 안전하게 종료됩니다.


UDP : 사용자 데이터그램 프로토콜

https://bunny.net/academy/network/what-is-user-datagram-protocol-udp-and-how-does-it-work/

UDP, 즉 사용자 데이터그램 프로토콜은 인터넷에서 빠르고 간단한 메시지 전송을 위해 사용되는 프로토콜입니다. TCP와 달리, UDP는 연결 없이 데이터를 전송하며, 신뢰성보다는 속도와 효율성을 중시합니다. 이는 스트리밍, 온라인 게임, VoIP(음성 통화)와 같은 실시간 응용 프로그램에 적합합니다.

 

주요 특징

- 연결 없음: UDP는 사전 연결 설정 없이 데이터를 전송합니다. 이는 통신 과정을 간소화시키며, 지연 시간을 줄입니다.
- 신뢰성 부족: 데이터 패킷의 도착을 보장하지 않으며, 순서대로 도착하거나 중복되지 않음을 보장하지 않습니다. 이는 네트워크 상황에 따라 일부 데이터가 손실될 수 있음을 의미합니다.
- 헤더 오버헤드 감소: UDP 헤더는 TCP 헤더보다 훨씬 간단하며, 이로 인해 네트워크 부하가 줄어듭니다.
- 멀티캐스팅과 브로드캐스팅: UDP는 멀티캐스트(다중 수신자에게 데이터 전송)와 브로드캐스트(모든 네트워크 사용자에게 데이터 전송)를 지원합니다.

UDP의 이러한 특성은 특정 응용 프로그램에서 TCP 대신 사용되는 이유를 설명합니다. 그러나 이러한 특성은 동시에 네트워크의 신뢰성과 데이터 무결성에 대한 도전을 제시합니다. 


Telnet 프로토콜

https://www.geeksforgeeks.org/introduction-to-telnet/

Telnet은 원격 터미널 접속을 위한 네트워크 프로토콜로, 사용자가 인터넷을 통해 다른 컴퓨터에 로그인하여 명령을 실행할 수 있게 해줍니다. 1969년에 개발된 이 프로토콜은 초기 인터넷 프로토콜 중 하나로, 텍스트 기반의 인터페이스를 제공합니다.

 

주요 특징
- 원격 접속: 사용자가 네트워크를 통해 원격 컴퓨터에 접속하여 작업을 수행할 수 있습니다.
- 텍스트 기반 인터페이스: 모든 작업과 응답이 텍스트 형태로 이루어집니다.
- 클라이언트-서버 모델: Telnet 클라이언트가 Telnet 서버에 연결되어 통신합니다.

그러나 보안상의 문제로 인해 Telnet의 사용은 현대에는 크게 감소했습니다:
- 암호화 부재: Telnet 통신은 암호화되지 않아, 민감한 정보가 도첩될 위험이 있습니다.
- SSH로의 대체: 보안이 강화된 SSH(Secure Shell) 프로토콜이 Telnet을 대체하여 널리 사용되고 있습니다.

비록 Telnet이 구식으로 여겨지고 보안 문제가 있음에도 불구하고, 특정 상황에서 여전히 사용됩니다. 예를 들어, 일부 오래된 시스템이나 기기는 여전히 Telnet을 통해서만 접근할 수 있으며, 네트워크 테스트나 교육 목적으로도 사용됩니다.


FTP : 파일 전송 프로토콜

https://www.geeksforgeeks.org/file-transfer-protocol-ftp-in-application-layer/

FTP, 즉 파일 전송 프로토콜은 컴퓨터 네트워크를 통해 파일을 전송하기 위해 설계된 표준 네트워크 프로토콜입니다. 웹 서버에 파일을 업로드하거나 서버에서 파일을 다운로드하는 데 널리 사용됩니다. FTP는 클라이언트-서버 모델을 기반으로 하며, 사용자 인증(아이디와 비밀번호)을 통해 보안을 제공합니다.

 

주요 특징

- 이진 모드와 텍스트 모드: 파일을 이진 데이터 혹은 텍스트로 전송할 수 있습니다.
- 명령 채널과 데이터 채널: FTP는 명령을 전송하기 위한 채널과 데이터를 전송하기 위한 별도의 채널을 사용합니다.
- 익명 FTP: 사용자가 아이디와 비밀번호 없이 파일을 다운로드할 수 있도록 하는 익명 FTP도 지원됩니다.

보안 측면에서 FTP는 몇 가지 단점을 가지고 있습니다. 특히, 전송되는 데이터가 암호화되지 않아, 중요한 정보가 노출될 위험이 있습니다. 이러한 이유로, 보안이 강화된 FTPS(FTP Secure)나 SFTP(SSH File Transfer Protocol) 같은 프로토콜이 대안으로 제시되고 있습니다.


SMTP : 단순 메일 전송 프로토콜

https://www.educba.com/smtp-protocol/

SMTP, 즉 단순 메일 전송 프로토콜은 이메일을 보내고 전달하는 데 사용되는 인터넷 표준 프로토콜입니다. 이메일 클라이언트가 메일 서버로 이메일을 보내거나 서버 간에 이메일을 전달할 때 주로 사용됩니다.

 

주요특징
- 포트 번호: SMTP는 주로 TCP 25번 포트를 사용합니다. 보안 연결의 경우 587번 또는 465번 포트가 사용될 수 있습니다.
- 메일 전송 과정: 사용자가 이메일을 보낼 때, SMTP 클라이언트는 SMTP 서버에 연결하여 메일을 전송합니다. 이 과정에는 수신자 주소 확인, 메시지 전송, 서버 간 전달 등이 포함됩니다.
- 상태 코드와 응답: SMTP 서버는 메일 전송 상태를 나타내는 다양한 상태 코드를 반환합니다. 예를 들어, '250'은 성공적인 전송을 의미합니다.

SMTP는 이메일 전송에만 사용되며, 이메일을 받아오는 데에는 IMAP이나 POP3와 같은 다른 프로토콜이 사용됩니다. 또한, SMTP 자체는 암호화를 제공하지 않기 때문에, 메일의 내용이나 사용자 정보가 도첩될 수 있는 보안 문제가 있습니다. 이를 해결하기 위해 SMTPS나 STARTTLS와 같은 보안 확장이 개발되었습니다.


HTTP와 DNS : 웹 브라우징의 필수 요소

https://velog.io/@rivercity310/Spring-Security-HTTP-Basic-Auth

HTTP (Hypertext Transfer Protocol)와 DNS (Domain Name System)는 인터넷 브라우징과 데이터 통신의 핵심 요소입니다. 이 두 프로토콜은 웹사이트에 접속하고 정보를 주고받는 과정에서 밀접하게 연관되어 있습니다.

HTTP의 역할
- 웹 페이지 전송: 웹 서버와 클라이언트(웹 브라우저) 간에 웹 페이지와 다른 리소스를 주고받기 위해 사용됩니다.
- 요청/응답 구조: 클라이언트가 요청을 보내면, 서버는 이에 대한 응답을 보냅니다. 이 과정에는 다양한 HTTP 메서드(GET, POST 등)가 사용됩니다.

DNS의 역할
- 도메인 이름 해석: 웹 브라우저가 사람이 읽을 수 있는 도메인 이름(예: http://www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 데 사용됩니다.

HTTP와 DNS의 관계
1. URL 요청: 사용자가 웹 브라우저에 URL을 입력하면, HTTP 프로토콜이 활성화됩니다.
2. DNS 조회: 브라우저는 해당 URL의 도메인 이름에 해당하는 IP 주소를 찾기 위해 DNS 조회를 합니다.
3. HTTP 요청: DNS 조회를 통해 IP 주소를 얻은 후, 브라우저는 해당 서버에 HTTP 요청을 보냅니다.
4. 서버 응답: 서버는 HTTP 요청을 처리하고 웹 페이지나 다른 리소스를 응답으로 보냅니다.




HTTP에서의 쿠키 : 추적과 관리

HTTP 쿠키는 웹사이트가 사용자의 브라우저에 저장하는 작은 데이터 조각입니다. 이러한 쿠키는 사용자가 웹사이트를 탐색할 때 특정 정보를 기억하고, 사용자 경험을 개인화하는 데 중요한 역할을 합니다.

쿠키의 주요 기능
- 세션 관리: 로그인, 쇼핑 카트, 게임 점수 등 사용자의 세션 정보를 저장합니다.
- 개인화: 사용자 선호도, 테마 설정, 언어 선택 등을 기억합니다.
- 추적: 사용자의 웹사이트 방문 및 활동 추적에 사용되어, 타겟 광고나 분석에 활용됩니다.

쿠키의 종류
1. 세션 쿠키: 브라우저가 닫힐 때 삭제되며, 임시 정보 저장에 사용됩니다.
2. 영구 쿠키: 설정된 만료 기간이 지날 때까지 저장되어, 사용자 선호도나 로그인 정보를 기억하는 데 사용됩니다.
3. 서드파티 쿠키: 다른 도메인의 광고나 이미지에 의해 생성되며, 온라인 행동 추적에 사용됩니다.

보안 및 프라이버시 문제
- 프라이버시 우려: 쿠키를 통해 수집된 데이터는 사용자의 프라이버시를 침해할 수 있습니다.
- 보안 취약점: 쿠키가 악의적인 사용으로 인해 보안 문제를 일으킬 수 있습니다. 예를 들어, 쿠키를 통한 세션 하이재킹 공격이 가능합니다.
- 보호 조치: `HttpOnly` 속성은 쿠키를 JavaScript로부터 보호하며, `Secure` 속성은 쿠키가 암호화된 연결을 통해서만 전송되도록 합니다.

반응형