본문 바로가기

C#

[C#] 네트워크 프로그래밍

.NET에 기반한 TCP/IP와 UDP 프로그래밍을 중점적으로 다룸

 

네트워크 모델

네트워크의 세부 기능들을 매우 복잡하고 다양하기 때문에, 이를 체계적으로 분류한 개념적인 모델을 만들었는데 이를 네트워크 모델이라 한다. 테크워크 모델중 가장 대표적인 모델은 2가지인데, 전통적인 네트워크 모델인 OSI 7 Layer 모델과 OSI Layer를 단순화한 TCP/IP 모델이 있다. 네트워크 모델은 각 Layer가 해야하는 역할을 구분하고 있는데 비유하자면 상품을 주문받아 고객에게 발송하는데, 주문받는 사람 따로 있고, 주문 내용대로 박스에 넣는 사람 따로 있고, 고객 주소 레이블 붙이는 사람 따로 있고, 박스에 적힌 주소대로 배달만 하는 사람 따로 있는 것과 비슷한 구조

 

OSI 7 Layer 모델은 네트워킹의 기능을 7가지로 분류. 각 Layer는 자신의 고유한 기능이 있음. 

Layer 1 와이어 레벨의 데이터를 다루는 것. 예를 들어 전기 와이어에서 몇 볼트까지는 0이고 그 이상은 1인지 등을 다룸

Network Access Layer 혹은 Link Layer라고 불리우는데, 물리적인 네트워킹을 담당하는 계층

Layer 2 OSI의 Layer 3와 같은 것. IP주소를 통한 호스트 라우팅을 담당하는 계층

Layer 3 라우팅과 트래픽 컨트롤을 위한 계층. 호스트 주소를 가리키는 IP나 ARP, ICMP 등이 있음

OSI의 Layer 4와 같은 것. TCP/UDP를 통해 호스트 내 특정 포트에 접속하게 하는 계층. IP계층이 특정 호스트(머신)까지 찾아가는 것을 담당한다면, TCP//UDP 계층은 그 머신의 어떤 포트에 접속해야 하는지를 결정하는데 이를 통해 실제 양쪽 프로그램 간 통신이 가능하게 되므로 이를 End-to-End Transport 프로토콜이라 함

Layer 4 메시지 세그먼트와 트래픽 제어와 관련된 계층으로 TCP와 UDP 등이 있는 Layer

TCP/UDP 상에 구현되는 응용 계층을 담당하는 Layer. NetBIOS, Named Pipes, MIME, SSL/TLS, HTTP, FTP, SMTP, DNS 등 여러가지 응용 프로토콜들이 이 계층에 속함

Layer 7 Application 계층으로 웹 프로토콜인 HTTP, 파일전송을 위한 FTP, 메일전송을 위한 SMTP 그리고 DNS 등이 이 Layer에 있음

 

TCP/IP 모델 - OSI Layer 모델에 비해 단순한 모델로서 4개의 계층으로 구성되어 있음. 최근 거의 모든 네트워킹이 IP를 사용하고 있다는 점에서 실제 네트워크 구현에 보다 근접한 모델

 

C#에서 네트워크 프로그래밍을 수행하는 주요 기법들 소개

카테고리 C# 네트워크 프로그래밍
WinSock과 .NET - WinSock과 .NET 네트워크 클래스
- IP주소와 호스트명
TCP 네트워크 - TCP 클라이언트
- TCP 서버
- 비동기 TCP 서버
UDP 네트워크 - UDP 클라이언트
- UDP 서버
Socket 프로그래밍 - Socket 클라이언트
- Socket 서버
- 비동기 Socket 서버
활용 및 예제 - 멀티캐스트 송수신
- TCP 화면 전송 예제

 

출처) 예제로 배우는 C# 프로그래밍

'C#' 카테고리의 다른 글

[C#] Socket 클라이언트  (0) 2024.06.24
[C#] TCP 포트 사용중인지 체크  (0) 2024.06.24
[C#] 비동기 TCP 서버  (0) 2024.06.24
[C#] TCP 화면 전송 예제  (0) 2024.06.24
[C#] TCP 클라이언트 클래스와 사용법  (0) 2024.06.24