HTTP - 인터넷 네트워크

meluu_·2023년 8월 3일
0

HTTP

목록 보기
1/8
post-thumbnail

🪢 인터넷 통신

인터넷은 인터넷 망을 통해 상대(서버)에게 내용을 주고 받는다.

그 방법이 IP(인터넷 프로토콜) 이다.

🔧 IP 인터넷 프로토콜의 역할

목적지에 IP주소에 데이터를 전달
패킷이라는 통신 단위로 데이터 전달

패킷 정보
출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등을 가진다.

클라이언트가 패킷을 인터넷을 통하여 전달할때 각 노드를 타고 전송되는데 서버에서 클라이언트로 전달할 때는 다른 노드 경로로 보내질 수 있다.

❌ IP 프로토콜의 한계

  • 비연결성
    • 상대와 연결되지 않아도 패킷을 전송
      (클라이언트는 대상 서버 상태를 모른다.)
  • 비신뢰성
    • 전송 준간에 패킷이 사라지는 상황
    • 패킷이 순서대로 오지 않는 상황
      (전송 노드 경로가 다른 경우)
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상

이러한 문제를 해결해주는 것이 바로 TCP 이다.


🔹TCP / UDP

🔹 TCP/IP 4계층

애플리케이션 계층 | HTTP, FTP, SSH 등 프로토콜
전송 계층             | TCP, UDP
인터넷 계층          | IP (인터넷 프로토콜)
네트워크 인터페이스 계층 | 물리적인 주소인 MAC, LAN, 패킷망 등

애플리케이션 계층 - 웹 브라우저, 온라인 게임, 메시신저 프로그램

🔹 전송 단계

  1. 애플리케이션 계층 : 프로그램이 메시지를 생성하고
                               socket 라이브러리를 통해 전달

  2. 전송 계층 : TCP정보 생성하고 메시지 데이터를 감싼다.

  3. 인터넷 계층 : IP 패킷을 생성, TCP정보 데이터를 감싼다.

  4. 네트워크 인터페이스 계층 : Ethernet frame을 감싸고 인터넷으로 전송
    (MAC주고 같은 물리적인 것이 포함됌)

🔹 TCP/IP 패킷 정보

IP : 출발지 IP, 목적지 IP, 프로토콜, IP버전, 전송데이터 등
TCP: 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증정보 등

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

  • 연결지향 - TCP 3 way handshake (가상연결)
    1. 클라이언트가 SYN를 서버로 전송
    2. 서버가 SYN + ACK 전송
    3. 클라이언트 ACK 전송
    4. 데이터 전송

    • SYN : 접속 요청
    • ACK : 요청 수락
  • 데이터 전달 보증

  • 순서 보장
    패킷순서가 맞지않으면 해당 부분부터 재전송 요청

  • 신뢰할 수 있는 프로토콜

  • 대부분 TCP 사용

🔹UDP 특징 (사용자 데이터그램 프로토콜)

  • 위에서 언급한 TCP의 기능이 없다.

  • 단순하고 빠름

  • IP와 거의 같고 PORT + 체크섬 정도 추가

  • 애플리케이션에서 추가 작업 필요

  • 최적화 용도로 사용

🏷️ 체크섬
중복 검사의 한 형태, 오류 정정을 통해, 공간이나 시간 속에서 송신된 자료의 무결성을 보호하는 단순한 방법


✈️ PORT

같은 IP(IP 주소)내에서 프로세스 구분

TCP/IP 패킷을 보면

-------------------
| 출발지 IP,PORT |
| 목적지 IP,PORT |
| 전송 데이터 등 |
-------------------
위에서 TCP/IP 패킷 정보를 보면 알 수 있다.

즉 클라이언트에서 여러가지 애플리케이션(게임, 음악 등)을 이용할 때
각 애플리케이션의 프로세스를 구분하는 용도이다.

0 ~ 65535 : 할당 가능
0 ~ 1023 : 잘 알려진 포트로 사용 지양

FTP      - 20, 21
TELNET - 23
HTTP    - 80
HTTPS   - 443


📖 DNS (도메인 네임 시스템)

도메인 명을 IP주소로 변환

DNS 도입 계기

  • IP 주소를 일일히 기억하기 어려움

  • IP 주소의 변경 가능성

DNS 순서

  1. DNS서버에는 도메인 명 | IP 주소 형태로 있다.

  2. 클라이언트가 DNS 서버에 도메인명을 요청하면
    DNS 서버가 도메인 명에 맞는 IP 주소를 응답(반환)해준다.

  3. 클라이언트는 응답받은 IP주소로 접속한다.


출처 및 참고자료

모든 개발자를 위한 HTTP 웹 기본 지식

Http 아이콘 제작자: Freepik - Flaticon

위키백과

profile
열심히 살자

0개의 댓글