카테고리 없음

[펌] TCP/IP

achivenKakao 2005. 4. 13. 21:40
TCP/IP

 
1.TCP/IP
  1.1 TCP/IP의 특성
  1.2 TCP 헤더
  1.3 포트번호

2.IP
  2.1 IP의 특성
  2.2 IP헤더
  2.3 IP의 주소지정
  2.4 IP패킷의 절단 패킷의 절단이 필요한 이유

3. TCP/IP 하위 계층의 PROTOCOL

4. TCP/IP 응용 계층
  4.1 TELNET
  4.2 FTP
  4.3 SMTP
  4.4 TFTP
  4.5 버클리 R-시리즈 프로토콜


1.TCP/IP

    인터넷은 전세계에 흩어져 있는 네트워크들의 집합체이다. 이러한 네트워크들에 접속되어 있는 여러 다른 기존의 컴퓨터의 연결을 위해 이들의 통신을 가능하게 하는 프로토콜이 필요하게 되었는데 이를 위해 고안한 것이 TCP/IP(Transmission Control Protocol . Internet Protocol)다.

    메시지를 전송할 때 일단 메시지를 일정한 길이의 패킷 (packet)으로 나누게 되는데 이 역할을 TCP가 하며, TCP는 패킷에 패킷 번호와 수신 측의 주소, 그리고 에러 검출용 코드를 추가한다.
    패킷으로 쪼개진 메시지는 IP에 의해서 수신 컴퓨터로 보내지게 된다. 수신 측의 TCP는 에러 유무를 검사하고 에러가 발견되면 재전송을 요구하게 된다. 즉 TCP는 전송 데이터의 흐름을 관리하며 데이터의 에러 유무를 검사하고, IP는 데이터 패킷 을 전송한다.
     

     
     
    OSI(Open System Interconnection, 개방 시스템 간 접속)이란 서로 다르고 이질적인 네트워크 구조들간에 정보를 교환하기 위하여 개발중인 표준 프로토콜이다.

    이것은 7계층(layer)으로 구성된 계층적인(hierarchical)구조이다.

    각 층은 특유의 OSI 네트워크 기능을 수행하고, 다음 상위층을 서비스하며, 다음 하위층에게서비스를 요청한다.

    OSI 계층과 TCP/IP를 비교하면 아래와 같다.
     
    윗 그림을 보듯이 TCP/IP는 OSI 계층에서 Session 계층과 Presentation 계층이 없다.
    그 이유는 TCP/IP에서는 두 계층의 기능을 APPLICATION 계층의 일부 기능으로 생각하기 때문이다.
       
    *TCP/IP는 Ethernet상에서,또는 X.25상에서 모두 운영이되고 네트워크 전체를 관통하는 연결성의 조건은 IP에 의해 제공된다.
    인터네트에 참여하는 모든 호스트 및 노드는 단 하나의 Protocol인 IP만을 서로
    이해하도록 되어 있다.

    *윗 그림에서 ICMP(Internet Contro Message Protocol)는 모든 IP 구현의 요소이며,IP에 관한 오류 및 진단 정보를 전송해 주는 역활을 한다.
     

    1.1 TCP의 특성
    TCP(Transmission Control Protocol)는 IP상에서 수행되는 Transport 계층의 프로토콜이다.
    주요 임무는 네트워크를 통한 안정성 있는 데이터의 전송이다.
     

    • 동시에 양방향 전송(전이중, Full Duplex)이 가능한 가상 선로(Virtual Circuit)를 제공
    • 사용자가 느끼는 데이터 전송은 블록 단위의 전송이 아니라 한 줄기의 데이터 흐름과 같다.
    • 안정성 있는 데이터 전송(오류 제어, 흐름 제어)
    • 슬라이딩 윈도우 프로토콜을 사용한 데이터 전송
      위에서 가장 강력한 TCP의 특징은 두번째 항복이다. 송신자와 수신자는 전송되는 데이터에 있어서 어느 부분까지가 블록의 끝이며, 어느 부분부터 블록의 시작인지를 구분할 필요가 없다.

      송신자는 파일에 데이터를 출력하듯이 전송하기 위한 함수(예, write)를 사용하여 송신하고, 수신 자는 파일에서 데이터를 읽듯이 수신하기 위한 함수(예, read)를 사용하여 수신한다.

      TCP가 이런 특성을 갖는 이유는 데이터 송수신의 흐름 제어를 바이트 단위로 하기 때문이다.
      프로토콜 헤더의 일련번호(Sequence Number)나 전송 확인(Acknowledgement) 등의 필드가
      바이트 단위의 값으로 표현된다는 점이기 때문이다.
      이로 인해 전송되는 블록의 크기를 결정하는 데 있어서 유연성을 가질 수 있게 된다.
       

    1.2 TCP 헤더
TCP Protocol 헤더
*근원지, 목적지 포트

가상 선로의 양측 사용자를 나타내는 각 16비트씩의 필드이다.
하나의 가상 선로는 {근원지 주소,근원지 포트, 목적지 주소,트랜스포트 Protocol}에 의해 식별되며 근원지 포트와 목적지 포트는 이 중 두 개의 구성원이다.

      *일련 번호, 전송 확인 번호

      슬라이딩 윈도 프로토콜은 송신자가 일련번호(Sequence Number) 와 함께 데이터를 전송하고, 수신자는 이에 대해 받은 데이터 수를 의미하는 전송 확인 번호(Acknowledge number)를 응답함으로써 안정적인 데이터 전송을 보장해 준다.

      *데이터 옵셋

      TCP Protocol 헤더의 크기를 32비트 단위로 표현한 값이다. 이 값으로부터 실제 데이터 영역의 시작점을 계산할 수 있다.

      *플래그

      TCP의 특정 동작을 유발 시키는 데 사용된다.설정값이 1로 되어있을경우 표와 같은 의미를 갖는다.
       

    플래그의 의미
     
    플래그의        미
    URG급송(Urgent) 필드의 값이 의미 있음
    ACK전송 확인 번호가 유효함
    PSH현재 세그먼트의 데이터가 즉시 응용계층에 전달되어야 함
    RST연결의 재설정
    SYN연결 설정 요구이며 전송 확인이 있어야 함 
    FIN단방향 연결 끊기, 데이터 전송 종료를 의미하여 전송 확인필요
     
     
      *윈도크기
       
      윈도 크기는 수진자측에서 현재 자신이 수신할 수 있는 최대 바이트 수이다.
      수신측 에서는 자신의 버퍼의 크기에 따라서 이 값을 조절하며,윈도 크기가 0이 되는 경우 송신자는 전송을 잠시 중단한다.수신측에서는 버퍼로부터 데이터를 읽어 처리함에 따라 윈도 크기를 늘이고 송신자는 다시 전송을 시작한다.

      *체크썸

      체크썸이 계산되기 전에 TCP는 가상 헤더(Pseudo Header)를 만든다.가상 헤더에는 근원지와 목적지의 인터네트 주소 및 패킷의 길이가 포함되어 있다.

         
       
*급송지점

일반 데이터의 끝지점을 나타내다. 다음에 이어지는 데이터는 중요하며, 급송해야할 데이터(Urgent Data)이다.

       
*옵션

세 가지 옵션인 옵션 목록 끝(End-of-Operation), 무작용(No Operation) 최대 세그먼트 크기(Maximum Segment Size)등이 있다.

 
1.3 포트 번호
 
IP에서 네트워크상의 통신중인 두 호스트를 식별하기 위해서 사용한 것이 인터네트 주소였다. IP는 목적지의 인터네트 주소를 이용해서 데이터그램이 정확한 호스트에 도착하도록 해준다. 그러나, 하나의 호스트에 다중의 사용자, 다중의 프로세스가 작업을 하고 있다면 호스트 내부의 통신 당사자들은 어떻게 구분해 줄 것인가? 이문제를 해결해 주는 것이 포트번호이다.
 
포트 번호는 트랜스포트 계층의 TCP 및 UDP가 사용한다. 호스트의 인터네트 주소에 따라 IP가 호스트간의 전송을 완수한 것과 마찬가지로  TCP와 UDP는 포트 번호를 사용하여 전송된 패킷을 해당 프로세스에 정확하게 전달한다. 하나의  프로세스는 여러 개의 포트 번호를 동시에 사용할 수도 있고, 하나의 포트 번호를 둘 이상의 프로세스가 공유하기도 한다.
 
                  UDP와 TCP비교
 
 
TCPUDP
동시에 양방향 전송이 가능한 가상 선로(Virtual Circuit) 제공가상선로의 개념이 없는 비연결 프로토콜이다.
사용자가 느끼는 데이터 전송은 블록 단위의 전송이 아니라 한 줄기의 데이터 흐름과 같다.데이터의 전송이 블록 단위이다
안정성 있는 데이터 전송 (오류제어,흐름제어)안정성 없는 데티터 전송(블록 재전송 및 흐름 제어등이 없다
TCP의 각 사용자는 16비트의포트번호를 할당 받는다.슬라이딩 윈도등의 복잡한 기술을 사용하지 않는다.
  
      UDP는 트랜스포트 계층에 해당하는 비연결 Protocol(Connectionless Protocol)이다.
      UDP의 특성을 간단히 요약하면 다음과 같다.
       
      • 가상 선로(Virtual Circuit)의 개념이 없는 비연결 Protocol이다.
      • 데이터의 전송이 블록 단위이다.
      • 안정성 없는 데이터 전송(블록 재전송 및 흐름 제어 등이 없다.)
      • 슬라이딩 윈도 등의 복잡한 기술을 사용하지 않는다.
      • UDP의 각 사용자는 16비트의 포트 번호를 할당받는다.
     
    UDP 헤더
     
     
    근원지 포트 번호목적지 포트 번호
    길 이체크썸
     
                     
    * 근원지,목적지 포트 번호

    TCP에서와 마찬가지이며, 트랜스포트 Protocol의 사용자를 식별한다.

    * 길이

    Protocol 헤더를 포함한 데이터그램 전체의 길이

    * 체크썸

    UDP는 체트썸을 계산하게에 앞서 TCP에서 체크썸 그림과 같은 가상 헤더를 만든다.
    체크썸의 계산은 데이터, UDP 헤더, 그리고 가상 헤더를 모두 호함하여 이루어진다.
    이 필드의 값이 0이면 송신자가 체크썸을 계산하지 않은 것이다.

    UDP 사용 용도

    IP가 해주는 작업에 비할 때 UDP의 일은 아주 적다. UDP는 단지 포트 번호를 제공하고 체크썸을 계산을 계산할 뿐이다. 또한, TCP와는 다르게 전송 데이터에 대한 전송확인이나 안정성에 대한 고려를 하지 않고 있다.

2.IP
    인더넷에 연결된 모든 호스트는 IP를 사용해야 한다.
    IP의 주요 임무는 호스트의 주소지정 (Addressing)과 패킷 전달이다. 그러나, 종단간(End-to-End)에 전송되는 메시지의 안정성이나 흐름 제어에 관해서는 책임이 없다.
    단지, 패킷을 다음 목적지로 전달하기 위해 최선을 다할 뿐 전달 되었는지에 관해서는 보장해 주지 않는다.

    2.1 IP의 특성
     

    • 비연결 프로토콜(Connectionless Protocol)
    • 필요시에는 패킷을 절단
    • 32비트의 인터네트 주소를 사용하여 주소 지정
    • 최대 패킷 크기 65535바이트
    • 데이터를 제외한 헤더 부분에 관해서만 체크썸
    • 필요에 따라 요구되는 프로토콜 필드는 선택적인 것으로 지정
    • 패킷 활동 시간 제한
    2.2 IP헤더
 
      * 버전

      4비트이며 IP의 버전 번호를 나타낸다.

      * 헤더 길이

      IP의 헤더 길이를 32비트 단위로 표시한다.

      * 서비스 유형
      IP는 표와 같은 기준에 따라 메시지를 처리한다. 그러나, 실제로는 0값을 주로 사용하는데 그이유는 두 컴퓨터간에 질적으로 상이한 경로가 존재하는 일이 드물기 때문이다.

       
     
    비트값이 0일 때값이 0일 때
    0-2우선 순위 
    3보통 지연지연 적음
    4보통 처리율고속 처리율
    5보통 안정성높은 안정성
    6-7예약 
     
      *패킷길이

      패킷길이는 프로토콜의 헤더를 포함한 패킷의 길이이다.
      TCP로부터 IP에 전달되는 데이터 단위를 데이터 그램(Datagram)이라 하며, 때로 IP는 이 데이터그램을 절단해서 조각Flagment)을 만들고, 각 조각마다 새로운 패킷을 구성하여전송한다.
      IP가 전송하는 패킷의 종류에는 본래의 데이터그램과 절단된 조각의 두 종류가 있는 셈이다. 패킷 길이 필드는 이 두 가지 중에서 절단된 조각의 길이를 의미하는 것이지 본래의 데이터그램의 길이를 나타내는 것은 아니다.

      *식별자

      데이터그램을 절단하면 여러개의 조각으로 메시지가 전송된다.
      이 조각들이 모두 하나 의 데이터그램에서 절단된 것임을 알려주는 것이 식별자이다.

           
      *플래그

      두 비트 DF(Don't Flagment)와 MF(More Flagment)는 데이터그램의 절단된 조각을 제어하기
      위한 것이다.
      DF비트가 1로 되어 있다면, IP는 어떤 상황에서도 절단하지 않고는 전송이 불가능 하다 하더라도 데이터그램을 절단하지 않는다.
      MF비트는 데이터그램이 여러 조각으로 절단된 경우사용되는데, 뒤따라오는 조각이 있는지 없는지를 나타낸다. 이필드의 첫 번째 비트는 사용되지 않는다.

           
      *조각 옵셋(Flagment Offset)

      MF 비트를 사용하는 경우 조각 옵셋은본래데이터그램으로부터 현재 조각이 갖는 위치를 나타낸다.

      *활동 시간

      송신 호스트는 자신이 전송하는 패킷이 얼마동안 네트워크상에 활동하다 소멸될 것 인지를 표시한다.

             
      *트랜스포트 프로토콜

      패킷을 전달받을 트랜스포트 프로토콜의 식별자이다.

      *헤더 체크썸

      프로토콜 헤더에 대한 체크 썸이다. 체크썸을 이용하는 이유는 데이터 전송 오류를 검사함으로써 잘못된 데이터를 계속해서 처리하지 않도록 하는 것이다.
      효율을 높이기 위해서 IP 패킷의 사용자 데이터는 검사의 대상이 되지 않는다.
      이 부분에관한 검사는 수신측의 트랜스포트 프로토콜에서 수행된다.

      *옵션 및 채움

      특정 작업(네트워크 관리, 보안)에 관해서는 IP프로토콜 헤더가 확장되어 옵션을 포함해야 한다. 채움이 필요한 이유는 IP프로토콜 헤더는 16비트 워드의 수가 4의 배수가 되어야 하기 때문이다.
       

    2.3 IP의 주소 지정
      인터네트상의 응용 프로그램은 통신 상대방을 지정하기 위해서 총 4가지의 주소 지정 방법을 사용한다.
      (1)물리적 네트워크 주소(예,Ethernet 주소)
      (2)인터네트 주소
      (3)트랜스포트 프로토콜 식별자(TCP,UDP)
      (4)포트 번호
      이들 중 두 개의 주소 인터네트 주소, 트랜스포트 프로토콜 식별자(TCP, UDP)는 IP 헤더에 표시되어 패킷을 전송시킨다. 인터네트 주소는 모든 인터네트상에서, 한 개의 주소값을 가져야한다.
      IP ADDRESS 중 모든 0과 모든 1은 사용되지 않는다.
      (그 이유는 모든 0과 1은 Broadcaste라는, 자기자신을 알리는 역활을 담당하고 있기때문이다.)

      A Class

      A class networks은  1.0.0.0 부터 127.0.0.0.까지의 network number를 사용한다.
      network address를, 32비트중 24비트의 host를 사용 1.6 백만개의 hosts들을 연결하여 사용할 수 있다.

      B Class

      B Class networks 128.0.0.0 부터 191.255.0.0까지의 network  number를 사용한다.
      network address를, 32비트중 16비트를 사용하여,65024개의 hosts들을 연결하여 사용할 수 있다.

      C Class

      C Class networks 192.255.0.0 부터 254.255.255.0 까지의 network number를 사용한다.
      network address를, 32비트중 24비트를 사용하여 2백만개의 network 과 254개의 host를 사용할 수 있다.
       

    2.4 IP패킷의 절단 
     
      패킷의 절단이 필요한 이유는 송신자로부터 목적지에 이르기까지의 각 링크의 특성이 모두 다르 기 때문이다.
      따라서, 네트워크상의 각 노드에서 수행되는 IP는 수신된 패킷을 다음의 노드(또는 호스트)에 전달하기 위해 절단된 후 전송하는 기능을 가져야 한다. 또한 절단되어 전송된 패킷을 다시 원래의 데이터그램으로 조립할 수 있어야 한다.
     
3. TCP/IP 하위 계층의 PROTOCOL

    SLIP(Serial Line Interface Protocol)
     
    SLIP는 다얼식 모뎀이나 사설 선로의 모뎀 같은 시리얼 라인상에서IP데이터
    그램을 전송하기에 유요한 프로토콜이다.
    SLIP은 데이터를 패킷으로 만든 후 지점간(Ping-to-Point)연결을 통해서
    전송을 하기 때문에 주소 필드나 프로토콜 필드를 포함하고 있지 않다.
    PPP (Point-to-Point Protocol)

    PPP역시 데이터 링크 계층에 해당하는 프로토콜로서 시리얼 라인을 통한
    IP 데이터그램의 전송을 가능하게 해준다.

    PPP는 SLIP의 단점을 보안한 프로토콜이다.

    * 비동기 연결이나 동기식의 비트 단위전송 시스템 모두에 사용하도록 설계됨

    * 단순한 두 호스트의 연결뿐 아니라 선로으 상태, 옵션협상 및 IP주소의  설정
      등을 다루기 위한 관리 기능과 시험기능을 제공하고 있다.

    ICMP(Internet Control Message Protocol)

    * 네트워크상의 오류,IP에 대한 오류 및 진단 데이터를 전송할 책임을 가지고
      있는 프로토콜이다.

    * 디바이스의 상태 메세지를 검사하고 실행한다.

    ARP(Address Resolution Protocol),RARP(Reversed Address Resolution Protocol)
    인터네트에서는 물리적 네트워크 주소를 사용할 수 없는 문제가 발생한다.
    이에 대한 대안으로 인터네트 주소는 물리적 주소로, 물리적 네트워크 주소는
    인터네트 주소로 변환시켜 주는 프로토콜이 ARP,RARP이다.
    * ARP의 목적은 인터네트 주소를 Ethernet과 같은 하드웨어 주소로 변환하는
      것이다

    * RARP는 ARP와는 반대로 하드웨어 주소를 IP주소로 변환하기 위해서 사용됨

 
4. TCP/IP 응용 계층
    위에서 우리는 하위 계층의 TCP/IP프로토콜에 대해서 설펴보았다. TPC/IP 프로토콜이라는 말의 의미는 하위 계층의 IP,TCP와 더불어 이들을 사용해 서비스를 제공하는 여러 응용 계층의 프로토콜들을 포함하고 있다.

    TELNET, FTP, SMTP, TFTP, X 윈도, SNMP, NFS, DNS, 버클리 대학의 R-시리즈 프로토콜 등은 모두 TCP/IP의 응용 계층 프로토콜이다. 이중에서 버클리 대학의 R-시리즈 프로토콜은 특정 운영 체제(UNIX)에서만 가능하고 상이한 운영 체제를 사용하는 경우에는 사용 불가능한 프로토콜이다.

    응용 계층의 프로토콜 중에서 일반 사용자들이 가장 많이 사용하는 프로토콜은 TELNET, FTP, SMTP, TFTP 그리고 R-시리즈 프로토콜 등이다. 이들 프로토콜을 설명하기 전에 R-시리즈의 RLOGIN을 포함한 다섯 개의 프로토콜이 하는 기능을 간략하게 기술하면 표와같다

 
 
프로토콜수행 명령용   도
TELNETtelnet통신망을 이용한 이기종 컴퓨터의 접속 및 사용
FTPftp통신망에 연결된 컴퓨터로부터 파일을 읽고, 쓰고, 지움
SMTPmail통신망의 사용자와 전자 우편을 송수신
TFTPtftpFTP와 비슷하며, 다른 점은 로그인 과정이 없고 읽기, 쓰기의 제한이 강하다는 것
RLOGINrloginTELNET과 비슷한 기능을 하지만 UNIX 기종 사이에서만 사용
 
     이들 프로토콜이 수행되기 위해 사용자는 표의 수행 명령어를 사용하지만, 서버 컴퓨터상에서도 서버를 제공하는 서버가 이ㅅ어야 하는데 이들을 일반적으로 데몬(Daemon)이라 하며 telnetd, ftpd와 같이 사용자 명령 뒤에 d가 붙은 이름을 갖는다.
 
    이처럼 하나의 서비스를 위해서는 사용자가 직접 기동시키는 프로그램인 클라이언트(Client)와 서비스를 제공하기 위해서 수행되는 서버(Server) 프로그램이 필요하다. 이와 같은 방식을 들어서 클라이언트/서버 관계라고 한다.
     

    4.1 TELNET
 
      TELNET이 제공하는 서비스는 네트워크상에 연결된 컴퓨터에 로그인한 후 각종의 명령어를 사용하도록 해주는 것인테, 이를 터미널 세션, 원거리 로그인, 또는 가상 터미널이라 부른다.
     
      telnet 명령은 사용자측 호스트에 존재해야 하며 telnet는 서버 컴퓨터측에 존재하는 프로그램이다. 이 때, 서버란 사용자가 로그인하는 원거리의 컴퓨터이다.
[TELNET 시스템]
      UNIX를 운영 체제로 하는 컴퓨터 사이의 로그인이라면 후에 설명할 rlogin을 사용하여 로그인하는 것이 몇 가지 이점을 얻을 수 있다. 그러나, 서로 다른 운영 체제를 갖는 컴퓨터 사이의 로그인이라면 반드시 telnet을 사용해야 한다. 물론, UNIX를 운영 체제로 하는 컴퓨터 사이의 로그인에 telnet을 사용하는 것도 무방하다.
       
    4.2 FTP
      FTP 프로토콜이 제공하는 기능은 파일의 송수신, 파일 삭제, 파일 이름변경,디렉토리의 생성, 삭제, 변경, 전자 우편 사용 등 다양하다. 이들 기능은 다양한 유형의 컴퓨터 사이에서 호환성 있게 적용되어야 하는데, 그러기 위해서는 철기해야 할 문제가 많다.

      첫째, 데이터는 각 컴퓨터마다 저장 형태가 다르다.
      둘째, 비슷한 효과의 명령이라 할지라도 캄퓨터마다 사용해아 할 명령이 다르다.
      셋째, 권한이 없는 사용자의 파일 접근을 제한하기 위한 보안사으이 대책도
           시스템마다 서로 다르다.

      FTP는 네트워크상의 컴퓨터 사이에 파일 전송을 수행하는 응용 프로그램을 위한 서비스를 제공하기 위해서 설계된 것이다. 따라서, FTP는 파일 전송을 위한 기본적인 서비스를 제공할 뿐 사용자와의 인터페아스를 정의한 규약은 아니다. 사용자가 ftp라는 명령을 수행할 때 화면에 나타나는 것은 FTP의 서비스를 사용하기 위한 인터페이스이며 이 때 FTP 소프트웨어도 함께 수행된다.

      FTP의 역확은 시스템의 상이한 점을 공통된 표준에 따라 호환성을 가지도록 해주는 것이다. 예를 들면, 사용자가 FTP를 이용하여 다른 호스트에 접속했을 때 맨 처음으로 사용하게 될 명령은 다음과 같이 시스템에 따라 다양하다.

 
운영 체제명  령
  VMS dir
  DOS dir
  윈도 3.x 폴더(Folder)를 마우스로 누름
  UNIX ls
  파인더(매킨토시) 폴더(Folder)를 마우스로 두 번 누름
 
      FTP는 파일 관리와 파일 전송을 위한 표준을 제공해야 한다.  디렉토리의 목록을 보기 위한 명령뿐 아니라 다른 대부분의 명령도 파일 시스템에 따라 다른데, 이는 디렉토리의 이동, 파일의 삭제,파일의 삭제, 하일의 생성 등 대부분의 경우가 그러하다. 따라서, FTP는 서로 시스템 사이의 명령을 상대방이 이해할 수 있도록 번역해 주어야 한다. 이 무너제를 해결하는 것이 바로 네트워크 표준 명령(NEWORK STANDARD COMMAND)이다. 이 명령들은 네트워크상의 많은 운영체제의 고유한 특성에 관계 없이 동일한 의미를 지닌다.
     
      표는 FTP에서 사용하는 표준 네트워크 명령을 나열한 것이다.LIST 명령 은 MS-DOS 의 dir에 해당하는 것인데 FTP로 UNIX 시스템과 접속된 MS-DOS 상의 사용자가 dir 이라고 입력한 명령은 FTP에 의해 다시 LIST 변환되어  FTP 서버에 전송되고 서버는 dir에 해당하는 UNIX 명령의 수행 결과를 사용자에게 전송한다. 표의 명령은 ASCII 대문자 형태로 TCP의 세그먼트에 실려서 서버와 클라이언트 시이에 송수신된다.
 
 
 
명   령설    명
  USER 로그인할 사용자 식별자가 뒤따른다.
  PASS 사용자 패스워드가 뒤따른다.
  CWD 작업 디렉토리 변경프로그램 
  CDUP 부모 디렉토리로 이동
  QUIT 작업 종료
  TYPE 유형정의
  RETR 파일 검색
  STOR 파일 송신
  DELE 파일 삭제
  RMD 디렉토리 삭제
  MKD 디렉토리 생성
  LIST 사용자 디렉토리 목록 보기
  NLST 프로그램 디렉토리 보기
  STAT 상태
  HELP 서버가 제공하는 명령 목록
 
 
      FTP는 다양한 종류의 데이터를 전송하는 데 있어서 다소 제약이 있는 편이다.FTP 사용자는 전송에 사용할 데이터 유형을 지정할 수 있다. 예를 들어 사용자는 전송할 파일의 형태를 ASCⅡ나 EBDIC으로 정의 한다. 기본적인 값은 ASCⅡ 유형의 전송이다. FTP의 모드 구현은 기본적으로 ASCⅡ의 전송을 지원해야 한다. EBDIC또한 현재 지원되며 주로 메인 프레임 호스트간의 데이터 전송에 사용되며, 비트 스트림의 전송도 지원한다. 비트 스트림의 전송은 이미지 유형으로 정의하며 전송 모드는 이진 모드에 속한다. 이진 모드에서 파일의 전송은 연속적인 8비트 데이터의 전송이므로 실행 파일이나 그림 파일과 같은 파일의 전송에 사용한다.
     
      FTP 프로토콜의 파일 송수신에는 어러 가지 전송 모드가 명시되어 있기는 하지만 현재 텍스트 모드와 이진 모드만이 주로 사용된다. 텍스트 모드에서 텍스트 파일은 ASCⅡ행이 캐리지 리턴(Carriage Return)과 개행 문자(New Line)로 구분되어 전송된다. 이진 모드에서 파일은 어떠한 변화도 없이 일련의 바이트로 전송되며, 이 방식은 텍스트 모드에 비해 속도가 꽤 빠르다. 동일한 기종인 경우 빠른 전송을 위해서는 텍스트 파일에 대해서도 이진 모드를 사용하는 것이 좋다.
       
    4.3 SMTP
 
      SMTP(Simpe Mail Transfer Protocol)는 RFC 821에 명시되어 있는 인터네트 전자 우편 프로토콜이다. SMTP는 TCP 포트 25를 사용하며, TELNET이나 FTP와 같이 간단한 프로토콜이다.
     
      SMTP 프로토콜

      SMTP는 여러 가지 전자 우편 응용 프로그램 사이에 통신을 가능하게 해주는 규약이다. 클라이언트는 ASCⅡ 명령을 서버에게 보내고 서버는 숫자와 택스트로써 이에 응답한다.
      SMTP 명령들은 SMTP의 서버와 클라이언트 사이에서 사용되는 것이지 두 사라의 사용자 사이에 교신하기 위한 명령은 아님

     
      SMTP는 사용자 호스트 주소를 지정하기 위해서 기호 이름을 사용할 수도 있고, IP 주소를 직접 사용할 수도 있다.
       
    4.4 TFTP
     
      TFTP(Trivial File Transfer Protocol)는 최소한의 요건만을 갖춘 파일 전송 프로토콜이다
      FTP와 마찬가지로, TFTP는 텍츠트 및 이진 전송 모드를 제공한다. FTP와 주요하게 다른 점은 비연결 프로토콜인 UDP를 사용한다는 점이다. 따라서, TFTP는 타이머나 재전송 등을 구현하여 안정성 있는 파일 전송을 제공해야 하는 책임을 갖는 다. 또, TFTP에서는 FTP와 다르게 서버 호스트에 로그인하는 과정이 없다. 따라서, 파일 접근 허용상에서 FTP와는 다른 기준이 필요하다.

      예를 들어, UNIX 시스템에서는 접근 허용이 모든 사용자에 대해 읽기.쓰기가 가능하게 되어 있는 파일에 대해서만 TFTP를 통한 읽기 쓰기가 실현된다. TFTP의 사용은 시스템간의 일반 파일 전송에 있어서는 별다를ㄴ 장점이 없다. 반면에 TFTP는 예외적인 경우에만 사용된다.

      현재 TFTP는 X 터미널에 서버 프로그램 및 폰트를 적재하는데, 디스크가 없는 워크스테이션의 부트스트래핑(Bootstrapping)에 사용되고 있다. 후자의 경우 TFTP는 시스템 프로그램을 메모리에 전송하는 데 사용된다.

      TFTP를 이렇게 사용하는 이유는 작업 요건이 크지 않기 때문이다. 작업 요건이라면 프로토콜 자신과 IP 시본 기능, 간단한 UDP프로토콜 및 네트워크 접근용 구동기가 필용할 뿐이다. 이런 프로토콜은 값싸게 구현할 수 있고 몇 킬로바이트의 메모리에 저장할 수 있다.
       

    4.5 버클리 R-시리즈 프로토콜
     
      버클리의 캘리포니아 대학에서 TCP/IP를 UNIX에 구현함으로써 TCP/IP 아키텍처는 결정적인 성공을 했다. 개발자들은 FTP나 TELNET과 비슷한 프로토콜을 구현했을 뿐 아니라 UNIX의 특성ㅇ르 활용한 네트워크 명령어들을 만들어냈다. 새로운 명령어들은 기존의 UNIX 명령어의 이름을 거의 그대로 사용했다 이들을 버클리 R-유틸리티라고 부른며,  R-유틸리티라고 하는 이유는 명령이 원거리(Remote)를 의하는 R로 이름을 시작하기 때문이다.

      RLOGIN

      RLOGIN이라는 이름은 원거리 로그인(Remote Login)을 의미하는 것으로, 사용자는 이 명령어를 사용해서 다른 컴퓨터에 로그인할 수 있다. rlogin에 대한 서버는 rlogind이며, TCP 포트 513번으로 연결 요청을 기다린다.

      RLOGIN이 TELNET과 크게 다른 점은 없다. 그러나, UNIX 환경에서 rlogin은 telnet에 비해 사용이 편리하다. 반면에, telnet은 이기종 컴퓨터간의 작업에 적합하다.

      RLOGIN 프로토콜

      RLOGIN 프로토콜은 매우 간단하다. 세션이 시작되면 0으로 분리된 세 개의 문자열이 전송된다.
       
      ① 사용중이던 컴퓨터에서의 사용자 ID

      ② 서버 컴퓨터에서의 로그인에 사용하고자 하는 사용자 ID 기본적으로 ①과 동일한 값이 사용되지만 사용자가 -1 옵션을 사용한 경우에는 옵션 뒤에 지정한 ID가 전송된다.

      ③ 사용중이던 컴퓨터의 터미널 ID 및 전송속도, 터미널 ID는 서버 컴퓨터에서 TERM 환경 변수값으로 이용되, 전송속도는 가상 터미널의 내부 구조체에 저장되며 터미널 제어문자에 대한 지연 시간을 정확히 계산할 수 있도록 한다.

");// :script -->