2013. 6. 17. 15:46ㆍ스마트콘트롤러/TCP/IP
1-1) 소켓의 정의
|
1-2) 소켓의 생성과 해지
이것이 소켓을 생성하는 함수의 원형이다 이 함수는 앞으로 우리가 만들게 될 소켓프로그램에서 소켓을 생성하도록 운영체제에 요청한다 먼저, 첫번째 인자인 prorocolFamily 는 소켓 개설시 프로토콜 체계를 정의한다 소켓은 TCP/IP |
이것이 소켓을 생성하는 함수의 원형이다.
이 함수는 앞으로 우리가 만들게 될 소켓프로그램에서 소켓을 생성하도록 운영체제에 요청한다.
Socket 생성 (cont.)
Socket() 함수의 domain 인자
소켓은 TCP/IP, 유닉스 네트워크, XEROX 네트워크 등 임의의 네트워크 프로토
콜에서 사용됨
그러므로, 소켓 개설시 프로토콜 체계를 정의해야 함
domain (프로토콜 체계) 인자에 지정할 수 있는 프로토콜 체계
/usr/include/sys/socket.h 파일
– 즉, TCP/IP만을 위한 네트워크 프로토콜이 아님
– 예) TCP/IP 프로토콜 사용시, domain 인자를 PF(Protocol Family)_INET 으로 지정
domain: PF_INET (인터넷 프로토콜 체계)
PF_INET6 (IPv6 프로토콜 체계)
PF_UNIX (유닉스 방식의 프로토콜 체계)
PF_NS (XEROX 네네 워트워크 시스템의 시스템의 프로토콜콜 체계체계)
PF_PACKET (리눅스에서 패킷 캡쳐를 위해 사용)
시스템이 내부적으로 데이터를 처리할 때 Big-Edian이나 Little-Endian을 사용할 수 있는데... 우리가 일반적으로 사용하는 Intel x86계열 CPU는 Litten-Endian을 사용하고 있으며, CPU에 따라 순서를 다르게 해석할 수 있으므로 네트워크로 데이터를 전송할 때는 반드시 네트워크 바이트순서(Network Byte Order)에 따라야 한다
TCP기반 서버 프로그램을 만들기 위해서는, 서버소켓 만들기(socket) -> 소켓에 주소할당(bind) -> 연결요청 대기(listen) -> 연결허용(accept) -> 데이터 송수신(read & write) -> 연결종료(close)의 과정을 거친다.
TCP기반 클라이언트 프로그램을 만들기 위해서는, 소켓생성(socket) -> 연결(connect) -> 데이터 송수신(read & write) -> 연결종료(close)의 과정을 거친다.
'스마트콘트롤러 > TCP/IP' 카테고리의 다른 글
패킷 분석을 이용한 프로토콜 분석 (Hand Shake) (0) | 2013.07.02 |
---|