ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • TCP/IP의 기초
    Technique/LPIC 2019. 11. 10. 16:38
    반응형

    통신을 행할 때의 결정을 프로토콜이라고 칭한다. 현재 기업/가정 내의 LAN이나 인터넷을 사용하고 있는 가장 일반적인 프로토콜이 TCP/IP이다.

    TCP/IP

    TCP와 IP는 별도의 프로토콜이지만 여기에 UDP 등의 관련 프로토콜을 합쳐 프로토콜 무리로서 TCP/IP로 통합하고 있다. TCP/IP의 구조를 OSI 참조 모델과 비교하면 아래와 같다.

     

    OSI 참조모델 TCP/IP의 구조
    어플리케이션층
    프레젠테이션 층
    세션 층
    어플리케이션 층 
    (HTTP, SMTP, TELNET 등 )
    트랜스포트 층 트랜스포트 층 ( TCP, UDP 등 )
    네트워크 층 인터넷 층 ( IP, ICMP 등)
    데이터 링크 층
    물리 층
    네트워크 인터페이스 층
    OSI 참조모델
    ISO( 국제 표준화 규격)와 현 ITU-T( 국제 전기 통신 연합 전기 통신 표준화 부문 )에 의해 채정 된 데이터 통신의 표준 아키텍처로 데이터 통신의 기능이 7가지의 계층으로 계층화되어 있다.

    TCP ( Transmission Control Protocol )

    신뢰성의 높은 통신을 실현하기 위해 커넥션 형태의 프로토콜이다. 커넥션 형 이란 상대에게 통신한 데이터가 제대로 도착했는지를 확인하면서 통신하는 것으로 신뢰성은 높일 수 있다. TCP를 이용하는 상위의 프로토콜은 신뢰성을 높이기 위하여 에러 제한 등을 TCP에 일임하는 것이 가능하다. TCP의 대표적인 기능은 다음과 같다.

    • 도중에 실패나 에러가 발생한 패킷의 재전송
    • 패킷의 전송 순서를 정렬

    TCP는 FTP, Telnet, POP, SMTP와 같은 다수의 상위 프로토콜에서 이용하고 있다.

     

    IP ( Internet Protocol )

    TCP나 UDP, ICMP 등의 데이터 전송 ( 루팅 )을 담당하는 커넥션 리스 형의 프로토콜이다. 커넥션 리스란 상대에게 통신 데이터가 제대로 도착했는지 등에 대한 확인 없이 일방적으로 송신을 하는 것으로 신뢰성은 낮지만 전송 속도는 빨라진다. IP의 대표적인 기능은 아래와 같다.

     

    • IP주소의 규정
    • 데이터 그램 ( 전송 단위 )의 규정
    • 데이터그램이 전송된 네트워크 경로의 제한

    IPv6

    현재 일반적으로 사용되고 있는 IP 프로토콜은 버전 4 (Ipv4)이지만, 이것을 확장한 IPv6 또한 간간히 이용되기 시작했다. IPv4는 32비트의 주소부분을 표시하지만, 인터넷에 접속하는 호스트 수가 급증하고 있기 때문에 2011년에는 새롭게 나눌 수 있는 IP주소가 현저히 줄게 되었다. IPv6에는 주소 부분이 128비트가 있기 때문에 장래에 들어 선 문제없이 운용할 수 있다. 또한 세큐리티 기능 등 IPv4에는 없었던 기능도 추가되었다.

     

    UDP ( User Datagram Protocol )

    데이터의 전송속도에 중점을 둔 커넥션 리스 형 프로토콜로 애플리케이션이 직접 IP를 사용하도록 한다. UDP는 DNS나 NFS 등과 같은 애플리케이션에서 이용된다.

     

    ICMP ( Internet Control Message Protocol )

    에러 메시지나 제어 메시지를 전송하는 커넥션 리스형 프로토콜로 ping 커맨드나 tracerote 커맨드로 이용된다.

    참고
    커넥션 형의 프로토콜은 통신상 대가 확실히 받을 준비가 되었다는 것을 확인한 이후에 통신을 시작한다. 또한 패킷이 확실히 상대에게 도착하였는지도 확인한다. 그에 반해, 커넥션 레스 형의 프로토콜은 그러한 확인을 하지 않기 때문에 패킷이 통신 상대에게 확실히 도착했다곤 할 수 없다.

    IP 주소 (IPv4)

    TCP/IP에는 네트워크에 접속된 기기를 식별하기 위해 IP주소를 사용한다. 여기서 우선 IPv4의 IP 주소에 대해 설명하려고 한다. IP주소는 32비트로 구성되어 있으며 보통 8비트 단위로 [.]로 나누어 10진수로 표기한다.

     

    IP 주소는 네트워크 세그먼트를 식별하기 위한 네트워크부와 네트워크 세그먼트 내의 기기를 식별하기 위한 호스트부로 나눠진다. 네트워크부와 호스트 부의 경계는 IP 주소와 세트로 사용되는 서브넷 마스크에서 구할 수 있다. 서브넷 마스크도 32비트로 구성되며, 8비트씩 나누어 표기한다. IP주소와 서브넷 마스크의 논리성에 의해 네트워크 자신을 나타내는 네트워크 주소를 검출할 수 있다.

    호스트부의 비트를 모두 1로 변경한 주소 ( 위의 경우 192.168.1.255 )는 브로드캐스트 주소로 불리며 같은 네트워크에 속하는 모든 호스트에 송신 가능한 특별한 주소이다. 네트워크 주소와 브로드캐스트 주소는 네트워크 디바이스에 나눌 순 없다. 또한 네트워크 주소가 다른 네트워크에는 루터를 연결하지 앟는이상 통신할 수 없다.

    참고
    TCP/IP에는 네트워크상에 IP주소를 가지고 있는 기기 전부를 [ 호스트 ]로 부른다 ( 대형 컴퓨터 만을 의미하는 것이 아니다 ) IP 주소는 호스트에게 붙여지는 것이 아니라 호스트가 가진 네트워크 인터페이스 (NIC 등) 논리적으로 햘당되는 것이므로 하나의 호스트로 복수의 IP 주소를 소유하는 것도 가능하다.

    IP주소는 클래스라고 하는 개념이 있으며, 네트워크부가 8비트인 것을 클래스 A, 16비트인 것을 클래스 B, 24비트인 것을 클래스 C로 규정하고 있다. 특수한 클래스로 클래스 D와 클래스 E  가 있지만, 일반적으론 클래스 A부터 클래스 C 가 이용된다.

    클래스 IP주소의 범위 서브넷 마스크
    A 0.0.0.0 ~ 127.255.255.255 255.0.0.0
    B 128.0.0.0 ~ 191.255.255.255 255.255.0.0
    C 192.0.0.0 ~ 223.255.255.255 255.255.255.0

    IP 주소의 선두 8비트가 0의 경우는 기본적으로 127의 경우와 자기 자신을 나타내는 특수한 주소 ( 로컬 루프백 )이 된다.

    IP주소는 인터넷 내에서 중복하지 않도록 나눌 필요가 있지만, 일부의 주소는 로컬 네트워크 안에서 자유롭게 사용하는 것이 가능하다. 이것이 private address 로서 클래스 별로 private address의 범위가 정해져 있다.

    클래스 IP주소의 범위
    A 10.0.0.0 ~ 10.255.255.255
    B 172.16.0.0 ~ 172.31.255.255
    C 192.168.0.0 ~ 192.168.255.255

    CIDR

    클래스 C에는 1 네트워크 해당의 호스트 수는 254가 된다. ( 네트워크 주소와 브로드 캐스트 주소는 호스트에게 할당할 수 없는 것에 주의해야 한다 ) 하지만 클래스에 따라 구분을 하자면 최소한이라 해도 256개의 IP주소가 삭제되기 때문에 보다 유연한 운영을 위해 CIDR ( Classless Inter-Domain Routing ) 이 규정되어 있다.

    CIDR에는 네트워크 주소부는 1비트 단위로 다룰 수 있다. 예를 들어 서브넷 마스크를 [255.255.255.192](26비트)로 설정할 경우 호스트부가 2비트 주는 대신에 네트워크부가 2비트 늘어나 그것만큼 많은 조직의 IP주소를 누눌수 있게 된다. 192.168.0.0의 클래스 C 네트워크를 이 서브넷 마스크로 나눌경우 4가지의 서브넷 마스크의 분할이 가능해지며 각각의 서브넷 마스크에는 62의 호스트가 할당된다. 이 네트워크는 [192.168.0.0/26]과 같은 [/네트워크부의 비트수]로 표시한다. 

    IP주소의 범위 네트워크 주소 브로드캐스트 주소 최대 호스트 수
    192.168.0.0 ~ 192.168.0.63 192.168.0.0 192.168.0.63 62
    192.168.0.64 ~ 192.168.0.127 192.168.0.64 192.168.0.127 62
    192.168.0.128 ~ 192.168.0.191 192.168.0.128 192.168.0.191 62
    192.168.0.192 ~ 192.168.0.255 192.168.0.192 192.168.0.255 62

    IP주소 (IPv6)

    IPv4의 주소가 32비트로 구성된 것에 비해 IPv6는 128비트로 구성되어 있어 무한이라고 해도 좋을 정도의 IP 주소를 이용할 수 있다. IPv6의 IP주소는 [:]로 나눠지며 16비트씩 8개의 블록으로 나눠진 16진수로 표시된다.

    2001:0 db8:0000:0000:0001:2345:6789:abcd

    IPv6의 표기는 매우 길기 때문에 다음과 같은 룰에 따라 생략하는 것도 가능하다.

    1. 각 블록의 선두의 0은 생략 가능하다.
    2. [0]이 연속되는 블록을 생략하여 [ :: ]으로 표기 가능하다

    IPv6의 IP주소는 유니캐스트 주소, 에니캐스트주소, 말티 캐스트 주소로 분류된다. 유니캐스트 주소는 하나의 네트워크 인터페이스를 식별하는 주소이다. 애니캐스트 주소는 복수의 호스트의 집합에 할당하는 주소이다. 멀티 캐스트 주소는 IPv4의 브로드캐스트 주소에 상응하는 것이다.

    IPv6주소의 분류 IPv6 표기
    로컬 루프백 주소 ::1/128
    글로벌 유니캐스트 주소 2000::/3
    링크 로컬 유니캐스트 주소 fe80::/10
    멀티 캐스트 주소 ff00::/8

    위의 어미의 [/8]와 같은 표기는 IPv4의 CIDR과 같은 선두로부터의 비트수를 나타낸다. 또한 IPv6의 경우 IPv4의 네트워크부에 상응하는 부분을 prefix 호스트 부에 상응하는 부분을 interface ID라고 말한다. IPv4에는 네트워크 부와 호스트부의 구분에 서브넷 마스크를 사용하였지만, IPv6에서는 prefix, interface ID 모두 64비트이다.

     

    포트

    송신원의 애플리케이션이나, 송신지의 애플리케이션을 식별하기 위해 포트번호가 사용된다. 어느 어플리케이션이 어느 포트번호를 사용하는지가 이미 정해져 있기 떄문에 동시에 복수의 어플리케이션을 이용한다고 해도 정확히 동작하는 것이다. 예를 들어 WEB 서버는 80 포트를 감시하고 WEB브라우저는 수신지의 80 포트에 대하여 액세스를 실행한다.

    주요한 네트워크 서비스에 사용되는 포트번호는 표준화되어 있으며 1023번 까지 예약되어 있다. 이것은 Well Known Port라고 불린다.

     

    번호 프로토콜 서비스/프로토콜 설명
    20 TCP FTP FTP의 데이터 전송
    21 TCP/UDP FTP FTP의 제한 정보
    22 TCP SSH SSH 접속
    23 TCP Telnet Telnet 접속
    25 TCP/UDP SMTP 전자메일
    53 TCP/UDP DNS DNS
    80 TCP HTTP WEB
    110 TCP POP3 전자메일 ( 수신 )
    119 TCP NNTP 넷 뉴스
    123 UDP NTP NTP 서비스
    139 TCP/UDP NetBIOS Microsoft 네트워크
    143 TCP IMAP 전자 메일 (IMP2/IMAP4)
    161 UDP SNMP 네트워크 감시
    162 TCP/UDP SNMP Trap 네트워크 감시( 경고통지 등 )
    389 TCP/UDP LDAP 디렉토리 서비스
    443 TCP/UDP HTTP over SSL/TLS (HTTPS) SSL/TLS에 의한 HTTP 접속
    465 TCP SMTP over SSL/TLS(SMTPS) SSL/TLS에 의한 SMTP 접속
    514 UDP Syslog 로깅 서비스
    636 TCP/UDP LDAP over SSL/TLS SSL/TLS에 의한 디렉토리 서비스
    993 TCP/UDP IMAP over SSL/TLS (IMAPS) SSL/TLS에 의한 IMAP 접속
    995 TCP/UDP POP3 over SSL/TLS(POP3S) SSL/TLS에 의한 POP3 접속
    Telnet
    Telnet은 TCP/IP 네트워크에 대해 리모트 호스트를 원격조작이 가능하도록 하는 프로토콜이다. telnet 커맨드를 사용하여 로그인하거나, 서버 소프트웨어와 통신하거나 하는 것이 가능하다. 통신내용이 암호화되지 않고 패스워드 등도 그대로 네트워크상에 흘러들어 가기 때문에 안전성의 관점에 의해 현재는 별로 사용되지 않고 있다.
    SNMP( Simple Network Management Protocol )
    SNMP는 네트워크 기기를 감시하거나 제어하거나 하기 위한 프로토콜이다. SNMP를 사용하여 관리하는 컴퓨터를 SNMP 매니저, SNMP에 대응한 네트워크 기기를 SNMP 에이전트라고 한다. SNMP에는 2가지의 포트를 이용한다. SNMP매니저 측으로부터 SNMP 에이전트로의 문의는 161 포트에 보내어진다. 또한 SNMP 에이전트로부터 SNMP매니저 에게로의 통신 (SNMP Trap)은 162 포트로 보내어진다.

    IPv6의 경우에는 예를 들어 다음과 같이 기록되어 있을 경우 뒤에 [:80]이 IP주소의 일부인지 포트번호인지 바로 분별하기 어려운 상황이 연출된다.

    여기서 IPv6에는 IP주소 부분은 []로 감싸 도록 규정하고 있다.

     

    Well Known Port는 IANA ( Internet Assigned Number Authority ) 에 의해 관리되고 있으며 http://www.iana.org/assignments/port-numbers 에서 확인 가능하다. 이 이외에도 특정 아플리케이션용으로 예약디어 있는 포트번도호 있다. 예를 들어 데이터베이스 시스템 PostgresSQL은 5432번 Web 브라우저 ㅅ미스템 관리를 하는 소프트웨어 Webmin 은 10000 번호 등이 있다. 이와 같이 벤더나 그룹의 신청에 의해 할당이 가능한 포트 번호를 registered port 라고하여 범위는 1024 ~ 49151로 설정되어 있다.

    포트번호와 서비스의 대응은 /etc/services에 기록되어 있다.

    반응형

    'Technique > LPIC' 카테고리의 다른 글

    네트워크의 트러블 슈팅  (0) 2019.11.10
    네트워크의 설정  (0) 2019.11.10
    프린터의 관리  (0) 2019.10.29
    메일 관리  (0) 2019.10.29
    시스템 로그의 설정  (0) 2019.10.29

    댓글

Designed by Tistory.