인터넷 네트워크

kimwoody·2022년 3월 8일
0

IP(인터넷 프로토콜)

클라이언트와 서버는 IP 주소가 있음

IP(인터넷 프로토콜)의 역할

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

패킷(packet)

IP패킷 정보는 출발지 IP, 목적지 IP, 전송 데이터 등으로 이루어진다.

클라이언트는 위와 같은 데이터로 패킷을 만들고 인터넷망으로 패킷을 던진다. 인터넷 망은 많은 노드들로 이루어져있는데, 같은 규약을 사용하기 때문에 노드들을 거쳐서 목적지 IP로 가게 패킷이 가게 된다.

서버는 클라이언트로 패킷을 전달 할 때 서로 다른 경로로 전달될 수 있다.

IP 프로토콜의 한계

  • 비연결성 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성 중간에 패킷이 사라지면? 전송 중간에 노드에 문제가 생겨 패킷이 소실될 수 있다. 패킷이 순서대로 안오면? 패킷의 용량이 너무 클 때는 여러개의 패킷으로 나눠서 보낸다. 하지만 나눠진 패킷은 다른 경로로 목적지까지 갈 수 있기 때문에 데이터의 순서가 바뀌어서 도착할 수도 있다. ex) hello world → world hello
  • 프로그램 구분 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

이렇게 IP 프로토콜의 한계로 생기는 문제들은 TCP로 해결할 수 있다.

TCP, UDP

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

애플리케이션 계층 - HTTP, FTP

전송계층 - TCP, UDP

인터넷 계층 - IP

네트워크 인터페이스 계층

TCP/IP 패킷 정보

위에서 말한 IP 패킷 안에 TCP 데이터가 들어있다.

TCP 세그먼트는 출발지 PORT, 목적지 PORT, 전송제어, 순서, 검증정보 등으로 구성된다.

TCP 특징

전송 제어 프로토콜(Transmission Control Protocol)

  • 연결지향 - TCP 3 way handshake(가상 연결) 물리적으로 연결된 것이 아닌 개념적으로 연결 SYN → ACK, SYN → ACK
  • 데이터 전달 보증
  • 순서 보장 도착한 데이터들의 순서가 맞지 않으면 순서가 맞지 않는 패킷부터 다시 보내라고 요청함
  • 신뢰할 수 있는 프로토콜
  • 현재는 대부분 TCP 사용

UDP 특징

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

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

PORT

PORT는 하나의 IP에서 여러 애플리게이션을 사용할 때 패킷이 도착하는 경로를 구분해서 애플리케이션을 구분하는 역할을 한다.

TCP/IP 패킷 정보에는 출발지 PORT, 목적지 PORT가 들어있다.

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

클라이언트에서 게임, 화상통화, 웹 브라우저를 사용한다면 게임 서버, 화상통화 서버, 웹 브라우저 요청 서버에 연결이 되는데 이 때 각 애플리케이션마다 PORT를 구분하여 연결한다.(TCP/IP 패킷에 포함된 출발지, 목적지 PORT를 사용)

비유: IP는 아파트, PORT는 동 호수

DNS

IP는 기억하기 어렵고 변경될 수 있다. → DNS 사용

DNS 사용

  1. 클라이언트가 도메인 이름(ex www.google.com)으로 DNS 서버에 IP 주소를 요청한다.
  2. DNS 서버에서 해당 도메인에 해당하는 IP 주소를 응답한다.
  3. 클라이언트는 DNS 서버에서 받은 IP 주소에 접속한다.

비유: 전화번호부

0개의 댓글