C#

C# 네트워크 프로그래밍

네트워크 프로그래밍은 그 범위를 상당히 넓은데, 이 섹션에서는 .NET에 기반한 TCP/IP와 UDP 프로그래밍을 중점적으로 다룬다.

네트워크 모델

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

OSI 7 Layer 모델은 네트워킹의 기능을 아래와 같이 7가지로 분류하는데, 각 Layer는 자신의 고유한 기능이 있다. 이 중 몇가지만 살펴보면, Layer 1은 와이어 레벨의 데이타를 다루는 것으로 예를 들어 전기 와이어에서 몇 볼트까지는 0 이고 그 이상은 1인지 등을 다루는 레벨이다. Layer 3는 라우팅과 트래픽 컨트롤을 위한 계층으로 호스트 주소를 가리키는 IP나 ARP, ICMP 등이 있는 Layer이다. Layer 4는 메시지 세그먼트와 트래픽 제어와 관련된 계층으로 TCP와 UDP 등이 있는 Layer이다. Layer 7은 Application 계층으로 웹 프로토콜인 HTTP, 파일전송을 위한 FTP, 메일전송을 위한 SMTP 그리고 DNS 등이 이 Layer에 있다.

TCP/IP 모델은 OSI Layer 모델에 비해 단순한 모델로서 4개의 계층으로 구성되어 있으며, 최근의 거의 모든 네트워킹이 IP를 사용하고 있다는 점에서 실제 네트워크 구현에 보다 근접한 모델이다. Layer 1은 Network Access Layer 혹은 Link Layer라고 불리우는데, 물리적인 네트워킹을 담당하는 계층이다. Layer 2는 OSI 의 Layer 3와 같은 것으로 IP 주소를 통한 호스트 라우팅을 담당하는 계층이다. Layer 3는 OSI 의 Layer 4와 같은 것으로 TCP/UDP 를 통해 호스트 내 특정 포트에 접속하게 하는 계층이다. IP 계층이 특정 호스트(머신)까지 찾아가는 것을 담당한다면, TCP//UDP 계층은 그 머신의 어떤 포트에 접속해야 하는지를 결정하는데 이를 통해 실제 양쪽 프로그램 간 통신이 가능하게 되므로 이를 End-to-End Transport 프로토콜이라 한다. Layer 4은 TCP/UDP 상에 구현되는 응용 계층을 담당하는 Layer로 NetBIOS, Named Pipes, MIME, SSL/TLS, HTTP, FTP, SMTP, DNS 등 여러가지 응용 프로토콜들이 이 계층에 속한다.

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

카테고리 C# 네트워크 프로그래밍
WinSock과 .NET
TCP 네트워크
UDP 네트워크
Socket 프로그래밍
활용 및 예제
본 웹사이트는 광고를 포함하고 있습니다. 광고 클릭에서 발생하는 수익금은 모두 웹사이트 서버의 유지 및 관리, 그리고 기술 콘텐츠 향상을 위해 쓰여집니다.

Previous Next Print