인터넷 네트워크

최주영·2024년 3월 29일
0

HTTP 웹 기본 지식

목록 보기
1/3

✅ 클라이언트 - 서버

  • 클라이언트 : 서비스를 요청하는 역할을 한다
  • 서버 : 클라이언트의 요청을 받아들이고, 그 요청에 맞게 서비스를 제공하는 역할을 한다

ex) : 클라이언트 : 펌하려고 하는 손님
ex) : 서버 : 미용사

이 클라이언트와 서버가 함께 작동하는 구조를 클라이언트-서버 모델 이라고 부른다


✅ IP (인터넷 프로토콜) 역할

  • 지정한 IP 주소에 데이터 전달
  • 패킷 이라는 통신 단위로 데이터 전달

✅ IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거서비스 불능 상태여도 패킷 전송
    ex) 친구가 이사갔는지 안갔는지 모른상태로 편지보내는 것
  • 비신뢰성 : 패킷이 중간에 사라짐 (소실) + 패킷이 순서대로 안옴 (1,2순으로 보냈는데 2,1순으로 도착)

TCP
TCP는 다음 그림과 같이 순서, 전송 데이터 등이 포함되어 있기 때문에 위 IP의 한계점을 극복해줌
또 출발지 PORT와 목적지 PORT를 보내기 때문에 데이터를 신뢰성 있게 전달하는 프로토콜임
클라이언트 ->서버 , 서버 -> 클라이언트로 잘 전송함

TCP / IP 패킷 정보에는 출발지 IP, 목적지 IP, 출발지 PORT, 목적지 PORT, 전송 제어, 순서 ... 등등 존재

TCP 프로토콜의 특징

  • 전송 제어 프로토콜 (Transmission Control Protocol)
  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증 (데이터가 잘 전달됬는지 실패했는지 확인 가능) = 오류검사
  • 순서 보장
  • 신뢰할수 있는 프로토콜로 현재 대부분 TCP 를 사용

다음의 TCP 프로토콜을 택배 시스템을 비유해서 설명

(1) TCP 연결과정 (3-Way Handshake)
다음 과정은 택배 계약서 작성으로 비유 할 수 있다

고객(A)이 택배사(B)에게 계약을 요청
A: "안녕하세요! 앞으로 물건을 안전하게 주고받고 싶은데, 계약할 수 있을까요?"
(TCP에서 SYN 패킷을 보냄)

택배사(B)가 동의하고, A에게 확인 요청
B: "좋아요! 저도 준비됐어요. 고객님도 확실히 계약할 거죠?"
(TCP에서 SYN + ACK 패킷을 보냄)

고객(A)이 최종 확인 후 계약 완료
A: "네! 저도 계약 확정할게요!"
(TCP에서 ACK 패킷을 보냄)

📌 이제 고객(A)과 택배사(B) 사이에 신뢰할 수 있는 연결이 맺어지고 데이터 전송이 가능해짐

아래 그림에서 더 자세하게 살펴보겠다

SYN : 접속 요청
ACK : 요청 수락
클라이언트서버 서로 SYN와 ACK를 주고 받고 나서 연결이 된 것이 확인되면 데이터를 전송함
실제로 연결된것이 아닌, 논린적으로 연결이 된 것임
쉽게 말해 이과정에서 데이터를 바로 주고받는 게 아니라
"앞으로 통신하자" 라고 약속을 맺는 논리적인 연결 과정 임

(2) 데이터 전송과정
다음 과정은 택배 물건 보내기로 비유할 수 있다

  • A(보내는 사람)는 물건(데이터)을 상자(패킷)에 담아 보냄
  • 택배사가 상자를 B(받는 사람)에게 안전하게 배달
  • B는 물건을 받으면 "잘 받았어요!" (ACK 신호)를 보냄
  • 만약 중간에 택배가 분실되면?
    • B가 "못 받았어요!"라고 하거나 (TCP 타임아웃)
    • 일정 시간이 지나도 응답이 없으면, A가 다시 보내줌 (재전송)

📌 즉, TCP는 데이터가 안전하게 도착했는지 확인하고, 문제가 생기면 자동으로 재전송 함!

(3) 흐름 제어 & 혼잡 제어
다음 과정은 택배사의 처리 능력에 맞춰 조절하는 것으로 비유할 수 있다

만약 A가 너무 많은 물건을 한꺼번에 보내면? -> 📦📦📦📦📦📦 (택배사 과부하!)

택배사는 "잠시만요! 조금만 천천히 보내주세요!"라고 요청함
(TCP의 흐름 제어 : 수신자가 감당할 수 있는 속도로 조절)

도로가 너무 막혀서 택배 배달이 느려지면? -> 🚛🚛🚛🚛🚛🚛 (교통 체증)

택배사는 "지금 도로가 막혀서 천천히 보내주세요!"라고 안내
(TCP의 혼잡 제어 : 네트워크 상태에 따라 전송 속도 조절)

📌 이렇게 TCP는 네트워크 상태를 실시간으로 감지하고, 전송 속도를 조절해서 최적의 성능을 유지함!

(4) 연결 종료 과정 (4-Way Handshake)
다음 과정은 택배 계약 해지로 비유 할 수

A가 "이제 더 이상 택배 보낼 일이 없어요! 계약을 끝낼게요!" (TCP FIN 전송)

B가 "알겠어요! 하지만 저는 아직 처리할 게 조금 남았어요!" (TCP ACK 전송)

B가 "이제 다 처리했어요! 계약을 종료할게요!" (TCP FIN 전송)

A가 "확인했어요! 이제 정말 끝이에요!" (TCP ACK 전송)

📌 이제 연결이 완전히 종료됨!


✅ UDP

  • 사용자 데이터그램 프로토콜 (User Datagram Protocol)
  • 하얀 도화지에 비유 (기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake (X), 데이터 전달 보증 X, 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • IP와 거의 비슷하며 + PORT + 체크섬 정도만 추가

✅ PORT

  • 같은 IP 내에서 프로세스를 구분하는 것

💡 IP는 목적지의 서버를 구분하고, PORT는 찾은 서버에서 해당 어플리케이션을 구분
쉽게 이해하는 방법 -> IP 는 하나의 아파트 PORT 는 각 호수

  • 예시
    게임 = 포트 8090
    화상통화 포트 = 21000
    웹 브라우저 = 8080

✅ DNS

  • 도메인 네임 시스템 (Domain Name System)
  • 도메인 명을 등록하고 IP 주소로 변환

사용하는 이유 : IP주소를 기억하기 힘들고 + IP는 변경될 수 있기 때문에

URI , URL, URN

URI : Uniform Resource Identifier
URL : Uniform Resource Locator : 리소스가 있는 위치를 지정
URN : Uniform Resource Name : 리소스에 이름을 부여
scheme : 주로 프로토콜 (어떤 방식으로 자원접근 할 것인가 하는 약속 규칙)을 사용
ex) http, https, ftp

✅ HTTP vs HTTPS
HTTP : 편지 봉투 없이 편지 보내기 (보안 X)
HTTPS : 자물쇠로 잠근 편지 보내기 (보안 O)

profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글