(시스템 프로그래밍) 13-1 네트워크 프로그래밍의 개념

업데이트:
1 분 소요

시스템 프로그래밍 - 네트워크 프로그래밍의 개념

1. 클라이언트/ 서버

1) 서버

  • 파일 이름을 받아 해당 파일을 찾아 그 내용을 보내주는 서비스
  • 명령줄 인수로 포트 번호를 받아 해당 소켓을 만듦
  • 이 소켓을 통해 클라이언트로부터 파일 이름을 받아 해당 파일을 열고 그 내용을 이 소켓을 통해 클라이언트에게 보냄
  • 데몬 : 클라이언트 요청에 따라 다양한 서비스를 제공하는 서버 프로그램

2) 클라이언트

  • 명령줄 인수로 연결할 서버의 이름과 포트 번호를 받아 해당 서버에 소켓 연결을 함
  • 이 연결을 통해 서버에 원하는 파일 이름을 보낸 후
  • 서버로부터 해당 파일 내용을 받아 사용자에게 출력

3) daeon

(1) 종류

(1-1) 반복 서버
  • 데몬 프로세스가 직접 클라이언트의 요청을 처리하는 형태의 서버
(1-2) 동시 동작 서버
  • 데몬 프로세스가 직접 처리하지 않음
  • 서비스와 관련 있는 다른 프로세스를 fork() 함수를 생성한 후 이 프로세스가 클라이언트와 연결해 서비스를 제공하는 서버
  • inetd데몬

2. TCP/ UDP

1) TCP (Transmission Control Protocol)

  • 연결형 서비스를 지원하는 전송계픙 프로토콜
  • 인터넷 환경에서 기본으로 사용
  • 호스트간 신뢰성 있는 데이터 전달과 흐름제어 및 혼잡제어 등을 제공하는 전송 계층
  • 가상 회전 연결 방식, 연결형 서비스를 제공

(1) 높은 신뢰성

  • Sequence Number, Ack Number를 통한 신뢰성 보장

(2) 데이터 흐름제어 및 혼잡 제어

  • 수신자 버퍼 오버 플로어 방지
  • 네트워크 내 패킷 수가 과도하게 증가하는 현상 방지

(3) 전이중, 점대점 서비스

  • Full-Duplex
  • Point to Point 서비스

(4) 소켓 통신 과정

  • 서버 : 소켓을 생성, 주소 할당, 연결 요청 기다림, 요청에 대한 응답
  • 클라이언트 : 소켓을 생성, 주소 할당, 연결 요청

2) UDP (User Datagram Protocol)

  • 비연결형 서비스를 지원하는 전송계픙 프로토콜
  • 사용자 데이터그램형 프로토콜
  • 인터넷상에서 서로 정보를 주고받을 때 정보를 보낸다는 신호나 받는다는 신호 절차를 거치지 않고, 보내는 쪽에서
    일방적으로 데이터를 전달하는 통신 프로토콜
  • 보내는 쪽에서 받는 쪽이 데이터를 받았는지 받지 않았는지 확인할 수 없고, 또 확인할 필요도 없도록 만들어진 프로토콜

(1) 비연결형

  • port만 확인하여 소켓을 식별하고 송수신

(2) 패킷 오버헤드가 적어 네트워크 부하 감소

(3) 비신뢰성

(4) 오류 검출

  • 헤더에 오류 검출 필드를 포함하여 무결성 검사

(5) DNS, NFS, SNMP, RIP등 사용

(6) 소켓 통신 과정

  • 서버 : 소켓을 생성, 주소 할당, 데이터를 송수신
  • 클라이언트 : 소켓 생성 후 데이터 수신

3) TCP/ UDP 차이점

alt

4) 인터넷 소켓 통신을 이용하는 소프트웨어

  • 웹 브라우저
  • ftp
  • telnet
  • ssh

alt

댓글남기기