socket 포트 및 서비스

2463 단어
yiibai
클라이언트 프로그램이 서버에 연결하려면 클라이언트가 연결할 서버를 식별하는 방식이 있어야 한다.따라서 클라이언트는 32비트 네트워크 주소를 연결할 수 있는 호스트 서버가 있는 호스트를 알고 있습니다.그러나 클라이언트는 어떻게 특정한 서버가 이 호스트에서 실행되는 프로세스를 식별합니까?
해결해야 할 문제는 특정 서버와 호스트에서 실행되는 프로세스를 확인하는 것입니다. TCP와 UDP는 모두가 알고 있는 포트 그룹을 정의합니다.
우리의 목적에 대해 포트는 1024와 65535 사이의 정수로 정의될 것이다.이것은 1024보다 작은 모든 포트 번호가 모두가 알고 있는 것으로 여겨지기 때문이다. 예를 들어 텔넷은 포트 23을 사용하고 HTTP는 80을 사용하며 FTP는 21을 사용하기 때문이다.
파일/etc/서비스에서 네트워크 서비스 포트 분배를 찾을 수 있습니다.만약 당신이 자신의 서버를 쓰고 있다면, 서버에 연결할 포트를 조심스럽게 분배해야 합니다.이 포트가 다른 서버에 할당되지 않았는지 확인해야 합니다.
일반적으로 5천 개 이상의 포트를 지정합니다.그러나 많은 기관들이 자신의 서버 포트 번호가 5000보다 크다고 쓴다.예를 들어 야후 메신저 실행 포트 번호: 50505060 등 SIP 서버에서 실행

포트 및 서비스 인스턴스:


여기는 작은 서비스와 관련 포트 목록입니다.최신 인터넷 포트 및 관련 서비스 목록 IANA - TCP/IP Port Assignments를 찾을 수 있습니다.
서비스
포트 번호
서비스 설명
echo

UDP/TCP 반사
discard

UDP/TCP 입력 무시
daytime
십삼
UDP/TCP가 ASCII 코드를 반환하는 시간
chargen
십구
UDP/TCP 반환 문자
ftp
21
TCP 파일 전송
telnet
23
TCP 원격 로그인
smtp
25
TCP e-메일
daytime
37
UDP/TCP가 반환하는 바이너리 시간
tftp
69
UDP 단순 파일 전송
finger
79
사용자 TCP 정보
http
팔십
TCP 만차원 네트워크
login
513
TCP 원격 로그인
who
513
UDP 사용자 다른 정보
Xserver
6000
TCP 창(주: > 1023)

포트 서비스 기능:


UNIX는/etc/services 파일에서 서비스 이름을 가져오는 기능을 제공합니다.
  • struct servent *getservbyname (char *name,char *proto): - 이 호출에 필요한 서비스 이름과 프로토콜 이름을 호출하고 이 서비스에 대응하는 포트 번호를 되돌려줍니다
  • struct servent *getservbyport (int port,char *proto): - 이 호출에 필요한 포트 번호와 프로토콜 이름을 호출하고 해당하는 서비스 이름을 되돌려줍니다

  • 각 함수의 반환 값은 포인터로 다음과 같은 구조를 가리킵니다.
    struct servent
    {
      char  *s_name; 
      char  **s_aliases; 
      int   s_port;  
      char  *s_proto;
    };
    

    다음은 구성원 필드에 대한 설명입니다.
    속성
    값지다
    묘사
    s_name
    http
    이것은 정부의 서비스 명칭이다.예를 들어 SMTP, FTP POP3 등이 있습니다.
    s_aliases
    ALIAS
    서비스 별칭 목록이 저장됩니다.대부분의 시간이 NULL로 설정됩니다.
    s_port
    팔십
    이것은 연결된 포트 번호가 있을 것이다.예를 들어 HTTP는 80입니다.
    s_proto
    TCP  UDP
    이것은 사용하는 프로토콜로 설정됩니다.TCP 또는 UDP 네트워크 서비스를 사용합니다.

    좋은 웹페이지 즐겨찾기