고슴맨쉬
망치와 공(空)
고슴맨쉬
  • 분류 전체보기 (155)
    • 💡 UXUI (4)
      • UXUI (2)
      • UI (2)
      • UX (0)
    • 🟨 JavaScript (66)
      • 개념 (42)
      • 정리 (2)
      • 문제풀기 (프로그래머스, 코딩애플) (15)
      • 응용하여 자동화or문제해결하기 (2)
      • 기타 (5)
    • ⚛️ React (49)
      • 개념 (27)
      • 개념(Redux) (3)
      • 정리 (4)
      • 문제풀기 (코딩애플: React) (15)
    • 📘 TypeScript (10)
      • 개념 (8)
      • 문제풀기 (코딩애플) (2)
    • 🌐 HTML,CSS (18)
      • 실무에서 자주 발생한 오류들 (10)
      • 뒤늦게 알아서 뼈아픈 유용한 CSS (6)
      • 기타 자주 쓰는 CSS (2)
    • 💻 CS (8)
      • CS (5)
      • 정규표현식 (2)
      • Git,Github (1)

태그

  • redux
  • JavaScript
  • CS
  • useEffect
  • CSS
  • react
  • Props
  • object
  • array
  • TypeScript
  • json
  • 프로그래머스
  • UXUI
  • class
  • 삼항연산자
  • Ajax
  • 오류
  • 코딩애플
  • state
  • axios
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
고슴맨쉬

망치와 공(空)

💻 CS/CS

CS : 인터넷 네트워크 (2) IP, TCP, UDP

2023. 9. 11. 15:07

IP (Internet Protocol)

IP는 클라이언트와 서버 간에 데이터를 주고받을 때 인터넷 내에서 데이터를 전달하는 규칙을 정의한 프로토콜이다.

패킷 전달

  • IP는 데이터를 작은 단위인 패킷으로 나누어서 전송한다. 각 패킷에는 출발지 IP 주소와 목적지 IP 주소가 포함되며, 이 정보를 사용하여 데이터를 목적지로 전달한다.

인터넷 라우팅

  • IP는 인터넷 내의 다양한 노드(서버)를 거쳐 데이터를 전달하는 역할을 한다. 라우터와 스위치와 같은 네트워크 장비를 사용하여 데이터 패킷을 목적지까지 라우팅한다.

IP 프로토콜의 한계

비연결성

  • IP는 데이터를 보낼 때 대상 서버가 패킷을 받을 수 있는 상태인지 확인하지 않는다. 따라서 대상 서버가 없거나 서비스 불능 상태여도 패킷은 전송된다.

비신뢰성

  • IP는 데이터 패킷의 순서를 보장하지 않는다. 다양한 경로를 통해 패킷이 전달되기 때문에 도착 순서가 달라질 수 있으며, 중간 노드(서버)에서 패킷이 소실될 수 있다.

프로그램 구분의 어려움

  • IP는 주소 기반으로 패킷을 라우팅하므로, 하나의 서버에서 여러 개의 애플리케이션이 동시에 동작할 때, 어떤 애플리케이션이 어떤 데이터를 처리해야 하는지를 구분하기 어렵다. 이를 해결하기 위해 포트 번호와 같은 추가적인 정보가 필요하다.

이러한 한계를 극복하기 위해 상위 계층에서 TCP와 같은 프로토콜을 사용하여 연결 지향성과 데이터의 신뢰성을 제공하고, 포트 번호를 사용하여 여러 애플리케이션 간의 데이터를 구분할 수 있다.


TCP (Transmission Control Protocol)

TCP는 IP 프로토콜의 한계를 극복하기 위한 신뢰성 있는 전송 제어 프로토콜이다. 현재는 거의 TCP를 사용한다.

연결지향적

  • TCP는 통신을 시작하기 전에 연결을 설정하는 과정을 거치는데, 이를 "TCP 3-way handshake"라고 한다. 이 가상 연결이 설정된 후에 데이터를 안전하게 주고받을 수 있다. 연결이 확립되어야만 데이터를 전송할 수 있기 때문에 신뢰성이 높다.

데이터 전달 보증

  • TCP는 패킷을 전송할 때, 대상이 데이터를 받았는지 확인하고, 만약 패킷이 손실되었다면 재전송을 수행한다. 이로써 데이터의 손실을 최소화하고 안정적인 전달을 보장한다.

순서 보장

  • TCP는 전송한 데이터의 순서가 보존되도록 하며, 수신측에서 데이터를 동일한 순서로 재조립한다. 따라서 데이터가 전송된 순서대로 수신된다.

포트 번호 사용

  • TCP는 출발지 포트와 목적지 포트를 사용하여 송수신자 간의 프로세스를 식별한다. 이를 통해 여러 애플리케이션 간의 데이터를 구분할 수 있다.

UDP (User Datagram Protocol)

  • UDP는 사용자 데이터그램 프로토콜로, IP 프로토콜과 비교했을 때 간단하고 가벼우며, 데이터 전송을 위한 기본적인 기능만을 제공한다. 하얀 도화지에 비유되는데, 기능이 거의 없어 IP와 거의 같다. (PORT와 체크섬 정도만 추가되었다.)
  • 연결지향적이지 않고, 데이터 전달을 보증 하지 않으며, 순서도 보장되지 않지만 단순하고 빠르다.
  • UDP를 사용하는 애플리케이션은 데이터의 손실, 중복, 순서 오류 등을 직접 처리해야 한다. 이로 인해 애플리케이션 개발자가 추가 작업을 수행해야 한다.

출처 : 인프런 모든 개발자를 위한 HTTP 웹 기본 지식 / 김영한 등

저작자표시 비영리 동일조건 (새창열림)

'💻 CS > CS' 카테고리의 다른 글

CS : URI와 웹 브라우저 요청 흐름 (2) URL을 통한 웹 브라우저 요청 흐름  (0) 2023.09.11
CS : URI와 웹 브라우저 요청 흐름 (1) URI  (0) 2023.09.11
CS : 인터넷 네트워크 (3) PORT, DNS  (0) 2023.09.11
CS : 인터넷 네트워크 (1) 인터넷 프로토콜 계층  (0) 2023.09.11
    '💻 CS/CS' 카테고리의 다른 글
    • CS : URI와 웹 브라우저 요청 흐름 (2) URL을 통한 웹 브라우저 요청 흐름
    • CS : URI와 웹 브라우저 요청 흐름 (1) URI
    • CS : 인터넷 네트워크 (3) PORT, DNS
    • CS : 인터넷 네트워크 (1) 인터넷 프로토콜 계층
    고슴맨쉬
    고슴맨쉬
    부수되 집착하지 않고, 이해하되 머무르지 않기

    티스토리툴바