HTTP - 인터넷 네트워크

Posted by : at

Category : http


IP (Internet Protocol)


인터넷만의 고유한 주소라고 생각하면 된다. 각 인터넷은 각자의 IP를 가지고 있는데 그 IP를 기반으로 데이터를 전송한다.(데이터를 전송할 때는 패킷(packet)이라는 통신 단위로 데이터 전달)

하지만 IP 프로토콜의 한계가 있다.

  • 비연결성

    패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

  • 비신뢰성

    중간에 패킷이 사라지면? 패킷이 순서대로 안온다면? 알 수 있는 방법이 없다.

  • 프로그램 구분

    같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이라면?

TCP / UDP


위와 같은 IP 프로토콜의 한계를 보완하기 위한 계층이다. 먼저 인터넷 프로토콜 스택의 4 계층을 살펴보자.

애플리케이션 계층 - HTTP, FTP

전송 계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층

전송 계층에서는 PORT를 알려줘 어떤 애플리케이션에 데이터를 전송하면 되는 지 알려줄 수 있다.

먼저 TCP 특징부터 알아보자!

TCP는 전송 제어 프로토콜 (Transmission Control Protocol)의 줄임말이다. TCP하면 가장 유명한 단어는 ‘3 way handshake(연결지향)’ 라는 단어다. 연결 과정에서 총 3 번의 통신이 왔다 갔다하는 의미이다.

3 way handshake 흐름

SYN : 접속 요청

ACK : 요청 수락

위와 같은 과정 덕에 TCP는 신뢰할 수 있는 포로토콜이라 칭하고 IP 프로토콜만으로 힘들었던 순서 보장이나 데이터 전달 보증까지 보완한다. 현재는 대부분 TCP를 사용한다.

다음은 UDP 특징이다.

UDP는 사용자 데이터그램 프로토콜 (User Datagram Protocol)의 줄임말이다. 기능이 거의 없기 때문에 하얀 도화지에 비유를 한다. TCP가 가지고 있던 특성인 ‘3 way handshake’ 과정이 없다. 그렇기 때문에 데이터 전달 보증이나 순서가 보장이 되지 않는다. 기능이 없는만큼 단순하고 빠르다는 장점이 있다. 거의 기본 기능인 PORT 와 체크섬 정도만 추가되어 있다.

PORT


PORT는 같은 IP 내에서 프로세스를 구분할 때 사용이 된다. 예를 들어 게임과 메신져를 한 피씨에서 한다고 가정해보자. 그렇다면 같은 IP에서 게임과 메신져의 데이터를 내보내고 받아야한다. PORT는 데이터가 게임에게 데이터를 가져다줘야 할 지 메신져에게 데이터를 가져다줘야 할 지 정보를 제공하는 주소와 같다.

즉, 아파트를 IP라고 생각한다면 동, 호 수는 PORT와 같다.

0 ~ 65535 : 할당 가능 PORT

0 ~ 1023 : 잘 알려진 포트(well known port) **사용하지 않는 것을 권장

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

DNS


DNS 는 도메인 네임 시스템(Domain Name System)의 줄임말이다. 조금 더 IP에 접근하기 쉽게 사람에게 친화적인 문자로 네이밍한 것이다.

네이버의 IP는 125.209.222.141 이다. 원래대로라면 네이버에 접속을 하고 싶다면 저 IP를 통해 접근해야한다. IP들을 외워서 접근하기는 조금은 힘들 것이다. 이러한 힘든 점을 개선하기 위해 문자로 접근 할 수 있는 주소를 IP와 연결하는 시스템이 DNS인 것이다. 즉, 125.209.222.141이 www.naver.com 으로 네이밍하게 된 것이다.


About Dani
Dani

많은 것을 배우고 싶은 사람

Email : bomdani9302@gmail.com

Website : https://qhals321.github.io

About 다니

많은 것을 배우고 나누고싶은 사람

Useful Links