Socket Interface, Socket API   소켓 인터페이스, 소켓 API

(2018-07-20)

소켓 호출

1. 소켓 인터페이스 주요 특징소켓 인터페이스 그 자체는 TCP/IP 표준이 아님
     - 소켓 API운영체제에서 제공됨
        . 응용 프로그램통신 프로토콜들과의 인터페이스(API)를 위함
     - 특정 운영체제프로그램 언어에 의존적으로 동작함

  ㅇ 소켓은 기본적으로 네트워킹을 위한 I/O (입출력)
     - 클라이언트/서버 모델에 기초함


2. 소켓 인터페이스 종류 : 소켓 시스템 호출(System Call)

  ㅇ s1 = socket()  :  아직 연결되지 않은 새로운 소켓의 생성
     - 소켓 구조변수 선언 및 초기화 등
        
#include <sys/socket.h>
int socket(int domain, int type, int protocol)
. 소켓 생성 성공시 파일 디스크립터(0이 아닌 정수)를 반환, 실패시 -1 반환 ㅇ bind(s1, < 로컬 IP주소 : 포트번호 > ) : 로컬 소켓에 이름(주소) 부여 - 생성된 소켓에, 소켓주소(로컬 IP 주소포트 번호) 할당 - int bind(int sockfd, struct sockaddr *myaddr, socklen_t addrlen); . 성공시 0 반환, 실패시 -1 반환 ㅇ connect(s1, < 원격 IP주소 : 포트번호 > ) : 원격 호스트와의 TCP 소켓 연결 - 로컬의 소켓과 원격 호스트 소켓 간의 TCP 커넥션 생성 ㅇ listen(s1, ... ) : 누군가 생성된 소켓에 커넥션을 맺기를 기다림 - 소켓 커넥션을 기다림 (대기상태로 들어가게 됨)
#include <sys/type.h>
int listen(int sockfd, int backlog);
. 성공시 0 반환, 실패시 -1 반환 . backlog : 소켓 연결 대기 ㅇ s2 = accept(s1) : 로컬 소켓에 커넥션 요청의 허용 - 소켓 요청에 대한 허가 및 실제 통신을 위한 소켓 생성
#include <sys/socket.h>
int accept(int sockfd, struct sockaddr *addr, socklen_t *addrlen);
. 성공시 0 반환, 실패시 -1 반환 ㅇ n = read(s1, buffer, n) : 소켓으로부터 버퍼에 n 바이트 읽기 시도 ㅇ n = write(s1, buffer, n) : 소켓으로부터 버퍼에 n 바이트 쓰기 시도 ㅇ close(s1) : TCP 커넥션을 완전히 끊음 ㅇ shutdown(s1, < side > ) : TCP 커넥션의 정해준 입출력 만 닫음 - TCP 연결 종료 중 반 종료(Half Close)에 이용되는 함수
#include <sys/socket.h>
int shutdown(int sock, int howto);
. 성공시 0 반환, 실패시 -1 반환 . 종료 방법 구분 .. SHUT_RD : 입력 스트림 종료 .. SHUT_WR : 출력 스트림 종료 .. SHUT_RDWR : 입출력 스트림 종료 ㅇ getsockopt(s1, ... ) : 내부 소켓 설정 옵션값을 읽음 ㅇ setsockopt(s1, ... ) : 내부 소켓 설정 옵션값을 변경 3. 소켓 호출 순서TCP 서버에서의 소켓 함수 호출 순서 - socket() -> bind() -> listen() -> accept() -> read()/write() -> close()


[소켓] 1. 소켓 2. 소켓 구조 3. 소켓 인터페이스 4. 소켓 주소 5. 윈속(WinSock)
  1.   기술공통
  2.   기초과학
  3.   진동/파동
  4.   방송/멀티미디어/정보이론
  5.   전기전자공학
  6.   통신/네트워킹
        1. 통신 이란?
        2. 신뢰적 통신
    1.   통신이론
    2.   선로/전송
    3.   통신망 일반
    4.   회선교환(PSTN)
    5.   무선/이동통신
    6.   광통신
    7.   인터넷/데이터통신
          1. 데이터통신망
          2. 인터넷
          3. 데이터 네트워크 설계
      1.   데이터 단위
      2.   프로토콜/계층
      3.   데이터 링크
      4.   TCP/IP
            1. TCP/IP 이란?
        1.   IP 계층
        2.   전송계층(UDP,TCP,SCTP,포트번호)
              1. 전송 계층
          1.   포트번호(프로세스식별)
                1. 포트 번호
                2. Well Known Port
            1.   소켓
              1.   1. 소켓
                  2. 소켓 구조
                  3. 소켓 인터페이스
                  4. 소켓 주소
                  5. 윈속(WinSock)
          2.   TCP
          3.   UDP,SCTP,MPTCP
        3.   DHCP
        4.   TCP/IP 유틸리티
        5.   TCP/IP 기타일반
      5.   라우팅
      6.   인터넷 QoS
      7.   인터넷 관리
      8.   인터넷 응용
      9.   인터넷 기타
      10.   패킷교환(PSN)
      11.   인터넷 관련 기관
  7.   정보기술(IT)
  8.   공업일반(기계,재료등)
  9.   표준/계측/품질
  10.   기술경영

 
        최근수정     요약목록(시험중)     참고문헌