네트워크 스터디(tcp 소켓 프로그래밍)
DESCRIPTION
네트워크 스터디(TCP 소켓 프로그래밍)TRANSCRIPT
네트워크 스터디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
보안 파트 : 암호화 , 체크섬
끝