Transmission Control Protocol and Internet Protocol (TCP/IP) 는 1970년대 후반에 Defense Advanced Research Projects Agency (DARPA) 에 의하여 개발된 프로토콜의 표준화된 규격이고 다른 종류의 컴퓨터와 컴퓨터 네트워크 간에 통신을 하기 위한 수단 입니다. TCP/IP 는 인터넷을 주도하는 힘이고, 그러므로 그것은 지구상의 네트워크 프로토콜 중에 가장 인기있는 규약 입니다.
TCP/IP의 두 가지 프로토콜 요소는 컴퓨터 네트워킹의 다른 측면을 다룹니다. Internet Protocol, TCP/IP의 "IP"는 네트워크 정보의 기본 단위로서 IP datagram 을 사용하는 네트워크 패킷 라우팅만을 다루는 접속이 없는 프로토콜 입니다. TCP/IP의 "TCP" 는 Transmission Control Protocol 이고, 네트워크 호스트들이 데이터 스트림을 교환하기 위하여 사용될 수 있는 접속을 이루기 위해 활성화 합니다. TCP는 또한 접속들 간에 자료가 한 네트워크 호스트에서 주고 받는 것과 마찬가지로 다른 네트워크 호스트에서 보내지는 것도 보장 합니다.
TCP/IP 프로토콜 설정은, 해당 설정 파일들을 편집하거나, 적당한 TCP/IP 설정 값을 네트워크 클라이언트에게 자동적으로 제공하기 위하여 사용하는 Dynamic Host Configuration Protocol (DHCP) 서버와 같은 솔루션을 적용하는 것에 의해, 반드시 지정되는 여러가지 요소로 구성 합니다. 이 설정 값들은 여러분의 우분투 시스템의 적절한 네트워크 동작의 편의를 위하여 반드시 정확하게 지정되어야 합니다.
TCP/IP의 공통적인 설정 요소와 그들의 목적은 다음과 같습니다:
IP address IP 주소는, 점으로 구분되는 네 개의 0부터 255까지의 십진수 범위의 숫자들이고, 각각의 네 숫자는 전체 주소를 위한 총 32 bits의 8 bits 주소를 표현하는, 유일한 식별자 입니다. 이러한 형식은 dotted quad notation 라 불립니다.
Netmask 서브넷 마스크는 (또는 간략하게, netmask) 네트워크 상의 비트 마스크, 또는 네트워크에 중요한 IP 주소에서 subnetwork 에 중요한 비트를 구분하는 부분인 플랙의 집합 입니다. 예를 들어, 클래스 C 네트워크에서, 표준 netmask는 255.255.255.0 이고, IP 주소의 첫 3 바이트는 차폐하고 IP 주소의 마지막 바이트는 서브 네트워크 상의 호스트를 지정하기 위해 사용하도록 남겨지는 것을 허용 합니다.
Network Address 네트워크 주소는 IP 주소의 네크워크 부분을 구성하는 바이트를 표현 합니다. 예를 들어, 클래스 A 네트워크 내의 12.128.1.2 호스트는 네트워크 주소로 12.0.0.0을 사용하고, 그 IP 주소의 첫 번째 바이트인 12가 그것을 표현 합니다 (네트워크 부분). 0으로 표시되는 남겨진 세 바이트는 가능한 호스트 값을 표시하기 위해서 입니다. 아주 일반적인 사적 그리고 라우팅을 할 수 없는 192.168.1.100과 같은 IP 주소를 사용하는 네트워크 호스트는 192.168.1.0의 네트워크 주소를 사용하는 것이고, 클래스 C 인 192.168.1 네트워크와 그 네트워크 상에서 가능한 모든 호스트를 위한 마지막 자리의 0을 지정하는 것 입니다.
브로드캐스트 주소 브로드캐스트 주소는 특정 네트워크 호스트를 지정하는 대신에 주어진 서브네트워크 상의 모든 호스트들에게 일제히 네트워크 데이터가 보내지는 것을 허용하는 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 라우팅은 네트워크 데이터가 보내지는 TCP/IP 네트워크 상에서 경로를 지정하고 찾기 위한 수단 입니다. 라우팅은 보내는 곳에서 받는 곳으로 네트워크 데이터 패킷을 전달하기 위한 지시를 위하여 routing tables 의 집합을 사용하고, 종종 routers 라고 알려진 네트워크 상의 많은 중간 지점을 경유 합니다. IP 라우팅의 두 가지 주요 형태가 있습니다: Static Routing(정적 라우팅) 과 Dynamic Routing(동적 라우팅)
정적 라우팅은 시스템의 라우팅 테이블에 손수 IP 라우트를 추가하는 것을 필요로 하고, 이것은 route 명령으로 라우팅 테이블을 조작하는 것으로 대개 마쳐지게 됩니다. 정적 라우팅은 동적 라우팅에 비해 많은 장점을 가집니다. 규모가 작은 네트워크 상의 단순한 적용, 예측 가능함(라우팅 테이블은 언제나 미리 계산이 되고, 그래서 경로는 그것이 사용되는 같은 각각의 시간을 예측할 수 있음), 그리고 동적 라우팅 프로토콜을 사용하지 않음에 기인하는 다른 라우터와 네트워크 링크에 낮은 오버헤드 등이 장점이 됩니다. 하지만, 정적 라우팅은 역시 단점도 가지고 있습니다. 예를 들어, 정적 라우팅은 규모가 작은 네트워크에 제한적이고 확장이 용이하지 않습니다. 또한, 경로를 고정한 특성 때문에, 정적 라우팅이 완전히 실패하면 네트워크 중단과 실패로 이어지게 됩니다.
동적 라우팅은 보낸 곳에서 받는 곳까지 복수의 가능한 IP 라우트를 가지는 규모카 큰 네트웨크에 의존하고, 동적 라우팅이 가능하도록 라우팅 테이블의 자동 조정을 처리하는 Router Information Protocol (RIP) 과 같은 특별한 라우팅 프로토콜을 사용 합니다. 동적 라우팅은 정적 라우팅에 비해 여러가지 장점을 가집니다. 휼륭한 확장성, 네트워크 라우터의 실패와 중단에 적응하는 능력 등이 장점 입니다. 추가하여, 라우터가 다른 라우터의 존재와 가능한 경로를 스스로 배우기 때문에, 라우팅 테이블의 수작업 설정을 줄여 줍니다. 이 특성은 또한 작업자의 오류로 인한 라우팅 테이블의 실수가 일어나는 가능성을 제거 합니다. 하지만, 동적 라우팅은 완벽하지 않고, 계층적으로 복잡함과 라우터 통신의 추가적인 네트워크 오버헤드(최종 사용자에게는 직접적으로 이득을 주지않고 네트워크의 밴드위드를 소모하는)와 같은 단점을 가집니다.
TCP는 접속 기반 프로토콜이고, 에러 교정과 flow control (흐름 제어)로 알려진 데이터의 배달을 보장하는 것을 제공 합니다. 흐름 제어는 데이터 스트림의 흐름이 중단되는 것이 필요한 때와, 예를 들어, 데이타의 완전하고 정확한 배달을 확신하기 위하여, collisions 과 같은 문제들로 인하여 재전송을 해야하는 이전의 보내진 패킷을 결정합니다. TPC는 전형적으로 데이타베이스 트랜잭션과 같은 중요한 정보를 교환하는 데에 사용되어 집니다.
한편, User Datagram Protocol (UDP)는, connectionless
Internet Control Messaging Protocol (ICMP)는 Request For Comments (RFC) #792에 정의된 바와 같이 Internet Protocol (IP)의 확장이고, 제어, 에러 그리고 정보 메세지를 포함하는 네트워크 패킷을 지원 합니다. ICMP는 ping 유틸리티와 같은 네트워크 프로그램에서 사용되고, 네트워크 호스트 또는 장치의 사용 가능함을 결정할 수 있습니다. ICMP에 의해 되돌려지는 몇 가지 에러 메세지의 예는 네트워크 호스트와 라우터와 같은 장치 모두에게 유용하고, Destination Unreachable 과 Time Exceeded 를 포함 합니다.
데몬은 전형적으로 백그라운드에서 계속적으로 실행되는 그리고 다른 프로그램에서 데몬이 제공하는 기능을 위한 요청을 기다리는 특별한 시스템 응용 프로그램 입니다. 많은 데몬들은 네트워크 중심이고, 우분투 시스템 상의 백그라운드에서 수행되는 많은 수의 데몬들은 네트워크와 관련된 기능을 제공 합니다. 이러한 네트워크 데몬의 몇 가지 예는 웹 서버 기능을 제공하는 Hyper Text Transport Protocol Daemon (httpd), 보안 원격 로그인 쉘과 파일 전송 능력을 제공하는 Secure SHell Daemon (sshd), 그리고 이메일 서비스를 제공하는 Internet Message Access Protocol Daemon (imapd) 등을 포함 합니다.