1. Network의 이해
- Network란 End-System 들을 연결하는 하나의 System을 의미함.
- End-System : "호스트"라고도 함, 최종적으로 서비스 를 받는 시스템.
ex) 개인용 PC, 워크스테이션, PDA(Mobile Network관점에서의 End System)
* 워크스테이션 : 일반 시스템보다 약간의 고성능 시스템.
2. Internet의 이해
- 멀리 떨어진 둘 이상의 네트워크가 연결되어 이뤄지는 거대한 네트워크를 의미함.
- 인터넷의 구축을 위해서는 서로 다른 네트워크를 연결 하는 장비가 필요함. 이를 두고 라우터(Router)라 함.
* Router : 두개 이상의 네트워크를 연결 시켜주는 장비.
3. Client / Server 모델
- Server와 Cilent는 프로그램임. Machine이 아님.
- Server는 Client의 연결요청을 기다림.
- Client는 Server에 요청을 하고 응답을 기다리는 호스트를 의미함.
Request(요청)
Client ---------------> Server
<---------------
Response(응답)
4. Server의 종류
- Server는 일반적으로 Cilent에 비해 복잡하다.
* 일반적인 네트워크 프로그래밍은 서버 프로그래밍임.
- 두가지 종류의 서버
1) Iterative Server : 한 순간에 하나의 클라이언트에게 응답함.
2) Concurrent Server : 동시에 여러 클라이언트에게 응답함.
5. Network Porgramming
- Network로 연결되어 있는 두 호스트간의 데이터 송수신
- 파일 입출력과의 차이점은 데이터를 주고 받는 대상에 있음.
- 소켓(Socket)이라는 장치를 사용하여 프로그래밍
* 소켓 : 소켓이란 원격에 존재하는 두 호스트를 연결시켜 주는 매개체 역할을 함.
6. 서버 소켓 구현의 이해
Telephone Server Program
1) 전화기 구입 <--------------> 소켓 생성
2) 전화번호 할당 <--------------> IP 주소 할당
3) 케이블에 연결 <--------------> 연결 요청 대기 상태
4) 수화기 든다. <--------------> 연결 수락
순서 1) 전화를 걸고 싶은데 무엇이 필요합니까?
- 소켓의 생성을 요구한다.
#include <sys/tyeps.h>
#include <sys/socket.h>
int socket(int domain, int type, int protocol)
순서 2) 당신의 전화번호는 어떻게 되나요?
- 주소의 할당을 요구한다(IP 주소, Port 정보)
#include <sys/socket.h>
int bind(int scokfd, struct sockaddr *myaddr, int addrlen)
순서 3) 전화기를 연결 하시겠습니까?
- 연결 요청 대기 상태로의 진입.
#include <sys/socket.h>
int listen(int sockfd, int backlog)
순서 4) 전화벨이 울립니다. 어서 전화 받으세요.
- 연결 요청 수락.
#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, int *addrlen)
7. Cilent Socket 구현의 이해
순서 1) 전화를 걸고 싶은데 무엇이 필요합니까?
- 소켓의 생성
순서 2) 전화를 걸어요.
- 연결 요청
#include <sys/socket.h>
int connnect(int sockfd, struct sockaddr *serv_addr, int addrlen)
잘못된 곳이 있으면 댓글로 알려주세요~
공부하는 입장이라 어디가 잘못된건지 잘 모를수도 있거든요 ㅎㅎ
'[+] Information > [-] Network' 카테고리의 다른 글
[2009/5/24] 예제소스(low_open.c, low_read.c, fd.seri.c) (0) | 2009.05.24 |
---|---|
[2009/5/24] 파일의 조작 (0) | 2009.05.24 |
전세계 IP 대역 2009 2월 2일자. (4) | 2009.03.01 |
IPv6 (0) | 2009.03.01 |