Network Lab. Byoung-Son, Choi

Slides:



Advertisements
Similar presentations
HANNAM Univ. 제 3 장 주소 체계와 데이터 정렬 Network Lab. Byoung-Son, Choi TCP/IP Socket Programming…
Advertisements

1 안드로이드 네트워킹 안드로이드 앱 프로그래밍 여 규리.
인터넷의활용.
Network Lab. Yong bae, Kim
Understanding of Socket and File I/O
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 11장 프로세스간 통신 인공지능실험실 석사 2학기 이희재
Network Lab. Young-Chul Hwang
Department of Computer Science and Engineering
TCP/IP 소켓 프로그래밍 - C 버전 중에서
Sockets Introduction and Protocol Setting
소켓 모델 주소 지정 in_addr_t inet_addr(const char *ip_address) 연결 지향 모델 (TCP)
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
24 장 TCP/IP 24.1 개요 24.2 네트워크층 24.3 주소 지정 24.4 서브넷팅틍
Network Lab. Seoung Hyeon, Lee
Multimedia & Mobile Communications Lab.
제 14장 Multicast & Broadcast
네트워킹 CHAPTER 13 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Department of Computer Engineering
Chapter 02. 윈도우 소켓 시작하기.
Department of Computer Engineering
인공지능실험실 석사 2학기 이희재 TCP/IP Socket Programming… 제 7장 소켓 연결의 우아한 종료 인공지능실험실 석사 2학기 이희재
15장 X.25 패킷 교환망 15.1 X.25 계층 15.2 X.25와 관련된 기타 프로토콜 15.3 요약.
네트워크 프로그래밍 Yang-Sae Moon Department of Computer Science
Socket Address Structure and Byte Ordering Functions
Chapter 21 Network Layer: ARP, ICMP (IGMP).
Socket Address Structure and Byte Ordering Functions
Chapter 06. UDP 서버/클라이언트.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 9장 소켓의 다양한 옵션 인공지능실험실 박사 1학기 장성만
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
23장. 구조체와 사용자 정의 자료형 2.
Understanding of Socket and File I/O
Department of Computer Science and Engineering
13장 고급 입출력 함수 박사 4학기 최 성자.
TCP/IP Socket Programming…
Socket Address Structure and Byte Ordering Functions
Socket Address Structure and Byte Ordering Functions
17장 X.25 패킷 교환망 17.1 X.25 계층 17.2 X.25와 관련된 기타 프로토콜 17.3 요약.
Chapter 19 솔라리스 네트워크 관리 Solaris1 . TCP/IP 개요
시스템 인터페이스 Lab3 Unix 사용법 실습.
리눅스 시스템 & 커널 기초 P.46 – P.53 이름: nsh009 학번: 112 1/20.
Sockets Introduction and Protocol Setting
2장. 인터넷의 개념과 주소.
TCP/IP 응용 프로그램에 적용 가능한 다양한 소켓 옵션을 이해하고 활용한다.
22 장 전송층(Transport Layer)
RMI Messenger 지도 : 김정배 교수님 조봉진.
School of Electronics and Information. Kyung Hee University.
Go Lang 리뷰 이동은.
HTTP 프로토콜의 요청과 응답 동작을 이해한다. 서블릿 및 JSP 를 알아보고 역할을 이해한다.
21 장 전송층(Transport Layer)
(개정판) 뇌를 자극하는 Red Hat Fedora 리눅스 서버 & 네트워크
School of Electronics and Information. Kyung Hee University.
Department of Computer Engineering
-네트워크 관리 개요 및 SNMP 프로토콜 동작과정
인터넷 주소변환 School of Electronics and Information. Kyung Hee University.
Understanding of Socket and File I/O
네트워크 환경 구축과 이미지 전송 호스트/타겟 통신 직렬 통신을 이용한 이미지 전송 수퍼 데몬 BOOTP 환경 구축
모바일인터넷기초 전산정보학부 모바일인터넷과 권 춘 우
Chapter 27 Mobile IP.
통신프로토콜 전산정보학부 모바일인터넷과 권 춘 우
Chapter 02. 윈도우 소켓 시작하기.
제 6 장 IP 패킷 전달과 라우팅 6.1 연결형 서비스와 비연결형 서비스 6.2 직접 전달과 간접 전달 6.3 라우팅 방법
학습내용 프로토콜 계층화 OSI 모델의 용어 및 기능 개체 서비스 접근점 (N) 프로토콜과 (N) 서비스 서비스 프리미티브
5.2.3 교환방식의 비교 학습내용 교환방식의 비교.
9 브라우저 객체 모델.
인공지능실험실 박사 1학기 장성만 TCP/IP Socket Programming… 제 8장 도메인 이름과 인터네 주소 인공지능실험실 박사 1학기 장성만
4. IP 데이터그램과 라우팅 (6장. 인터넷과 IP) IP 데이터그램 : 특정 물리망에 종속되지 않은 가상의 패킷 형식.
소켓의 생성과 프로토콜의 설정 School of Electronics and Information.
Wake On Lan 발표자: 김 홍 기 김홍기 조성오
Network Lab. Young-Chul Hwang
ARP.
Presentation transcript:

Network Lab. Byoung-Son, Choi bschoi@netwk.hannam.ac.kr TCP/IP Socket Programming… 제 2장 소켓의 생성과 프로토콜의 설정 Network Lab. Byoung-Son, Choi bschoi@netwk.hannam.ac.kr

목차 프로토콜의 정의 소켓의 생성 프로토콜 체계(Protocol Family) 소켓의 타입 프로토콜의 선택 윈도우 기반으로 구축하기

프로토콜의 정의 컴퓨터 상호간의 대화에 필요한 통신 규약 데이터 통신 수행 규칙들의 집합 데이터 통신과 네트워크, 교보문고 참조

프로토콜 체계(Protocol Family) 소켓의 생성 socket() 함수 프로토콜 체계상의 하나의 소켓 생성 기본적인 통신 도구 프로토콜에 독립적 데이터 전송 타입을 지정해야 함 연결지향 소켓, 비연결지향 소켓 반환 값 성공시 : 파일디스크립터 반환 실패 : -1 반환 #include <sys/types.h> #include <sys/socket.h> int socket (int domain, int type, int protocol) 프로토콜 체계(Protocol Family) 설정 데이터 전송 타입 설정 특정 프로토콜 지정

프로토콜 체계(Protocol Family) 데이터를 주고 받는 환경에 따른 적절한 프로토콜 선택 PF_ 접두어로 표시 프로토콜 체계 정 의 PF_INET IPv4 인터넷 프로토콜 PF_INET6 IPv6 인터넷 프로토콜 PF_LOCAL Local 통신을 위한 UNIX 프로토콜 PF_PACKET Low level socket을 위한 인터페이스 PF_IPX IPX 노벨 프로토콜 [표 2-1] sys/socket.h에 선언되어 있는 프로토콜 체계(P. 55)

Linux Socket Programming 참조 [4장 Socket Types and Protocols] 소켓의 타입 데이터 전송 타입 지정 하나의 프로토콜 체계 안에서도 데이터를 전송하는 방법이 둘 이상 존재할 수 있다는 것을 의미 소켓 타입 인자 SOCK_STREAM* SOCK_DGRAM* SOCK_SEQPACKET 순서화된 패킷 소켓 SOCK_RAW 네트워크 소켓 뒷 장에서 살펴봄 Linux Socket Programming 참조 [4장 Socket Types and Protocols]

소켓의 타입 연결 지향형 소켓(SOCK_STRAM, TCP 소켓) SOCK_STREAM 소켓 유형 스트림 방식의 소켓 생성 UNIX의 파이프 개념과 동일 연결형(스트림) 서비스 선택 시 사용 SOCK_STREAM 소켓의 특성 메시지 경계가 유지되지 않음 전달된 순서대로 수신됨 전송된 모든 데이터는 에러없이 원격지에 도달

소켓의 타입 연결 지향형 소켓(SOCK_STRAM, TCP 소켓) internet connection Network A Network B connection internet 연결지향형 소켓 형태

소켓의 타입 비연결 지향형 소켓(SOCK_DGRAM, UDP 소켓) SOCK_DGRAM 소켓 유형 데이터그램 방식의 소켓 생성 개별적으로 주소가 쓰여진 패킷 전송 시 사용 비연결형(데이터그램) 서비스 선택 시 사용 SOCK_DGRAM 소켓 유형의 특성 패킷은 전달된 순서대로 수신되지 않음 에러복구를 하지 않음 (즉, 신뢰성이 없음) 데이터그램 패킷의 크기 제한

소켓의 타입 비연결 지향형 소켓(SOCK_DGRAM, UDP 소켓) internet Network A Network B 비연결지향형 소켓 형태

프로토콜의 선택 호스트 대 호스트가 사용할 프로토콜 설정 프로토콜 체계가 PF_INET인 경우 IPPROTO_TCP 인터넷을 기반으로 하는 연결지향형 소켓 IPPROTO_UDP UDP를 기반으로 하는 소켓 생성 인터넷을 기반으로 하는 비연결 지향형 소켓

프로토콜 선택 protocol 인자가 필요한 이유 프로토콜 체계가 PR_INET이고 소켓 타입이 SOCK_STREAM이면, 당연히 인터넷 깁나 연결 지향형 소켓(TCP 소켓)인데…….. 반드시 세번째 인자값으로 IPPROTO_TCP를 넣어야 하나? 하나의 프로토콜 체계 안에서 데이터 전송 타입까지 같으면서도 최종적으로 통신하는 형태가 다른여러 개의 프로토콜이 존재하는 경우, 이 세번째 인자가 유용한 인자로 사용 즉, 전송타입은 같지만 그 안에서도 프로토콜이 다시 나뉘는 상황을 말함 - SOCKET_RAW을 생성하는 경우, 유용함

프로토콜의 선택 프로토콜 체계가 PF_INET인 경우, 전달할 수 있는 인자의 종류는 두가지 형태가 존재 CASE Domain Type Protocol 1 PF_INET SOCK_STREAM IPPROTO_TCP(0) 2 SOCK_DGRAM IPPROTO_UDP(0) [표 2-2] 프로토콜 체계가 PF_INET인 경우의 전달 인자(P. 60)

프로토콜의 선택 make_socket.c 소스 코드 실행 결과

윈도우 기반으로 구현하기 소켓의 생성 #include <sys/types.h> #include <sys/socket.h> int socket (int domain, int type, int protocol) 리눅스 성공시 : 파일디스크립터 실패시 : -1 #include <winsock2.h> SOCKET socket (int af, int type, int protocol) 윈도우즈 성공시 : 소켓 핸들 실패시 : INVALID_SOCKET 소켓의 핸들을 저장하기 위해 미리 정의해 놓은 정수형 데이터 타입

윈도우 기반으로 구현하기 소켓의 종료 #include <unistd.h> int close(int fildes); 리눅스 #include <winsock2.h> int closesocket( SOCKET s ); 윈도우즈

윈도우 기반으로 구현하기 make_socket_win.c 소스 코드 실행 결과

참고문헌 “데이터 통신과 네트워킹”, 이재광 외 2명, 교보문고 “TCP/IP 프로토콜”, 이재광외 5명, 미래컴 “Linux Socket Programming by Example”, Warren W. Gay, QUE '00

Q & A