인터넷 네트워크

💡 간단 요약 : 인터넷 통신은 IP 프로토콜을 통해 이뤄지고, TCP는 연결 지향적이고 신뢰성이 높은 가상 회선 방식, UDP는 간단하고 빠른 데이터그램 방식이야. TCP는 연결 설정 후 안전하게 데이터 전송하고, UDP는 빠르게 전송하되 순서나 에러에 대한 보장은 없어. 포트는 프로세스 식별에 쓰이고, DNS는 도메인 명을 IP 주소로 변환해줘.

🔗 사진과 강의 출처 : 김영한님의 HTTP 웹 기본 지식

1. 인터넷 통신

어떤 방식으로 어떻게 수많은 복잡한 상황을 헤쳐서 도착할 수 있을까?

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

  • 데이터가 안전하게 도달하기 위한 최소한의 규칙

  • 지정한 IP 주소(IP Address)에 데이터 전달

  • 패킷(Packet)이라는 통신 단위로 데이터 전달

IP 패킷에는 출발지 IP, 목적지 IP, 기타 전송데이터를 담고 전달하게 된다.

클라이언트 패킷 전달

서버 패킷 전달

IP 프로토콜의 한계

  1. 비연결성

  • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송

  1. 비신뢰성

  • 중간에 패킷이 사라지면?

  • 패킷이 순서대로 안오면? 중간에 다른 노드를 탈 가능성도 있음

  1. 프로그램 구분

  • 같은 IP를 사용하는 서버에서 통신하는 애플리케이션이 둘 이상이면?

3. TCP/UDP

IP의 위와 같은 한계를 해결해주기 위한 해결책

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

  1. 프로그램이 메세지 생성

  2. SOCKET 라이브러리를 통해 OS 계층에 메세지 전달

  3. 그 위에 TCP 정보 생성이 씌워지게 되며, 메세지 데이터를 포함하게 된다.

  4. 또 그 위에 IP 패킷이 생성되며 씌워지게 되고, TCP 데이터까지 포함하게 된다.

  • packet이란?

    • 컴퓨터 네트워크에서 데이터를 주고받을 때 정해 놓은 규칙

    • pack + bucket : 정보를 보낼 때 특정 형태에 맞추어 보낸다는 것

    • 즉, 컴퓨터 간에 데이터를 주고받을 때 네트워크를 통해서 전송되는 데이터 조각

    • 정체를 방지하기 위해 packet를 사용

  1. LAN카드를 통해서 나갈 때 Ethernet frame이 씌워지게 됨

  • Ethernet frame이란?

    • LAN에 등록된 MAC 주소 등을 포함하게 됨

    • 데이터 링크 계층 프로토콜의 데이터 단위이며, 기본 이더넷 물리 계층 전송 매커니즘을 사용한다.

    • 이더넷 링크의 데이터 단위는 이더넷 프레임을 페이로드로 전송

TCP/IP 패킷 정보

TCP 특징

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

연결지향 : TCP 3 way handshake (가상 연결 O, 물리적 연결 X)

  • SYN : 접속 요청(동기화의 약자) ACK(승인) : 요청 수락

  • 이렇게 되면 양쪽에서 접속 요청, 수락을 다 하는 것이라 클라이언트도 서버를 믿을 수 있고 서버도 클라이언트를 믿을 수 있다.(신뢰성)

  • 결국 응답이 안오면 연결이 안되있네 하고 데이터 전송을 안하게 되는 것

순서 보장

  • 서버 내부에서 최적화도 가능함

신뢰할 수 있는 프로토콜

데이터 전달 보증

현재는 대부분 TCP 사용

TCP 제어 방법

UDP 특징

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

  • 송신부와 수신부 간의 연결을 지원하지 않고 데이터 그램 형태의 통신 지원

  1. 하얀 도화지에 비유(기능이 거의 없음)

  2. 연결 지향 X - TCP 3 way handshake x

  3. 데이터 전달 및 순서가 보장되지 않지만, 단순하고 빠름

  4. 정리

  • IP와 거의 같다 + PORT + 체크섬

    • 체크섬(checksum) : 데이터의 무결성 보장하여 오류 검출로 최소한의 신뢰성을 보장한다.

  • 애플리케이션에서 추가 작업 필요

  • 하나의 pc에서 ip에서 어떤 애플리케이션인지 구분하는 방법 : port

  • TCP는 느리기에 http3가 나오면서 최적화하기 위해 UDP를 사용하면서 뜨고 있음

패킷 교환 방식

TCP (전송 제어 프로토콜)는 가상 회선 방식을 사용하고, UDP (사용자 데이터그램 프로토콜)는 데이터그램 방식을 사용

패킷 교환 방식은 가장 많이 사용하는 데이터 통신 방식으로, 가상 회선을 이용한 방식과 데이터 그램을 이용한 방식이 있다.

  1. 가상 회선 방식 : 데이터를 주고받기 전에 패킷을 전송할 경로인 가상 회선을 설정해서 모든 패킷을 같은 경로로 전송한다.

  2. 데이터 그램 방식 : 패킷마다 최적의 경로로 전송되는 방식으로, 송신부에서 보낸 패킷의 순서와 수신부에 도착하는 패킷의 순서가 다를 수 있다.

4. PORT

즉, 같은 IP 내에서 프로세스를 구분하기 위한 것이 포트이다.

한 번에 둘 이상(서버와) 연결해야 한다면, 어떤 것에 대한 패킷인지 알 수 없다. 즉, 같은 IP 내에서 프로세스를 구분하기 위한 것이 포트이다.

예시

출발지 PORT와 목적지 PORT를 TCP 세그먼트가 포함하기 때문에 알 수 있다.

  • 0 ~ 65535 할당 가능

  • 0 ~ 1023: 잘 알려진 포트, 사용하지 않는 것이 좋음

  • FTP - 20, 21

  • TELNET - 23

  • HTTP - 80

  • HTTPS - 443

5. DNS

  1. IP는 기억하기 어렵다

  2. IP는 변경될 수 있다.

DNS(Domain Name System)

  • 전화번호부

  • 도메인 명을 IP 주소로 변환

  • 숫자로 된 IP 주소를 사람이 이해하기 쉬운 문자 형태로 표현한 것

  • 호스트 컴퓨터 이름(www), 소속 기관 이름(hankook), 소속 기관의 종류(co), 소속 국가명(kr) → www.hankook.co.kr

  • 문자로 된 도메인 네임을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 역할을 하는 시스템을 **DNS(Domain Name System)**라고 하며, 이런 역할을 하는 서버를 DNS 서버라 함

Last updated