네트워크 스터디(Tcp 소켓 프로그래밍)

Preview:

DESCRIPTION

네트워크 스터디(TCP 소켓 프로그래밍)

Citation preview

네트워크 스터디TCP/IP 소켓 프로그래밍

2011/08/06박민수

목차

네트워크 바이트 순서 인터넷 주소와 도메인 TCP 소켓 프로그래밍 Q&A 과제 확인 과제

네트워크 바이트 순서

컴퓨터는 ‘바이트’단위로 데이터를 관리

CPU 종류에 따라 읽는 방식이 다름 리틀 엔디안 (Little Endian) : 높은 주소 부터 빅 엔디안 (Big Endian) : 낮은 주소 부터

네트워크 바이트 순서

네트워크 바이트 순서

Intel 계열 -> 리틀 엔디안

Visual Studio Memory 창으로 확인

네트워크 바이트 순서

엔디안 방식이 다르면 문제 발생

네트워크 바이트 순서를 정함 네트워크에서는 빅 엔디안

호스트 쪽에서 판단해 변환해서 보냄

네트워크 바이트 순서

바이트 순서 변환 함수

htonl, htons, ntohl, ntohs

의미 h : 호스트 n : 네트워크 to : ~ 에서 l : 4 바이트 s : 2 바이트

네트워크 바이트 순서

XML - [eXtensible Markup Language]

XML 방식 – 바이트 순서 상관 없음

인터넷 주소와 도메인

인터넷 주소 (IP Address) 컴퓨터를 구분하기 위해 필요 유일한 주소여야 함

ICANN 에서 관리(Internet Corporation for Assigned Named and Numbers)

인터넷 주소와 도메인

계층 구조를 이용 IPv4 – 255.255.255.255 IPv6 – 255.255.255.255.255.255

인터넷 주소 클래스 계층 구조의 높이에 따라 나뉨

인터넷 주소와 도메인

인터넷 주소와 도메인

인터넷 주소 변환 함수 inet_addr inet_aton inet_ntoa

보통 inet_addr 을 사용함 네트워크 바이트 순서로 변환됨

인터넷 주소와 도메인

도메인 주소 IP 주소보다 사용하기 편함 ICANN 에서 관리

도메인 레벨 (3 차 ) (2 차 ) (1 차 ) www.naver.com

인터넷 주소와 도메인

1 차 도메인 com, org, edu, net, mil. gov, …

2 차 도메인 co, ac, … naver 등 브랜드 이름 (3 차 도메인으로 보기도

함 ) 3 차 도메인

www

인터넷 주소와 도메인

DNS 서버1. 브라우저에 도메인 주소 요청2. 현재 호스트에 도메인 이름이 있는지 검사3. 없으면 네임 서버에 요청4. DNS 데이터베이스 검색5. IP 주소로 접속

TCP 소켓 프로그래밍

분산 네트워크 방식 ( 패킷전송 방식 ) 쪼개서 보내고 받아서 합침

장점 네트워크 라인 자원을 분할해서 사용 가능 전송이 실패된 데이터만 다시 보냄 견고한 네트워크 방식

단점 견고한 만큼 속도가 느림

TCP 소켓 프로그래밍

MTU(Maximum Transmission Unit) 패킷의 최대 전송 크기

MTU : 500 / 데이터 1300 500 + 500 + 300 으로 세조각

TCP 소켓 프로그래밍

TCP 특징 연결지향 : 전용 연결회선 생성 신뢰성 : 데이터가 올바른지 확인 전 이중 통신 : 읽고 쓰기 가능

연결지향 , 신뢰성이 중요함

http://www.ietf.org/rfc/rfc793.txt

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 프로그래밍

TCP 소켓 생성 socket(AF_INET, SOCK_STREAM, IP-

PROTO_TCP)

기존 예제와 다를게 없다… ;;

Q&A

과제 확인

과제 (2 주 )

Socket 클래스 만들기

NetBuffer, Packet 클래스 만들기 ( 옵션 )

게임 파트 : 콘솔 RPG

보안 파트 : 암호화 , 체크섬

Recommended