2014년 5월 28일 수요일

TCP와 UDP 주소지정: 포트와 소켓

TCP/IP 프로세스, 다중화,
 클라이언트/서버 애플리케이션 역할
  • 다중화와 역다중화
    • TCP/IP는 여러 애플리케이션이 한 장비의 동일한 IP 소프트웨어를 사용하여 동시에 송수신을 할 수 있도록 설계됐다.
    • 이를 위해서는 여러 출처에서 온 데이터를 다중화하여 IP 계층으로 전달해야 한다.
    • 그리고 IP 데이터그램 스트림을 수신할 때에도 그것을 역다중화하여 각 애플리케이션 소프트웨어 인스턴스에게 적절한 데이터를 제공해야 한다.
  • TCP/IP 클라이언트 프로세스와 서버 프로세스


TCP/IP 포트: TCP/UDP 주소지정
  • 포트를 이용한 다중화와 역다중화 - 포트 이용
  • 출발지 포트와 목적지 포트번호
    • UDP와 TCP 메시지에는 두 개의 필드가 있다
      • 출발지 포트
      • 목적지 포트
    • TCP와 UDP 포트번호는 길이가 16비트다
      • 0에서 65,535까지의 값을 가질 수 있다
    • UDP와 TCP가 동일한 범위의 포트를 사용
      • UDP 포트번호 77이 가리키는 애플리케이션 프로세스는 TCP 포트번호 77이  가리키는 것과 다를 수 있다.
    • TCP/IP 전송 계층 주소지정은 TCP와 UDP 포트(port)를 통해 이뤄진다. 특정 IP 장비에서 각 포트번호는 특정 소프트웨어 프로세스를 식별한다.
  • 데이터그램 송신과 수신에서 포트 사용 요약
    • TCP/IP의 애플리케이션 프로세스 다중화와 역다중화는 IP의 프로토콜 필드와 UDP/TCP의 출발지 포트/목적 포트 필드를 통해 구현된다.
    • 송신 시에 프로토콜 필드는 TCP 또는 UDP 중 사용된 것으로 설정되며 포트번호는 송신/수신 소프트웨어 프로세스를 가리키도록 설정된다.
    • 데이터그램을 수신하는 장비는 프로토콜 필드를 보고 TCP와 UDP 중 어떤 것이 쓰였는지 판단하고, 목적지 포트번호가 가리키는 소프트웨어로 데이터를 전달한다.

TCP/IP 애플리케이션 할당과 서버 포트 범위

  • 예약 포트번호
    • 클라이언트 장비가 TCP/IP 서버에 좀더 쉽게 연결을 수립할 수 있도록 하기 위해, 널리 쓰이는 애플리케이션의 서버 프로세스느느 예약된 포트번호를 사용한다.
    • 클라이언트는 기본적으로 그 예약 포트번호를 사용하도록 미리 설정돼 있다.
  • TCP/UDP 포트번호 범위 (IANA에서 관리)
    • 유명(권한) 포트번호(0에서 1023까지)
    • 등록(사용자) 포트번호(1024에서 49151까지)
    • 사설/동적 포트번호(49152에서 65535까지)


TCP/IP 클라이언트 (임시) 포트와 사용할 클라이언트/서버 애플리케이션 포트

  • 대부분의 TCP/IP 클라이언트/서버 통신에서 클라이언트는 랜덤 임시 포트번호를 사용하여 서버 IP 주소의 예약 포트번호로 요청을 송신한다.
  • 서버는 요청의 출발지 주소로 응답을 돌려 보낸다.

TCP/IP 소켓과 소켓 쌍: 프로세스와 연결 식별
  • 장비의 TCP/IP 애플리케이션을 전체적으로 식별하는 것은 IP 주소와 포트번호의 조합인 소켓이다.
  • 각 장비는 특정 시간에 여러 활성화된 TCP 연결을 가질 수 있다. 각 연결은 클라이언트 소켓과 서버 소켓의 조합(클라이언트 IP와 주소, 서버 IP와 주소)으로 유일하게 식별된다.

범용 TCP/IP 애플리케이션과 유명/등록 포트번호
포트# TCP/UDP 키워드 프로토콜 약어 애플리케이션 또는 프로토콜 이름/주석
7 TCP + UDP echo - 에코 프로토콜
9 TCP + UDP discard - 디스카드 프로토콜
11 TCP + UDP systat - 활성 사용자 프로토콜
13 TCP + UDP daytime - 데이타임 프로토콜
17 TCP + UDP qotd QOTD 오늘의 문장 프로토콜
19 TCP + UDP chargen - 문자 생성기 프로토콜
20 TCP ftp-data FTP(데이터) 파일 전송 프로토콜(기본 데이터 포트)
21 TCP ftp FTP(컨트롤) 파일 전송 프로토콜(제어/명령)
23 TCP telnet - 텔넷 프로토콜
25 TCP smtp SMTP 단순 메일 전송 프로토콜
37 TCP + UDP time - 타임 프로토콜
43 TCP nicname - 후이즈 프로토콜(Nicname이라고도 함)
53 TCP + UDP domain DNS 도메인 네임 서버(도메인 네임 시스템)
67 UDP bootps BOOTP/DHCP 부트스트랩 프로토콜/동적 호스트 설정 프로토콜(서버)
68 UDP bootpc BOOTP/DHCP 부트스트랩 프로토콜/동적 호스트 설정 프로토콜(클라이언트)
69 UDP tftp TFTP 간이 파일 전송 프로토콜
70 TCP gopher - 고퍼 프로토콜
79 TCP finger - 핑거 사용자 정보 프로토콜
80 TCP http HTTP 하이퍼텍스트 전송 프로토콜(월드와이드웹)
110 TCP pop3 POP 포스트 오피스 프로토콜(버전3)
119 TCP nntp NNTP 유즈넷 뉴스 전송 프로토콜
123 UDP ntp NTP 네트워크 타임 프로토콜
137 TCP + UDP netbios-ns - NetBIOS(네임 서비스)
138 UDP netbiosdgm - NetBIOS(데이터그램 서비스)
139 TCP netbios-ssn - NetBIOS(세션 서비스)
143 TCP imap IMAP 인터넷 메시지 접근 프로토콜
161 UDP snmp SNMP 단순 네트워크 관리 프로토콜
162 UDP snmptrap SNMP 단순 네트워크 관리 프로토콜(트랩)
179 TCP bgp BGP 경계 경로 프로토콜
194 TCP irc IRC 인터넷 릴레이 채팅
443 TCP https HTTP over SSL SSL 위에서 동작하는 HTTP
500 UDP isakmp IKE IPsec 인터넷 키 교환
520 UDP router RIP 라우팅 정보 프로토콜(RIP-1과 RIP-2)
521 UDP ripng RIPng 라우팅 정보 프로토콜-차세대 버전
1512 TCP + UDP wins WINS 마이크로소프트 윈도우 인터넷 네이밍 서비스
1701 UDP l2tp L2TP 2계층 터널링 프로토콜
1723 TCP pptp PPTP 점대점 터널링 프로토콜
2049 TCP + UDP nfs NFS 네트워크 파일 시스템
6000-6063 TCP x11 x11 X 윈도우 시스템





댓글 없음:

댓글 쓰기