인터넷 네트워크

2023. 10. 25. 01:44LECTURES/모든 개발자를 위한 HTTP 웹 기본 지식

 

 

모든 개발자를 위한 HTTP 웹 기본 지식 - 인프런 | 강의

실무에 꼭 필요한 HTTP 핵심 기능과 올바른 HTTP API 설계 방법을 학습합니다., [사진] 📣 확인해주세요!본 강의는 자바 스프링 완전 정복 시리즈의 세 번째 강의입니다. 우아한형제들 최연소 기술

www.inflearn.com

인터넷 통신

  • 클라이언트와 서버 어떻게 통신?
  • 인터넷 망을 통해 통신하는데 인터넷에는 수많은 노드 존재

IP(인터넷 프로토콜)

  • 컴퓨터 간 통신이 가능하려면 먼저 IP 주소를 부여 받아야 함

IP 역할

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

IP 패킷 정보

  • 출발지 IP
  • 목적지 IP
  • 전송 데이터
  • 기타…

클라이언트 패킷 전달

  • 패킷을 인접 노드에 전달하면 패킷 정보에 따라 이동해서 서버에 도달

서버 패킷 전달

  • 위와 마찬가지로 동작

IP 프로토콜의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라지면?
    • 패킷이 순서대로 안오면?
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?
  • TCP가 위의 문제 해결

TCP, UDP

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

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

프로토콜 계층

TCP/IP 패킷 정보

TCP 특징

  • 전송 제어 프로토콜(Transimission Control Protocol)
  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재 대부분 TCP 사용

TCP 3way handshake

  1. 클라이언트가 서버에 SYN 전달
  2. 서버가 클라이언트에 SYN + ACK 전달
  3. 클라이언트가 서버에 ACK 전달
  4. 데이터 전송
  • SYN : 접속 요청
  • ACK : 요청 수락

데이터 전달 보증

순서 보장

UDP 특징

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

PORT

  • 한번에 둘 이상 연결해야 하면?
  • PORT로 같은 IP 내에서 프로세스 구분
  • 패킷 정보를 보면 PORT를 알 수 있음
  • 0 ~ 65535 : 할당 가능
  • 0 ~ 1023 : 잘 알려짐 포트, 사용하지 않는 것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

DNS

  • IP는 기억하기 어려움
  • IP는 변경될 수 있음
  • DNS(Domain Name System)
    • 전화번호부
    • 도메인 명을 IP주소로 변환

DNS 사용

  • 도메인명을 DNS 서버에 등록
  • 클라이언트가 DNS 서버에 도메인명 전송
  • DNS 서버가 도메인 명으로 IP를 찾아서 클라이언트에 응답
  • IP주소로 서버에 접속
  • 나중에 IP 주소가 바뀌더라도 DNS는 동일하므로 클라이언트가 변경된 IP를 알 필요 없음

'LECTURES > 모든 개발자를 위한 HTTP 웹 기본 지식' 카테고리의 다른 글

HTTP 상태코드  (1) 2023.10.25
HTTP 메서드 활용  (1) 2023.10.25
HTTP 메서드  (0) 2023.10.25
HTTP 기본  (0) 2023.10.25
URI와 웹 브라우저 요청 흐름  (0) 2023.10.25