본문 바로가기
카테고리 없음

[질문필요]통신 방식 정리(2) - TCP/IP 통신(IP + TCP)

by Sein_ 2025. 9. 16.
728x90
MES 연동 시 LAN 선을 통한 TCP/IP 통신을 한다.
TCP/IP 통신에 대해 자세히 알아보고 연동 방법을 정리해보자.
또한 현장에서 MES 연결시 IP 뿐만 아니라 MAC ID를 필요로 했던 이유를 알아내보자.

TCP/IP (Ethernet)

  • 고속 통신(100Mbps~Gbps).
  • 대용량 데이터 전송에 유리 (예: DAQ에서 다채널 온도·전압 데이터 스트리밍).
  • 네트워크 기반 원격 제어, 클라우드 서버 연동 가능.

https://junu0516.github.io/posts/tcp_ip_4%EA%B3%84%EC%B8%B5/

 

 

TCP/IP 를 분석하며 알아낸 지식 정리

 

1. TCP/IP 란 무엇인가?

TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합친 것이다.

  • IP: 어디로 보낼지(주소)를 담당 → 패킷을 목적지까지 전달
  • TCP: 잘 갔는지, 순서대로 도착했는지 확인 → 신뢰성 보장

(1) 송신자가 수신자에서 IP 주소를 사용하여 데이터를 전달하고
(2) 그 데이터가 제대로 갔는지, 너무 빠르지는 않는지, 제대로 받았다고 연락은 오는지에 대해 확인한다.

 

2. IP(Internet Protocol) 는 무엇인가?

인터넷에서 데이터를 주고받기 위한 주소 체계이자 규칙(protocol)이다.

  • 네트워크 상에서 누가 누구와 통신하는지를 구분해주는 주소 개념
  • 네트워크에 연결된 모든 장비는 고유한 IP 주소를 가진다.

 

3. IP의 구조는 어떻게 되는가?

IP 주소(IPv4 기준)는 32비트(=4바이트)로 구성된다. 예: 192.168.0.10/24

(1) 서브넷 마스크: /24 → 앞의 24비트가 네트워크 ID

  • 같은 네트워크: 192.168.0.0 ~ 192.168.0.255
  • 네트워크 ID = 192.168.0.0
  • 브로드캐스트 주소 = 192.168.0.255
  • 사용 가능한 호스트 = 192.168.0.1 ~ 192.168.0.254

(2) 네트워크 ID: 장비가 속한 네트워크 구역 (192.168.0)
(3) 호스트 ID: 네트워크 내 특정 장비 식별 (10)

 

4. IP 주소의 종류와 할당 방식

  • 공인 IP: ISP가 DHCP로 할당, 인터넷에서 보이는 주소 (예: 121.160.45.9)
  • 사설 IP: 내부 네트워크에서만 사용하는 주소, 공유기 DHCP 서버가 할당 (예: 192.168.x.x)
  • 사설 IP는 NAT/PAT을 통해 공인 IP로 변환되어 외부와 통신한다.

5. MAC ID와 IP의 차이

  • MAC: 하드웨어 고유 번호(랜카드에 새겨짐).
  • IP: 네트워크 주소, 라우팅이 가능.
  • MAC은 물리적 식별만 가능하고 경로 지정 불가, 따라서 IP를 사용해야 한다.

6. 라우팅과 게이트웨이

  • 라우팅: 라우터/공유기가 IP 주소 계층 구조를 보고 경로를 결정하는 과정.
  • 게이트웨이: 다른 네트워크로 나가는 출구(보통 공유기/라우터).
    → LAN 내부 장치들이 외부 인터넷으로 나갈 때 반드시 게이트웨이를 거친다.

7. 라우팅 과정
예시: PC(192.168.0.10) → 구글 서버(142.250.196.132)

(1) PC가 패킷 생성 (출발지 IP = 192.168.0.10, 목적지 IP = 142.250.196.132)
(2) 구글 IP가 LAN에 없으므로 패킷을 기본 게이트웨이(공유기)로 전달
(3) 공유기는 NAT/PAT을 수행

  • NAT: 출발지 IP를 공유기 공인 IP(121.160.45.9)로 변환
  • PAT: 포트 번호까지 변환해 여러 장치 구분

(4) 공유기 라우팅 테이블 확인 → ISP 라우터(121.160.45.1)로 전달
(5) ARP로 다음 홉의 MAC 주소 확인 → Ethernet 헤더에 목적지 MAC 세팅
(6) ISP 라우터 → 백본 라우터 → 최종 목적지(구글 서버)까지 전달

 

8. 백본 라우터란?

  • 전 세계 네트워크를 연결하는 대형 고속 라우터
  • ISP → 지역망 → 국제망을 이어주는 핵심 통신망 장비

 

9. MES 연동 시 MAC ID 필요 이유

  • 일반적으로는 IP만 있으면 통신 가능 (ARP로 MAC 자동 획득).
  • 하지만 MES, PLC 같은 산업용 시스템은 장비 고유 식별을 위해 MAC ID를 고정 ID처럼 사용하는 경우가 많다.
    → IP는 바뀔 수 있지만 MAC은 하드웨어적으로 고정되어 있어 장비 추적에 적합하다. ?????

=> 언뜻 봤을 때는 MAC 과 IP 둘 다 활용했었는데, 그리고 J1C에서는 어떻게 다룬거지?

코드로 알 수 있는 부분인가.. 한번 확인해보자

 

10. TCP(Transmission Control Protocol) 란 무엇인가?

전송 제어 프로토콜로 네트워크에서 안정적인 데이터 전달을 관리한다.

  • 연결 설정: 3-Way Handshake (SYN, SYN-ACK, ACK)
  • 데이터 전송 관리: 오류 확인, 순서 보장, 흐름 제어(윈도우 크기)
  • 연결 종료: 4-Way Handshake (FIN, ACK)

→ HTTP, FTP, SMTP 등 신뢰성이 필요한 프로토콜의 기반

 

11. TCP 세션 연결 방식 (J1C 예시)

  • J1C에서는 IP, Port, Server/Client 역할만 설정하면 OS가 자동으로 TCP 세션을 맺는다.
  • 세션이 연결된 이후에는 데이터 송수신 규약(프로토콜)을 사용자가 직접 구현해야 한다.

예시:

  • 0x01 → 측정 시작
  • 0x02 → 측정 정지
    (장비 메뉴얼을 참고하여 정의)

=> 그럼 MAC ID는 어디에 사용했던거지...?????

 

 

시리얼 통신 프로그램 분석/분해 원본

TCP/IP 란 무엇인가?
  - TCP/IP는 하나의 프로토콜이 아닌 TCP와 IP를 합친 것이다.
    IP: “어디로 보낼지(주소)”를 담당 → 패킷을 목적지까지 전달
    TCP: “잘 갔는지, 순서대로 도착했는지”를 담당 → 신뢰성 보장
    (1) 송신자가 수신자에서 IP 주소를 사용하여 데이터를 전달하고
    (2) 그 데이터가 제대로 갔는지, 너무 빠르지는 않는지, 제대로 받았다고 연락은 오는지에 대해 이야기한다.

  - IP(Internet Protocol) 는 무엇인가?
    인터넷에서 데이터를 주고받기 위한 주소 체계이자 규칙(protocol)이다.
    네트워크 상에서 누가 누구와 통신하는지를 구분해주는 주소 개념으로
    네트워크에 연결된 모든 장비는 고유한 IP 주소를 가진다.

  - IP의 구조는 어떻게 되는가?
    IP 주소(IPv4 기준)는 32비트(=4바이트) 로 되어 있다.
      192.168.0.10/24
      (1) 서브넷 마스크: 32비트 중 앞의 n비트가 네트워크 ID 임을 표기 (/24)
          => /24니까 마지막 8비트(=0~255) 범위는 같은 네트워크에 속함.
             - 같은 네트워크: 192.168.0.0 ~ 192.168.0.255
             - 네트워크 ID = 192.168.0.0
             - 브로드캐스트 주소 = 192.168.0.255
             - 사용 가능한 호스트 = 192.168.0.1 ~ 192.168.0.254
      (2) 네트워크 ID: 이 장비가 속한 네트워크 구역 식별 (앞 24비트: 192.168.0)
      (3) 호스트 ID: 그 네트워크 안에서 특정 장비 식별 (뒤 8비트: 10)
          => 즉, 192.168.0.0/24 네트워크에 속해 있고 호스트 번호가 10번인 장비라는 뜻

  - 모든 장비는 고유한 IP를 가진다고 했는데, IP는 유동/고정되는 것으로 안다. 유동된다면 어떻게 고유하게 되는 것인가?
    ISP(인터넷 제공자)가 IP를 할당하는데, 장비가 접속할 때마다 임시로 할당한다.
    시간이 지나거나 재부팅하면 달라질 수 있으므로 기업에서 ISP에 비용을 내고 IP가 고정되게 신청함
    - ISP(인터넷 제공자_Internet Service Provider)가 무엇인가?
      KT, LG U+ 등과 같이 인터넷을 제공하는 회사이다.
    - ISP가 어떤식으로 IP를 할당하는가?
      고객의 장비(공유기/모뎀)에 DHCP를 통해 공인IP주소(예: 121.160.45.9)를 자동으로 할당한다.
      - DHCP란 무엇인가?
        DHCP(Dynamic Host Configuration Protocol)는 자동으로 IP주소, 서브넷 마스크, 게이트웨이, DNS등을 할당해주는 프로토콜이다.
      - 공인IP와 사설IP의 차이는?
        공인 IP는 인터넷에서 보이는 주소(대문 주소 121.160.45.9)
        사설 IP는 내부 네트워크에서만 보이는 주소(집 안 방 번호 192.168.0.0 ~ 192.168.255.255 <RFC1918 규칙>)
        사설 IP는 외부 통신 시 NAT(네트워크 주소 변환)을 거쳐서 공인 IP로 바뀌어 나간다.
        - 사설 IP도 ISP에서 할당해주는 것인가?
          집 공유기 안의 DHCP 서버가 PC, 스마트폰 등에 사설 IP를 할당해준다.

  - MAC ID도 고유한데 IP를 사용하는 이유가 무엇인가?
    MAC ID는 랜카드에 새겨진 하드웨어의 고유한 번호이다.
    IP 주소는 계층적 구조로 국가, ISP, 지역, 장치 순서로 이루어져 있다.
    인터넷 통신에서 중요한 건 '목적지가 어느 네트워크에 있는가'인데 MAC ID는 어디인지 경로를 알 수 없어 라우팅이 불가하다.
    - 라우팅이란 무엇인가?
      라우터(공유기)가 IP 주소의 계층 구조(네트워크 부분)를 보고 어디로 가야하는지 결정하는 과정

      - 라우팅 과정이 어떻게 되는가?
        내 공유기 LAN = 192.168.0.1
        내 공유기 WAN = 121.160.45.9 (ISP가 준 공인 IP)    
        1) 내 PC가 구글(142.250.196.132)로 가고싶다고 공유기(LAN)에 요청
        2) 구글 IP로 가야한다고 패킷을 만듬
            출발지 IP = 192.168.0.10
            목적지 IP = 142.250.196.132
            => 구글에 접속하려고 142.250.196.132로 패킷을 보냄
        3) 내 PC가 사설망에서 찾아보고 없으면 외부 인터넷으로 나가야 할 패킷이라 판단
            => 구글IP가 내 LAN이 아닌 것을 판단하고 패킷을 기본 게이트웨이(내 공유기/192.168.0.1)로 넘긴다.
            - 게이트웨이란?
              다른 네트워크로 가는 출구 역할을 하는 장치(보통 공유기/라우터)
              내가 속한 LAN 안의 여러 장치(PC, 스마트폰, 프린터 등) 중에서 인터넷으로 나가는 문 역할을 해주는 장치
              자기 IP 범위가 아닌 다른 IP로 갈 경우, 반드시 게이트웨이를 통해야 한다.
        4) 공유기에서 받아 자기 WAN(인터넷 쪽) 인터페이스로 보내고, 자기 ISP 라우터 쪽으로 넘긴다.
          WAN 인터페이스와 ISP 라우터는 같은 네트워크에 있다.
          - WAN 으로 넘어가기 전 과정
            1) NAT/PAT
              - NAT(Network Address Translation)
                공유기가 패킷의 출발지 IP를 변환한다.
                  출발지 IP = 192.168.0.10(PC) -> 121.160.45.9(공유기 WAN 공인 IP)
                  목적지 IP = 142.250.196.132 (구글 서버)
              - PAT(Port Address Translation)
                IP뿐 아니라 포트 번호도 같이 변환해서 여러 장치를 구분
                (NAT만 할 경우, 사설망 안에 PC가 여러 대 있으면 모두 같은 공인 IP 하나로 나가니까 구분이 안 됨)
                  PC1: 192.168.0.10:5001 → 121.160.45.9:40001
                  PC2: 192.168.0.11:5001 → 121.160.45.9:40002
                => 이 과정에서 IP/TCP/UDP 체크섬이 재계산 됨
            2) 라우팅 결정 및 다음 홉 IP/MAC 세팅
              공유기가 자기 라우팅 테이블에서 찾아보고 다음 목적지(게이트웨이)를 결정
              - 라우팅 테이블이란?
                라우터/공유기가 어떤 IP는 어느 길로 보내야 하는지 적어둔 길 안내표
                이 테이블을 보고 다음 hop 즉, 라우터(게이트웨이)를 결정한다.
                (1) 공유기가 구글 IP는 내부망에 없다는 것을 확인
                (2) 공유기에서 상위 장비인 공인 장비망 ISP 라우터(default route/121.160.45.1)를 다음 홉 IP를 설정
                (3) ARP(주소 변환 프로토콜: IP ↔ MAC 매핑)를 통해 다음 홉 IP에 해당하는 MAC 주소(다음 홉 MAC)을 알아냄
                (4) 패킷의 Ethernet 헤더에 MAC 주소를 목적지 MAC으로 세팅
                    - IP 헤더: Src = 121.160.45.9, Dst = 142.250.196.132
                    - Ethernet 헤더: Src = 공유기 WAN MAC, Dst = ISP 라우터 MAC
            3) 패킷 전달 (공유기 -> ISP 라우터)
              (1) 공유기가 만든 프레임을 ISP 라우터로 전송
              (2) ISP 라우터는 Ethernet 헤더를 벗기고, IP 헤더의 목적지(142.250.196.132)를 확인
              (3) 라우팅 테이블을 보고 142.250.196.132(구글IP)가 백본 라우터를 거쳐야 되는 것을 확인
                - 백본 라우터란?
                  우리 집 → ISP 지점 → 지역망 → 전 세계를 이어주는 대형 고속 네트워크의 중심을 백본이라 하며
                  백본 구간에서 동작하는 대형 라우터들을 백본 라우터라 한다. => 핵심 통신망
              (4) ISP 라우터는 목적지로 이어질 다음 경로를 알아낸 뒤, 연결된 상위 백본 라우터한테 패킷을 전달
                => IP 목적지 = 구글 서버, MAC 목적지 = 다음 홉(백본 라우터)
            4) 여러 백본 라우터를 거쳐서 최정 목적지까지 전달
              패킷은 여러 라우터를 거치면서, 각 라우터가 자기 라우팅 테이블을 확인하고 "다음 hop"으로 넘김
              결국 구글 서버까지 도착

      - MES 연동시 MAC ID를 직접 넣어주는 이유는 뭘까?
        위에서 ARP를 통해 연결될 IP에 해당하는 MAC 주소를 알 수 있다는 것을 알았다.
        근데 현장에서 IP와 MAC ID 둘 다 알아야 되는 점이 궁금하다.
          => 일반적으로, IP주소만 있으면 통신이 가능하고 ARP를 통해 MAC 주소를 자동으로 알 수 있다.
          그런데! 산업용 시스템(MES, PLC 등)은 장비 식별을 위해 IP가 아니라 MAC 주소를 고정 ID처럼 쓰는 경우가 많다.
          => ??? 잘 모르는 부분. 질문드려보자.

  - TCP(Transmission Control Protocol) 란 무엇인가?
    전송 제어 프로토콜로 네트워크의 정보 전달을 관리한다.
    웹 브라우저들이 월드 와이드 웹에서 서버에 연결할 때, 이메일 전송이나 파일 전송에 사용된다.
    - TCP의 정보 전달 관리 방법
      1) 연결 설정 (3-Way Handshake)
         양쪽이 통신 준비가 되었는지 확인(SYN, SYN-ACK, ACK 메시지 교환)하고 안정적인 세션을 수립한다.
      2) 데이터 전송 관리
         데이터가 제대로 전달되는지를 관리한다.
           1) 양쪽 단말(Endpoint)이 통신할 준비가 되었는지 세션 유지 상태 점검
           2) 데이터가 제대로 전송되었는지 점검
           3) 데이터가 가는 도중 손상되었는지 점검
           4) 수신자가 감당할 수 있는 속도로만 전송(윈도우 크기)
      3) 연결 종료 (4-Way Handshake)
         서로 더 이상 전송할 데이터가 없는 것을 확인(FIN, ACK 교환)하며 세션을 종료한다.
    => HTTP, FTP, SMTP 등 데이터를 안정적으로 보내는 것을 중요시하는 프로토콜들의 기반이 된다.
    - 만약 TCP 없이 IP만 연결되면 어떻게 되는가?
      IP는 네트워크 계층(3계층) 프로토콜로 패킷이 목적지까지 갈 수는 있으나 데이터가 잘 전송되었는지는 관리하지 않는다.
    - J1C에서 IP 와 PORT, 그리고 server/client 만 설정을 해주는데 어떻게 TCP 세션이 연결되는걸까?
      => IP + Port + Server/Client 역할만 맞으면 OS에서 TCP 세션을 알아서 맺어준다.
         연결 이후에 데이터 주고받는 규약(프로토콜) 은 직접 구현이 필요하다.
         ex) 0x01 보내면 측정 시작, 0x02는 정지 등 장비 메뉴얼 참조
      - PORT는 왜 연결이 필요할까?
        TCP는 IP의 정보뿐만 아니라 Port를 이용하여 연결하는데,
        한쪽 단말(Endpoint)에 도착한 데이터가 어느 입구(Port)로 들어가야 하는지 알아야 연결을 시도할 수 있기 때문이다.

 

 

 

 

https://aws-hyoh.tistory.com/entry/TCPIP-%EC%89%BD%EA%B2%8C-%EC%9D%B4%ED%95%B4%ED%95%98%EA%B8%B0

 

TCP/IP 쉽게 이해하기

IT 분야에서 실무를 담당하시는 분들뿐만 아니라 학생, IT 쪽에 조금이라도 관심이 있는 분들이라면 TCP/IP에 대해 들어보셨을 겁니다. 저 또한 학부시절에 TCP/IP에 대해서 여러 번 들어보았는데요.

aws-hyoh.tistory.com

 

??? 궁금해서 가져와봄! 나중에 확인

https://blog.winsauto.com/tcp-ip-ethernet-ip-differences

 

[위너스오토메이션 칼럼] TCP/IP와 Ethernet/IP는 어떤 차이가 있을까요? - Winners Automation, 위너스오토

위너스오토메이션이 설명하는 산업용 네트워크 프로토콜의 차이점과 적용 분야. CIP와 OSI 계층까지 쉽게 이해하세요. | 위너스칼럼

blog.winsauto.com