HTTP 웹 기본 지식[인터넷 네트워크]

이상훈·2022년 8월 12일
0

CS

목록 보기
27/27

김영한님의 인프런 강의 '모든 개발자를 위한 HTTP 웹 기본 지식'을 참고했습니다.

인터넷 통신

인터넷 통신은 어떻게 이루어질까? 클라이언트에서 다른 클라이언트로 데이터를 보낼 경우 위치에 따라 위성, 해저 광케이블, 기타 통신 서버와 같은 노드들을 거쳐 다른 쪽 클라이언트에 도달한다. 이렇게 복잡한 과정을 거쳐서 어떻게 통신이 될 수 있는지 알기 위해서는 IP, TCP, UDP, PORT, DNS 등을 알아야 한다.

IP(Internet Protocol)

IP는 인터넷이 통하는 네트워크에서 어떤 정보를 송수신하는 통신에 대한 규약을 의미한다. IP 주소는 IP 통신에 필요한 고유 주소를 말하며, 통신 기능이 제공되는 기기들이 서로 통신을 하기 위해 필요한 고유 번호이다. 각 장치들 간 통신을 식별할 수 있는 전화번호라고 생각하면 이해하기 쉽다.

IP의 역할

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

IP 패킷 정보


패킷 전달

IP 프로토콜의 한계

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

이러한 IP 프로토콜의 한계들을 보완한게 TCP다.


TCP(Transmission Control Protocol)

TCP는 전송 제어 프로토콜을 뜻한다. 신뢰할 수 있는 프로토콜로서 현재 대부분 TCP를 사용한다.

TCP/IP 패킷 정보

TCP 특징 : 연결지향(TCP 3 way handshake)

클라이언트와 서버는 서로 논리적으로 연결되었다고 생각. BUT 그 사이 수많은 node들의 연결 유뮤는 알 수 없음

TCP 특징 : 데이터 전달 보증

TCP 특징 : 순서보장


UDP(User Datagram Protocol)

UDP 즉 사용자 데이터그램 프로토콜은 IP에 PORT와 체크섬 정도만 추가된 형태이다.

  • 하얀 도와지에 비유(기능이 거의 없음)
  • 연결지향-TCP 3 way handshake X
  • 데이터 전달 보장 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만 단순하고 빠름

최근들어 상당히 각광 받고 있다.


PORT

PORT는 앞서 살펴보았듯이 TCP/IP 패킷에 포함된다. 같은 IP 내에서 프로세스를 구분하는 역할을 한다.

PORT는 다음과 같이 작성한다.

  • 0~65535 : 할당가능
  • 0~1023 : 잘 알려진 포트, 사용하지 않는 것이 좋음
    • FTP - 20, 21
    • TELNET - 23
    • HTTP - 80
    • HTTPS - 443

DNS(Domain Name System)

IP는 예를 들어 200.200.200.2처럼 가독성이 떨어지고 기억하기 힘들다. 그리고 IP 주소는 변경될 수 있는데 이때 대응하기 힘들다는 단점이 있다. DNS는 전화번호부 역할을 하며 도메인 명을 IP 주소로 변환해 준다.

도메인 명 : 기억하기 어려운 IP 주소를 사용자들이 기억하기 쉽게, 사용자 편의성을 위해 문자로 만든것.

profile
Problem Solving과 기술적 의사결정을 중요시합니다.

0개의 댓글