TCP/IP

Transmission Control Protocol and Internet Protocol (TCP/IP) 는 1970년대 후반에 Defense Advanced Research Projects Agency (DARPA) 에 의하여 개발된 프로토콜의 표준화된 규격이고 다른 종류의 컴퓨터와 컴퓨터 네트워크 간에 통신을 하기 위한 수단 입니다. TCP/IP 는 인터넷을 주도하는 힘이고, 그러므로 그것은 지구상의 네트워크 프로토콜 중에 가장 인기있는 규약 입니다.

TCP/IP 소개

TCP/IP의 두 가지 프로토콜 요소는 컴퓨터 네트워킹의 다른 측면을 다룹니다. Internet Protocol, TCP/IP의 "IP"는 네트워크 정보의 기본 단위로서 IP datagram 을 사용하는 네트워크 패킷 라우팅만을 다루는 접속이 없는 프로토콜 입니다. TCP/IP의 "TCP" 는 Transmission Control Protocol 이고, 네트워크 호스트들이 데이터 스트림을 교환하기 위하여 사용될 수 있는 접속을 이루기 위해 활성화 합니다. TCP는 또한 접속들 간에 자료가 한 네트워크 호스트에서 주고 받는 것과 마찬가지로 다른 네트워크 호스트에서 보내지는 것도 보장 합니다.

TCP/IP 설정

TCP/IP 프로토콜 설정은, 해당 설정 파일들을 편집하거나, 적당한 TCP/IP 설정 값을 네트워크 클라이언트에게 자동적으로 제공하기 위하여 사용하는 Dynamic Host Configuration Protocol (DHCP) 서버와 같은 솔루션을 적용하는 것에 의해, 반드시 지정되는 여러가지 요소로 구성 합니다. 이 설정 값들은 여러분의 우분투 시스템의 적절한 네트워크 동작의 편의를 위하여 반드시 정확하게 지정되어야 합니다.

TCP/IP의 공통적인 설정 요소와 그들의 목적은 다음과 같습니다:

  • IP 주소 IP 주소는, 점으로 구분되는 네 개의 0부터 255까지의 십진수 범위의 숫자들이고, 각각의 네 숫자는 전체 주소를 위한 총 32 bits의 8 bits 주소를 표현하는, 유일한 식별자 입니다. 이러한 형식은 dotted quad notation 라 불립니다.

  • Netmask 서브넷 마스크는 (또는 간략하게, netmask) 네트워크 상의 비트 마스크, 또는 네트워크에 중요한 IP 주소에서 subnetwork 에 중요한 비트를 구분하는 부분인 플래그의 집합 입니다. 예를 들어, 클래스 C 네트워크에서, 표준 netmask는 255.255.255.0 이고, IP 주소의 첫 3 바이트는 차폐하고 IP 주소의 마지막 바이트는 서브 네트워크 상의 호스트를 지정하기 위해 사용하도록 남겨지는 것을 허용 합니다.

  • 네트워크 주소 네트워크 주소는 IP 주소에서 네트워크 부분을 구성하는 바이트들로 표현됩니다. 예를 들어, 클래스 A 네트워크 내의 12.128.1.2 호스트는 네트워크 주소로 12.0.0.0을 사용하게 되며, 12는 IP 주소의 첫 바이트(네트워크 부분)를 나타내고, 나머지 3 바이트는 잠재적인 호스트의 값을 나타내기 위해 모두 0을 사용합니다. 사설 IP 주소 192.168.1.100을 사용하는 네트워크 호스트는 네트워크 주소로 192.168.1.0을 사용하게 되며, 네트워크 부분으로 클래스 C 네트워크의 첫 3 바이트를 나타내는 192.168.1을 사용하고 나머지는 네트워크 상의 가능한 모든 호스트들을 나타내기 위해 0을 사용합니다.

  • 브로드캐스트 주소 브로트캐스트(Broadcast) 주소는 특정 호스트를 지정하는 것이 아닌 주어진 서브네트워크 상의 모든 호스트들에게 동시에 데이터를 전송할 수 있도록 하는 IP 주소입니다. IP 네트워크의 표준 일반 브로트캐스트 주소는 255.255.255.255이지만, 이 브로트캐스트 주소는 라우터에서 블록되기 때문에 인터넷 상의 모든 호스트에 메시지를 전송하기 위해 사용할 수 없습니다. 보다 적절한 브로트캐스트 주소는 특정 서브네트워크에 맞는 것입니다. 예를 들어 클래스 C의 사설 IP 네트워크인 192.168.1.0의 경우에 브로트캐스트 주소는 192.168.1.255가 될 것입니다. 브로트캐스트 메시지는 일반적으로 Address Resolution Protocol (ARP) 과 Routing Information Protocol (RIP) 를 통해 생성됩니다.

  • 게이트웨이 주소 게이트웨이 주소는 특정 네트워크 또는 네트워크 상의 호스트로 접근하기 위하여 통해야 하는 IP 주소 입니다. 만약 한 네트워크 호스트가 같은 네트워크 상에 위치하지 않은 다른 네트워크 호스트와 통신을 하기를 원한다면, 하나의 게이트웨이를 반드시 사용하여야 합니다. 많은 경우에, 게이트웨이 주소는 같은 네트워크 상의 라우터의 주소가 되고, 인터넷 호스트와 같은 다른 네트워크 또는 호스트로 트래픽을 넘기는데도 사용이 됩니다. 게이트웨이 주소 설정 값은 반드시 정확하여야 하고, 그렇지 않다면 여러분의 시스템은 같은 네트워크 밖에 있는 어떠한 호스트로도 접근을 하는 것이 불가능 합니다.

  • 네임서버 주소 네임서버 주소는 도메인 네임 서비스(DNS)의 IP 주소를 나타내고, 네트워크 호스트 이름을 IP 주소로 알아내는 역할을 합니다. 네임서버 주소의 세 가지 수준이 있고, 그것을 중요도의 순서로 지정하면: 우선(일차) 네임서버, 이차 네임서버, 그리고 삼차 네임서버 입니다. 여러분의 시스템이 네트워크 호스트 이름으로 그들에 대응하는 IP 주소를 알아내기 위해서는, 여러분은 시스템의 TCP/IP 설정에 여러분이 사용할 수 있게 허가된 올바른 네임서버 주소를 반드시 지정을 해야 합니다. 많은 경우에 이 네임서버 주소는 여러분의 네트워크 서비스 제공자에 의해서 제공될 수 있고 제공되어 지지만, 많은 무료 그리고 공개적으로 접근이 가능한 4.2.2.1 에서 4.2.2.6 까지의 IP 주소를 가지는 Level3 (Verizon) 서버와 같은 네임서버들이 사용가능 합니다.

    [작은 정보]

    IP 주소, 넷마스크, 네트워크 주소, 브로드캐스트 주소, 그리고 게이트웨이 주소는 전형적으로 /etc/network/interfaces 파일 내에 해당 지시자를 사용하여 지정 됩니다. 네임서버 주소는 /etc/resolv.conf 파일 내에 nameserver 지시자를 통해 일반적으로 지정 됩니다. 더 많은 정보는, 터미널 프롬프트에서 다음의 명령을 사용하여, interfaces 또는 resolv.conf 를 위한 시스템 지침서를 읽어 보십시오:

    interfaces 를 위한 시스템 매뉴얼 페이지는 다음의 명령으로 접근 합니다:

    man interfaces
    

    resolv.conf 를 위한 시스템 매뉴얼 페이지는 다음의 명령으로 접근 합니다:

                    
                      man resolv.conf
                    
                  

IP 라우팅

IP 라우팅은 TCP/IP 네크워크 상에서 데이터가 보내질 경로를 지정하고 찾아내는 방법입니다. 라우팅은 네트워크 데이터 패킷이 출발지에서 목적지로 전달되는 경로를 지정하기 위해 라우팅 테이블의 집합을 이용하며, 때때로 라우터라 불리는 많은 중간 네트워크 노드를 통합니다. IP 라우팅에는 정적 라우팅동적 라우팅이라는 두 가지 주요한 형태가 존재합니다.

정적 라우팅은 시스템 라우팅 테이블에 직접 IP 경로를 추가하는 작업을 포함하며, 이 작업은 대개 route 명령을 통해 라우팅 테이블을 조작하는 방식으로 이루어 집니다. 정적 라우팅은 동적 라우팅에 비해 작은 네트워크에서의 간단한 구현, 예측 가능성(라우팅 테이블은 항상 먼저 계산되므로, 라우팅은 매번 사용될 때 마다 정확히 일치합니다), 다른 라우터들과 네트워크 링크 간에 동적 라우팅 프로토콜의 부재에 따른 보다 적은 오버헤드 등의 장점을 가집니다. 하지만, 정적 라우팅은 몇 가지 단점들도 가지고 있습니다. 예를 들어 정적 라우팅은 작은 네트워크로만 제한되며 쉽게 확장하기가 어렵습니다. 또한 라우팅이 고정되어 있기 때문에 네트워크 정지 혹은 실패 시에는 전혀 동작하지 않게 됩니다.

동적 라우팅은 보낸 곳에서 받는 곳까지 복수의 IP 경로를 가질 수 있는 규모가 큰 네트웨크에 의존하고, 동적 라우팅이 가능하도록 라우팅 테이블의 자동 조정을 처리하는 Router Information Protocol (RIP) 과 같은 특별한 라우팅 프로토콜을 사용합니다. 동적 라우팅은 정적 라우팅에 비해 휼륭한 확장성, 네트워크 라우터의 실패와 중단에 대응하는 능력 등 여러가지 장점을 가집니다. 또한 라우터가 다른 라우터의 존재와 가능한 경로를 스스로 배우기 때문에, 라우팅 테이블의 수작업 설정을 줄여 줍니다. 이 특성은 또한 작업자의 오류로 인한 라우팅 테이블의 실수가 일어나는 가능성을 제거합니다. 하지만, 동적 라우팅은 완벽하지 않고, 계층적으로 복잡함과 라우터 간의 통신으로 인한 추가적인 (최종 사용자에게는 직접적으로 이득을 주지않고 네트워크의 대역폭을 소모하는) 네트워크 오버헤드와 같은 단점을 가집니다.

TCP와 UDP

TCP는 접속 기반(connection-based) 프로토콜이고, 에러 교정과 flow control (흐름 제어)로 알려진 데이터의 배달을 보장하는 것을 제공 합니다. 흐름 제어는 데이터 스트림의 흐름이 중단되는 것이 필요한 때와, 예를 들어, 데이타의 완전하고 정확한 배달을 확신하기 위하여, collisions 과 같은 문제들로 인하여 재전송을 해야하는 이전의 보내진 패킷을 결정합니다. TPC는 전형적으로 데이타베이스 트랜잭션과 같은 중요한 정보를 교환하는 데에 사용되어 집니다.

한편, User Datagram Protocol (UDP)는, 비접속(connectionless) 프로토콜이고, 가끔 흐름 제어 또는 데이터의 신뢰할 수 있는 배달을 확신하기 위한 다른 수단이 부족한 사유로 중요한 데이타의 전송을 다룹니다. UDP는 일반적으로 오디오와 비디오 스트리밍과 같은 프로그램에서 사용되고, 이것은 에러 교정 또는 흐름 제어의 부족에 기인하여 TCP를 사용하는 것보다는 어지간히 빠르고, 약간의 패킷을 손실하는 것은 보통 큰 문제가 아닌 곳이기 때문 입니다.

ICMP

Internet Control Messaging Protocol (ICMP)는 Request For Comments (RFC) #792에 정의된 바와 같이 Internet Protocol (IP)의 확장이고, 제어, 에러 그리고 정보 메세지를 포함하는 네트워크 패킷을 지원 합니다. ICMP는 ping 유틸리티와 같은 네트워크 프로그램에서 사용되고, 네트워크 호스트 또는 장치의 사용 가능함을 결정할 수 있습니다. ICMP에 의해 되돌려지는 몇 가지 에러 메세지의 예는 네트워크 호스트와 라우터와 같은 장치 모두에게 유용하고, Destination UnreachableTime Exceeded 를 포함 합니다.

데몬

데몬은 전형적으로 백그라운드에서 계속적으로 실행되는 그리고 다른 프로그램에서 데몬이 제공하는 기능을 위한 요청을 기다리는 특별한 시스템 응용 프로그램 입니다. 많은 데몬들은 네트워크 중심이고, 우분투 시스템 상의 백그라운드에서 수행되는 많은 수의 데몬들은 네트워크와 관련된 기능을 제공 합니다. 이러한 네트워크 데몬의 몇 가지 예는 웹 서버 기능을 제공하는 Hyper Text Transport Protocol Daemon (httpd), 보안 원격 로그인 쉘과 파일 전송 능력을 제공하는 Secure SHell Daemon (sshd), 그리고 이메일 서비스를 제공하는 Internet Message Access Protocol Daemon (imapd) 등을 포함 합니다.