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

Similar documents
본 강의에 들어가기 전

Microsoft PowerPoint - Lecture_Note_5.ppt [Compatibility Mode]

본 강의에 들어가기 전

The Pocket Guide to TCP/IP Sockets: C Version

제1장 Unix란 무엇인가?

2009년 상반기 사업계획

슬라이드 1

Microsoft PowerPoint - Lecture_Note_2.ppt [Compatibility Mode]

Chapter 4 UDP 소켓 사용법

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

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 15-EmbedSW-10-Socket

The Pocket Guide to TCP/IP Sockets: C Version

<4D F736F F F696E74202D E20B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D62E >

<C0CCBCBCBFB52DC1A4B4EBBFF82DBCAEBBE7B3EDB9AE2D D382E687770>

Microsoft PowerPoint - 06-CompSys-16-Socket.ppt

슬라이드 1

PowerPoint 프레젠테이션

제1장 Unix란 무엇인가?

PowerPoint 프레젠테이션

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

Microsoft Word - KPMC-400,401 SW 사용 설명서

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

Microsoft PowerPoint C-구조체

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

본 강의에 들어가기 전

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

Microsoft Word - Network Programming_NewVersion_01_.docx

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to TCP/IP Sockets: C Version

The Pocket Guide to TCP/IP Sockets: C Version

Microsoft PowerPoint - 03-TCP Programming.ppt

PowerPoint 프레젠테이션

Microsoft PowerPoint - 04-UDP Programming.ppt

vi 사용법

bn2019_2

USB USB DV25 DV25 REC SRN-475S REC SRN-475S LAN POWER LAN POWER Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl C

Microsoft Word doc

TCP.IP.ppt

<43B7CE20BECBBEC6BAB8B4C220BCD2C4CFC7C1B7CEB1D7B7A1B9D62E687770>

PWR PWR HDD HDD USB USB Quick Network Setup Guide xdsl/cable Modem PC DVR 1~3 1.. DVR DVR IP xdsl Cable xdsl Cable PC PC DDNS (

1217 WebTrafMon II

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

<4D F736F F F696E74202D20B8AEB4AABDBA20BFC0B7F920C3B3B8AEC7CFB1E22E BC8A3C8AF20B8F0B5E55D>

6주차.key

SMB_ICMP_UDP(huichang).PDF

9장 윈도우 소켓 프로그래밍

자바-11장N'1-502

Microsoft PowerPoint - ch07 - 포인터 pm0415

The Pocket Guide to TCP/IP Sockets: C Version

목차 목차포트스캔코드포트스캔결과포트스캔탐지코드포트스캔탐지결과 참조

슬라이드 1

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

Sena Device Server Serial/IP TM Version

PowerPoint 프레젠테이션

Network Programming

Network seminar.key

PowerPoint 프레젠테이션

SYN flooding

Network Programming


<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

Subnet Address Internet Network G Network Network class B networ

10. 시스템 프로그래밍

BMP 파일 처리

IPv6 적용

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

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

Microsoft PowerPoint PythonGUI-socket

슬라이드 1

슬라이드 1

hd1300_k_v1r2_Final_.PDF

슬라이드 1

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

2-11Àå

운영체제실습_명령어

hd132x_k_v1r3_Final_.PDF

The OSI Model

KEY 디바이스 드라이버

PowerPoint 프레젠테이션

KNK_C_05_Pointers_Arrays_structures_summary_v02

제20회_해킹방지워크샵_(이재석)

Assign an IP Address and Access the Video Stream - Installation Guide

Microsoft PowerPoint UnixNetProg.ppt [호환 모드]

Microsoft PowerPoint - UnixNetProg.ppt [호환 모드]

Microsoft PowerPoint - 10Àå.ppt

chapter4

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

untitled

TTA Verified : HomeGateway :, : (NEtwork Testing Team)

목 차 1. 포트스캐닝 (Port Scanning) 이란? 2. 포트 (Port) 란? 3. 스캔 (Scan) 의종류 4. 포트스캐너 (Port Scanner) 구현 5. 포트스캔 (Port Scan) 구현 6. 참조

OSI 참조 모델과 TCP/IP

많이 이용하는 라면,햄버그,과자,탄산음료등은 무서운 병을 유발하고 비만의 원인 식품 이다. 8,등겨에 흘려 보낸 영양을 되 찾을 수 있다. 도정과정에서 등겨에 흘려 보낸 영양 많은 쌀눈과 쌀껍질의 영양을 등겨를 물에 우러나게하여 장시간 물에 담가 두어 영양을 되 찾는다

<4D F736F F D2034C0E52D554E495820BCD2C4CF20C0C0BFEB20C7C1B7CEB1D7B7A1B9D6>

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

슬라이드 제목 없음

3. 1 포인터란 3. 2 포인터변수의선언과사용 3. 3 다차원포인터변수의선언과사용 3. 4 주소의가감산 3. 5 함수포인터

2009년 상반기 사업계획

1. GigE Camera Interface를 위한 최소 PC 사양 CPU : Intel Core 2 Duo, 2.4GHz이상 RAM : 2GB 이상 LANcard : Intel PRO/1000xT 이상 VGA : PCI x 16, VRAM DDR2 RAM 256MB

Transcription:

소켓개요 참고문헌 : 컴퓨터네트워크프로그래밍, 김화종, 홍릉과학출판사 Socket 정의 Socket 은 Transport 계층 (TCP 나 UDP) 을이용하는 API 1982 년 BSD 유닉스 41 에서처음소개 윈도우즈의경우 Winsock 제공 JAVA 또한 Socket 프로그래밍을위한클래스제공 Socket Interface 의위치 5-7 (Ses, Pre, App) App 1 App 2 App 3 Socket Interface Socket 1 Socket 2 Socket 3 응용프로그램에서 TCP/IP 를이용하는창구역할 4 (Net) 3 (Trans) 2 (Link) 1(Phy) TCP/IP Network Driver 네트워크인터페이스장치 (eg, LAN card) 구동소프트웨어 소켓프로그래밍기초 - 소켓개요 1

Socket 번호 File Descriptor, File Descriptor Table, and File/Socket Structure File/Socket Structure 파일 / 소켓에대한각종정보를담고있는구조체 파일 / 소켓개설 (open) 시커널에의해생성 File Descriptor 파일 ( 유닉스는모든장치가파일로처리 ) 을액세스할때이용되는번호 커널에의해생성된 file structure에대한포인터 소켓개설시얻은 file descriptor를 socket descriptor ( 혹은소켓번호 ) 라고함 File Descriptor Table File descriptor, ie, file structure 의포인터로구성된테이블 File descriptor table 의인덱스 = file/socket descriptor (= 소켓번호 ) 소켓프로그래밍기초 - 소켓개요 2 Socket 번호 (cont) 예제 : 두개의파일과하나의 Socket 을개설한예 Descriptor Table File/Socket Information Structures file/socket descriptors 3 4 5 pointer pointer pointer (file) (file) (socket) family: PF_INET service: SOCK_STREAM local IP: local port: remote IP: remote port: 소켓프로그래밍기초 - 소켓개요 3

Socket 번호 (cont) 응용프로그램, 소켓및 TCP/IP 의관계 Socket 번호배정 ( 그림 2-3) 네개의응용프로그램에소켓번호 4, 3, 3, 3이사용됨 3번부터배정 Why: 표준입력 ( 키보드 ), 표준출력및에러출력 ( 모니터 ) 장치에 0,1,2 배정 응용 1 응용 2 응용 3 응용 4 응용프로그램 fd=3 fd=3 fd=3 fd=3 fd=3 ( 소켓번호 ) 소켓 3000 3001 2000 2001 포트 TCP UDP ( 포트번호 ) 트랜스포트계층 TCP/IP IP 19220314411 네트워크 인터넷계층 (IP 주소 ) fd: File Descriptor sd: Socket tdescriptor TCP: Transmission Control Protocol UDP: User Datagram Protocol 소켓프로그래밍기초 - 소켓개요 4 포트번호 포트번호는 데이터를최종으로전달할프로세스 ( 프로세스내의 Socket) 를구분하기위해사용됨 IP 주소는목적지호스트를찾기위해서사용 즉, IP를통해호스트를찾고포트번호를통해호스트내의통신접속점 (ie, Socket) 을구분하기위해사용 TCP나 UDP 헤더에실려전송 (16bit) 범위 ; 1~65535 예약된포트번호 /etc/services 서비스파일을통해확인 (#cat /etc/services) Well-known ports 1023 이하로배정됨 예 : ftp (21), telnet (23), mail=smtp (25) 임의포트, 즉사용자임의이용가능포트 1024 이상의번호사용해야함 소켓프로그래밍기초 - 소켓개요 5

Socket 사용법 Socket 개설시정의내용 사용할프로토콜 (TCP UDP) 소켓을처음개설할때선택 자신의 IP address (Local IP add) 자신의 Port number (Local Port num) 통신에이용할소켓을구분하는번호 상대방 IP address (Remote IP add) 상대방 Port number (Remote Port num) 목적지컴퓨터내에서소켓을구분하기위한포트번호 소켓프로그래밍기초 - 소켓개요 6 Socket 생성 socket() 함수이용 정상적으로생성될경우소켓번호반환 에러발생시에는 -1을반환( 전역변수인 errno에에러코드저장 ) socket() 함수의사용문법 #include <sys/socketh> int socket ( int domain, // 프로토콜체계 int type, // 서비스타입 int protocol // 소켓에서사용할프로토콜 ); 소켓프로그래밍기초 - 소켓개요 7

Socket 생성 (cont) Socket() 함수의 domain 인자 소켓은 TCP/IP, 유닉스네트워크, XEROX 네트워크등임의의네트워크프로토콜에서사용됨 즉, TCP/IP만을위한네트워크프로토콜이아님 그러므로, 소켓개설시프로토콜체계를정의해야함 예 ) TCP/IP 프로토콜사용시, domain 인자를 PF(Protocol Family)_INET 으로지정 domain ( 프로토콜체계 ) 인자에지정할수있는프로토콜체계 /usr/include/sys/socketh 파일 domain: PF_INET ( 인터넷프로토콜체계 ) PF_INET6 (IPv6 프로토콜체계 ) PF_UNIX ( 유닉스방식의프로토콜체계 ) PF_NS (XEROX 네트워크시스템의프로토콜체계 ) PF_PACKET ( 리눅스에서패킷캡쳐를위해사용 ) 소켓프로그래밍기초 - 소켓개요 8 Socket 생성 (cont) Socket() 함수의 type 인자 서비스타입을의미 TCP 를쓸경우 : SOCK_STREAM STREAM UDP를쓸경우 : SOCK_DGRAM SOCK_RAW 타입으로생성된 Raw 소켓은 TCP나 UDP 계층을거치지않고 IP 계층을바로이용 (See Chapt 10) type: SOCK_STREAM (TCP 소켓생성 ) SOCK_DGRAM (UDP 소켓생성 ) SOCK_RAW (Raw 소켓생성 ) Socket() 함수의 protocol 인자 TCP 나 UDP 타입을선택한경우값을사용하지않으므로 0 을입력 ie, type 인자에 SOCK_STREAM 이나 SOCK_DGRAM 을부여한경우 SOCK_RAW의경우에는구체적인프로토콜지정해야함 소켓프로그래밍기초 - 소켓개요 9

Socket 생성예제프로그램 open_socketc #include <stdioh> main (){ int fd1, fd2, sd1, sd2; fd1 = open ("/helloc", O_RDONLY, 0); printf ("/etc/passwd's file descriptor = %d\n", fd1); sd1 = socket (PF_INET, SOCK_STREAM, 0); printf ("stream socket descriptor = %d\n", sd1); sd2 = socket(pf_inet, SOCK_DGRAM, 0); printf("datagram socket descriptor = %d\n", sd2); fd2 = open ("/etc/host", O_RDONLY, 0); printf("/etc/hosts's file descriptor = %d\n", fd2); } close (fd2); close (fd1); close (sd2); close (sd1); 소켓프로그래밍기초 - 소켓개요 10 소켓주소구조체 클라이언트 / 서버주소구조 소켓주소 = < 주소체계 (Address family), IP 주소, Port 번호 > 소켓주소구조체는 sockaddr로정의되어있음 Address Address family IP address + Port number 2 bytes 14 bytes typesh 에 unsigned short (2 bytes) 로정의 struct sockaddr { } u_short sa_family; //Address family char sa_data[14]; //Address 소켓프로그래밍기초 - 소켓개요 11

소켓구조체 (cont) sockaddr vs sockaddr_in sockaddr 구조 IP 와 Port 를구분하여쓰거나읽기에불편 sockaddr_in 인터넷전용소켓주소구조체 인터넷프로그래밍의용이성 sockaddr_in 구조체 sin_family: AF_INET ( 인터넷주소체계 ) AF_UNIX ( 유닉스파일주소체계 ) AF_NS (XEROX 주소체계 struct in_addr { u_long s_addr; }; struct sockaddr_in { short sin_family; // 주소체계 u_ short sin_p port; //16비트포트번호 struct in_addr sin_addr; //32비트 IP 주소 char sin_zero[8]; //dummy 전체크기를 16바이트로맞추기위해 프로토콜을 PF_INET 으로지정한소켓의경우, 주소체계는반드시 AF_INET 만사용 (PF_INET = AF_INET = 2 ( 상수값 2)) 소켓프로그래밍기초 - 소켓개요 12 Socket 사용절차 : TCP ( 연결형 ) 프로그래밍절차 Sever Client socket() 을호출하여통신소켓개설 socket() socket() 자신의소켓주소와반환된 (socket() 로부터 ) 소켓번호를연결 소켓번호 : 응용프로그램이알고있는통신창구번호 소켓주소 : 자신의 IP + 포트 bind() listen() accept() connect() 서버와의연결설정을위해호출 상대방소켓주소 (IP+Port) 구조체를인자로넘겨주게됨 send() recv() recv() send() recv() close() 소켓프로그래밍기초 - 소켓개요 13

Dongwon Jeong djeong@kunsanackr http://istkunsanackr/ ac kr/ 소켓프로그래밍기초 - 소켓개요 14