HTTP_인터넷 네트워크

JOO·2021년 12월 10일
0

CS

목록 보기
3/9

HTTP_인터넷 네트워크

보통 클라이언트와 서버 사이에 인터넷이 존재함. 이런 클라이언트와 서버 두 컴퓨터 사이에 인터넷에는 수많은 노드들이 있음. 이런 어지럽게 펼쳐진 노드들 사이에서 통신을 하기위한 방법으로는 IP(인터넷 프로토콜)이 있음.

IP(인터넷 프로토콜)

컴퓨터 마다 갖고있는 고유 주소. IP 인터넷 프로토콜의 역할은 아래와 같음.

  • 지정한 IP Address에 데이터 전달
  • 패킷 단위로 데이터 전달

패킷으로 데이터를 전달하면 클라이언트와 서버사이에 이어진 노드들을 거치고 거쳐서 전달. 클라이언트와 서버 사이의 전달 경로는 항상 같지 않음.

IP(인터넷 프로토콜)의 한계

  • 비연결성
    -> 패킷을 받을 대상이 없어도 패킷이 전송됨
  • 비신뢰성
    -> 제대로 전달되는지에 대한 신뢰성이 부족함
  • 프로그램 구분
    -> 같은 IP에서 오는 요청에 대한 부분
  • 순서가 있는 패킷들의 전송
    -> 보낼땐 순서가 있지만 노드를 타고 가는건 바뀔 수 있음

이러한 한계점을 해결하기 위한 것이 TCP, UDP

TCP, UDP

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

  • 어플리케이션 계층
    -> 프로세스간 통신을 위해 설계된 계층 (HTTP, FTP, TLS/SSL)
  • 전송 계층
    -> 송신자와 수신자를 연결하는 서비스에 대한 정보를 담는 계층 (TCP UDP)
  • 인터넷 계층
    -> 패킷을 전송하기 위한 계층 (IP)
  • 네트워크 인터페이스 계층
    -> 물리적 전송을 위한 계층 (LAN 장비)

TCP는 전송할 데이터가 들어올 때 해당 데이터를 TCP 정보로 감싸고 -> IP패킷을 생성하고 전송하는 순서

  • IP패킷은 출발지 IP, 목적지 IP 등의 정보를 담고있음
  • TCP 세그먼트는 출발지 PORT, 목적지 PORT, 전송 제어 정보, 순서 정보, 검증 정보 등을 담고있음

TCP (Transmission Control Protocol) 특징

  • 연결지향 - TCP 3 way handshake (가상 연결)
    -> 먼저 연결한다음 데이터 전달
    -> 클라에서 SYN(연결요청인듯) 전달, 서버에서 SYN + ACK(응답인듯) 전달, 클라에서 다시 ACK 전달
  • 데이터 전달 보증
    -> 중간에 누락되면 알수있음
    -> 잘 받았어도 알려줌
  • 순서 보장
  • 신뢰성
  • 현재 범용적으로 사용됨

UDP (User Datagram Protocol) 특징

  • TCP특징들은 전부 포함 안됨
  • 단순하고 빠름
  • IP에서 PORT, 체크섬 정도만 추가된 것
  • 만약 추가 작업이 필요할 때 사용

PORT

같은 IP 내에서 프로세스 구분. IP 주소 뒤에 붙음. 패킷 보낼 때 같이 보내는 출발지 PORT, 도착지 PORT에 담겨있음.

  • 0 ~ 65535까지 할당 가능
  • 0 ~ 1023 은 사용하지 않는게 좋음.
  • FTP 20, 21
  • TELNET 23
  • HTTP 80
  • HTTPS 443

DNS (Domain Name System)

IP 주소는 기억하기 어렵고, 서버의 IP 주소가 바뀌게 되면 클라이언트에선 인지할 수 없기 때문에 도메인 이름을 명시해둠.

profile
개발공부 기록

0개의 댓글

관련 채용 정보