본문 바로가기
웹 서비스

인터넷 네트워크

by alswlfl 2022. 11. 29.
  • 모든 것(html, 이미지, 영상, 파일, 앱과 서버와 통신, 서버와 서버 간 통신)HTTP 기반 위에서 동작
  • 개발자는 평생 HTTP 기반 위에서 개발

인터넷 통신

인터넷에서 컴퓨터들 간의 통신 방법

: 인터넷 망(수많은 중간 노드를 거쳐서 이동)을 통해 클라이언트에서 서버로 전송

IP(인터넷 프로토콜)

1. IP 역할

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

2. IP 패킷 정보

IP패킷: 출발지 IP, 목적지 IP, 기타... + 전송 데이터

 

3. IP프로토콜의 한계

  • 비연결성: 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송 → 대상 서버가 패킷을 받을 수 있는 상태인지 모름
  • 비신뢰성:
    • 중간에 패킷이 실종 → 중간에 노드가 꺼지는 경우 등 패킷이 소실되는데 클라이언트는 모름,
    • 패킷이 순서대로 오지 않음 → 나누어서 메시지를 보내는 경우, 각각의 패킷들은 서로 다른 노드를 통해 전송될 수 있음. 이런 경우, 최종적으로 패킷 순서가 차례대로 오지 않을 수 있음
  • 프로그램 구분: 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상인 경우 → 포트 번호로 구분

❗️IP프로토콜 한계점 극복: TCP


TCP와 UDP

⭐️ 인터넷 프로토콜 스택의 4계층
    애플리케이션 계층(HTTP, FTP 등)
    전송 계층(TCP, UDP)
    인터넷 계층(IP)
    네트워크 인터페이스 계층

 

TCP/IP패킷 정보

TCP/IP패킷 정보

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

  • 연결지향 - TCP 3 way handshake(가상 연결) ▻ 클라이언트와 서버와 논리적으로 연결된 상태
    • 3 way handshake로 연결이 되고 난 후, 데이터 전송 시작
    • SYN: 접속 요청
    • ACK: 요청 수락
    • 3.ACK와 함께 데이터 전송 가능
     

3-way-handshake

 

  • 데이터 전달 보증
    • 클라이언트가 데이터 전송을 한 후, 서버는 데이터를 잘 받았다고 클라이언트에게 응답을 보냄
  • 순서 보장
    • 클라이언트 측에서 패킷1, 패킷2, 패킷3 순서로 전송
    • 서버에 패킷1, 패킷3, 패킷2 순서로 도착
    • 서버는 패킷3, 패킷2 버리고, 클라이언트에게 패킷2부터 다시 보내라고 응답을 보냄 
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

 

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

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

► UDP가 요즘 각광받는 이유: 최적화하기 위해 사용


PORT

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

- IP는 목적지 서버를 찾는 것, 그 서버 안에서 돌아가는 애플리케이션을 구분하는 것은 PORT

- TCP/IP 패킷 정보: 출발지 IP, 출발지 PORT, 목적지 IP, 목적지 PORT, 전송 데이터,...

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

DNS

IP는 기억하기 어려움, IP는 변경 될 수 있음 

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

  • 전화번호부
  • 도메인 명을 IP주소로 변환

DNS 사용

 

'웹 서비스' 카테고리의 다른 글

HTTP 상태코드  (0) 2022.12.02
HTTP 메서드 활용  (0) 2022.12.01
HTTP 메서드  (0) 2022.11.30
HTTP 기본  (0) 2022.11.29
URI와 웹 브라우저 요청 흐름  (0) 2022.11.29