이시안 개발 블로그

인터넷 네트워크 본문

📡Network

인터넷 네트워크

ICAN 2021. 12. 4. 23:01

인터넷 네트워크

인터넷 프로토콜 4계층

  • 애플리케이션 계층 - HTTP, FTP
  • 전송 계층 - TCP, UDP
  • 인터넷 계층 - IP
  • 네트워크 인터페이스 계층

IP (인터넷 프로토콜)

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

패킷에는 출발지 IP, 목적지 IP가 필요하다.
인터넷으로 연결된 수많은 노드들을 통해 목적지 IP로 도달하게 된다.
인터넷 망은 복잡하기 때문에 요청과 응답은 서로 다른 경로로 주고 받게될 수도 있다.

IP 프로토콜의 한계

  1. 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  2. 비신뢰성
    • 여러 이유로 중간에 패킷이 사라질 수도 있음
    • 정보의 순서를 보장할 수 없음
  3. 프로그램 구분
    • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면 구분할 수 없음

TCP/IP (전송 제어 프로토콜)

1. 신뢰할 수 있는 프로토콜

TCP/IP는 IP에 TCP가 결합한 것으로 IP의 문제점을 보완하도록 설계된 통신규약이다.
TCP/IP의 패킷에는 출발지 PORT, 목적지 PORT와 전송 제어, 순서, 검증 정보를 포함하기 때문에 신뢰할 수 있는 프로토콜이라고 얘기할 수 있다.

2. 연결지향 : TCP 3 way handshake (가상연결)

TCP는 접속 요청인 SYN, 요청 수락인 ACK을 클라이언트와 서버가 주고 받게 된다.
ACK와 함께 데이터를 전송할 수 있으며 이 과정을 통해 서버와 연결이 되어있는 지 확인할 수 있다.

3. 데이터 전달 보증

4. 순서 보장

데이터가 순서대로 전송되지 않으면 서버가 클라이언트한테 다시 보내라고 재요청을 할 수 있다.
서버에서 최적화, 로직을 통해서 순서를 재배열할 수도 있다.

UDP (사용자 데이터그램 프로토콜)

IP와 거의 동일하며 차이점으로는 PORT와 체크섬이 추가되어 있다.
TCP와 다르게 비연결형으로 신뢰성이 낮지만 속도가 빠르며 네트워크 부하가 적어 신뢰성보다는 연속성이 중요한 서비스에 사용된다.

PORT

하나의 IP에서 둘 이상의 서버와 통신을 해야 한다면 서버에서 전송된 패킷이 어느 서버에서 전달된 데이터인지 구분해야 하는 데 이 때 사용되는 것이 PORT이다.
그림의 상황에서 웹 브라우저에 데이터를 요청하면 서버의 PORT 80번으로 전송되고 반대로 서버에서는 클라이언트 IP의 PORT 10010번으로 전송하게 된다.
PORT의 관한 정보는 TCP/IP 패킷에 담겨 있어서 위의 과정이 가능하게 된다.

PORT 번호

여기서 PORT 번호는 서버의 PORT 번호이며 클라이언트는 임의의 PORT를 만들어서 연결하게 된다.

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

DNS (도메인 네임 시스템)

IP는 기억하기 어렵다. 또한 변경될 수 있다.
DNS는 전화번호부와 같은 기능으로 등록된 도메인 이름을 IP 주소로 변환한다.

검색창에 google.com을 치면 DNS 서버에서 해당 도메인에 등록된 IP 주소를 응답하여 연결시켜준다.

출처: 모든 개발자를 위한 HTTP 웹 기본 지식

'📡Network' 카테고리의 다른 글

HTTP 캐시와 조건부 동작  (0) 2021.12.14
HTTP 헤더  (0) 2021.12.12
HTTP 메서드와 활용  (0) 2021.12.10
HTTP 기본  (0) 2021.12.09
URI와 웹 브라우저 요청 흐름  (0) 2021.12.07
Comments