HTTP - 1) 인터넷 네트워크

박재현·2023년 5월 14일
0

🔎 IP(인터넷 프로토콜)

두 컴퓨터가 통신하기 위해 각 컴퓨터에는 IP주소가 부여된다.
IP(인터넷 프로토콜)의 역할은

  • 지정한 IP주소(IP Address)에 데이터 전달
  • 패킷(Packet)이라는 통신 단위로 데이터 전달
    이고, IP패킷에는 출발지IP, 목적지IP, 전송 데이터, 등등 이 있다.

하지만 IP 프로토콜은 한계가 존재한다.

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라지거나
    • 패킷 용량이 너무 커서(일반적으로 1500byte가 넘으면 분리) 끊어서 전송하게 되었을 때, 그 순서가 보장되지 않음 -> 인터넷 상의 서로 다른 노드를 타고 이동할 수 있기 때문에
  • 프로그램 구분
    • 같은 IP를 사용하는 서버에서 여러 프로그램을 통해 다른 서버와 통신하고 있다면 이를 구분하기 힘들다

=> 이를 보완하기 위해 나온 전송 제어 프로토콜 (Transmissio Control Protocol)로 TCP, UDP 그리고 PORT가 있다.

🔎 TCP, UDP

  • 전송 계층 프로토콜

  1. 애플리케이션 계층: 애플리케이션에서 전송할 데이터를 Socket을 통해 OS에 전달
  2. 전송 계층: TCP 정보 생성 후 IP 프로토콜 전달 -> 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보, ...
  3. 인터넷 계층: 출발지 IP, 목적지 IP, 등등 추가
  4. 네트워크 인터페이스 계층: 해당 정보를 전송

📌 TCP 특징

-> 전송 제어 프로토콜(Transmission Control Protocl)

  • 연결 지향: TCP 3way handshake(가상 연결)
    • 서로 간의 IP주소가 연결되어 있는지 확인 (실제 WireShark를 통해 확인 가능)
  • 데이터 전달 보증
    • 데이터 전송 후 서버에서 전송 상태를 다시 보내줌
  • 순서 보장
    • 데이터 전송 순서가 맞지 않으면, 맞지 않는 패킷부터 다시 보내라고 클라이언트에 요청
      (서버에서 순서를 맞출수도 있지만, 일반적으로 다시 보내라고 한다고 함)
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용



📌 UDP 특징

-> 사용자 데이터그램 프로토콜(User Datagram Protocol)

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결 지향 (TCP 3 way handshake x)
  • 데이터 전달 보증 x
  • 순서 보장 x
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 주로 영상이나 이미지와 같이 일부 데이터가 소실되어도 미치는 영향이 작을 때 사용됨
    => IP와 거의 같고, PORT와 체크섬 정도만 추가됨, 애플리케이션 단에서 추가 작업이 필요

🔎 PORT

-> 같은 IP내에서 프로세스를 구분하는데 사용

예를 들어, 클라이언트가 하나의 서버에 동시에 두 개 이상의 연결이 되어 있다면, 해당 연결을 구분할 수 있어야 한다.

  • PORT는 전송계층(TCP, UDP)에 명시됨
  • 0 ~ 65535 할당 가능, 0 ~ 1023 은 잘 알려진 포트(Well-known port)
    • FNP: 20~21
    • TELNET: 23
    • HTTP: 80
    • HTTPS: 443

=> 비유하자면 IP주소가 아파트라면, PORT는 각각의 호수와 같다.

🔎 DNS

-> Domain Name System

  • 인터넷 상에서 IP 주소가 아닌 도메인명(google.com)으로 접속할 수 있도록 하는 시스템
  • DNS 서버에 해당하는 도메인명이 있다면 응답으로 해당 IP주소를 응답해주고 해당 IP주소에 접속

0개의 댓글

관련 채용 정보