www.google.com을 입력하면 일어나는 일 🌐

인터넷 브라우저 주소창에 'www.google.com'을 입력하고 엔터키를 누르는 순간, 눈 깜짝할 사이에 구글 홈페이지가 화면에 나타납니다. 하지만 이 짧은 순간 동안 컴퓨터와 인터넷 세계에서는 어떤 일들이 일어날까요? 마법처럼 느껴지는 이 과정을 함께 살펴봅시다! 🔍

 

1. DNS 조회: 이름을 주소로 바꾸기 🔤➡️🔢

우리가 'www.google.com'이라는 도메인 이름을 입력하면, 브라우저는 이 이름을 컴퓨터가 이해할 수 있는 IP 주소로 변환해야 합니다.

DNS 조회 과정 📚

  1. 브라우저 캐시 확인 🧠
    브라우저는 먼저 "최근에 이 주소를 방문한 적이 있나?" 확인합니다.
  2. 운영체제 캐시 확인 💻
    브라우저에 없다면, 컴퓨터의 운영체제에 저장된 DNS 캐시를 확인합니다.
  3. 라우터 캐시 확인 📶
    여기서도 못 찾으면, 집이나 사무실의 라우터에게 물어봅니다.
  4. ISP의 DNS 서버에 질의 🏢
    라우터도 모른다면, 인터넷 서비스 제공업체(KT, SKT, LG U+ 등)의 DNS 서버에 물어봅니다.
  5. 재귀적 DNS 조회 🌍
    ISP의 DNS 서버는 전 세계 DNS 서버들에게 차례로 물어보며 주소를 찾습니다.
  6. DNS 서버: "안녕, .com 서버야? google.com의 주소를 알고 있니?" .com 서버: "나는 정확한 주소는 모르지만, google.com 담당 서버를 알아!" DNS 서버: "안녕, google.com 서버야? www.google.com의 주소를 알려줄래?" google.com 서버: "응! www.google.com의 IP 주소는 142.250.196.68이야."
  7. 답변 반환 및 캐싱
    찾은 IP 주소(예: 142.250.196.68)를 브라우저에게 알려주고, 나중을 위해 캐시에 저장합니다.

 

2. TCP 연결 수립: 안전한 대화 시작하기 🤝

IP 주소를 알게 되면, 브라우저는 해당 서버와 안정적인 연결을 맺어야 합니다.

TCP 3-way 핸드셰이크 🔄

브라우저: "안녕! 나랑 대화할 준비 됐어?" (SYN)
서버: "응, 준비 됐어! 너도 준비 됐니?" (SYN-ACK)
브라우저: "응, 나도 준비 완료! 대화 시작하자!" (ACK)

이 과정은 마치 전화 통화를 시작하기 전에 서로 "여보세요?"라고 확인하는 것과 비슷합니다! 📞

 

3. HTTPS/SSL 핸드셰이크: 비밀 대화 준비하기 🔒

요즘 대부분의 웹사이트는 HTTPS를 사용합니다. 구글도 마찬가지죠! 이 과정에서는 암호화된 안전한 연결을 설정합니다.

SSL/TLS 핸드셰이크 🔐

  1. 암호화 방식 협상
    브라우저와 서버가 "어떤 암호화 방식을 사용할까?"라고 상의합니다.
  2. 인증서 검증
    서버가 "나 진짜 구글이야!"라는 디지털 인증서를 보여주고, 브라우저가 확인합니다.
  3. 비밀키 교환
    안전하게 데이터를 주고받기 위한 암호 키를 만들어 교환합니다.

이 과정은 마치 비밀 대화를 나누기 전에 서로 암호를 정하는 것과 같습니다! 🕵️‍♀️

 

4. HTTP 요청: 정보 요청하기 📝

안전한 연결이 수립되면, 브라우저는 서버에게 웹페이지를 요청합니다.

HTTP 요청 예시 📨

GET / HTTP/1.1
Host: www.google.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64)
Accept: text/html,application/xhtml+xml
Accept-Language: ko-KR,ko;q=0.9,en-US;q=0.8
Connection: keep-alive

이것은 "안녕하세요, 구글! 당신의 메인 페이지를 보여주세요!"라고 말하는 것과 같습니다. 📮

 

5. 서버 처리 및 응답: 정보 받기 📥

구글 서버는 요청을 받고, 적절한 웹페이지를 만들어서 보내줍니다.

HTTP 응답 예시 📬

HTTP/1.1 200 OK
Date: Mon, 07 Apr 2025 12:00:00 GMT
Content-Type: text/html; charset=UTF-8
Content-Length: 45673
Connection: keep-alive

<!DOCTYPE html>
<html lang="ko">
<head>
    <title>Google</title>
    <!-- 이하 HTML 내용 -->

서버가 "여기 구글 메인 페이지가 있어요!"라고 대답하는 것과 같습니다. 📦

 

6. 브라우저 렌더링: 화면에 그리기 🎨

브라우저는 받은 HTML, CSS, JavaScript 등을 해석하여 화면에 웹페이지를 그립니다.

렌더링 파이프라인 🖌️

  1. HTML 파싱 & DOM 트리 생성 📑
    HTML 코드를 브라우저가 이해하는 구조(DOM)로 변환합니다.
  2. CSS 파싱 & CSSOM 생성 🎭
    CSS 코드를 해석하여 스타일 정보를 구성합니다.
  3. 자바스크립트 실행 ⚙️
    페이지의 동작을 담당하는 자바스크립트 코드가 실행됩니다.
  4. 렌더 트리 구성 🌳
    DOM과 CSSOM을 합쳐서 "무엇을 어떻게 그릴지"를 정합니다.
  5. 레이아웃(리플로우) 📏
    각 요소의 크기와 위치를 계산합니다.
  6. 페인트 🖼️
    실제로 화면에 픽셀을 그립니다.
  7. 컴포지팅
    여러 레이어를 합성하여 최종 화면을 만듭니다.

이 과정은 마치 건축가가 설계도(HTML)와 인테리어 계획(CSS)을 가지고 실제 건물을 짓는 것과 비슷합니다! 🏗️

 

요약: 놀라운 여정의 끝 🏁

브라우저 주소창에 'www.google.com'을 입력하고 엔터키를 누른 후, 0.5초도 안 되는 시간 동안 위의 모든 과정이 일어납니다. 이것이 현대 웹 기술의 놀라운 점이죠!

  1. DNS로 이름을 주소로 변환 🔤➡️🔢
  2. TCP로 안정적인 연결 수립 🤝
  3. HTTPS로 암호화된 보안 연결 구성 🔒
  4. HTTP 요청으로 웹페이지 요청 📝
  5. 서버가 요청을 처리하고 응답 전송 📬
  6. 브라우저가 받은 데이터를 해석하고 렌더링 🎨

인터넷이 마법처럼 느껴질 때가 있지만, 사실은 이렇게 정교하고 복잡한 과정들이 순식간에 이루어지는 것입니다. 기술의 발전과 표준화 덕분에 전 세계 어디서나 동일한 웹페이지를 볼 수 있게 되었죠! 🌍✨

 


 

인터넷 창에 www.google.com를 입력하면 무슨 일이 일어나는지 설명해주세요.

첫번째로 DNS 조회가 일어납니다. 사용자가 www.google.com을 입력하면, 브라우저는 먼저 이 도메인 이름을 IP 주소로 변환해야 합니다. 이 과정을 DNS 조회(DNS Lookup)라고 합니다. 브라우저는 캐시된 DNS 기록을 먼저 확인하고, 없으면 로컬 DNS 서버에 요청하여 www.google.com에 해당하는 IP 주소를 얻습니다.

 

두번째로 TCP 연결 수립입니다. IP 주소가 확인되면, 브라우저는 서버와 TCP 연결을 수립합니다. TCP(Transmission Control Protocol)는 데이터를 신뢰성 있게 전달하기 위한 프로토콜입니다. 이 과정에서 브라우저는 서버와 3-way handshake를 수행합니다. 즉, 브라우저가 SYN 패킷을 보내고, 서버가 SYN-ACK 패킷을 보내며, 다시 브라우저가 ACK 패킷을 보내는 과정입니다.

 

세번째로 HTTP 요청입니다. TCP 연결이 수립되면, 브라우저는 HTTP 또는 HTTPS 요청을 보냅니다. 이 요청은 "GET / HTTP/1.1" 같은 형식으로, 웹 페이지를 요청하는 메시지입니다. 만약 HTTPS를 사용할 경우, 이 단계 이전에 SSL/TLS 핸드셰이크도 수행됩니다. 이 과정에서는 브라우저와 서버가 암호화된 연결을 설정하기 위해 보안 인증서를 교환하고, 암호화 키를 협상합니다.

 

네번째로 서버의 응답을 받습니다. 서버는 요청을 받고, 해당 리소스(HTML, CSS, JavaScript, 이미지 등)를 브라우저에게 응답으로 보냅니다. 이 응답은 HTTP 응답 코드(예: 200 OK)와 함께 전달됩니다.

마지막으로 받은 리소스들을 바탕으로 브라우저 렌더링 파이프라인을 진행합니다. DOM과 CSSOM을 생성하고, 렌더 트리를 구성한 뒤, 레이아웃과 페인트 단계를 통해 웹 페이지가 화면에 표시됩니다.

728x90

커넥션형 통신의 구조

커넥션형 통신은 데이터를 주고받기 전에 먼저 연결을 설정하고, 데이터 전송이 끝나면 연결을 종료하는 방식입니다. 이 방식은 마치 전화 통화와 비슷합니다.

전화 통화로 이해하기

  1. 연결 설정: 전화를 걸어 상대방이 받을 때까지 기다립니다.
  2. 데이터 전송: 상대방이 전화를 받으면 대화를 주고받습니다.
  3. 연결 종료: 대화가 끝나면 "안녕"하고 전화를 끊습니다.

커넥션형 통신에서는 데이터를 보내기 전에 양쪽 컴퓨터가 서로 "준비됐어?"라고 확인하는 과정을 거칩니다. 이를 '핸드셰이크(handshake)'라고 부릅니다. 그 후 안정적인 통신 경로가 설정되면 데이터를 주고받고, 모든 통신이 끝나면 연결을 종료합니다.

연결형 통신의 대표 프로토콜: TCP

TCP(Transmission Control Protocol)는 커넥션형 통신의 대표적인 프로토콜입니다. 인터넷에서 가장 널리 사용되며, 다음과 같은 특징이 있습니다:

  1. 신뢰성 보장: 데이터가 손실되면 재전송합니다.
  2. 순서 보장: 보낸 순서대로 데이터가 도착합니다.
  3. 흐름 제어: 수신자가 처리할 수 있는 속도로 데이터를 전송합니다.
  4. 혼잡 제어: 네트워크 상황에 따라 전송 속도를 조절합니다.

TCP 연결 과정

TCP는 '3-way handshake'라는 과정을 통해 연결을 설정합니다:

  1. SYN: 클라이언트가 서버에 연결 요청(SYN)을 보냅니다.
  2. SYN-ACK: 서버가 요청을 수락하고 응답(SYN-ACK)을 보냅니다.
  3. ACK: 클라이언트가 응답을 확인(ACK)하고 연결이 완료됩니다.

실생활 예시: 택배 서비스

TCP는 마치 등기 택배 서비스와 같습니다. 택배를 보내기 전에 배송지 확인 전화가 오고(연결 설정), 택배가 잘 도착했는지 확인 서명을 받으며(데이터 확인), 문제가 있으면 다시 배송합니다(재전송). 배송이 완료되면 서비스가 종료됩니다(연결 종료).

 


커넥션리스형 통신의 구조(데이터그램 방식)

커넥션리스형 통신은 사전 연결 설정 없이 바로 데이터를 전송하는 방식입니다. 각 데이터 패킷은 독립적으로 전송되며, 이를 '데이터그램' 방식이라고도 합니다.

편지로 이해하기

이 방식은 마치 편지를 보내는 것과 비슷합니다:

  1. 편지를 쓰고 봉투에 주소를 적습니다.
  2. 우체통에 넣기만 하면 됩니다(사전 연결 불필요).
  3. 각 편지는 독립적으로 배달됩니다.
  4. 상대방이 받았는지 확인하기 어렵습니다.

커넥션리스형 통신에서는 각 데이터 패킷에 목적지 주소를 붙여서 네트워크에 던져 넣습니다. 목적지까지 어떤 경로로 갈지, 제대로 도착할지 보장하지 않습니다.

비연결형 통신의 대표 프로토콜: UDP

UDP(User Datagram Protocol)는 커넥션리스형 통신의 대표적인 프로토콜입니다. 다음과 같은 특징이 있습니다:

  1. 연결 설정 없음: 바로 데이터를 전송합니다.
  2. 비신뢰성: 데이터 손실을 확인하거나 복구하지 않습니다.
  3. 순서 보장 없음: 데이터가 보낸 순서와 다르게 도착할 수 있습니다.
  4. 가벼움: 오버헤드가 적어 빠른 전송이 가능합니다.

UDP 통신 과정

UDP는 매우 단순한 구조를 가지고 있습니다:

  1. 데이터를 패킷으로 나누고 목적지 주소를 붙입니다.
  2. 네트워크에 패킷을 바로 전송합니다.
  3. 수신자는 도착한 패킷을 처리합니다.
  4. 확인이나 재전송 과정이 없습니다.

실생활 예시: 일반 우편

UDP는 마치 일반 우편과 같습니다. 편지를 우체통에 넣기만 하면 됩니다(연결 설정 없음). 편지가 잘 도착했는지 확인할 수 없고(비신뢰성), 같은 날 보낸 여러 편지가 다른 날에 도착할 수 있습니다(순서 보장 없음). 하지만 빠르고 간단하게 전송할 수 있습니다.

 


 

각 통신 방법의 장점/단점

커넥션형(TCP) 통신

장점:

  • 신뢰성: 데이터 손실이 거의 없습니다.
  • 순서 보장: 데이터가 보낸 순서대로 도착합니다.
  • 오류 제어: 손상된 데이터를 감지하고 복구합니다.

단점:

  • 오버헤드: 연결 설정, 확인, 재전송 등으로 인해 추가 부담이 있습니다.
  • 지연: 신뢰성을 보장하기 위한 절차로 인해 전송 속도가 느려질 수 있습니다.
  • 리소스 사용: 연결 상태를 유지하기 위해 메모리와 CPU 자원을 사용합니다.

 

커넥션리스형(UDP) 통신

장점:

  • 속도: 연결 설정이나 확인 과정이 없어 빠릅니다.
  • 단순성: 프로토콜 구조가 간단합니다.
  • 효율성: 오버헤드가 적어 네트워크 자원을 효율적으로 사용합니다.

단점:

  • 비신뢰성: 데이터 손실이 발생할 수 있습니다.
  • 순서 보장 없음: 데이터가 다른 순서로 도착할 수 있습니다.
  • 오류 제어 없음: 손상된 데이터를 감지하지 못할 수 있습니다.

 

어떤 통신 방식을 언제 사용할까?

TCP(커넥션형)가 적합한 경우:

  • 웹 브라우징(HTTP/HTTPS): 웹페이지의 모든 내용이 정확히, 순서대로 로드되어야 합니다.
  • 이메일(SMTP): 메일 내용이 손실 없이 전달되어야 합니다.
  • 파일 전송(FTP): 파일의 모든 부분이 정확히 전송되어야 합니다.
  • 데이터베이스 쿼리: 중요한 정보가 손실되면 안 됩니다.

UDP(커넥션리스형)가 적합한 경우:

  • 실시간 스트리밍(비디오/오디오): 약간의 데이터 손실은 허용되지만, 지연이 적어야 합니다.
  • 온라인 게임: 빠른 업데이트가 중요하며, 일부 패킷 손실은 게임 경험에 큰 영향을 주지 않습니다.
  • DNS 조회: 빠른 응답이 중요합니다.
  • IoT 장치: 제한된 자원으로 간단한 통신이 필요한 경우가 많습니다.

 

결론

커넥션형 통신(TCP)과 커넥션리스형 통신(UDP)은 각각 다른 상황에 적합한 특성을 가지고 있습니다. 어떤 것이 "더 좋다"라고 단정할 수 없으며, 응용 프로그램의 요구사항에 따라 적절한 프로토콜을 선택해야 합니다.

  • 정확성과 완전성이 중요하다면 → TCP
  • 속도와 효율성이 중요하다면 → UDP
728x90

'1일 1네트워크 > 제 5장: 트랜스포트층의 프로토콜' 카테고리의 다른 글

포트 번호란?  (0) 2025.03.20
TCP와 UDP란?  (0) 2025.03.19

TCP (Transmission Control Protocol)

TCP는 '전송 제어 프로토콜'의 약자로, 데이터를 안정적으로 전송하기 위해 설계된 프로토콜입니다. TCP는 데이터가 손실 없이 정확하게 전달되도록 보장하며, 데이터의 순서가 유지되는 특징이 있습니다.

 

UDP (User Datagram Protocol)

UDP는 '사용자 데이터그램 프로토콜'의 약자로, TCP보다 단순한 구조를 가지고 있습니다. UDP는 데이터의 안정적인 전송보다는 빠른 전송에 중점을 둡니다.

 

TCP의 작동 방식

TCP는 '연결 지향적' 프로토콜로, 데이터를 주고받기 전에 먼저 연결을 설정합니다. 이 과정은 '3-way 핸드셰이크'라고 불리는데, 다음과 같이 진행됩니다

  1. 연결 요청: 클라이언트가 서버에 연결 요청(SYN) 메시지를 보냅니다.
  2. 응답: 서버는 요청을 받고 승인(SYN-ACK) 메시지를 보냅니다.
  3. 확인: 클라이언트가 서버의 응답을 받고 확인(ACK) 메시지를 보내면 연결이 설정됩니다.

연결이 설정된 후에는 다음과 같은 과정으로 데이터가 전송됩니다

  • 데이터를 작은 단위(세그먼트)로 나눕니다.
  • 각 세그먼트에 순서 번호를 부여합니다.
  • 수신자는 받은 데이터에 대한 확인(ACK) 메시지를 보냅니다.
  • 만약 확인 메시지가 일정 시간 내에 오지 않으면, 송신자는 해당 데이터를 다시 전송합니다.

이러한 과정을 통해 TCP는 데이터의 안전한 전송을 보장합니다.

 

UDP의 작동 방식

UDP는 '비연결형' 프로토콜로, TCP와 달리 연결 설정 과정이 없습니다. 데이터(데이터그램)를 바로 전송하며, 그 과정이 매우 단순합니다

  1. 데이터를 패킷으로 나눕니다.
  2. 각 패킷에 목적지 정보를 추가합니다.
  3. 네트워크를 통해 패킷을 바로 전송합니다.

UDP는 데이터가 제대로 전달되었는지 확인하지 않으며, 데이터의 순서를 보장하지 않습니다. 이 때문에 일부 데이터가 손실되거나 순서가 뒤바뀔 수 있지만, 전송 속도가 빠른 장점이 있습니다.

 

TCP와 UDP의 주요 차이점

연결 방식 연결 지향적 비연결형
신뢰성 높음 (데이터 손실 복구) 낮음 (데이터 손실 가능)
속도 상대적으로 느림 빠름
순서 보장 순서 보장 순서 보장 없음
오류 검출 있음 기본적인 오류 검출만 있음
용량 헤더 크기 20-60 바이트 헤더 크기 8 바이트
적합한 용도 정확성이 중요한 데이터 실시간 데이터, 속도가 중요한 경우

 

실생활 사용 예시

TCP 사용 예시

  1. 웹 브라우징: 웹페이지를 정확하게 로드하기 위해 HTTP/HTTPS는 TCP를 사용합니다.
  2. 이메일 전송: 이메일 프로토콜(SMTP, POP3, IMAP)은 메시지가 온전히 전달되도록 TCP를 사용합니다.
  3. 파일 다운로드: FTP와 같은 파일 전송 프로토콜은 파일이 손상 없이 전송되도록 TCP를 사용합니다.
  4. 온라인 뱅킹: 금융 거래는 데이터의 정확성이 매우 중요하므로 TCP를 사용합니다.

UDP 사용 예시

  1. 실시간 영상 통화: Zoom, Skype 등의 화상 회의는 속도가 중요하기 때문에 UDP를 사용합니다.
  2. 온라인 게임: 실시간 반응이 중요한 게임은 지연을 최소화하기 위해 UDP를 사용합니다.
  3. 실시간 스트리밍: 유튜브 라이브, 트위치 등의 실시간 방송은 UDP를 사용하여 지연을 줄입니다.
  4. DNS 조회: 도메인 이름을 IP 주소로 변환하는 과정에서 UDP를 사용합니다.

 

쉬운 비유로 이해하기

TCP와 UDP의 차이를 일상생활의 비유로 설명하면 다음과 같습니다:

TCP는 등기우편과 같습니다:

  • 보내기 전에 받는 사람의 주소를 확인합니다(연결 설정).
  • 우편물을 보낸 후 배달 확인을 받습니다(ACK).
  • 우편물이 제대로 배달되지 않으면 다시 보냅니다(재전송).
  • 여러 봉투로 나누어 보낸 경우, 받는 사람이 순서대로 정리할 수 있도록 번호를 매깁니다(순서 보장).

UDP는 일반 우편과 같습니다:

  • 받는 사람의 주소만 적고 바로 우편함에 넣습니다(비연결형).
  • 배달 확인을 받지 않습니다(확인 없음).
  • 우편물이 분실되어도 다시 보내지 않습니다(손실 가능).
  • 여러 봉투를 보낸 경우, 어떤 순서로 도착할지 보장하지 않습니다(순서 보장 없음).

 

결론

TCP와 UDP는 각각 장단점이 있으며, 사용 목적에 따라 적합한 프로토콜을 선택하는 것이 중요합니다. 데이터의 정확성과 안정성이 중요한 경우에는 TCP를, 빠른 전송 속도가 중요한 실시간 서비스에는 UDP를 사용하는 것이 일반적입니다. 이 두 프로토콜의 이해는 네트워크 통신의 기본을 이해하는 데 큰 도움이 됩니다.

728x90

네트워크의 심장, TCP/IP와 UDP: 초보자를 위한 쉬운 설명

들어가며

디지털 세상에서 데이터는 마치 우리가 편지를 주고받듯이 이동합니다. 하지만 이 데이터 전송의 비밀은 바로 TCP/IP와 UDP라는 두 가지 통신 프로토콜에 있습니다. 

 

TCP/IP: 신뢰할 수 있는 우편 시스템

TCP/IP는 인터넷 통신의 가장 기본적이고 신뢰할 수 있는 방식입니다. 마치 등기우편처럼, 보내는 데이터의 안전한 도착을 보장합니다.

작동 방식

  1. 연결 설정: 데이터를 보내기 전에 송신자와 수신자 사이에 안전한 통로를 만듭니다.
  2. 순서 보장: 모든 데이터 조각(패킷)이 올바른 순서로 도착하도록 관리합니다.
  3. 오류 복구: 만약 어떤 패킷이 분실되거나 손상되면, 자동으로 재전송합니다.

실제 사용 예시

  • 웹 페이지 로딩
  • 이메일 송수신
  • 파일 다운로드
  • 온라인 뱅킹

 

UDP: 빠른 엽서 배달

UDP는 TCP/IP와는 다른 접근 방식을 가진 통신 프로토콜입니다. 속도를 최우선으로 하며, 데이터의 완벽한 도착보다는 빠른 전송에 중점을 둡니다.

작동 방식

  1. 즉각적인 전송: 연결 설정 없이 바로 데이터를 보냅니다.
  2. 최선의 노력: 데이터 패킷이 분실되어도 재전송하지 않습니다.
  3. 오버헤드 최소화: 추가적인 확인 절차 없이 빠르게 데이터를 전송합니다.

실제 사용 예시

  • 실시간 온라인 게임
  • 스트리밍 서비스
  • DNS 조회
  • 실시간 비디오 통화

 

TCP/IP vs UDP: 언제 무엇을 사용할까?

TCP/IP  vs UDP

속도 느림 빠름
신뢰성 높음 낮음
데이터 전송 보장 아니오
적합한 서비스 이메일, 웹 브라우징 게임, 스트리밍

 

마무리

 TCP/IP와 UDP는 각자의 장단점을 가지고 있으며, 사용 목적에 따라 선택됩니다.

웹 페이지를 열거나 게임을 플레이할 때, 이 보이지 않는 프로토콜들이 우리의 디지털 경험을 만들어내고 있다는 점을 기억해보세요.

728x90

'1일 1네트워크 > 제 2장: 네트워크 모델' 카테고리의 다른 글

OSI 참조 모델이란?  (1) 2025.03.04

01-1 컴퓨터 네트워크를 알아야 하는 이유

  • 네트워크의 네트워크, 인터넷
    • 전 세계의 컴퓨터들이 서로 연결되어 통신할 수 있는 거대한 네트워크
    • TCP/IP 프로토콜을 기반으로 한 통신망
    • 정보 공유와 통신을 가능하게 하는 핵심 인프라
  • 개발자가 컴퓨터 네트워크를 알아야 하는 이유
    • 프로그램을 만드는 업무에서 네트워크 지식을 활용하는 경우
      • 웹 애플리케이션 개발
      • API 통신 구현
      • 데이터베이스 연동
      • 분산 시스템 구축
    • 프로그램을 유지 보수하는 업무에서 네트워크 지식을 활용하는 경우
      • 성능 최적화
      • 네트워크 오류 디버깅
      • 보안 취약점 분석
      • 트래픽 모니터링

01-2 네트워크 거시적으로 살펴보기

  • 네트워크의 기본 구조
    1. 호스트 (Host):
      • 설명: 네트워크에 연결된 모든 컴퓨터 장치를 의미합니다. 주로 서버와 클라이언트
      • 서버: 데이터를 저장하고 네트워크를 통해 다른 컴퓨터에 서비스나 자원을 제공하는 컴퓨터. 예를 들어, 웹 서버는 웹 페이지를 호스팅하고, 파일 서버는 파일을 저장합니다.
      • 클라이언트: 서버의 자원을 사용하거나 서비스를 요청하는 컴퓨터. 일반 사용자들이 사용하는 PC, 스마트폰 등이 여기에 해당됩니다.
    2. 네트워크 장비 (Network Devices):
      • 라우터 (Router): 서로 다른 네트워크 간의 데이터 패킷을 전달하고, 최적의 경로를 찾아주는 장치. 인터넷 연결을 가능하게 합니다.
      • 스위치 (Switch): 네트워크 내의 여러 장치를 연결하고, 데이터 패킷을 올바른 목적지로 전송합니다. LAN(Local Area Network)에서 주로 사용됩니다.
      • 허브 (Hub): 네트워크 장치들을 연결하는 기본 장치로, 데이터를 모든 포트로 전송하여 네트워크 트래픽이 많아질 수 있습니다. 스위치보다 비효율적입니다.
    3. 통신 매체 (Transmission Medium):
      • 유선 (Wired):
        • 이더넷 케이블 (Ethernet Cable): 가장 일반적인 유선 네트워크 매체로, 데이터를 전기 신호를 통해 전송합니다. 안정적이고 빠른 속도를 제공합니다.
        • 광섬유 케이블 (Fiber Optic Cable): 빛을 통해 데이터를 전송하며, 매우 빠른 속도와 긴 전송 거리를 제공합니다.
      • 무선 (Wireless):
        • Wi-Fi: 무선 네트워크 기술로, 라우터를 통해 무선 신호를 전송하여 장치들이 네트워크에 연결됩니다. 케이블 없이도 편리하게 사용 가능합니다.
        • Bluetooth: 단거리 무선 통신 기술로, 주로 주변기기 연결에 사용됩니다.
    4. 메시지 (Message):
      • 설명: 네트워크에서 전송되는 데이터 단위입니다. 패킷이라는 작은 단위로 쪼개져 전송되며, 최종적으로 재조합되어 사용자에게 전달됩니다.
      • 패킷 (Packet): 데이터가 전송되는 기본 단위로, 헤더와 페이로드로 구성됩니다. 헤더는 목적지와 출발지 주소를 포함하고, 페이로드는 실제 전송 데이터입니다.
      • 프레임 (Frame): 패킷을 포함한 데이터 링크 계층에서의 데이터 단위로, 물리적 네트워크에서 전송됩니다.
  • 범위에 따른 네트워크 분류
    • 설명: LAN은 물리적으로 가까운 위치에 있는 컴퓨터와 장치들이 연결된 네트워크입니다. 보통 한 건물 내 혹은 근처 여러 건물로 이루어진 작은 지역을 커버합니다.
    • 특징:
      • 한정된 공간: 학교, 사무실, 공장, 또는 캠퍼스와 같은 작은 지리적 범위에서 사용됩니다.
      • 높은 속도: 네트워크 속도가 매우 빠르며, 일반적으로 1Gbps 또는 그 이상의 속도를 지원합니다.
      • 낮은 오류율: 신호의 전송 거리가 짧고, 데이터 손실이 적습니다.
    • 예시: 학교 네트워크, 회사 내부 네트워크, 집안의 Wi-Fi 네트워크.
    WAN (Wide Area Network: 광역 통신망)
    • 설명: WAN은 넓은 지리적 범위에 걸쳐 있는 네트워크로, 서로 떨어진 위치에 있는 여러 LAN을 연결합니다. 이 네트워크는 전 세계에 걸쳐 있을 수 있습니다.
    • 특징:
      • 넓은 지역: 국가나 대륙을 포함하는 넓은 범위에서 사용됩니다.
      • 인터넷 연결: 인터넷 서비스 제공업체(ISP)를 통해 네트워크를 연결합니다. WAN은 다양한 통신 기술을 사용하여 데이터를 전송합니다.
      • 속도와 신뢰성: WAN의 속도는 ISP와 사용 기술에 따라 다르며, 신뢰성을 보장하기 위해 다양한 프로토콜을 사용합니다.
    • 예시: 인터넷, 기업의 국제 네트워크, 대규모 통신망.
  • LAN (Local Area Network: 근거리 통신망)
  • 메시지 교환 방식에 따른 네트워크 분류
    1. 회선 교환 방식 (Circuit Switching):
      • 설명: 통신을 시작하기 전에 두 지점 사이에 전용 통신 경로를 설정합니다. 이 경로는 통신이 끝날 때까지 유지되며, 다른 통신이 동일한 경로를 사용할 수 없습니다.
      • 특징: 고정 대역폭을 보장하고, 실시간 통신에 적합합니다. 예를 들어, 전화망이 대표적입니다.
      • 장점: 전용 경로로 인해 안정적인 연결과 낮은 지연 시간.
      • 단점: 비효율적 자원 사용, 사용되지 않는 동안에도 경로가 점유됨.
    2. 패킷 교환 방식 (Packet Switching):
      • 설명: 데이터를 작은 단위인 패킷으로 나누어 전송합니다. 각 패킷은 독립적으로 목적지로 전송되며, 최종 목적지에서 다시 조립됩니다.
      • 특징: 네트워크 자원을 효율적으로 사용하며, 각 패킷이 독립적인 경로로 전송될 수 있습니다. 인터넷이 대표적인 예입니다.
      • 장점: 효율적인 대역폭 사용, 동적 라우팅으로 안정성 증가.
      • 단점: 지연이 발생할 수 있으며, 실시간 통신에는 덜 적합할 수 있음.
  • 주소와 송수신지 유형에 따른 전송 방식
    1. 유니캐스트 (Unicast):
      • 설명: 1대1 통신 방식으로, 하나의 송신자가 하나의 수신자에게 데이터를 전송합니다.
      • 특징: 대부분의 일반적인 인터넷 통신 (예: 웹 브라우징, 이메일 등)이 유니캐스트 방식입니다.
      • 장점: 정확하고 개인화된 데이터 전송.
      • 단점: 많은 수신자에게 데이터를 전송할 때 비효율적.
    2. 브로드캐스트 (Broadcast):
      • 설명: 1대 다수 통신 방식으로, 하나의 송신자가 네트워크에 연결된 모든 장치에 데이터를 전송합니다.
      • 특징: 주로 로컬 네트워크(LAN)에서 사용됩니다. 모든 장치가 데이터를 수신합니다.
      • 장점: 네트워크의 모든 장치에게 동시에 정보를 전달.
      • 단점: 네트워크 트래픽 증가 및 효율성 저하.
    3. 멀티캐스트 (Multicast):
      • 설명: 1대 그룹 통신 방식으로, 하나의 송신자가 특정 그룹의 장치에만 데이터를 전송합니다.
      • 특징: 실시간 스트리밍, 온라인 회의 등에서 자주 사용됩니다.
      • 장점: 특정 그룹의 수신자들에게만 데이터를 전송하여 대역폭을 절약.
      • 단점: 네트워크와 장치의 멀티캐스트 지원 필요.

01-3 네트워크 미시적으로 살펴보기

  • 프로토콜: 네트워크 통신 규칙
  • 네트워크 참조 모델
    • OSI 모델
      • 7계층 구조
        • 물리 계층: 실제 물리적 연결을 담당.
        • 데이터 링크 계층: 데이터 프레임 전송 및 오류 검사.
        • 네트워크 계층: 패킷 전달 및 라우팅.
        • 전송 계층: 데이터 전송 신뢰성 보장.
        • 세션 계층: 통신 세션 관리.
        • 표현 계층: 데이터 변환 및 암호화.
        • 응용 계층: 사용자 애플리케이션과의 인터페이스.
    • TCP/IP 모델
      • 네트워크 인터페이스 계층: 데이터 링크 및 물리 계층 기능.
      • 인터넷 계층: 패킷 전달 및 라우팅.
      • 전송 계층: 데이터 전송 신뢰성 보장.
      • 응용 계층: 사용자 애플리케이션과의 인터페이스.
      • 실제 인터넷에서 사용되는 표준 모델로, 네트워크 통신을 효율적으로 수행
      • 참고링크: https://pyoja.tistory.com/261
  • 캡슐화와 역캡슐화
    1. 캡슐화: 데이터가 상위 계층에서 하위 계층으로 전달될 때, 각 계층은 데이터에 특정 헤더를 추가해요. 예를 들어, 응용 계층에서 생성된 데이터는 전송 계층으로 전달되며, 전송 계층은 데이터에 세그먼트 헤더를 추가합니다.
    2. 역캡슐화: 데이터가 하위 계층에서 상위 계층으로 전달될 때, 각 계층은 헤더를 제거해요. 예를 들어, 데이터 링크 계층에서 받은 프레임은 네트워크 계층으로 전달되며, 네트워크 계층은 프레임 헤더를 제거하고 패킷을 처리합니다.
  • PDU: 각 계층별 데이터 단위를 의미
    • 응용 계층: 메시지
    • 전송 계층: 세그먼트
    • 네트워크 계층: 패킷
    • 데이터 링크 계층: 프레임
  • 트래픽과 네트워크 성능 지표
    1. 처리율 (Throughput):
      • 설명: 단위 시간당 실제로 전송되는 데이터양.
      • 측정 단위: bps (bits per second).
      • 의미: 네트워크의 실질적인 성능 지표.
    2. 대역폭 (Bandwidth):
      • 설명: 네트워크에서 최대로 전송할 수 있는 데이터의 양.
      • 의미: 네트워크의 이론적인 최대 전송 용량.
      • 특징: 실제 처리율은 대역폭보다 작음.
    3. 패킷 손실 (Packet Loss):
      • 설명: 네트워크에서 전송 중 손실되는 패킷의 비율.
      • 원인: 네트워크 혼잡, 하드웨어 문제 등.
      • 영향: QoS(서비스 품질)에 영향을 미치는 중요 요소.

 

 

 

 

728x90

 

Modbus RTU 대 Modbus TCP/IP

Modbus RTU와 Modbus TCP/IP의 본질은 Modbus 프로토콜이며, 모두 Modbus 레지스터 주소로 데이터를 교환합니다. 하지만 그 둘의 차이점은 무엇일까요? 오늘은 다음과 같은 측면에서 논의해 보겠습니다.

 

1. 개념

 

Modbus 는 표준 산업용 제어 데이터 교환 프로토콜로, RTU, ASCII 및 TCP/IP에서 프로토콜 데이터의 상호 전송에 사용할 수 있습니다. RTU (Remote Terminal Unit)는 RS-485와 같은 직렬 통신을 통해 바이너리 형태로 데이터를 직접 전송하여 높은 효율성과 낮은 오버헤드를 제공합니다. ASCII 모드는 각 데이터 바이트를 두 개의 ASCII 문자로 변환하여 사람이 읽기 쉽도록 하지만 효율성이 떨어집니다. 반면 Modbus TCP는 TCP/IP 네트워크를 통해 전송하기 위해 Modbus 프로토콜 데이터를 TCP 패킷에 포함합니다.

 

2. 통신 모드

 

이더넷과 해당 통신 모드는 Modbus TCP입니다. 유선 RS-232, RS-422, RS-485, 광섬유, 무선 등 다양한 매체를 활용할 수 있는 비동기 직렬 전송은 Modbus RTU 또는 Modbus ASCII에 해당합니다. Modicon의 독점 시스템에서 사용되는 고속 토큰 전달 네트워크는 Modbus PLUS에 해당합니다.

 

3. 프로토콜 캡슐화

 

Modbus RTU 프로토콜과 비교했을 때, Modbus TCP 프로토콜은 RTU 프로토콜에 MBAP (Modbus Application Protocol) 헤더를 추가합니다. TCP는 신뢰할 수 있는 연결 서비스를 기반으로 하기 때문에 RTU에서 오류 감지를 위해 사용되는 CRC 검사 코드는 Modbus TCP에서 더 이상 필요하지 않습니다. 따라서 Modbus TCP에는 CRC 검사 코드가 포함되지 않습니다.

 

이 차이점을 설명하는 일반적인 방법은 Modbus TCP가 기본적으로 Modbus RTU 프로토콜이며, 앞에 MBAP 헤더가 추가되어 있고 끝부분에서 두 개의 CRC 검사 코드 바이트가 제거되었다는 것입니다 .

 

4. 커뮤니케이션에서의 역할

 

Modbus RTU 프로토콜은 RS-232 및 RS-485와 같은 직렬 통신 채널을 통해 컨트롤러 간 및 컨트롤러와 다른 장치 간의 통신을 용이하게 합니다. 단거리에서 중거리에 걸쳐 안정적이고 효율적인 통신이 필요한 산업 환경에서 널리 사용됩니다.

 

반면, Modbus TCP 프로토콜은 이더넷 네트워크를 통한 통신에 사용됩니다. Modbus 프로토콜 데이터를 TCP/IP 패킷 내에 캡슐화하여 장치가 로컬 영역 네트워크(LAN) 또는 광역 네트워크(WAN)를 통해 통신할 수 있도록 합니다. Modbus TCP는 애플리케이션 계층에서 작동하여 TCP/IP 스택의 안정적인 전송 기능을 활용 합니다 .

 

5. 전송

 

Modbus RTU 프로토콜 의 적용은 전송 거리가 짧고 속도가 느리기 때문에 제한적입니다. 일반적으로 Modbus RTU는 통신 거리가 수백 미터를 넘지 않고 속도 요구 사항이 적당하며 일반적인 보드 속도가 9600~115200bps인 환경에서 사용됩니다. 이러한 제한에도 불구하고 Modbus RTU는 산업용 제어 시스템에서 단순성, 신뢰성 및 비용 효율성으로 인해 여전히 인기가 있습니다.

 

반면, Modbus TCP 프로토콜은 긴 전송 거리와 높은 전송 속도에 대한 기능 때문에 널리 사용됩니다. 이더넷 및 TCP/IP 프로토콜을 활용하는 Modbus TCP는 라우터와 스위치를 사용할 때 효과적으로 무제한으로 훨씬 더 먼 거리에서 데이터를 전송할 수 있으며, 종종 초당 수백 메가비트(Mbps)에 도달하는 훨씬 더 빠른 속도로 데이터를 전송할 수 있습니다. 이러한 장점으로 인해 Modbus TCP는 고대역폭과 광범위한 통신 네트워크가 필요한 애플리케이션에 적합합니다.

 

6. 응용 프로그램

 

Modbus RTU 프로토콜은 주로 전기 자동화 및 프로세스 제어에 사용되며 일반적으로 RS-232 또는 RS-485 통신 인터페이스를 채택합니다. 이러한 인터페이스는 산업 환경에서 널리 사용되어 신뢰할 수 있는 단거리 통신을 제공합니다.

 

Modbus TCP 프로토콜은 주로 인터넷이나 인트라넷에서 사용됩니다. 이더넷과 TCP/IP 네트워크를 활용하여 로컬 에어리어 네트워크(LAN) 또는 광역 네트워크(WAN)를 통한 장치 간 통신을 용이하게 하므로 고대역폭과 장거리 통신이 필요한 애플리케이션에 적합합니다.

 

참고하기 좋은 문서

https://www.wevolver.com/article/modbus-rtu-vs-tcp

 

Modbus RTU vs TCP: A Comprehensive Comparison of Industrial Protocols

Modbus protocols are essential components in the realm of industrial automation and control systems. Designed in 1979 by Modicon (now Schneider Electric), Modbus was developed as a way to enable communication between Programmable Logic Controllers (PLCs) a

www.wevolver.com

 

728x90

'일기 > 개발일기' 카테고리의 다른 글

SNMP Trap과 Polling  (1) 2024.10.25
SNMP 개념과 사용시기 통신 방식  (0) 2024.10.24
[241021] FMS와 스위치  (1) 2024.10.21
[241016] Modbus RTU 통신 프로토콜 - 해석방법  (1) 2024.10.16
[241015] 모드버스 RTU와 TCP  (0) 2024.10.15

FMS (Client) ↔ 스위치(Server)

  1. FMS는 지금까지 메뉴얼을 보고 설치했으니, 리눅스만 실행하면 자동으로 FMS가 실행됨
  2. UR-2000 스위치을 메뉴얼 보고 공부함. 모드버스 RTU와 모드버스 TCP 프로토콜 공부.
    1. 다른 노트북으로 LAN을 연결해서 IP세팅함
    2. 메인 노트북으로 WAN 연결하여 사용
  3. 온습도계 Device ID와 기타설정을 한 후, 데이터 케이블로 UR-2000과 연결
    1. RS486 MODBUS RTU 통신
    2. DTools를 통해 RTU와 TCP 패킷의 구조를 공부함
  4. FMS서버에서 설비추가를 통해 IP와 Port, Device ID를 설정하면 데이터 통신 시작
    1. 온습도계 2개 추가 연결
    2. DI 및 TCP통신하는 도어센서와 연기센서 추가 연결

 

Modbus RTU와 TCP 공부하는데 많은 도움이 된 게시물

https://caniro.tistory.com/5

 

Modbus Protocol

Modbus Protocol Modicon이라는 회사에서 만든 직렬 통신 프로토콜이다. 공장 자동화에 사용되는 PLC(Programmable Logic Controller)의 통신을 위해 만들어졌다. 용어 프로토콜 사람이 소통하려면 소통하고자

caniro.tistory.com

 

728x90

RS486 Modbus RTU

  • RS485: RS485는 Recommended Standard 485의 약자로, 산업용 통신 표준입니다. 이 표준은 다중 드롭 네트워크에서 최대 32개의 장치가 하나의 버스에서 통신할 수 있도록 합니다. (N:N 통신)
  • Modbus: Modbus는 산업용 전자 장치 간의 통신을 위한 프로토콜입니다. Modbus는 마스터-슬레이브 구조를 사용하며, 데이터 전송을 위해 다양한 물리적 매체(RS485, RS232, TCP/IP 등)를 지원합니다
  • RTU (Remote Terminal Unit): RTU는 Modbus 프로토콜의 전송 모드 중 하나로, Remote Terminal Unit의 약자입니다. RTU 모드는 이진수 형식으로 데이터를 전송하며, 주로 RS485와 같은 직렬 통신에서 사용.
  • TCP/IP (Transmission Control Protocol/Internet Protocol): TCP/IP는 인터넷과 같은 네트워크에서 데이터를 전송하기 위한 프로토콜 스택입니다. Modbus TCP/IP는 이 프로토콜 스택을 사용하여 이더넷 네트워크를 통해 데이터를 전송합니다.

RTU와 TCP/IP의 차이점

  • 물리적 계층
    • RTU는 RS485 또는 RS232와 같은 직렬 통신
    • TCP/IP는 이더넷 네트워크
  • 데이터 전송 형식
    • RTU는 데이터를 이진 형식으로 전송
    • TCP/IP는 데이터를 ASCII 형식으로 인코딩하여 전송
  • 속도와 유연성
    • RTU는 구현이 더 간단하고 비용이 적음
    • TCP/IP는 기존의 이더넷 네트워크를 사용하기 때문에 더 빠르고 유연
  • 주소 지정
    • RTU는 각 장치에 노드 번호를 할당
    • TCP/IP는 각 장치에 IP 주소를 할당

TCP/IP


패킷 전송 방식: 데이터는 패킷이라는 작은 조각으로 나뉘어 전송되며, 네트워크 경로를 효율적으로 이용합니다. 이 때문에 데이터 충돌이 최소화되고, 각 패킷이 최적의 경로를 선택해 전달될 수 있습니다.

에러 제어: TCP/IP는 데이터 전송 중 발생할 수 있는 오류를 감지하고 수정하는 기능을 내장하고 있어, 데이터 손실이 거의 없습니다.

라우팅 기능: 네트워크 내 여러 경로를 통해 데이터를 전송할 수 있어, 특정 경로에 문제가 생겨도 대체 경로로 데이터를 전송할 수 있습니다. 이는 네트워크 안정성을 높이는 데 크게 기여합니다.

멀티태스킹: 여러 장치가 동시에 통신할 수 있는 능력이 뛰어나며, 대규모 데이터 전송 환경에 최적화되어 있습니다. 예를 들어, 수백 대의 센서가 데이터를 동시에 전송하더라도 네트워크가 효율적으로 처리할 수 있습니다.

확장성: 새로운 장치를 네트워크에 쉽게 추가할 수 있어, 네트워크의 크기를 유연하게 확장할 수 있습니다.

 

RTU

직렬 통신 방식: RTU는 직렬 통신 방식으로 데이터를 전송하는데, 이는 한 번에 하나의 데이터 스트림만 전송할 수 있어, 대규모 데이터 전송에 비효율적입니다.

낮은 처리 능력: 직렬 통신은 TCP/IP에 비해 데이터 전송 속도가 느립니다. 이는 많은 양의 데이터를 빠르게 전송해야 하는 환경에서는 큰 단점이 됩니다.

오류 처리의 한계: RTU는 기본적으로 오류 감지 및 수정 기능이 부족하며, 수동으로 오류를 처리해야 하는 경우가 많아 데이터 신뢰성이 떨어질 수 있습니다.

확장성 부족: 네트워크에 새로운 장치를 추가하는 과정이 복잡하고, 물리적인 배선 변경이 필요할 수 있습니다. 이는 대규모 네트워크에서는 큰 문제가 될 수 있습니다.

이러한 이유들 때문에 TCP/IP가 대규모 데이터 관리와 네트워크 확장성에서 더 유리하며,

RTU는 소규모 단순 통신 환경에 더 적합합니다.

728x90

+ Recent posts