-
서버공부 시작 {프로토콜 공부} : TCP/UDP부터 HTTP/HTTPS백엔드 : 서버공부/NetWork 2023. 9. 27. 00:41728x90
HTTP 와 HTTPS 를 학습하기위한 빌드업.
TCP / UDP
TCP UDP (UDT 아님)- TCP는 통신에 있어서 아주 중요한 프로토콜입니다.
- IP만으로 데이터를 주고 받기에는 문제가 많은데, 먼저 전송할 데이터가 큰 경우 인터넷 대역폭을 너무 많이 차지하는 문제가 있습니다. 그래서 TCP는 데이터를 작은 단위인 패킷으로 쪼개서 보냅니다.
- 패킷으로 나누어진 데이터들은 전송될때 유실되거나 순서가 섞일 수 있는데, TCP는 순서보장 및 재전송 등의 기능을 통해 오류를 검출하고 재전송을 송신자 측에 재전송을 요청하는 등 통신의 신뢰성을 보장합니다.
- UDP도 통신에서 중요한 프로토콜 입니다.
- 비연결형 프로토콜이라고 불리는 UDP는 패킷이 제각각 다른 경로로 이동합니다.
- 순서보장이나, 병목현상을 방지하기위한 흐름제어 등을 하지않는 프로토콜입니다. (최소한의 Check Sum은 제공)
- UDP는 기능이 적기때문에 TCP에 비해 빠릅니다.
- 때문에 패킷이 일부 유실 되어도 되고 빠른 실시간 통신을 필요로하는 동영상 스트리밍 서비스 등에 이용되고 있습니다.
OSI 7 layer
OSI(Open Systems Interconnection) 모델은 네트워크 통신이 일어나는 과정을 7단계로 나눈것입니다 .
(계층보다 단계라는 말이 더 와닿는듯)
물리 계층 (1계층)
- 전기적, 기계적 특성을 이용하여 데이터를 전송합니다.
- 데이터의 전달만을 담당하며, 데이터의 내용이나 에러에 대해 고려하지 않습니다.
- 통신 케이블, 리피터, 허브 등이 사용됩니다.
데이터 링크 계층 (2계층)
- 물리 계층의 데이터 전송에서 발생하는 오류 및 흐름을 관리하여 안전한 정보 전달을 돕습니다.
- 맥 주소를 사용하여 통신하며, 프레임이라는 단위로 데이터를 전송합니다.
- 브리지, 스위치 등이 사용되며, 맥 주소를 통해 통신합니다.
네트워크 계층 (3계층)
- 데이터를 목적지까지 안전하고 빠르게 전달하는 역할을 합니다 (라우팅).
- IP 주소를 사용하여 통신하며, 라우터가 이 계층에서 동작합니다.
- 경로 선택, 주소 정의, 패킷 전달을 수행합니다.
전송 계층 (4계층)
- 통신을 활성화하기 위한 계층으로 TCP, UDP 프로토콜을 사용하여 응용 프로그램 간 통신을 가능케 합니다.
- TCP는 신뢰성 있는 통신을 제공하고, UDP는 빠른 전송을 지향합니다.
세션 계층 (5계층)
- 데이터 통신의 세션을 설정, 유지, 종료하고, 전송 중단 시 복구하는 역할을 담당합니다.
- 응용 프로그램 관점에서 통신을 관리하며, 세션 설정, 유지, 종료를 담당합니다.
표현 계층 (6계층)
- 데이터 표현의 차이를 다루어 사용자 시스템 간 데이터 형식의 독립성을 제공하고, 암호화합니다.
- 데이터의 형식 차이를 처리하며, 암호화와 관련된 동작을 수행합니다.
응용 계층 (7계층)
- 최종 목적지로서 HTTP, FTP, SMTP, POP3, IMAP, Telnet 등과 같은 프로토콜을 사용하여 통신합니다.
- 응용 프로그램과 사용자의 인터페이스를 담당하며, 네트워크 소프트웨어 UI 부분과 사용자의 입출력(I/O)부분을 처리합니다.
TCP / IP 4계층
네트워크 연결 계층(1계층)
- 물리적인 데이터 전송을 담당하고, 동일 네트워크에서 데이터 전송합니다.
- MAC 주소를 활용하여 노드 간 통신을 수행합니다.
- 에러 검출 및 패킷의 Frame화를 수행합니다.(데이터의 명칭의 변화?)
인터넷 계층(2계층)
- 네트워크 상에서 데이터 전송을 담당하며, 서로 다른 네트워크 간 통신 가능하게 합니다.
- IP 주소를 할당하여 단말을 식별하고 네트워크 간 라우팅을 수행합니다.
전송 계층 (3계층)
- 통신 노드 간 데이터 전송 및 흐름에서 신뢰성을 보장합니다.
- TCP와 UDP 프로토콜을 활용합니다.
응용 계층 (4계층)
- 사용자와 응용 프로그램 간의 소통을 담당합니다.
HTTP
HTTP는 클라이언트(일반적으로 웹 브라우저)와 서버 간의 통신을 원활하게 하기 위한 규칙들의 모음이라고 할 수 있습니다.
HTTP는 웹 페이지의 요청(Request)과 응답(Response)을 관리하여 정보를 교환합니다. 클라이언트가 웹 브라우저를 통해 웹 페이지에 접속하거나 데이터를 요청할 때, 이 요청과 그에 대한 응답은 HTTP 프로토콜을 따라 이루어집니다.
이러한 약속을 통해 클라이언트와 서버 간의 상호 작용이 가능해지며, 이는 웹 페이지의 로딩, 데이터 전송, 로그인, 검색 등 웹 서비스의 기능을 구현하는 데 중요한 역할을 합니다. HTTP는 웹의 기본적인 동작을 정의하고, 이를 통해 웹 페이지들이 서로 연결되고 정보가 교환되는 기반을 제공합니다.
HTTPS
HTTP덕분에 웹브라우저와 서버간의 통신이 원활해 지긴했는데..…
HTTP에는 보안적인 취약점이 있어 주고 받는 데이터가 암호화되지 않아 중요 정보의 노출이라는 위험성이 존재했습니다.
(로그인 정보가 평문으로 서버를 통해 전송되기때문에 보안에 상당히 취약..)
이 문제를 해결하기 위해 HTTPS가 개발되었습니다. HTTPS는 기존의 HTTP를 보안 강화 버전으로, SSL(Secure Socket Layer)이라는 프로토콜을 사용하여 데이터를 암호화합니다. 나중에 SSL은 TLS(Transport Layer Security)로 발전되어 현재는 SSL/TLS라는 용어로 통칭하여 사용하고 있습니다. 이를 통해 중요 정보를 안전하게 주고 받을 수 있게 되었습니다.
'백엔드 : 서버공부 > NetWork' 카테고리의 다른 글
서버공부 시작{ TCP/IP } : 인터넷의 열쇠 (28) 2023.09.02 다중화와 역다중화(multiplexing & demultiplexing) (8) 2023.08.05 트랜스포트 계층 서비스 및 개요 (6) 2023.08.04