네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해

Slides:



Advertisements
Similar presentations
6 장. 네트워크 개론 네트워크 장비, 프로토콜, 통신망. 개요 네트워크란 ? 네트워크의 종류 데이터전송방식 네트워크 장비 프로토콜의 종류 IP 주소체계 네트워크 토폴로지 통신망 네트워크진단 명령어.
Advertisements

인터넷 정보관리 Internet Information Management. 학습내용 PART 1 정보통신윤리, 네티켓 및 컴퓨터의 개요 PART 2 인터넷의 이해 - 인터넷의 개요, 인터넷관련 법규 PART 3 인터넷 서비스 PART 4 사용자 환경구축 및 홈페이지 제작.
AMAN2002 를 이용한 TCP/IP 프로토콜 분석 및 네트워크 프로그래밍 www. nms4you.com 1 AMAN2002 추가 기능 실습 Chapter 13:
Chap15 네트워킹 Section 1 : 네트워킹의 개요와 java.net 패키지 Section 2 : 인터넷 주소와 URL
멀티미디어 서비스를 위한 IP 네트워크 순천향대학교 정보기술공학부 이 상 정
조준희 (Cho, Junhee) TCP/IP 조준희 (Cho, Junhee)
PC와 인터넷 정강수 컴퓨터 구조와 웹의 이해 PC와 인터넷 정강수
Chapter 03. 네트워크 보안 : 길을 지배하려는 자에 대한 저항
HTML5 웹 프로그래밍 입문 (개정판) 1장. 인터넷과 웹환경의 발전.
TCP/IP 통신망 특론 3장 인터넷프로토콜( IP ).
Internet Protocol Version4
2 장 인터넷의 구성 및 접속.
Chapter 8 Authorization
Chapter 13 전송층 개요.
윈도우 네트워크 프로그래밍 √ 원리를 알면 IT가 맛있다 TCP/IP 소켓 프로그래밍 광주대학교 정보통신학과 조 정 호.
Understanding of Socket and File I/O
암호화 기술(SSL, IPSec) 손재성 권기읍 안복선 최준혁
Chapter 06. 프로토콜.
RTSP, RTP 김현철.
Chapter 06. UDP 서버/클라이언트.
TCP/IP 소켓 프로그래밍 - C 버전 중에서
제 1장 인터네트워킹.
Dept. of Computer Engineering, Hannam Univ. Won Goo Lee
Chapter 08. 네트워크 관리.
Internet Group Management Protocol (IGMP)
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
Network 네트워크 이론 및 실습 TCP / IP 4장.
Introduction to Networking
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
10. About TCP / IP SPARCS 08 우성필.
PART 1 개념 컴퓨터 네트워크 Chapter 01 서론 임효택.
Internet 및 EC 관련 기술들.
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
4주 : 정보통신 네트워크 인터넷정보원 및 학술정보자원의 활용 담당교수 : 박 양 하 정보통신시스템 – 정보전송/처리시스템
Network Lab. Seoung Hyeon, Lee
Chapter 2 OSI 모델과 TCP/IP 프로토콜.
RTSP, RTP 김현철.
JAVA 프로그래밍 12장 네트워킹(Networking).
자바 5.0 프로그래밍.
17장 네트워크 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Network Socket Programming
S N M P (Simple Network Management System).
Processing resulting output
IP 기반 사내방송 서비스 소개 ( IP기반의 최고화질의 영상/음성 실시간 전송기술)
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Access Control Lists Access Control List
Network Layer: ARP, ICMP (IGMP).
Network Programming Version 2.1.
PART 01 개념 컴퓨터 네트워크 Chapter 3 OSI 참조모델과 인터넷 임효택.
Department of Computer Engineering
TCP/IP 통신망 특론 2장 Link Layer 컴퓨터 네트워크 실험실 이희규.
컴퓨터 네트워크 개념, 프로토콜, 프로그래밍 임 효 택, 송 주 석 dongseo. ac
Network Programming(1)
IP(Internet Protocol)
9장 데이터링크층 소개 (Introduction To Data-Link Layer)
OSI 모델 OSI 모델의 개념과 필요성 OSI 모델의 데이터 전송 과정 OSI 모델 7계층 한빛미디어(주)
Chapter 04. OSI 참조 모델.
TCP/IP 네트워크 구조 TCP/IP 개요 TCP/IP 프로토콜 한빛미디어(주).
Chapter 16 Socket Interface.
기술가정 2학년 2학기 4.컴퓨터와 생활 > 2) 인터넷의 활용 > 1/7 인터넷이란 무엇일까.
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판
Internet & WWW Protocols

김 형 진 전북대학교 IT응용시스템공학과 네트워크의 기본 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
제 11장 User Datagram Protocol(UDP)
10장 OSI 7 Layer 강원도립대학교 정보통신개론.
Part TCP / IP 1. TCP / IP 프로토콜 2. 기본 프로토콜.
Department of Computer Engineering
Presentation transcript:

네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해 윈도우 소켓의 역사와 특징을 개관 윈도우 소켓 애플리케이션을 작성하고 실행하는 과정을 이해

인터넷 구성 ① ② ③ ④ 종단 시스템(end-system) 최종 사용자(end-user)를 위한 애플리케이션을 수행하는 주체 라우터(router) 종단 시스템이 속한 네트워크와 다른 네트워크를 연결함으로써 서로 다른 네트워크에 속한 종단 시스템끼리 상호 데이터를 교환할 수 있도록 하는 장비 프로토콜(protocol) 종단 시스템과 라우터간, 라우터와 라우터간, 종단 시스템과 종단 시스템간 통신을 수행하기 위한 정해진 절차와 방법 종단 시스템 (PC, PDA, ...) 라우터 ① ② ③ ④

TCP/IP 프로토콜 TCP/IP 프로토콜 인터넷의 핵심 프로토콜인 TCP와 IP를 포함한 각종 프로토콜 (운영체제) 애플리케이션 라우터 종단 시스템

TCP/IP 프로토콜 구조 – (1) TCP/IP 프로토콜 구조 계층적 구조 애플리케이션 계층 전송 계층 인터넷 계층 네트워크 액세스 계층 인터넷 계층 전송 계층 애플리케이션 계층 디바이스 드라이버 네트워크 하드웨어 IP TCP, UDP TELNET, FTP, HTTP, SMTP, MIME, SNMP, ... 4계층 3계층 2계층 1계층 네트워크 액세스 계층(network access layer) – 1계층 역할 : 물리적 네트워크를 통한 실제적인 데이터 전송 구성 요소 : 네트워크 하드웨어 + 디바이스 드라이버 주소 지정 방식 : 물리 주소(physical address) 예 : 이더넷(Ethernet)

TCP/IP 프로토콜 구조 – (2) 인터넷 계층(Internet layer) – 2계층 역할 네트워크 액세스 계층의 도움을 받아, 전송 계층이 내려 보낸 데이터를 종단 시스템까지 전달 구성 요소 : 논리 주소 + 라우팅 주소 지정 방식 : IP 주소(Internet Protocol address) 라우팅(routing) 목적지까지 데이터를 전달하기 위한 일련의 작업 라우팅을 위한 정보 획득 라우팅 정보를 기초로 실제 데이터 전달(forward) 전송 계층(transport layer) 역할 : 최종적인 통신 목적지(프로세스)를 지정하고, 오류 없이 데이터를 전송 주소 지정 방식 : 포트 번호(port number) 예 TCP(Transmission Control Protocol) UDP(User Datagram Protocol)

TCP/IP 프로토콜 구조- (3) TCP와 UDP 비교 분석 (중요!) TCP UDP 연결형(connection-oriented) 프로토콜 - 연결이 성공해야 통신 가능 비연결형(connectionless) 프로토콜 - 연결 없이 통신 가능 데이터 경계를 구분하지 않음 - 바이트 스트림(byte-stream) 서비스 데이터 경계를 구분함 - 데이터그램(datagram) 서비스 신뢰성 있는 데이터 전송 - 데이터를 재전송함 비신뢰적인 데이터 전송 - 데이터를 재전송하지 않음 1 대 1 통신(unicast) 1 대 1 통신(unicast), 1 대 다 통신(broadcast), 다 대 다 통신(multicast)

TCP/IP 프로토콜 구조 – (4) 애플리케이션 계층(application layer) 역할 전송 계층을 기반으로 한 다수의 프로토콜과 이 프로토콜을 이용하는 애플리케이션을 포괄 다양한 애플리케이션 서비스 제공 예 Telnet, FTP, HTTP, SMTP 등

패킷 전송 원리 – (1) 패킷(packet) 각각의 프로토콜에서 정의한 제어 정보(IP 주소, 포트 번호, 오류 체크 코드 등) + 데이터 제어 정보의 위치에 따라, 앞쪽에 붙는 헤더(header)와 뒤쪽에 붙는 트레일러(trailer)로 구분 패킷 전송 형태 송신측 이더넷 IP TCP 애플리케이션 데이터 TCP 헤더 IP 헤더 이더넷 헤더 이더넷 트레일러

패킷 전송 원리 – (2) 패킷 전송 형태 수신측 패킷 전송 형태 계층별 이더넷 IP TCP 애플리케이션 데이터 TCP 헤더 이더넷 헤더 이더넷 트레일러 패킷 전송 형태 계층별 애플리케이션 데이터 TCP TCP 헤더 IP IP 헤더

패킷 전송 원리 – (3) TCP/IP 프로토콜을 이용한 패킷 전송 (중요!) 네트워크 액세스 계층 인터넷 계층 전송 계층 애플리케이션 계층 종단 시스템 (부산) 210.110.159.124 라우터 (서울) www.naver.com

IP 주소와 포트 번호 IP 주소 인터넷에 존재하는 호스트(종단 시스템, 라우터)를 유일하게 구별할 수 있는 식별자 IPv4는 32비트, IPv6는 128비트 사용 8비트 단위로 구분하여 10진수로 표기(IPv4) 예) 147.46.114.70 포트 번호 통신 종착지(하나 혹은 여러 개의 프로세스)를 나타내는 식별자 도메인 이름 IP 주소에 대한 (기억하기 쉬운) 별명 실제 통신을 하기 위해서는 IP 주소로 변환해야 함 TCP IP 프로세스 UDP 포트 번호(0~65535) IP 주소

클라이언트/서버 모델 클라이언트/서버(client/server) 모델 두 개의 애플리케이션이 상호 작용하는 방식을 나타냄 서버가 먼저 실행하여 대기 클라이언트가 서버에게 요청을 하면 서버는 이 요청을 받아 처리 서버 클라이언트 대기 접속

소켓의 개념 – (1) 3가지 관점 ① 데이터 타입 ② 통신 종단점(communication end-point) ③ 네트워크 프로그래밍 인터페이스 데이터 타입 운영체제가 통신을 위해 관리하는 데이터를 간접적으로 참조할 수 있도록 만든 일종의 핸들(handle) 생성과 설정 과정이 끝나면 이를 이용하여 통신과 관련된 다양한 작업을 할 수 있는 간편한 데이터 타입 // 파일 생성 int fd = open("myfile", ...); ... read(fd, ...) // 읽기 write(fd, ...) // 쓰기 // 소켓 생성 SOCKET sock = socket(...); recv(sock, ...) // 받기 send(sock, ...) // 보내기 비교

소켓의 개념 – (2) 통신 종단점 소켓은 통신을 위해 필요한 여러 요소의 집합체 사용할 프로토콜(TCP/IP, UDP/IP 등) 송신측 IP 주소, 송신측 포트 번호 수신측 IP 주소, 수신측 포트 번호 애플리케이션은 자신의 소켓이 상대방의 소켓과 연결된 것으로 생각하고 데이터를 교환 클라이언트 send (sock, ...) 서버 recv (sock, ...) 데이터 <클라이언트 소켓> • 프로토콜: TCP/IP • IP 주소: 147.46.114.70 • 포트 번호: 12023 <서버 소켓> • IP 주소: 61.72.244.22 • 포트 번호: 9001

소켓의 개념 – (3) 네트워크 프로그래밍 인터페이스 통신 양단이 모두 소켓을 사용할 필요는 없음 TCP/IP 프로토콜 구조에서 (일반적으로) 애플리케이션 계층과 전송 계층 사이에 위치하는 것으로 간주 애플리케이션 TCP IP UDP 소켓 인터페이스 ICMP, IGMP ICMP : 인터넷 제어 메시지 프로토콜 ( ex. Ping ) IGMP : 인터넷 그룹 관리 프로토콜 ( ex. 멀티케스팅)

윈도우 소켓 – (1) 윈도우 소켓(Windows Sockets, Winsock) 버클리 유닉스(Berkeley Software Distribution UNIX)에서 개발한 네트워크 프로그래밍 인터페이스를 윈도우 환경에서 사용할 수 있도록 한 것 소스 코드 수준에서 호환성이 높음 윈도우 95 버전부터 API(Application Programming Interface)에 정식으로 포함되어 제공 유닉스 소켓과의 차이점 (참고!) 윈도우 소켓은 DLL을 통해 대부분의 기능이 제공되므로 DLL 초기화와 종료 작업을 위한 함수가 필요 윈도우 애플리케이션은 대개 그래픽 사용자 인터페이스(GUI, Graphical User Interface)를 기반으로 하며, 메시지 구동 방식으로 동작하므로 이를 위한 확장 함수가 존재 윈도우는 운영체제 차원에서 멀티스레드(multithread)를 지원하므로 멀티스레드 환경에서 안정적으로 동작하기 위한 구조와 이를 위한 함수가 필요

윈도우 소켓 – (2) 운영체제별 지원 사항 지원 프로토콜 TCP/IP IPv6(윈도우 XP 이상) IrDA(윈도우 98 이상) – 적외선 통신 Bluetooth(윈도우 XP SP2 이상) IPX/SPX ATM DECNet TP4(윈도우 2000부터 지원하지 않음) DLC(윈도우 XP부터 지원하지 않음) NetBEUI(윈도우 XP부터 지원하지 않음) 운영체제 윈속 버전 윈도우 95 1.1 (2.2) 윈도우 98/Me, 윈도우 NT/2000/XP/2003 2.2 윈도우 CE

윈도우 소켓 – (3) 장점 유닉스 소켓과 소스 코드 수준에서 호환성이 높으므로 기존 프로그램을 포팅 용이 가장 널리 쓰이는 네트워크 프로그래밍 인터페이스이므로 한번 배워두면 여러 환경(윈도우, 유닉스, ...)에서 사용할 수 있음 TCP/IP 이외에도 다양한 종류의 프로토콜을 지원하므로 최소한의 코드 수정으로 애플리케이션에서 사용할 프로토콜을 변경 가능 비교적 저수준(low-level 혹은 mid-level)의 프로그래밍 인터페이스로, 세부적인 제어가 가능하므로 고성능의 네트워크 애플리케이션을 개발할 수 있음 단점 애플리케이션 수준의 프로토콜을 프로그래머가 직접 설계해야 함 데이터 포맷이나 전송 절차 등을 고려하여 프로그래밍해야 하므로 프로토콜을 변경할 경우 코드 수정이 불가피 서로 다른 바이트 정렬(byte ordering) 방식을 사용하거나 데이터 처리 단위(32비트, 64비트, ...)가 서로 다른 종단 시스템간 통신을 할 경우, 애플리케이션 수준에서 데이터 변환을 처리해야 함

윈도우 소켓 – (4) 구조 ... 윈속 2.x 애플리케이션 윈속 1.x WINSOCK.DLL (16 비트) WSOCK32.DLL (32 비트) WS2_32.DLL (32 비트) 윈속 1.x API 윈속 2.x API TCP/IP IrDA IPX/SPX MSWSOCK.DLL ... Bluetooth 윈속 1.x 확장 API

윈속 애플리케이션 작성 윈속 라이브러리 추가