29
네네네네 네네네 TCP/IP 네네 네네네네네 2011/08/06 박박박

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

Embed Size (px)

DESCRIPTION

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

Citation preview

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

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

2011/08/06박민수

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

목차

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

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

네트워크 바이트 순서

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

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

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

네트워크 바이트 순서

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

네트워크 바이트 순서

Intel 계열 -> 리틀 엔디안

Visual Studio Memory 창으로 확인

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

네트워크 바이트 순서

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

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

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

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

네트워크 바이트 순서

바이트 순서 변환 함수

htonl, htons, ntohl, ntohs

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

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

네트워크 바이트 순서

XML - [eXtensible Markup Language]

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

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

인터넷 주소와 도메인

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

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

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

인터넷 주소와 도메인

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

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

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

인터넷 주소와 도메인

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

인터넷 주소와 도메인

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

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

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

인터넷 주소와 도메인

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

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

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

인터넷 주소와 도메인

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

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

함 ) 3 차 도메인

www

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

인터넷 주소와 도메인

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

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

TCP 소켓 프로그래밍

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

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

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

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

TCP 소켓 프로그래밍

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

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

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

TCP 소켓 프로그래밍

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

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

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

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

TCP 소켓 프로그래밍

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

PROTO_TCP)

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

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

Q&A

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

과제 확인

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

과제 (2 주 )

Socket 클래스 만들기

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

게임 파트 : 콘솔 RPG

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

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