본문 바로가기
Programming/C#

C# 18 : 네트워크 프로그래밍1

by 공부합시다홍아 2020. 6. 17.

네트워크

네트워크는 그물에서 파생된 단어로 어떤 물건이나 사람 등의 상호 연결되어 있는 체계를 말한다. 

보통 우리가 이야기하는 네트워크는 컴퓨터들이 상호 연결되어 있는 "컴퓨터 통신 네트워크"입니다. 

 

TCP/IP 스택

컴퓨터끼리 네트워크에서 데이터를 주고받기 위해서는 그 네트워크에서 통용되는 프로토콜을 따라야한다. 

프로토콜은 규약, 규칙이라는 뜻의 낱말로, 여기에서는 컴퓨터들이 네트워크를 통해 데이터를 주고받기 위한 "통신 규약"을 말한다. 

인터넷은 분명히 전 세계에서 가장 거대한 네트워크이긴 하지만, 유일한 네트워크는 아니다. 이 말은 즉, 인터넷 외에도 다양한 통신 네트워크가 존재한다는 뜻이다.

 

TCP/IP

  • 사실상 표준 프로토콜, 인터넷에서 데이터를 주고받는 데 필요한 일련의 프로토콜 모음이다.

  • TCP/IP는 크게 네 개의 계층으로 구성되어 있고, 한 계층 위에 다른 계층이 포개어져 있는 형태 때문에 이것을 "TCP/IP 스택"이라 한다.

 

링크 계층 ( Link Protocol )

TCP/IP는 네트워크의 물리적인 구성으로부터 독립적인 프로토콜이다. 컴퓨터가 네트워크에 전화선의 모뎀으로 연결되어 있든, LAN에 이더넷 케이블로 연결되어 있든, 혹은 WI-FI에 연결되어 있든 간에 전혀 신경 쓰지 않는다.

-> 이것은 링크 계층에서 네트워크의 물리적인 연결 매체를 통해 패킷을 주고받는 작업을 담당해주기 때문에 가능한 일이다.

 

인터넷 계층 ( Internet Protocol )

인터넷 계층은 패킷을 수신해야할 상대의 주소를 지정하고, 나가는 패킷에 대해서는 적잘한 크기로 분할하며 들어오는 패킷에 대해서는 재조립을 수행한다. 

이 계층에서 사용하는 프로토콜이 '인터넷 프로토콜 ( IP, Internet Protocol )이다. 

 

전송 계층 ( Transport Later )

패킷의 운송을 담당하는 프로토콜들이 정의 되어 있다. 그 중에서도 전송 제어 프로토콜(TCP, Transmission Control Protocol)은 송신측과 수신측 간의 연결성을 제공하며, 신뢰할 수 있는 패킷 전송 서비스를 제공하낟. 여러 개의 패킷을 송신하는 경우 패킷사이의 순서를 보장하며, 패킷이 유실되기라도 하면 재전송을 해준다. 

TCP/IP 프로토콜에서 TCP가 바로 이 프로토콜을 가리키는 것이다. TCP는 IP가 제공하지 않는 " 연결성, 신뢰성"을 제공한다. 

웹 문서를 전달하는 기능을 하는 HTTP를 비롯한 수 많은 응용 프로토콜들이 바로 이 TCP/IP 프로토콜 위에서 동작한다. 

 

애플리케이션 계층 ( Application Layer )

각 응용 프로그램 나름의 프로토콜들이 정의되는 곳이다. 

  • 웹문서를 주고받기 위한 HTTP(Hyper Text Transfer Protocol)

  • 파일 교환을 위한 FTP ( File Transfer Protocol )

  • 네트워크 관리를 위한 SNMP ( Simple Network Management Protocol )

위 프로토콜들을 포함한 추가적인 프로토콜들이 애플리케이션 계층에서 정의된 프로토콜의 대표적인 예이다. 

애플리케이션 계층의 프로토콜들은 전송 꼐층의 프로토콜 중 TCP에 기반할 수도 있고, UDP에 기반할 수도 있습니다. 

 

포트 ( Port )

컴퓨터는 네트워크 패킷의 출입을 위해 주소 뿐만 아니라 출입문이 필요하다. 이 출입문을 일컬어 포트(Port)라고 부릅니다. 

Port란 컴퓨터 네트워크에서 패킷이 드나드는 출입구를 뜻합니다.  포트는 부호가 없는 16비트 정수로 0~65535사이의 값을 이용한다. 

HTTP 나 FTP, Telnet과 같은 표준 프로토콜이 사용하고 있는 포트 번호는 전 세계적으로 합의된 값이다. 이러한 포트 번호를 일컬어 "잘 알려진 포트 번호"라 부릅니다.

  • HTTP : 80번

  • HTTPS : 443번

  • FTP : 21QJS

  • Telnet : 23qjs

  • SMTP : 25번

  • IRC : 194번

  • IIOP : 535번

 

서버와 클라이언트 정보 전송 과정 

서버 생성

클라이언트 생성

 

서버와 클라이언트 응답과정

1. 서버를 먼저 실행

2. 서버 실행 후 "서버 시작"이 출력된 이후 클라이언트 소스를 실행

3. 클라이언트에 수신된 정보 출력

4. 서버에 재수신된 정보 출력

728x90

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

c# 17 : Thread(스레드)  (0) 2020.06.17
C# 16 : File(파일)  (0) 2020.06.17
c# 15 : 리플랙션  (0) 2020.06.15
C# 14 : 람다식  (0) 2020.06.15
C#_13 : WinForm으로 만드는 사용자 인터페이스1  (0) 2020.06.12