인터넷 네트워크

m_seo.log·2022년 7월 25일
1

HTTP

목록 보기
1/3
post-thumbnail

📌인터넷 통신

클라이언트와 서버가 멀리 있을경우, 인터넷 망을 통해 메시지를 보낸다.
하지만, 노드를 통한 여러 과정들이 있다. 그럼 어떻게 안전하게 도착할까?

바로, IP(인터넷 프로토콜) 이다.

📌IP(인터넷 프로토콜)의 역할

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

IP 패킷 정보(규칙)은 출발지IP, 목적지IP, 기타(메시지등)을 넣고 전송한다.
노드들끼리 전송하면서 맞는 IP주소에 도달한다.

또한, 메시지를 받은 서버도
출발IP, 목적IP, 기타(메시지등)을 넣고 다시 전송하여 클라이언트에게 도달한다.

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

1) 비연결성

  • 패킷을 받을 대상이 없거나, 서비스 불능 상태여도 패킷 전송
    EX) 상대의 컴퓨터가 꺼져 있거나, 주소 없이 편지를 전송하는 것.

2) 비신뢰성

  • 중간에 패킷이 사라지면?
  • 패킷이 순서대로 안오면?
  • 하나의 PC에서 여러가지(인터넷, 음악 등) 같은 IP로
    여러 행위를 작동할 때 어떻게 구분할지?
    EX) 우편이 잘 갔는지, 안갔는지 / 받을 수 있는 상태인지 아닌지를 모름.

3) 패킷 소실

  • 중간에 서버가 문제가 생겨 보낸 데이터 소실.

4) 패킷 전달 순서 문제 발생

EX) 용량이 클 때

  • 패킷 전달이 순차적으로 1번, 2번 데이터를 전송하였지만,
    노드들끼리 전송하면서 순서가 잘 못 전달 될 수 있음.

📌 이러한 IP의 단점을 해결해주는 TCP.

TCP는 인터넷 프로토콜 스택의 4계층 중, 전송 계층에 해당한다.

  • 2번째 단계에서, OS계층으로 전달한다. OS계층의 TCP가 메시지에 TCP 정보를 생성, 메시지 데이터를 포함한다. 전달 후에, IP를 씌어 IP 패킷을 생성한다,
    결론적으로는 IP, TCP, 메시지로 생성된다.

  • IP박스 안에 TCP 세그먼트가 있다.
    출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증정보 등등..
    IP로만 해결안됬던걸 해결 할 수 있다.

  • TCP는 현재 시장의 90% 가까운 점유율을 가지고 있다.

📌TCP의 특징 - 전송 제어 프로토콜(Transmission Control Protocol)

SYN : 접속 요청 / ACK : 요청 수락

1) 연결지향 - TCP 3 way handshake(가상 연결)

  • 연결이 되었는지 안되었는지 확인 후에 메시지를 전송한다.

TCP 3 way handshake
1) 클라이언트 -> 서버 : 메시지 전송
2) 서버 -> 클라이언트 : 클라이언트 메시지 확인 메시지 전송
3) 클라이언트 -> 서버 : 서버가 보낸걸 확인 메시지 보냄
따라서, 클라이언트와 서버 모두 확인하며 신뢰 할 수 있다.
4) 데이터 전송

하지만, 가상연결로써,
논리적으로만 연결된거지 물리적으로 연결된건 모른다.

2) 데이터 전달 보증

  • 데이터가 전달되지 않았을때 알 수 있다.

3) 순서 보장

따라서, 신뢰할 수 있는 프로토콜로 현재는 대부분 TCP를 사용한다.

📌UDP 특징 - 사용자 데이터그램 프로토콜(User Datagram Protocol)

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

즉, IP 프로토콜과 거의 비슷하다. +PORT +체크섬 정도

📌PORT

  • 같은 IP 내에서 프로세스를 구분하는 것으로, 하나의 컴퓨터로
    여러 동작을 하고 있을 때, 어떤 패킷인지 구분하는 것.

  • 패킷을 전달할때
    출발지 IP, PORT
    목적지 IP, PORT
    모두 보내기 때문에 확인 가능하다.
    EX) IP는 아파트, PORT는 몇동, 몇호로 생각하면 쉽다.
    한 아파트 안에서 사람들이 어디서 사는지 알려준다.

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

  • 마지막으로, DNS 이다.
    IP는 기억하기 어려울뿐만 아니라, 변경 될 수 있다.

📌DNS - 도메인 네임 시스템(Domain Name System)

  • 도메인 명을 IP 주소로 변환한다.
    EX) 전화번호부

  • DNS 서버에 도메인을 등록한다.
    클라이언트가 도메인 명으로 요청하면, DNS 서버가 IP를 알려준다.

정리

엄청 복잡한 인터넷 망을 메시지를 보내기 위해서 제일 먼저,
인터넷 프로토콜이라는 IP가 있어야 한다. 보통 IP 프로토콜이라고 한다.
하지만, IP프로토콜만 가지고는 메시지가 잘 전송됬는지 확인하기 어렵고,
포트라는 개념도 없고, 메시지 순서도 없다.
이 문제를 TCP 프로토콜이 해결해준다.
UDP 프로토콜은 IP 프로토콜과 비슷하지만, 포트가 추가된다.
필요하면, UDP프로토콜에 애플리케이션 기능을 확장 할 수 있다.
PORT는 같은 IP 안에서 동작하는 통신할 애플리케이션을 구분하기 위해서 사용한다. 쉽게 IP는 아파트, PORT는 몇동/몇호 로 생각하면 쉽다.
DNS는 IP는 변하기 쉽고 외우기 어려운데,
도메인명을 등록해서 사용 할 수 있도록 하는것이다.


#모든 개발자를 위한 HTTP 웹 기본 지식 - 김영한 님의 강의를 참고하였습니다.
profile
기억도 기록도

0개의 댓글