인터넷 네트워크

enjoy89·2022년 6월 15일
3

HTTP 웹 기본 지식

목록 보기
1/7
post-thumbnail

모든 개발자를 위한 HTTP 웹 기본 지식 강의를 공부하고 정리한 글입니다.

IP(Internet Protocol)

  • 인터넷에서 클라이언트와 서버가 통신하기 위해 존재하는 최소한의 규약
  • IP는 패킷(Packet)이라는 통신 단위로 지정한 IP주소에 데이터를 전달한다.
  • IP패킷 정보는 출발지 IP, 목적지 IP, 전송 데이터 등으로 구성되어 있다.
  • 즉, 전송 데이터와 함께 출발지 IP, 목적지 IP 등을 함께 묶어 패킷 단위로 만든 후 전달한다.

IP 프로토콜의 한계

  • 비연결성
    • 상대 컴퓨터가 꺼져 있어 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷을 그대로 전송한다.
  • 비신뢰성
    • 전송 중간에 패킷이 소실되거나 패킷이 순서대로 오지 않을 경우 문제가 발생한다.
  • 프로그램 구분
    • 하나의 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 구분이 불가능하다.

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

  • 응용 계층(Application Layer) - HTTP, FTP
    • TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
  • 전송 계층(Transport Layer) - TCP, UDP
    • 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
  • 인터넷 계층(Internet Layer) - IP
    • 통신 노드 간의 IP패킷을 전송하는 기능과 라우팅 기능을 담당한다.
    • 비연결 지향적이며 신뢰성이 없고 데이터 전송시 발생하는 문제점을 고려하지 않는다.
  • 네트워크 액세스 계층(Network Access Layer)
    • OSI 7계층의 물리 계층과 데이터 링크 계층에 해당한다.
    • 실제 네트워크와 관련된 LAN 드라이버와 LAN 장비가 이에 속한다.

🔍 채팅 프로그램을 사용하여 메시지 전송시

  1. 프로그램이 메시지를 생성

  2. 메시지를 소켓 라이브러리를 통해 전달

  3. 메시지 데이터를 포함하는 TCP 정보를 생성

  4. TCP 데이터를 포함하는 IP 패킷 생성

  5. 이더넷 프레임이 씌워져 랜카드를 통해 데이터가 전달


    TCP/IP 패킷 정보

  • IP 패킷 정보 안에 TCP 패킷 정보가 포함되어 있다. (이를 IP 패킷이 TCP 데이터를 감싸고 있다고 표현)
  • 기존 IP 패킷 정보의 한계인 비신뢰성과 비연결성을 TCP 정보를 추가함으로써 한계를 극복한다.

TCP(Transmission Control Protocol) 특징

  • 3 way handshake(가상 연결) - 물리적인 연결이 아닌 논리적인 연결

    1. 클라이언트에서 서버로 SYN 보내며 접속 요청
    2. 서버에서 클라이언트로 SYN + ACK 보내며 요청 수락
    3. 클라이언트에서 ACK와 함께 데이터 전송
  • 데이터 전달 보증

    • 클라이언트는 서버에서 데이터 요청에 대한 응답이 오면 데이터를 전송하므로 데이터 전달을 보증할 수 있다.
  • 순서 보장

    • 서버는 도착한 데이터의 순서가 잘못 도착했을 경우, 잘못 전송된 패킷을 기준으로 다시 보내달라고 요청하고 다시 패킷을 전달 받으므로 순서를 보장할 수 있다.
  • 신뢰할 수 있는 프로토콜

  • 현재 대부분이 TCP를 사용


UDP(User Datagram Protocol) 특징

  • 연결지향 X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • IP와 거의 유사하지만 Port 정보가 포함되어 있고 체크섬 정도 추가
  • 애플리케이션에서 추가 작업이 필요

PORT

  • 같은 IP 내에서 여러 애플리케이션을 사용할 때 이 중 어디에 데이터를 전송할지 구분하는데 사용
  • IP는 목적지의 서버를 찾는 역할, PORT는 같은 IP 내의 목적지 애플리케이션(프로세스)을 찾는 역할이다.
  • 0~65535: 할당 가능
  • 0~1023: 잘 알려진 포트, 사용하지 않는 것을 추천
    • FTP - 20,21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

DSN(Domain Name System)

  • IP는 중간에 변경될 수 있고 가독성이 떨어지므로 도메인 명을 IP 주소로 변환하여 사용한다.
  • 전화번호부 개념

Reference

https://hahahoho5915.tistory.com/15?category=686226

profile
Backend Developer 💻 😺

0개의 댓글