본문 바로가기

카테고리 없음

IP, TCP, UDP, PORT, DNS, URL 구조 간단설명

IP 방식의 한계

한계점 설명
비연결성 패킷을 받을 대상이 없거나 서비스 불가능 상태여도 패킷전송
어플리케이션 구분 대상 컴퓨터의 어떤 프로그램에 사용될 데이터인지 구분 불가
비신뢰성 패킷 소실 발생, 패킷의 손상여부를 송신, 수신측에서 알수 없음

위와 같은 IP 방식의 한계로 인해 TCP가 등장하였다.

 

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

1. 연결 지향 - TCP 3 way handshake

2. 데이터 전달 보증

3. 순서 보장

4. 신뢰할 수 있는 프로토콜, 현재 대부분은 TCP를 사용한다.

 

 

3 way handshake 과정

 

단계 클라이언트 서버 설명
1단계 (SYN) SYN 패킷 전송 (seq = 100) 대기중 클라이언트가 서버에 연결 요청을 보냄.
2단계 (SYN, ACK) 대기중 SYN-ACK 패킷 전송
(Seq=200, Ack=101)
서버가 연결 요청을 수락하고 응답함.
3단계(ACK) ACK 패킷 전송
(Seq=101, Ack=201)
연결 완료 클라이언트가 응답을 확인하고 연결 완료.
용어 역할 설명
SYN 연결 요청 클라이언트가 서버에 연결 요청 시 사용, 초기 시퀀스 넘버를 전달
ACK 응답 확인 데이터 요청을 정상적으로 받았음을 알림
시퀀스 넘버에 대한 응답을 보냄

 

TCP는 신뢰성이 있고, 순서를 보장한다. 하지만 그림과 같이 과정을 거치다보니 속도가 느리다는 특징이 있다.

 

UDP - (User Datagram Protocol)

 

UDP는 연결 설정 없이 바로 데이터를 전송한다.

신뢰성, 순서를 보장하지 않는다. -> 단순하고 빠르다.

비 연결형 프로토콜이다.

Port와 Checksum을 포함한다. -> 어플리케이션에서 추가 작업 필요

용어 설명
Port 서비스나 어플리케이션을 구분하는데 사용 (소스 포트, 목적지포트)
Checksum 데이터그램이 전송중 손상되지 않았는지 확인
Checksum이 일치하지 않으면 수신자는 해당 데이터그램을 버림

 

TCP, UDP의 차이점

  TCP UDP
연결 설정 3-way-handshake 연결 설정 없이 바로 데이터 전송
속도 상대적으로 느림 빠름
신뢰성 O, (패킷 손실 복구, 순서 보장) X, (패킷 손실 순서 보장X)
오버헤드 상대적으로 높음(연결 설정, 데이터확인 과정) 낮음
흐름제어 있음(흐름제어, 혼잡제어) 없음
체크섬 있음 있음(패킷 손실시 버림)
특징 연결 지향적, 신뢰성 보장, 흐름 제어, 순서 보장 비연결형, 빠른 전송, 신뢰성 보장하지 않음

 

Port - 포트

네트워크 통신에서 애플리케이션이나 프로세스를 식별하는데 사용되는 논리적 주소를 의미

 

포트의 역할

역할 설명
애플리케이션 식별 포트 번호를 통해 네트워크 상의 특정 애플리케이션이나 서비스를 식별
프로토콜 구별 포트 번호로 TCP, UDP 등 프로토콜의 사용을 구분
다중 연결 지원 하나의 장치에서 여러 서비스가 동시에 실행될 수 있도록 지원

 

자주 사용되는 PORT

  1. 0 ~ 65535: 할당 가능
  2. 0 ~ 1023: 이미 사용되고 있는 포트(잘 알려진포트) -> 국제 도메인 관리기구에서 관리 -> 사용하지 않는 것 권장
서비스 포트 번호 프로토콜 설명
FTP 20, 21 TCP 파일 전송 프로토콜, 데이터 전송(20), 명령 전송(21)
SSH 22 TCP 원격 접속을 위한 보안 프로토콜
텔넷 23 TCP 원격 접속을 위한 텍스트 기반 프로토콜
SMTP 25 TCP 이메일 발송을 위한 프로토콜
DNS 53 TCP / UDP 도메인 이름을 IP 주소로 변환하는 시스템
DHCP 67 UDP 네트워크 장치에 IP 주소를 동적으로 할당하는 프로토콜
HTTP 80 TCP 웹 페이지와 데이터를 주고받는 기본 프로토콜
HTTPS 443 TCP 암호화된 웹 통신을 위한 보안 프로토콜
RDP 3389 TCP / UDP 원격 데스크탑 접속을 위한 프로토콜

 

DNS - (Domain Name Service)

도메인 이름을 IP 주소로 변환하는 시스템이다. 굳이 IP가 있는데 DNS는 왜 나왔을까?

 

컴퓨터 간 통신을 위해선 IP 주소가 필요 1. IP 주소는 사이트 마다 특징이 없다. 외우기 힘들다.
2. IP 주소가 변경되면 새로운 IP에 접근이 불가능하다.
IP는 변경되는 주소 1. 가정집에서 사용되는 IP는 유동이다.
2. IP가 변경되면 새로운 IP에 접근이 불가능하다.

DNS 동작 단계

  1. 도메인 이름 등록
    • 사용자가 도메인 이름(예: spartacodingclub.kr)을 구매하고 DNS 서버에 등록합니다.
    • DNS 서버는 해당 도메인 이름과 IP 주소를 연결합니다.
  2. 도메인 이름 요청
    • 사용자가 웹 브라우저에 도메인 이름(예: www.example.com)을 입력하여 요청합니다.
  3. 도메인 이름 해석
    • DNS 서버는 요청받은 도메인 이름을 IP 주소로 변환합니다.
  4. IP 주소 반환
    • 변환된 IP 주소(예: 192.168.1.1)가 사용자에게 반환됩니다.
  5. 웹사이트 접속
    • 사용자는 반환된 IP 주소를 사용하여 웹사이트(예: spartacodingclub.kr)에 접속합니다.
  6. IP 주소 변경 시 업데이트
    • 웹사이트의 IP 주소가 변경된 경우, 사용자는 DNS 서버에 새로운 IP 주소를 업데이트 요청합니다.
    • DNS 서버는 기존 도메인 이름과 새 IP 주소를 연결하여 최신 정보를 유지합니

URI, URN, URL 차이

구분 URI
(Uniform Resource Identifier)
URL
(Uniform Resource Locator)

URN
(Uniform Resource Name)
정의 자원의 고유 식별자 자원의 위치와 프로토콜까지 포함하는 식별자 자원의 고유 이름, 위치 정보 없이 자원을 식별
구성 URL과 URN을 포함 프로토콜, 도메인, 경로 포함 자원의 이름만 포함
목적 자원을 고유하게 식별 자원에 접근 가능한 위치 정보 제공 자원을 이름으로 고유 식별 (위치 불필요)
예시 http://example.com 
urn:isbn:0451450523
https://example.com/path urn:isbn:0451450523
주요 특징 자원의 위치 또는 이름 모두 포함 자원의 위치를 통해 접근 가능 이름으로 자원을 식별, 위치 정보 없음
예시 웹 주소, ISBN, DOI 웹사이트 주소, 파일 경로 ISBN, DOI, UUID

 

URL 구조

scheme:[//[user[:password]@]host[:port]][/path][?query][#fragment]

예시 : https://www.google.com:443/search?q=스파르타+코딩클럽

 

🔎 스파르타 코딩클럽: Google 검색

 

www.google.com

구성요소 설명 예시
scheme 프로토콜 (http, https 등) https
host[:port] 도메인 또는 IP 주소 (포트는 선택적) www.google.com:443
[/path] 자원 경로 /search
[?query] 쿼리 문자열 (key=value 형태) ?q=스파르타+코딩클럽
[#fragment] HTML 내부 특정 위치 #image