소켓은 3가지 관점으로 분류 할 수 있다.
1) 데이터의 타입
2) 통신 종단점
- 응용 프로그램은 양 측 소켓이 연결확립이 되있다고 가정하고 데이터를 주고 받는다.
3) 네트워크 프로그래밍 인터페이스
- 통신 양단이 모두 소켓을 사용할 필요는 없다
윈도우 소켓(윈쇽)
윈도우 소켓은 DLL을 통해 기능 제공 -> DLL 초기화와 종료 작업을 위한 함수 필요
윈도우는 OS 차원에서 멀티스레드를 지원하므로 멀티스레드 환경에서 안정적으로 동작하는 구조와 이를 위한 함수가 필요
(장점)
호환성이 높아 이식성이 좋음
저수준 프로그래밍 인터페이스로, 세부제어가 가능하고 고성능 네트워크 프로그램 개발 가능
(단점)
서로 다른 바이트 방식을 사용하거나 처리 단위가 서로 다른 호스트의 통신시, 변환 처리 요구
응용 프로그램 수준의 프로토콜을 프로그래머가 직접 설계
윈속 라이브러리 추가 ===> #pragma comment(lib, "ws2_32")
오류 처리 유형
1. 오류 처리할 필요가 없는 경우
2. 리턴 값으로 오류를 처리하는 경우 =>. WSAStartup()
3. 리턴 값으로 오류 발생을 확인하고, 구체적인 내용은 오류코드로 확인 (대부분)
int WSAGetLastError(void); >> int형의 오류 코드를 얻는 함수
DWORD FormatMessage(); >> int형의 오류코드를 문자열 형식으로 변환
err_quit(char *msg) >> 오류코드를 문자열로 전환
윈속 응용 프로그램의 공통 구조
윈속 초기화 -> 소켓 생성 -> 네트워크 통신 -> 소켓 닫기 -> 윈속 종료
윈속 초기화 | int WSAStartup |
윈속 종료 | int WSACleanup(void) |
소켓 생성 | SOCKET socket( int af, int type, int protocol) |
소켓 닫기 | int closesocket() |
주소 체계 : AF_INET (IPv4) , AF_INET6 (IPv6)
소켓 타입 : SOCK_STREAM (TCP) , SOCK_DGRAM (UDP)
'Lab & Research > Information Security' 카테고리의 다른 글
네트워크 접근 제어 & 클라우드 보안 (0) | 2022.04.15 |
---|---|
Web : SSL&SSH&SET (0) | 2022.04.13 |
대칭 암호화 & 메세지 기밀성 (0) | 2022.03.17 |
Information Security (0) | 2022.03.17 |
소켓 주소 구조체 (0) | 2021.11.01 |