1 / 14

Delphi ( NetWork 관련 자료 조사 )

Delphi ( NetWork 관련 자료 조사 ). 작성자 : 최 영 일. 목 차. TCP/IP 란 무엇인가 ? TCP 와 UDP 의 차이점 윈속 (WinSock) 이란 무엇인가 ? 소켓의 I/O 모델 조사 (None Blocking, Blocking, 비동기 , 동기 , IOCP 등의 소켓 IO 모델 조사 ) 프로토콜은 무엇인가 ?. 1.TCP/IP 란 무엇인가 ?(1). TCP(Transmission Control Protocol) 큰 정보 블록을 여러 개의 세그먼트로 분리

Download Presentation

Delphi ( NetWork 관련 자료 조사 )

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Delphi( NetWork 관련 자료 조사 ) 작성자: 최 영 일

  2. 목 차 • TCP/IP 란 무엇인가? • TCP 와 UDP 의 차이점 • 윈속(WinSock)이란 무엇인가? • 소켓의 I/O 모델 조사 (None Blocking, Blocking, 비동기, 동기, IOCP 등의 소켓 IO 모델 조사) • 프로토콜은 무엇인가?

  3. 1.TCP/IP 란 무엇인가?(1) • TCP(Transmission Control Protocol) • 큰 정보 블록을 여러 개의 세그먼트로 분리 • 각 세그먼트를 순서에 맞게 번호 부여 • 세그먼트 전송 후 TCP 가상회선 세션으로부터 승인 응답 기다림 • 비정상적으로 수신된 세그먼트는 재전송 • TCP 특징 • 연결형 서비스 • 가상회선을 통한 ‘신뢰성’ 있고 ‘순서적’인 데이터 스트림 전달 • 포트 대 포트(port-to-port) 전송(프로세스간 통신지원) • 오류 검출 및 재전송, 흐름제어, 순서제어, 폭주제어기능포함

  4. 1.TCP/IP 란 무엇인가?(2) • IP(Internet Protocol) • 한 컴퓨터에서 다른 컴퓨터로 데이터를 보내는데 사용 되는 프로토콜, 인터넷상의 각 컴퓨터즉 호스트들은 다른 컴퓨터와 구별될 수 있도록 적어도 한 개 이상의 고유한 주소를 갖는다. • 특징 • 무결성 보장 않음 • 순서 보장 않음 • 비연결형 프로토콜 • 통신을 위해 양단간의 접속이 확립되지 않음 • 각 패킷들은 독립적인 단위로 취급 • 데이터 그램(Datagram) • 여러 조각으로 나누어진 패킷이 수신지에 도착할 때 각각 다른 경로를 통해 도착하는 방식 • 가상회선(Virtual Circuit) • 데이터를 송신하기 전에 경로가 네트워크를 통해 정의되고 그 경로를 통해 순서대로 도착하는 방식

  5. 2.TCP 와 UDP 의 차이점(1) • UDP(User DatagramProtocol) • 응용 프로세스의 데이터를 비신뢰적 이며 비순서적으로 전달 • 비연결형(connectionless) 전송계층 프로토콜 • 포트 대 포트(port-to-port) 전송(프로세스간 통신지원) • UDP의 특징 • UDP에는 포트번호를 사용하여 응용 프로그램 프로세스를 식별하기 위한 준비가 되어있다. • UDP는 연결을 열고, 유지하고 닫는 부담이 없어 비연결 지향적이다. • 동보전송과 다중전송 응용 프로그램에 능률적이다. • 데이터의 순서화가 없어서 데이터가 정확하게 전달된다고 보장할 수 없다. • UDP는 생략할 수 있는 데이터의 오류검사만 사용한다. • UDP는 TCP보다 빠르고 단순하고, 능률적이다.

  6. 2.TCP 와 UDP 의 차이점(2) • TCP (Transmission Control Protocol) • 연결 지향적이고 데이터 전송을 보장하는 프로토콜이다. 연결 지향적인 환경에서는 연결은 정보의 전달이 시작되기 전에 두 종단 사이에서 먼저 연결이 확립된다. TCP는 메시지들을 세그먼트로 나누고 목적지 스테이션에서 재조립하고, 수신되지 않은 것을 재전송하고, 세그먼트들을 재조립하여 메시지로 만드는 것에 대해서 책임지고 있다. TCP는 종단(End Station)간에 가상 회선을 제공한다. • 주로 FTP,HTTP,SMTP,DNS를 IP로 연결해 주는 역할이다. • 전화통화 • UDP (User Datagram Protocol) • 비연결형이고 ACK가 없는 프로토콜이다. UDP는 메시지를 전송하는 책임을 가지고 있지만 세그먼트 배달에 대해서 검사하는 기능이 이 계층에서는 제공되지 않는다. UDP는 데이터 전송을 보장하기 위해 상위 계층 프로토콜에 의존한다. • 주로 DNS,TFTP,SNMP,RIP를 IP로 연결해 주는 역할이다. • 우편배달 서비스

  7. (참고) OSI 7계층 데이터를 패킷 단위로 나누어서 보내는 역활을 하게 된다. 전송할 데이터의 주소 지정, 패키징, 라우팅을 책임진다. 프로토콜) IP, ICMP, IGMP, ARP

  8. 3.윈속(WinSock)이란 무엇인가? • WinSock • 마이크로소프트(Microsoft) 윈도우3.1 또는 윈도우95에서 제공하는 TCP/IP 프로그래밍을 위한 API(Application Program Interface)로서 사용방법 및 기본 동작이 UNIX의 BSD 소켓과 거의 같으며 BSD 소켓과 마찬가지로 클라이언트-서버 모델을 기초로 하여 이용된다. • 윈속의 사용방법과 문법이 BSD 소켓의 경우와 유사하기는 하지만 윈속과 BSD 소켓용으로 작성된 프로그램은 서로 호환성이 없으며 이 두 가지 소켓 응용 프로그램이 호환성을 갖기 위해서는 많은 부분을 수정하여야 한다.

  9. 4.소켓의 I/O 모델 조사(1) • 소켓의 I/O 모델이라 함은 소켓을 사용하여 데이터를 주고받는 실질적인 방법을 의미합니다. • 전체적으로는 6가지 정도의 방법이 있습니다. 블로킹 모델, 셀렉트 모델, WSAAsyncSelect 모델, WSAEventSelect 모델, Overlapped, Completion Port 모델입니다.

  10. 4.소켓의 I/O 모델 조사(2) • 블로킹모델(BlockingModel) • 소켓을 있는 그대로 사용하면 된다. • 쉽게 구현할 수 있고 이해도 쉽지만 실제로 여러 명의 사용자가 동시에 사용하는 서버 응용 프로그램을 구현하는 데는 크게 도움이 되지 못함. • 오히려 TM레드나 다수의 프로세스를 구성해야 하는 문제로 인하여 더욱 복잡하고 안정적이지 못한 구조를 가지게 될 수 있다. 따라서, 실제로 사용하는 과정에서는 다른 방법들을 활용하는 것이 좋다. • 셀렉트모델(SelectModel) – Non BlockingModel • 셀렉트모델의 가장 핵심은 select()함수를 사용. • select()함수는 UNIX소켓의 시초 중 하나로 현재 UNIX계열의 OS에서 가장 널리 사용되는 소켓인 버클리 소켓(Berkeley Socket)에서 사용하던 것. • 오래 전부터 사용 그만큼 단순하면서도 나름대로 막강한 능력을 발휘하여 온 것 또한 사실. 실제로 select()함수를 사용하는 것은 크게 어렵지 않다. • select()함수가 해주는 일은 기본적으로 소켓에 데이터가 존재하는지의 유무를 판단 데이터의 종류 응용 프로그램이 해당 데이터를 수신/송신 또는 처리가 가능한지를 확인할 수 있도록 해준다.

  11. 4.소켓의 I/O 모델 조사(3) • IOCP • IOCP(I/O Completion Port)는 어떤 I/O 핸들에 대해서, 블록 되지 않게 함으로 프로그램 대기시간을 줄이는 목적으로 사용된다. 우선 Overlapped IO(비동기 IO작업)의 개념이 기반이 된다. • IOCP는 이런 Overlapped IO가 실행이되고 알려주는 방법에 대한 것이다. 그리고 IOCP는 커널객체이다. 뮤텍스나 스레드와 같이 커널에서 제공을 한다. • 사용이점 • 사용자가 설정한 버퍼만을 사용하기 때문에 더 효율적으로 작동한다. (기존에는 OS버퍼, 사용자 버퍼로 따로 분리되는 개념이었다.) • IO요청에 대해서 효율적으로 접근한다. 디스크IO의 경우 디스크에 접근을 똑똑하게 한다 (순서대로가 아닌 효율적인 순서에 따라 접근하기도 한다.) • Raid나 여러개의 랜카드같은 Deviced-level Parallelism을 지원한다. 역시나 효율적으로 할 수 있다.

  12. 4.소켓의 I/O 모델 조사(4) • 비동기 • 비동기 모드는 non-blocking 모드에서처럼 block될 수 있었던 소켓 시스템 콜에 대해서 일단 리턴을 하고 시스템 콜의 해당 동작이 완료되면 비동기적으로(asynchronously) 그 결과를 응용 프로그램에게 알려주는 소켓의 동작 모드이다. • 동기 • 읽기 : Read Buffer가 비어 있을 경우 내용이 들어 올 때까지 Blocking • 쓰기 : Write Buffer가 꽉 차 있을 경우 Buffer가 비어 있을 때까지 Blocking 된다. • 접속 : 연결의 완전히 이루어 질 때까지 Blocking 된다. • Blocking : 프로그래밍에서 쉽게 말하자면 다음 작업을 실행하않는다.동기 소켓은 Blocking 상태일 경우 어떠한 작업도 실행하지 않는다. 이러한 단점을 보완하기 위해서 Thread를 이용하거나 이벤트를 이용할 수 있다.

  13. 5.프로토콜은 무엇인가? • 프로토콜 정의 • 정보기기 사이 즉 컴퓨터끼리 또는 컴퓨터와 단말기 사이 등에서 정보교환이 필요한 경우, 이를 원활하게 하기 위하여 정한 여러 가지 통신규칙과 방법에 대한 약속 즉, 통신의 규약을 의미한다. • 통신규약이라 함은 상호간의 접속이나 절단방식, 통신방식, 주고받을 자료의 형식, 오류검출방식, 코드변환방식, 전송속도 등에 대하여 정하는 것을 말한다. • 프로토콜 분류의 필요성 • 복잡한 네트워킹 기능을 모듈화 • 프로토콜 간의 관계 정립 가능 • 이종 프로토콜 집단간의 비교 가능

  14. The End 작성일: 2007년 10월 16일 작성자: 최 영 일

More Related