정보보안 (기술)/HTTP 웹

HTTP1. 인터넷 네트워크

rinaisme 2024. 7. 14. 16:45

1. IP 인터넷 프로토콜

  • 지정한 IP 주소 (IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달
  • IP 패킷 정보
  • 출발지 IP, 목적지 IP
  • IP 프로토콜의 한계
    • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
    • 비신뢰성
      • 중간에 패킷이 사라지면?
      • 패킷이 순서대로 안 오면?
    • 프로그램 구분
  • 대상이 서비스 불능, 패킷 전송
    • 대상 서버가 패킷을 받을 수 있는 상태인지 모름
  • 패킷 소실
  • 패킷 전달 순서 문제 발생
  • 이런 문제를 해결해 주는 것이 TCP, UDP

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

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

3. 프로토콜 계층

  • 애플리케이션
    • 웹 브라우저, 네트워크 게임, 채팅 프로그램
    • SOCKET 라이브러리
  • OS
    • TCP, UCP
    • IP 
  • 네트워크 인터페이스
    • LAN 드라이버, LAN 장비
  • EX.
    • 1. 프로그램이 Hello, world! 메시지 작성
    • 2. socket 라이브러리를 통해 전달
    • 3. TCP 정보 생성, 메시지 데이터 포함
    • 4. IP 패킷 생성, TCP 데이터 포함

3. TCP/IP

  • IP 패킷: 출발지 IP, 목적지 IP, 기타
  • TCP 세그먼트: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보
  • IP로만 해결이 되지 않았던 문제 해결
  • 전송제어 프로토콜
  • 연결지향 - TCP 3 way handshake (가상 연결)
  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용
  • TCP 3 way handshake
    • 1. 클라이언트에서 SYN 이란 메시지를 보냄
    • 2. 서버에서 ACK(+SYN)라는 메시지를 보내면 보냄
    • 3. 클라이언트에서 서버에게 SYN을 보냄
    • 3 - way handshaking을 하면 클라이언트도 서버를 믿을 수 있고, 서로 믿을 수 있
    • 4. 연결이 되면 그다음에 데이터를 전송함
    • * 이건 개념적으로만 연결이 된 것, 논리적으로만
  • 순서 보장
    • 1. 클라이언트가 패킷 1, 패킷 2, 패킷 3 순서로 전송
    • 2. 서버에 패킷 1, 패킷 3, 패킷 2 순서로 도착
    • 3. 서버가 클라이언트에게 패킷 2부터 다시 보내라는 요청

4. UDP

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

5. PORT

  • 한 번에 서버가 여러 개를 통신해야 함
  • IP에 더해서 포트란 개념이 있음
  • 0 ~ 65535 할당 가능
  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20,21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

6. DNS

  • IP는 기억하기 어렵고, 변경될 수 있음
  • 도메인 네임 시스템
  • 전화번호부
  • DNS 서버에 등록하고, DNS 서버에서 클라이언트에게 응답한 후 클라이언트는 서버에 접속

 

'정보보안 (기술) > HTTP 웹' 카테고리의 다른 글

HTTP6. HTTP 메서드 활용  (1) 2024.07.14
HTTP5. HTTP PUT, PATCH, DELETE  (0) 2024.07.14
HTTP4. HTTP API, GET, POST  (0) 2024.07.14
HTTP3. HTTP 기본  (1) 2024.07.14
HTTP2. URI  (0) 2024.07.14