인터넷 네트워크

margarin·2021년 4월 26일
0

✨출처✨
모든 개발자를 위한 HTTP 웹 기본 지식
김영한님의 인프런 강의를 듣고 정리한 글입니다.

IP(인터넷 프로토콜)

IP의 역할

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

IP 패킷 정보

전송 데이터를 전달하기 전에, 출발지 IP, 목적지 IP를 포함하여 IP 패킷을 만든다.

클라이언트 패킷 전달

클라이언트는 출발, 도착 IP 정보와, 전송 데이터가 포함된 패킷을 서버에 전달한다.
이때 패킷은 200.200.200.2(도착지)의 IP를 알아서 찾아간다.

서버 패킷 전달

클라이언트 패킷과 동일하게 100.100.100.1 IP를 찾아간다.

IP 프로토콜의 한계

  • 비연결성
    - 대상 서버가 받을 수 있는지 모르지만 일단 보낸다.
  • 비신뢰성
    • 패킷 전달 순서 문제 발생
      패킷의 용량이 매우 클 때, 패킷을 끊어서 보낸다. Hello,/world!
      패킷이 중간에 더 속도가 빠른 다른 노드를 탈 수 있다. world!/Hello,
    • 패킷 소실
      중간에 패킷이 손실되도 알 수 없다.
  • 프로그램 구분
    - 같은 IP를 사용하는 어플리케이션 구분을 어떻게 하는가?

이러한 IP 프로토콜의 한계를 해결해주는 것이 TCP이다.

TCP, UDP

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

프로토콜 계층

TCP/IP 패킷 정보


출발지 PORT, 목적지 PORT
전송 제어, 순서, 검증 정보가 추가로 들어간다.

TCP 특징

전송 제어 프로토콜

특징 3가지
1. 연결 지향 - TCP 3 way handshake(가상 연결)
2. 데이터 전달 보증
3. 순서 보장

TCP 3 way handshake


1. 클라이언트 -> 서버 : SYN 전송
2. 서버 -> 클라이언트 : SYN + ACK 전송
3. 클라이언트 -> 서버: ACK 전송
4. 데이터 전송

물리적으로 연결된 것이 아닌, 개념적으로 연결된 것.
클라이언트와 서버가 서로 믿을 수 있다.

데이터 전달 보증

클라이언트: 나 데이터 보냈다~
서버: 나 데이터 전달 잘 받았어!🙋🏻‍♀️

순서 보장

🤔 아니..데이터 전달 보증이랑 순서보장..그래서 이게 어떻게 가능한건데?
TCP/IP 패킷에 전송 제어, 순서, 검증 정보가 추가로 들어가기 때문

UDP 특징

  • 하얀 도화지와 같다. (기능이 거의 없음)
  • IP와 거의 같지만, PORT가 있음

🤔 뭐야..아무것도 못하는데 왜 써?
인증, 확인 등 절차가 없기 때문에 전송 속도가 빠름
최근에는 최적화하기 위해 UDP가 각광받고 있다.

PORT

패킷 정보

출발지 IP, PORT
도착지 IP, PORT
전송 데이터

같은 IP 내에서 프로세스를 구분하기 위해 사용.

예를 들자면..?
ip: 아파트
port: 몇동 몇호

DNS

🤯 IP는 기억하기 어렵고, 변경될 수 있다.
DNS가 있다면 이 문제를 해결할 수 있다!

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

profile
화이팅 🥹

0개의 댓글