개발

C#으로 하는 TCP/IP 통신 -1-

워시기 2024. 11. 22. 10:54
반응형

안녕하세요. 이번 포스팅에서는 C#으로 하는 TCP/IP 통신에 대해 정리해볼까 합니다.
 
통신 프로그램은 정말 중요한 부분인것 같습니다. 장비자체에 UI 인터페이스가 있어 사용자가 제어하는 장치도 있지만 외부와 통신라인으로만 연결하여 원격으로 제어하는 장비에는 통신이라는 요소가 정말 중요합니다.
그리고 통신을 하기 위한 다양한 산업용 프로토콜이 있습니다.
정말 다양한 프로코톨을 익힐 수록 도움이 많이 되는것 같습니다. 장비와 통신을 해야 하는데 산업용 프로코톨은 쉽게 접해보지 않다보니 처음에 많이 힘들 수 있습니다.

이번 포스팅은 네트워크 프로그램을 다룬다면 필수 요소인 TCP/IP를 C#으로 구현해보겠습니다.
 
일단 통신 프로그램을 작성하고자 한다면 OSI 7계층은 익숙해져야 합니다.
https://namu.wiki/w/OSI%20%EB%AA%A8%ED%98%95?from=OSI

OSI 모형

Open Systems Interconnection Reference Model 국제표준화기구 (ISO)에서 개발한

namu.wiki

 

위의 내용을 암기보다는 이해를 하셔야 합니다.
통신을 하기위한 각단계를 나눠서 각 단계에서 어떤 일이 일어나느지, 그리고 좌측에 보시면 Data앞에 한단계 내려갈때마다 앞에 하나씩 추가를 하였는데 내가 "야호"라는 데이터를 만들어 보내면 응용계층에서는 "야호"의 데이타가 표현계층으로 내려갈때 만약 FTP라고 하면 [FTP + "야호"] 와 같이 앞에 전계층의 내용을 헤더에 추가하면서 최종 물리계층으로 나가는 데이타가 나의 PC에서 나가는 데이타가 됩니다.
이 데이타가 네트워크 상에 떠돌다가 정확히 맞는 수신단을 찾아 수신단의 각 계층을 통과하면서 최종 응용프로그램에 표시가 되는 것입니다.
 
http://www.ktword.co.kr/test/view/view.php?m_temp1=1859&id=425

IPv4 헤더

  IPv4 Header   IPv4 헤더(2021-03-20)

www.ktword.co.kr

 
코드를 작성하고 테스트 하다보면 위의 여러가지 상황에 부딪치게 될텐데 위의 내용을 잘 숙지하면 어디서 부터 확인을 해야하는지 감을 잡으실 수 있을것입니다.
 
그리고 네트워크 프로그램 작성시 저는 Wireshark 쓰는것을 좋아합니다.
https://www.wireshark.org/download.html

Wireshark · Download

Wireshark: The world's most popular network protocol analyzer

www.wireshark.org

네트워크 카드의 버퍼를 모니터링해주는 프로그램인데 정말 많은 도움을 받고 있습니다.
PCAP API 호출을 하면 WireShark의 기능을 쓸 수 있는데 신기하고 재미있습니다.
아시는 분들은 잘 쓰고 계실것이고 모르시는 분들을 관심을 가지고 보시면 도움이 될것 같습니다.
 
이번 포스팅은 주로 사전 정보를 전달하는 내용이 되었네요.

여기까지 읽어주셔서 감사합니다.

반응형

'개발' 카테고리의 다른 글

.Net Conf 2024 @BMW 다녀왔습니다~  (103) 2024.11.28
C#으로 하는 Thread  (116) 2024.11.23
ASP.net core SignalR 해보면서  (47) 2024.11.21
C# 으로 하는 RS-232 -2-  (95) 2024.11.20
C#으로 하는 RS-232 -1-  (92) 2024.11.19