노트코드
노트코드
노트코드

블로그 메뉴

  • 홈
  • 이력서
  • 이전 블로그
  • 글쓰기
  • 관리자페이지
  • 분류 전체보기 (57)
    • 코틀린 (2)
      • 실무 프로젝트로 배우는 Kotlin & Sprin.. (2)
    • JAVA (1)
      • 디자인패턴 (1)
      • 객체지향 5대원칙 (0)
    • SPRING (32)
      • JPA (11)
      • 스프링시큐리티 (1)
      • 스프링 (8)
      • QueryDsl (1)
      • 스프링배치 (11)
    • AZURE (0)
    • ETC (10)
      • MAVEN (0)
      • GIT (0)
      • ReMind (3)
      • Exception (1)
      • CS (6)
    • 책 (8)
      • 이것이 자바다 (8)

최근 글

최근 댓글

태그

  • 스프링
  • JPA
전체 방문자
오늘
어제
hELLO · Designed By 정상우.
노트코드

노트코드

ETC/CS

[모든 개발자를 위한 Http 웹 기반기술] IP, TCP, UPD

2022. 2. 16. 15:12

IP(인터넷 프로토콜)

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

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

  • 비신뢰성
    • 중간에 패킷이 사라지면?
    • 패킷이 순서대로 안오면?

  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

TCP, UDP

인터넷 프로토콜 스택의 4계층

계층 예
애플리케이션 계층 HTTP, FTP
전송계층 TCP, UDP
인터넷 계층 IP
네트워크 인터페이스 계층  

 

TCP특징(전송 제어 프로토콜)

  • 연결지향 - TCP 3 way handshake(가상연결)
    1. 클라이언트가 서버쪾으로 SYN(접속 요청)로 보냄
    2. 서버가 클라이언트로 SYN +ACK(요청수락) 응답을 보냄
    3. 클라이언트가 다시 ACK 보냄 그리고 요즘은 데이터도 같이 보냄
  • 데이터 전달 보증
    1. 데이터 전송
    2. 데이터 잘 받았음 응답값 보내줌
  • 순서 보장
    1. 패킷 1, 패킷2, 패킷3, 순서로 전송
    2. 패킷1, 패킷3, 패킷2 순서로 도착
    3. 패킷2부터 다시 보내라고 클라이언트에 요청
    4. 패킷2부터 다시 전달해서 순서를 맞춤
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분  TCP 사용

UDP 특징

  • 하얀 도화지에 비유(기능이 거의 없음)
  • TCP3 way handshake x
  • 데이터 전달 보증 x
  • 순서 보장 x
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • IP와 거의 같다.+ PORT + 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요

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

[모든 개발자를 위한 Http 웹 기반기술] HTTP 상태코드  (0) 2022.03.14
[모든 개발자를 위한 Http 웹 기반기술] HTTP API  (0) 2022.02.28
[모든 개발자를 위한 Http 웹 기반기술] HTTP 기본  (0) 2022.02.28
[모든 개발자를 위한 Http 웹 기반기술] URI  (0) 2022.02.16
[모든 개발자를 위한 Http 웹 기반기술] PORT, DNS  (0) 2022.02.16
    'ETC/CS' 카테고리의 다른 글
    • [모든 개발자를 위한 Http 웹 기반기술] HTTP API
    • [모든 개발자를 위한 Http 웹 기반기술] HTTP 기본
    • [모든 개발자를 위한 Http 웹 기반기술] URI
    • [모든 개발자를 위한 Http 웹 기반기술] PORT, DNS
    노트코드
    노트코드
    노션 블로그에서 티스토리로 이전공사중

    티스토리툴바