윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

Slides:



Advertisements
Similar presentations
비즈쿨 - 정 성 욱 - - 금오공고 비즈쿨 - 정 성 욱 1. 나는 각 단원들의 활동들에 성실하게 참여 하겠습니다. 우리의 다짐 2. 나는 나와 전체의 발전을 위해 각 멘토들의 지도에 순종하겠습니다. 3. 나는 각 단원들을 숙지함으로써 비즈니스 마인드를 함양하고 자신의.
Advertisements

6 장. 네트워크 개론 네트워크 장비, 프로토콜, 통신망. 개요 네트워크란 ? 네트워크의 종류 데이터전송방식 네트워크 장비 프로토콜의 종류 IP 주소체계 네트워크 토폴로지 통신망 네트워크진단 명령어.
Python Socket/HTTP overmania. 목표  소켓을 이용하여 기본적인 서버 - 클라이언트 모델을 구현할 수 있다.  간단한 웹서버를 소켓을 이용하여 작성할 수 있다.
TCP 서버/클라이언트 동작 원리 - (1) TCP 서버/클라이언트 예 웹 서버 웹 클라이언트 웹 클라이언트
Java Socket 통신 이개혁 정대준.
* 그룹 상시 연락망 : 각사 조직도 기준 연락망으로 대체함
Chapter 8 Authorization
Understanding of Socket and File I/O
IP변경 요청_ 스마트폰 전자결제연동 올더게이트.
Chapter 06. UDP 서버/클라이언트.
TCP/IP Socket Cover Slide 조태문.
TCP/IP 소켓 프로그래밍 - C 버전 중에서
연습 문제 풀이 E BF F8 85 A5 E5 9B 37 A5 E5 9B FF 버전 헤더길이 서비스유형 전체길이
제 1장 인터네트워킹.
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
4장. 소켓 유형과 프로토콜 Network Lab. 이 원 구 1.
PHP 웹 프로그래밍 (PHP Web Programming) 네트워크 프로그래밍 문양세 강원대학교 IT대학 컴퓨터과학전공.
TCP/IP Socket Cover Slide 조태문.
PART 1 개념 컴퓨터 네트워크 Chapter 01 서론 임효택.
제 18 장 TCP/IP 연결 확립과 종료 정보통신연구실.
네트워크 보안 TCP/IP 네트워크통신 개념.
Chapter 02 네트워크에 대한 이해.
4주 : 정보통신 네트워크 인터넷정보원 및 학술정보자원의 활용 담당교수 : 박 양 하 정보통신시스템 – 정보전송/처리시스템
TCP Client/Server Program
Network Lab. Seoung Hyeon, Lee
6장 비연결형 지향 프로토콜 Database Lab 강 우 석.
JAVA 프로그래밍 12장 네트워킹(Networking).
17장 네트워크 Section 1 네트워킹의 개요와 java.net 패키지 Section 2 인터넷 주소와 URL
Choi Seong Yun 네트워크 프로그래밍 Choi Seong Yun
Window socket programming
(Web Programming & Practice)
세미나.. NETWORK??!! 저자 : 장경칩 도전하라 창조의 세계로(SINCE 1992) - 장경칩.
Department of Computer Engineering
Access Control Lists Access Control List
Network Management 김대환 김태훈 김숙흔 이근민.
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
Chapter 8 연결형 프로토콜 서버 발표자 : SE Lab 황 성 하
Department of Computer Engineering
Advanced Socket Programming
School of Electronics and Information. Kyung Hee University.
컴퓨터 네트워크 개념, 프로토콜, 프로그래밍 임 효 택, 송 주 석 dongseo. ac
7장. UDP 서버-클라이언트 UDP 서버-클라이언트의 기본 구조와 동작 원리를 이해한다.
소켓의 옵션 School of Electronics and Information. Kyung Hee University.
Chapter 10. 네트워크 e-learning Computers.
9장 데이터링크층 소개 (Introduction To Data-Link Layer)
2장. TCP/IP, 서브넷팅 2012년 2학기 중부대학교 정보보호학과 이병천 교수.
네트워크와 소켓 프로그래밍 Chapter 01. * 학습목표 TCP/IP 프로토콜의 동작 원리를 개관 소켓의 기본 개념을 이해
1 학습 목표 네트워크의 기초 네트워크 관련 기초 용어를 익힌다.
칼빈의 생애와 개혁자로의 변모 사학과 김종식.
매스커뮤니케이션 신문 목원대학교 서 진 희.
Internet 데이터 전송 목표: 인터넷의 개요 및 기본 내용을 살펴보고 VB에서의 데이터 전송 프로그래밍에 대하여 학습한다. 주요내용 인터넷의 개요 인터넷 데이터 전송 인터넷 프로그래밍 Winsock Client Server 프로그래밍.
Chapter 04. OSI 참조 모델.
국제의료관광 관련 법, 제도.
IP변경 요청 올더게이트.
Chapter 16 Socket Interface.
Department of Computer Engineering
기술가정 2학년 2학기 4.컴퓨터와 생활 > 2) 인터넷의 활용 > 1/7 인터넷이란 무엇일까.
초기화면 인터넷의 이해 Ⅳ. 컴퓨터와 생활> 2. 인터넷의 활용> 기술·가정 2학년 2학기
컴퓨터 개론 √ 원리를 알면 IT가 맛있다 쉽게 배우는 컴퓨터 기본 원리 한빛미디어 교재출판부.
Department of Computer Engineering
김 형 진 전북대학교 IT응용시스템공학과 네트워크의 기본 Chapter 김 형 진 전북대학교 IT응용시스템공학과.
MONSTER CAR 구정재 한석우 김재형.
Internet 유선 랜카드 A 회사 네트워크 장비 (인터넷 공유 기능 활성화)
CHAPTER 9-1 한국의 사회복지정책 - 사회보험제도 -
1 컴퓨터와 통신 기술의 이해 컴퓨터와 정보 처리 다양한 통신 방식 컴퓨터를 이용한 데이터 통신 정보 통신 네트워크
제 14 장 응용 계층과 클라이언트-서버 모델 클라이언트-서버 모델 14.2 동시성 14.3 프로세스 14.4 요약.
Department of Computer Engineering
Department of Computer Engineering
경찰학 세미나 제 5 강 경찰관직무집행법 2조 5호의 의미 신라대학교 법경찰학부 김순석.
네트워크 프로토콜.
Presentation transcript:

윤성우의 열혈 TCP/IP 소켓 프로그래밍 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판 Chapter 04. TCP 기반 서버 / 클라이언트 1

Chapter 04-1. TCP와 UDP에 대한 이해 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

TCP/IP 프로토콜 스택 TCP / IP 프로토콜 스택이란? 인터넷 기반의 데이터 송수신을 목적으로 설계된 스택 큰 문제를 작게 나눠서 계층화 한 결과 데이터 송수신의 과정을 네 개의 영역으로 계층화 한 결과 각 스택 별 영역을 전문화하고 표준화 함 7계층으로 세분화가 되며, 4계층으로도 표현함

TCP 소켓과 UDP 소켓의 스택 FLOW UDP 소켓의 스택 FLOW TCP 소켓의 스택 FLOW

LINK & IP계층 LINK 계층의 기능 및 역할 IP 계층의 기능 및 역할 물리적인 영역의 표준화 결과 LAN, WAN, MAN과 같은 물리적인 네트워크 표준 관련 프로토콜이 정의된 영역 아래의 그림과 같은 물리적인 연결의 표준이 된다. IP 계층의 기능 및 역할 IP는 Internet protocol을 의미함 경로의 설정과 관련이 있는 프로토콜

TCP/UDP 계층 TCP/UDP 계층의 기능 및 역할 실제 데이터의 송수신과 관련 있는 계층 그래서 전송(Transport) 계층이라고도 함 TCP는 데이터의 전송을 보장하는 프로토콜(신뢰성 있는 프로토콜), UDP는 보장하지 않는 프로토콜 TCP는 신뢰성을 보장하기 때문에 UDP에 비해 복잡한 프로토콜이다. TCP는 왼쪽의 그림에서 보이듯이 확인의 과정을 거친다. 때문에 신뢰성을 보장하지만, 그만큼 복잡한 과정을 거쳐서 데이터의 전송이 이뤄진다.

APPLICATION 계층 프로그래머에 의해서 완성되는 APPLICATION 계층 응용프로그램의 프로토콜을 구성하는 계층 소켓을 기반으로 완성하는 프로토콜을 의미함 소켓을 생성하면, 앞서 보인 LINK, IP, TCP/UDP 계층에 대한 내용은 감춰진다. 그러니 응용 프로그래머는 APPLICATION 계층의 완성에 집중하게 된다.

Chapter 04-2. TCP기반 서버, 클라이언트의 구현 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

TCP 서버의 기본적인 함수호출 순서 bind 함수까지 호출이 되면 주소가 할당된 소켓을 얻게 된다. 따라서 listen 함수의 호출을 통해서 연결요청이 가능한 상태가 되어야 한다. 이번 단원에서는 바로 이 listen 함수의 호출이 의미하는 바에 대해서 주로 학습 한다.

연결요청 대기 상태로의 진입 연결요청도 일종의 데이터 전송이다. 따라서 연결요청을 받아들이기 위해서도 하나의 소켓이 필요하다. 그리고 이 소켓을 가리켜 서버소켓 또는 리스닝 소켓이라 한다. listen 함수의 호출은 소켓을 리스닝 소켓이 되게 한다.

클라이언트의 연결요청 수락 연결요청 정보를 참조하여 클라이언트 소켓과의 통신을 위한 별도의 소켓을 추가로 하나 더 생성한다. 그리고 이렇게 생성된 소켓을 대상으로 데이터의 송수신이 진행된다. 실제로 서버의 코드를 보면 실제로 소켓이 추가로 생성되는 것을 확인할 수 있다.

TCP 클라이언트의 기본적인 함수호출 순서 클라이언트의 경우 소켓을 생성하고, 이 소켓을 대상으로 연결의 요청을 위해서 connect 함수를 호출하는 것이 전부이다. 그리고 connect 함수를 호출할 때 연결할 서버의 주소 정보도 함께 전달한다.

TCP 기반 서버, 클라이언트의 함수호출 관계 확인할 사항은, 서버의 listen 함수호출 이후에야 클라이언트의 connect 함수호출이 유효하다는 점이다. 더불어 그 이유까지도 설명할 수 있어야 한다.

Chapter 04-3. Iterative 기반의 서버, 클라이언트의 구현 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

Iterative 서버의 구현 왼쪽의 그림과 같이 반복적으로 accept 함수를 호출하면, 계속해서 클라이언트의 연결요청을 수락할 수 있다. 그러나, 동시에 둘 이상의 클라이언트에게 서비스를 제공할 수 있는 모델은 아니다.

Iterative 서버와 클라이언트의 일부 서버 코드의 일부 클라이언트 코드의 일부

제대로 동작은 하나 문제의 발생 소지가 있는 TCP 에코 클라이언트의 코드 에코 클라이언트의 문제점 제대로 동작은 하나 문제의 발생 소지가 있는 TCP 에코 클라이언트의 코드 TCP의 데이터 송수신에는 경계가 존재하지 않는다! 그런데 위의 코드는 다음 사항을 가정하고 있다. “한 번의 read 함수호출로 앞서 전송된 문자열 전체를 읽어 들일 수 있다.” 그러나 이는 잘못된 가정이다. TCP에는 데이터의 경계가 존재하지 않기 때문에 서버가 전송한 문자열의 일부만 읽혀질 수도 있다.

윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판 Chapter 04-4. 윈도우 기반으로 구현하기 윤성우 저 열혈강의 TCP/IP 소켓 프로그래밍 개정판

윈도우 기반으로 변경할 때 필요한 것 1. WSAStartup, WSACleanup 함수호출을 통한 소켓 라이브러리의 초기화와 해제 2. 자료형과 변수의 이름을 윈도우 스타일로 변경하기 3. 데이터 송수신을 위해서 read, write 함수 대신 recv, send 함수 호출하기 4. 소켓의 종료를 위해서 close 대신 closesocket 함수 호출하기 마치 공식을 적용하듯이(소스의 내용을 잘 모르는 상태에서도) 윈도우 기반으로 예제를 변경할 수도 있다. 그만큼 리눅스 기반 예제와 윈도우 기반 예제는 동일하다!

Chapter 04가 끝났습니다. 질문 있으신지요?