Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode]

Similar documents
Microsoft PowerPoint - Supplement-02-Socket Overview.ppt [호환 모드]

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

The Pocket Guide to TCP/IP Sockets: C Version

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

The Pocket Guide to TCP/IP Sockets: C Version

슬라이드 1

2009년 상반기 사업계획

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

제1장 Unix란 무엇인가?

본 강의에 들어가기 전

The OSI Model

본 강의에 들어가기 전

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 13 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 2.ppt

슬라이드 1

제1장 Unix란 무엇인가?

Microsoft PowerPoint - 12 ¼ÒÄÏÀ» ÀÌ¿ëÇÑ Åë½Å 1.ppt

The Pocket Guide to TCP/IP Sockets: C Version

Chapter 4 UDP 소켓 사용법

Microsoft PowerPoint - 03-TCP Programming.ppt

Microsoft PowerPoint - 04-UDP Programming.ppt

제12장 파일 입출력

vi 사용법

<4D F736F F D2031C0E52DB3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D6C0C720C0CCC7D8>

OSI 참조 모델과 TCP/IP

PowerPoint 프레젠테이션

Microsoft PowerPoint APUE(File InO).pptx

Microsoft PowerPoint - ch09_파이프 [호환 모드]

2009년 상반기 사업계획

Microsoft PowerPoint - Lecture_Note_7.ppt [Compatibility Mode]

제1장 Unix란 무엇인가?

Microsoft PowerPoint APUE(Intro).ppt

이도경, 최덕재 Dokyeong Lee, Deokjai Choi 1. 서론

bn2019_2

Microsoft PowerPoint PythonGUI-socket

RHEV 2.2 인증서 만료 확인 및 갱신

슬라이드 1

2. 인터네트워킹 서로떨어져있는각각의수많은네트워크들을연결하여하나의네트워크처럼연결하여사용할수있도록해주는것 3. 인터네트워킹에필요한장비 1 리피터 (Repeater) - 데이터가전송되는동안케이블에서신호의손실인감쇄 (Attenuation) 현상이발생하는데, 리피터는감쇄되는신

슬라이드 1

Microsoft PowerPoint APUE(File InO).ppt

Network seminar.key

Microsoft PowerPoint APUE(File InO)

Microsoft Word - src.doc

게시판 스팸 실시간 차단 시스템

PowerPoint 프레젠테이션

Microsoft Word - Network Programming_NewVersion_01_.docx

API 매뉴얼

À©µµ³×Æ®¿÷ÇÁ·Î±×·¡¹Ö4Àå_ÃÖÁ¾

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap2

슬라이드 1

자바-11장N'1-502

Microsoft PowerPoint - 15-EmbedSW-10-Socket

untitled

1217 WebTrafMon II

SMB_ICMP_UDP(huichang).PDF

[ 네트워크 1] 3 주차 1 차시. IPv4 주소클래스 3 주차 1 차시 IPv4 주소클래스 학습목표 1. IP 헤더필드의구성을파악하고요약하여설명할수있다. 2. Subnet ID 및 Subnet Mask 를설명할수있고, 각클래스의사용가능한호스트수와사설 IP 주소및네트

Microsoft Word doc

The Pocket Guide to TCP/IP Sockets: C Version

PowerPoint 프레젠테이션

Microsoft PowerPoint _TCP_IP

PowerPoint 프레젠테이션

제1장 Unix란 무엇인가?

TTA Journal No.157_서체변경.indd

TCP.IP.ppt

로봇SW교육원 강의자료

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

<4D F736F F F696E74202D FB8DEB8F0B8AE20B8C5C7CE205BC8A3C8AF20B8F0B5E55D>

PowerPoint 프레젠테이션

6주차.key

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

The Pocket Guide to TCP/IP Sockets: C Version

2009년 상반기 사업계획

전송계층프로토콜 TCP(Transmission Control Protocol) 전송계층에서동작하는연결지향형 (connectionoriented) 프로토콜 데이터의흐름을관리하고, 데이터가정확한지검증하며통신 쓰리웨이핸드셰이킹 (three-way handshaking) 을통

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

HLS(HTTP Live Streaming) 이용가이드 1. HLS 소개 Apple iphone, ipad, ipod의운영체제인 ios에서사용하는표준 HTTP 기반스트리밍프로토콜입니다. 2. HLS 지원대상 - 디바이스 : iphone/ipad/ipod - 운영체제 :

PCServerMgmt7

Microsoft PowerPoint - 06-IPAddress [호환 모드]

<4D F736F F F696E74202D20B3D7C6AEBFF6C5A9C7C1B7CEB1D7B7A1B9D65F FBCD2C4CF5FC3A4C6C35FBFA1C4DA2E BC8A3C8A

Sena Device Server Serial/IP TM Version

서비스) 와서버( 관리대상서버) 간에자격증명을사용하여서로의 ID 를확인하고서로주고받는데이터를검사하고암호화하는프로세스 이다. 높은인증수준은일반적으로성능의저하를가져올수있지만높은 수준의보안과데이터무결성을제공한다. 기본값 - 관리대상서버에설정되어있는 DCOM 인증수준기본 값을

1장. 유닉스 시스템 프로그래밍 개요

Network Programming

Chapter #01 Subject

1. What is AX1 AX1 Program은 WIZnet 사의 Hardwired TCP/IP Chip인 iinchip 들의성능평가및 Test를위해제작된 Windows 기반의 PC Program이다. AX1은 Internet을통해 iinchip Evaluation

Microsoft Word - NAT_1_.doc


<4D F736F F F696E74202D FC6C4C0CF20C0D4C3E2B7C2205BC8A3C8AF20B8F0B5E55D>

임베디드시스템설계강의자료 6 system call 1/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

금오공대 컴퓨터공학전공 강의자료

Microsoft PowerPoint - 09-CE-23-윈도우 소켓

Microsoft PowerPoint - 10Àå.ppt

Microsoft PowerPoint - chap13-입출력라이브러리.pptx

Microsoft Word - release note-VRRP_Korean.doc

슬라이드 1

Windows 8에서 BioStar 1 설치하기

Microsoft PowerPoint - tem_5

운영체제실습_명령어

Transcription:

Understanding of Socket and File I/O Department of Computer Engineering Kyung Hee University. Choong Seon Hong 1

컴퓨터통신프로토콜 컴퓨터통신프로토콜데이터를원활이주고받을수있도록정한약속컴퓨터네트워크프로토콜 통신장비는서로간의통신방법이미리정의되어있어야함 같은통신프로토콜을지원하는장비간에만통신이가능컴퓨터통신은네트워크형태로운영 컴퓨터네트워크프로토콜이라부름 2

통신프로토콜의특징 통신프로토콜 효율적, 안정적 으로통신할수있도록미리정한약속 사용자 사용자 통신장비 통신프로토콜 효율성, 안정성, 표준화 통신장비 효율적 주어진통신채널을최대로이용할수있어야한다. 안정적 비정상적인장애발생시에도안정되게동작해야한다. 표준화 널리사용되기위해서는미리표준화되어야한다. 3

인터넷과서브네트워크 인터넷을이용한두호스트사이의통신인터넷을이용하기위해 TCP/IP 프로토콜이설치되어있어야함호스트는라우터들을경유하여서로연결호스트 인터넷에물리적으로접속하기위해네트워크액세스프로토콜이필요함 네트워크액세스프로토콜 : IP 계층이서브네트워크이용을위한프로토콜서브네트워크 이더넷, 패킷교환망, DSL, ATM 등데이터를실제로전달해주는네트워크 응용계층 네트워크서비스 응용계층 TCP, UDP IP 네트워크액세스계층 인터넷 네트워크액세스프로토콜 종점간트랜스포트계층서비스 라우터 IP 서브네트워크 라우팅 라우터 IP 서브네트워크 TCP, UDP IP 네트워크액세스계층 네트워크액세스프로토콜 4

네트워크프로그래밍계층별분류 응용계층프로그래밍 트랜스포트계층프로그래밍 디바이스드라이버계층프로그래밍 응용계층 응용계층프로그래밍 TCP/IP 네트워크디바이스 소켓프로그래밍 디바이스드라이버프로그래밍 LAN 5

응용계층프로그래밍 네트워크응용패키지, TCP/IP 응용프로토콜을이용 데이터의송수신을구체적으로다루지않음유닉스의 rsh, rcp RPC http 장점복잡한네트워크서비스를편리하게구현할수있음 단점하위계층의구체적인동작을직접제어할수없음 6

트랜스포트계층프로그래밍 TCP나 UDP와같은트랜스포트계층의기능을직접이용 데이터그램단위의데이터송수신처리 TCP를이용할경우연결설정, 흐름제어, 에러제어가가능 대표적인 API (Application Program Interface) UNIX BSD socket, winsock 인터넷응용프로그래밍의기초 7

디바이스드라이버계층프로그래밍 OSI 계층 2 이하의인터페이스를직접다루는프로그래밍예 ) Microsoft 사의 NDIS (Network Driver Interface Specification) API Windows 에서이더넷프레임의송수신을직접처리 프레임단위의송수신을구체적으로제어, 네트워크상태모니터링등 LAN 카드개발시테스트프로그램작성에사용 프레임을송수신하는기능만을이용흐름제어, 에러제어, 인터넷주소관리등의기능은별도로구현해야함 8

클라이언트 - 서버모델 대부분의네트워크프로그램의구현모델 서버와클라이언트서버 : 서비스를제공하는장비클라이언트 : 서비스를이용하는장비 서버일반적으로클라이언트보다구현이복잡 클라이언트의인증 정보보호 동시서비스 안정성 9

2-tier 클라이언트 - 서버모델 클라이언트 서비스요청 (request) 서비스응답 (response) 서버 대부분의통신프로그램웹 (http), ftp, telnet, mail 단점서버에서의병목현상클라이언트의증가는서버에트래픽집중과처리용량부족현상발생 10

3-tier 클라이언트서버모델 클라이언트 요청 (request) 응용서버 데이터 데이터서버 응답 (response) 2-tier 클라이언트-서버모델의문제점을개선한구조 응용서버 와 데이터서버 로구분클라이언트는응용서버에서비스를요청응용서버는데이터서버로부터데이터를얻어클라이언트에응답 장점클라이언트는데이터서버의정보가필요없음클라이언트가같은요청을동시에하면응용서버는이를한번만처리 데이터서버의통신부담저하 11

n-tier 클라이언트 - 서버모델 응용서버 1 클라이언트 응용서버 2 데이터서버 응용서버 N 3-tier 모델을확장 여러버전의응용서버가존재기본동작은 3-tier 모델과같지만응용서버가여러형태로구현 장점클라이언트가필요에따라다른응용서버를선택할수있음서비스제공도중새로운응용서버추가가가능서비스의다양성, 확장성, 버전관리 ( 업그레이드 ) 12

P2P 모델 서버, 클라이언트의역할이미리정해지지않음 경우에따라서버또는클라이언트가될수있음 내부적으로는클라이언트 - 서버모델로동작 참가자가필요한시기에서버와클라이언트의역할을수행 순수 P2P 모델 참가자들이동등한자격으로정보를이용하는모델정보검색을위해주변의참가자에게문의 ( 요청 ) 요청은정보를찾을때까지인접한참가자에게계속전파특징 동작이단순, 비효율적 하이브리드형 P2P 모델 순수 P2P 모델을개선한방식인덱스서버가존재 정보검색을위해인덱스서버에게문의 ( 요청 ) 인덱스서버는요청한정보를가지고있는참가자의주소를반환 13

서버구현기술 서버의구현방식이네트워크성능에중요한영향을줌 서버구현기술연결형과비연결형서버 iterative와 concurrent 서버 14

연결형과비연결형서버 연결형서비스 종점간연결설정 / 해제, 데이터송수신등세단계의절차를거침주로 TCP를이용하여작성데이터의안정적인전달을보장 TCP 프로토콜, telnet, ftp 등각클라이언트마다연결을개설 클라이언트수가증가하면서버에부담이클수있음 비연결형서비스 종점간연결설정 / 해제작업없이바로데이터를주고받는방식주로 UDP를이용하여작성안정적인데이터전달을보장하지않으므로응용프로그램에서처리클라이언트마다연결을설정할필요가없음 서버의부담이적음 ( 메모리사용등 ) 방송형, 멀티캐스팅형서비스에적합 15

Iterative 와 Concurrent 서버 Iterative 서버클라이언트의요청을순서대로처리클라이언트의요청이짧은시간에처리할수있는경우에적합 Concurrent 서버보다구현이간단함 Concurrent 서버클라이언트의요청을동시에처리다중처리기능이필요 예 ) 멀티프로세스에의한다중처리 새로운클라이언트접속시이클라이언트를담당하는프로세스생성 클라이언트의증가에따라프로세스수도증가 다중화이용 여러작업을동시에처리하는기능 각서비스처리시간이불규칙적이거나길때필요 16

네트워크프로그램영역 네트워크프로그램의구현영역에따른분류컴퓨터사이의데이터통신 (data communication) TCP/IP 등의통신프로토콜을이용한패킷송수신컴퓨터내의데이터처리 (data processing) 파일입출력, 데이터베이스액세스, 캐싱, 멀티미디어신호처리등컴퓨터내의프로세스간통신 (inter-process communication) 멀티프로세스, 멀티스레드 프로세스작업분담기술등 17

소켓정의 TCP나 UDP와같은트랜스포트계층을이용하는 API 1982년 BSD 유닉스 4.1에서소개모든유닉스운영체제에서제공 Windows는 Winsock으로제공 Java는 Network 관련클래스제공 5-7 응용 1 응용 2 응용 3 소켓 1 소켓 2 소켓 3 소켓인터페이스 4 3 2 1 TCP/IP 네트워크드라이버 18

소켓번호 유닉스는모든파일, 장치등을파일로취급파일디스크립터, 키보드, 모니터, 하드웨어장치, 소켓등 소켓디스크립터소켓을개설하여얻는파일디스크립터 데이터를송수신할때사용 파일또는소켓정보구조체 디스크립터테이블 3 pointer 4 pointer 5 pointer ( 파일 ) ( 파일 ) ( 소켓 ) family : PF_INET service : SOCK_STREAM local IP local port remote IP remote port 19

소켓번호 응용프로그램과소켓그리고 TCP/IP 의관계 20

소켓의생성 소켓은 TCP/IP 만을위해정의된것은아님 TCP/IP, 유닉스네트워크, XEROX 네트워크등에서사용가능 따라서, 소켓개설시프로토콜체계를지정해야함 #include <sys/types.h> #include <sys/socket.h> int socket ( int domain, int type, int protocol); 지정할수있는프로토콜체계의종류 // 프로토콜체계 // 서비스타입 // 소켓에사용할프로토콜 PF_INET PF_INET6 PF_UNIX PF_NS PF_PACKET // 인터넷프로토콜체계 // IPv6 프로토콜체계 // 유닉스방식의프로토콜체계 // XEROX 네트워크시스템의프로토콜체계 // 리눅스에서패킷캡쳐를위해사용 서비스타입 SOCK_STREAM SOCK_DGRAM SOCK_RAW // TCP 소켓 // UDP 소켓 // RAW 소켓 21

소켓사용절차 TCP ( 연결형 ) 소켓프로그래밍절차 서버클라이언트 socket() socket() bind() listen() 연결요청 connect() accept() send() recv() 데이터송수신 종료 recv() send() close() 22

소켓사용절차 UDP ( 비연결형 ) 소켓프로그래밍절차 TCP와달리일대일통신에만사용되지않음비연결형소켓 Connect() 시스템콜을사용할필요가없음 소켓개설후바로상대방과데이터를송수신 서버 socket() 클라이언트 socket() bind() recvfrom() sendto() 데이터송수신 sendto() recvfrom() 종료 close() 23

Hello World! 서버 / 클라이언트 프로그램예제 helloworld_server.c, helloworld_client.c 실행하기포트번호는 123+ 각자아이디 Ex) ID : 25 = 12325 24

파일의조작 25

저수준파일입출력 (Low-Level File Access) 리눅스혹은윈도우즈자체에서제공해주는파일입출력함수를사용하여파일을관리 ( 파일의생성및삭제, 데이터입력및출력 ) 하는것을의미함. 리눅스에서는모든것을파일로관리한다. 파일, 소켓, 표준입력, 표준출력. 파일에파일디스크립터를할당해서관리 ( 파일디스크립터는정수 ) 26

파일디스크립터 (File Descriptor) 파일을관리하기위해서모든파일 ( 파일, 소켓표준입력, 표준출력 ) 에파일디스크립터를할당해준다. 파일디스크립터 대 상 0 표준입력 1 표준출력 2 표준에러출력 Program 5 7 Operating System 파일 A 소켓 B 소켓 C 파일 D 27

#include <fcntl.h> #include <sys/types.h> #include <sys/stat.h> int open(const char *path, int flag); File open 및 close 성공시파일디스크립터, 실패시 -1 리턴 path : 파일의경로를포함한이름을나타내는문자열의포인터 flag : 파일오픈모드 MODE 의미 O_CREAT O_TRUNC O_APPEND O_RDONLY O_WRONLY O_RDWR 필요한경우파일을생성존재하던데이터를모두삭제존재하던데이터보존하고뒤에이어서저장읽기전용모드로파일을오픈쓰기전용모드로파일을오픈읽기쓰기겸용모드로파일을오픈 #include <unistd.h> int close(int fildes); 성공시 0, 실패시 -1 리턴 Fildes : 닫아줄파일의파일디스크립터 28

Data read & write #include <unistd.h> ssize_t write(int fildes, const void * buf, size_t nbytes); 성공시전달한바이트수, 실패시 -1 리턴 fildes : 데이터전송영역을나타내는파일디스크립터 buf : 전송할데이터를가지고있는버퍼의포인터 nbytes : 전송할데이터의바이트수 #include <unistd.h> ssize_t read(int fildes, void *buf, size_t nbytes); 성공시수신한바이트수 ( 단, EOF 만나면 0), 실패시 -1 리턴 fildes : 데이터를전송해주는대상을가리키는파일디스크립터 buf : 수신한데이터를저장할버퍼를가리키는포인터 nbytes : 수신할최대바이트수 29

예제 확인 프로그램 예제 low_open.c, low_read.c, fd_seri.c 실행하기 30