TCP/IP 란? ¶
인터넷 구조를 간단하게 살펴보면
애플리케이션 |
전송 |
네트워크 |
네트워크 접속 |
이런 그림을 그릴 수가 있다. 그림에 대한 설명은 하지 않는다.
위 그림중 전송 계층 부분과 애플리케이션 계층 사이에서 애플리케이션
개발자를 위해서 제공되는 API(Application Programming Interface)의 가장 대표적인 형태가 TCP/IP 이다.
TCP(Transmission Control Protocol)? UDP(User Datagram Protocol)? ¶
위에 나왔던 그림중 전송 계층부분에 해당하는 프로토콜들이다.
간단하게 설명해서 TCP 는 신뢰성있는 전송, UDP 는 '난 보냈으니 잘 가던지 말던지' 라고 하는 프로토콜이다.
간단하게 설명해서 TCP 는 신뢰성있는 전송, UDP 는 '난 보냈으니 잘 가던지 말던지' 라고 하는 프로토콜이다.
Socket? ¶
애플리케이션이 데이터를 보내고 받을수 있는 추상적 계념이다. 라고 하면 '먼소리여?' 할지 모른다.
쉽게 말해서 데이터를 파일에 쓰고 읽는 것처럼 소켓을 사용해서 데이터를 쓰고 읽을 수 있단 소리다.
이렇게 하면 다른 애플리케이션 역시 쓰여진 소켓을 읽을 수 있고 그 역도 성립한다.
쉽게 말해서 데이터를 파일에 쓰고 읽는 것처럼 소켓을 사용해서 데이터를 쓰고 읽을 수 있단 소리다.
이렇게 하면 다른 애플리케이션 역시 쓰여진 소켓을 읽을 수 있고 그 역도 성립한다.
참고 ¶
- 인제 TCP/IP 소켓 프로그래밍에 들어가 볼까? 근데 사전지식이 많이 부족하겠군
위에있는 것만으로는 택도 없지.. 그렇다면? 알아서들.. 찾아보시길.. -_-; (사실 나도 잘 몰라...)
- http://cs.ecs.baylor.edu/~donahoo/practical/CSockets/textcode.html <Socket Programming for C>
- http://kldp.org/KoreanDoc/html/GNU-Make/GNU-Make.html#toc1 <using make file>
- http://kldp.org/KoreanDoc/VI-miniRef-KLDP <using vi editer>
- http://kldp.org/KoreanDoc/Thread_Programming-KLDP <using thread>
- http://www.paradise.caltech.edu/slide <sliding window project>
- Richard Stevens와 Douglas Comer의 저작들: 이 쪽에서는 바이블로 통함.
- Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs : TCP/IP 프로그래밍 팁 모음
- TCP/IP Sockets (Java/C 버젼) : 가장 짧은 TCP/IP 서적. 짧은 시간 동안 개론적 이해를 얻는데 최고.
- Interactive Shell이 지원되는 언어(e.g. Python, Ruby, ...)를 사용하면 TCP/IP의 개념을 아주 빠른 시간 안에 배울 수 있음. (Python은 내부적으로 C 라이브러리를 그대로 사용) 또, 현재 개발된/개발중인 시스템을 테스트 하는 데에도 매우 편리함. 예컨대, 리코에서는 XMLRPC 서버 접속을 파이썬 쉘에서 하고(import xmlrpc 한 다음에...), 거기서 사용자 등록 등의 서비스를 직접 사용하게 한다.