본문 바로가기
CS

IP & TCP/UDP & PORT & DNS

by 코딩맛집 2022. 10. 8.

IP (Internet Protocol)

  •  출발지IP, 도착지IP와 데이터 등을 갖고 있는 패킷이 송수신된다.
  •  패킷(Packet)이라는 통신 단위로 데이터가 클라이언트와 서버 사이에서 전달된다.

 

IP 프로토콜의 한계

  • 비연결성 : 패킷을 받을 대상이 없거나 서비스 불능 상태(ex. 상대방 pc가 off 상태)여도 패킷 전송.
  • 비신뢰성 : 패킷이 소실되거나 전달 순서가 보장되지 않는다. 
  • 프로그램 구분 : 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상(내가 사용하고 있는 PC에서 음악도 듣고 게임도하고 여러가지 일을 동시 수행한다는 뜻)이면 구분하지 못한다. 

 

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

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

클라이언트가 서버에게

1. SYN (접속 요청): 접속 요청을 보낸다.

 

서버가 클라이언트에게

2. SYN + ACK (요청 수락): ACK(요청 수락)와 연결해주라고 SYN을 보낸다.

 

클라이언트가 서버에게

3. ACK: ACK와 함께 데이터 전송 가능

  • 데이터 전달 보증
  • 순서 보장
  • 신뢰할 수 있는 프로토콜로 현재 인터넷은 대부분 TCP사용

TCP protocol: 상대방이 받았다고 신호를 안보내면 계속 재전송한다.

 

TCP/IP 패킷 정보

  • TCP에는 출발지 PORT와 목적지 PORT가 있다. IP에는 출발지 IP와 목적지 IP가 있다.
  • IP는 목적지 서버를 찾고 TCP안에 있는 PORT는 서버 안에서 돌아가는 애플리케이션을 구분하는 것이다.

 

PORT

PORT는 서버 안에서 돌아가는 애플리케이션을 구분하는 것이다.

쉽게 말하자면 IP를 아파트로 비유하고 PORT는 몇동 몇호를 나타낸다고 생각하면 된다.

 

  • 0 ~ 65535 할당 가능
  • 0 ~ 1023 잘 알려진 포트라 사용하지 않는 것이 좋다.

 FTP - 20, 21

 TELNET - 23

 HTTP - 80

 HTTPS - 443 (HTTP에 보안이 추가된 HTTPS)

 

 

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

  • 기능이 거의 없음
  • 연결지향 - TCP 3 way handshake X
  • 데이터 전달 보증 X
  • 순서 보장 X

BUT,

  • 단순하고 빨라서 HTTP3가 나오면서 최적화하기 위해 UDP를 사용해 요즘 뜨고 있는 추세이다.
  • IP와 거의 같고 PORT와 체크섬 정도만 추가
  • 애플리케이션에서 추가 작업 필요

 

DNS (Domain Name System)

IP는 기억하기 어렵고 변경될 수 있다. DNS를 사용하면 해결!

  • DNS는 전화번호부같은 DNS 서버를 제공하는데, DNS 서버에는 도메인 명(ex. naver.com)과 IP주소를 갖고 있다. 클라이언트가 DNS 서버에 도메인 명으로 요청하면 DNS 서버는 해당 도메인 명이 갖고 있는 IP주소를 클라이언트에게 전달해주고 그 IP 주소로 서버에 접근한다. 
  • 도메인 명을 IP 주소로 변환
  • DNS에는 .org .com .kr 등 다양하게 DNS서버가 있다.

 

'CS' 카테고리의 다른 글

[URI] URI와 웹 브라우저 요청 흐름  (0) 2022.11.20
SDK, API 개념과 차이점  (0) 2022.11.08
세션(Session)  (0) 2022.10.20
쿠키  (0) 2022.10.20