모든 개발자를 위한 HTTP 웹 기본 지식(1) - 인터넷 네크워크

seonjeong·2023년 9월 22일
0

Network

목록 보기
3/10
post-thumbnail

❤️ 인터넷 네트워크

📝 인터넷 통신

인터넷에서 컴퓨터 둘은 어떻게 통신할까?

  • 클라이언트와 서버가 가까이 있을 경우 케이블로 통신이 가능하지만, 그 반대의 경우 클라이언트와 서버 사이에 있는 복잡한 인터넷 망을 통해 메시지를 전달할 수 있다.
  • 인터넷 망의 수많은 중간 노드를 거쳐야 한다. -> 어떤 규칙?

📝 IP(인터넷 프로토콜)

IP 주소 부여

클라이언트와 전달하려는 서버에 IP주소가 부여 되어야 한다

역할

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

IP 패킷

  • 전송 데이터와 함께 출발지IP, 목적지IP 등을 묶어 패킷으로 만든 후 전달
  • 클라이언트 패킷 전달
  • 서버 패킷 전달

IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 -> 클라이언트에서는 알 수 없음
  • 비신뢰성 : 중간에 패킷이 사라지거나 패킷이 순서대로 오지 않을 경우 해결 불가능
  • 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상일 경우 구분할 수 없음

📝 TCP, UDP

IP 프로토콜의 한계를 해결해주는 프로토콜

인터넷 프로토콜 스택의 4계층

-> TCP, UDP : IP프로토콜 위에서 보완해준다

프로토콜

TCP/IP패킷 정보

  • IP패킷안에 출발지PORT, 목적지PORT, 전송 제어, 순서, 검증 정보 등의 정보가 들어간다.

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

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

    • 연결 후 메시지 전달
  • 데이터 전달 보증

    • 중간에 패킷이 누락되면 클라이언트에서 알 수 있음
  • 순서 보장

    • 서버에서 잘못된 순서의 패킷부터 다시 보내면 클라이언트에서 재전송
  • 신뢰할 수 있는 프로토콜

  • 현재는 대부분 TCP 사용

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

  • 하얀 도화지에 비유(기능이 거의 없음)
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름
  • 정리
    • IP와 거의 같다 + PORT + 체크섬 정도만 추가
    • 애플리케이션에서 추가 작업 필요

      PORT : 패킷을 구분
      체크섬 : 메시지를 검증

📝 PORT

같은 IP 내에서 프로세스 구분

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


📝 DNS

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

  • IP는 기억하기 어렵고 바뀔 수 있기 때문에 DNS 서버가 존재
  • 전화번호부같은 서버 제공
  • 도메인 명을 IP 주소로 변환



출처 - 인프런 '모든 개발자를 위한 HTTP 웹 기본 지식' 강의

profile
🦋개발 공부 기록🦋

0개의 댓글

관련 채용 정보