tcpip란 무엇인가요? tcpip의 기능은 무엇인가요?
TCP/IP 통신 프로토콜
이 섹션에서는 인터넷과 관련된 보안 문제를 논의하기 위한 기반을 마련하기 위해 TCP/IP의 내부 구조를 간략하게 소개합니다. TCP/IP 프로토콜 제품군은 다양한 채널과 기본 프로토콜(예: T1 및 X.25, 이더넷, RS-232 직렬 인터페이스)에서 사용할 수 있기 때문에 인기가 높습니다. 정확하게 말하면 TCP/IP 프로토콜은 TCP 프로토콜과 IP 프로토콜, UDP(User Datagram Protocol) 프로토콜, ICMP(Internet Control Message Protocol) 프로토콜 및 기타 프로토콜을 포함하는 프로토콜 그룹입니다.
TCP/IP의 전체 아키텍처 개요
TCP/IP 프로토콜은 OSI 7계층 참조 모델을 완전히 준수하지 않습니다. 전통적인 개방형 시스템 상호연결 참조 모델은 통신 프로토콜의 7계층 추상 참조 모델로, 각 계층은 특정 작업을 수행합니다. 이 모델의 목적은 다양한 하드웨어가 동일한 수준에서 서로 통신할 수 있도록 하는 것입니다. 이 7개 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 음성 채널 계층, 프리젠테이션 계층 및 애플리케이션 계층입니다. TCP/IP 통신 프로토콜은 4계층 계층 구조를 채택하고 각 계층은 자체 요구 사항을 충족하기 위해 다음 계층에서 제공하는 네트워크를 호출합니다. 네 가지 계층은 다음과 같습니다.
애플리케이션 계층: SMTP(Simple Email Transfer), FTP(파일 전송 프로토콜), Telnet(네트워크 원격 액세스 프로토콜) 등과 같은 애플리케이션 간 통신을 위한 계층입니다.
전송 계층: 이 계층에서는 TCP(전송 제어 프로토콜), UDP(사용자 데이터그램 프로토콜) 등과 같은 노드 간 데이터 전송 서비스를 제공합니다. TCP와 UDP는 데이터 패킷에 전송을 추가합니다. 데이터를 전송하고 데이터가 전달 및 수신되었는지 확인하는 역할을 담당하는 다음 계층으로 전송됩니다.
상호연결 네트워크 계층: 인터넷 프로토콜(IP) 등 각 데이터 패킷이 목적지 호스트에 도달할 수 있도록 기본적인 데이터 패킷 전송 기능을 제공하는 역할을 담당한다(단, 제대로 수신되었는지는 확인하지 않음).
네트워크 인터페이스 계층: 실제 네트워크 미디어 관리, 실제 네트워크(예: 이더넷, 직렬 회선 등)를 사용하여 데이터를 전송하는 방법을 정의합니다.
TCP/IP 프로토콜
다음은 TCP/IP 프로토콜의 기능과 작동 방식에 대한 간략한 소개입니다.
1 . IP
인터넷 프로토콜 IP는 TCP/IP의 핵심이자 네트워크 계층에서 가장 중요한 프로토콜입니다.
IP 계층은 하위 계층(이더넷 장치 드라이버와 같은 네트워크 인터페이스 계층)에서 보낸 데이터 패킷을 수신하여 상위 계층인 TCP 또는 UDP 계층으로 보냅니다. 또한 TCP 또는 UDP 계층에서 수신한 데이터 패킷을 하위 계층으로 전송합니다. IP는 패킷이 순서대로 전송되었는지 또는 손상되지 않았는지 확인하기 위해 아무 작업도 수행하지 않기 때문에 IP 패킷을 신뢰할 수 없습니다. IP 패킷에는 패킷을 보낸 호스트의 주소(소스 주소)와 패킷을 받은 호스트의 주소(대상 주소)가 포함됩니다.
상위 수준 TCP 및 UDP 서비스는 데이터 패킷을 수신할 때 일반적으로 패킷의 소스 주소가 유효하다고 가정합니다. 또한 IP 주소는 데이터 패킷이 유효한 호스트에서 전송된다고 믿는 많은 서비스에 대한 인증의 기초를 형성한다고 말할 수도 있습니다. IP 확인에는 소스 주소와 대상 주소 간의 직접 경로를 지정하는 데 사용할 수 있는 IP 소스 라우팅이라는 옵션이 포함되어 있습니다. 일부 TCP 및 UDP 서비스의 경우 이 옵션을 사용하는 IP 패킷은 실제 위치가 아닌 경로의 마지막 시스템에서 전달되는 것처럼 보입니다. 이 옵션은 테스트 목적으로 존재하며 일반적으로 금지되는 연결을 생성하도록 시스템을 속이는 데 사용될 수 있음을 나타냅니다. 그러면 확인을 위해 IP 소스 주소에 의존하는 많은 서비스가 문제를 일으키고 불법적으로 해킹당할 것입니다.
2. TCP
IP 패킷에 봉인된 TCP 패킷이 있으면 IP는 이를 TCP 계층으로 '상향' 전송합니다. TCP는 가상 회선 간의 연결을 구현하면서 패킷을 정렬하고 오류 검사를 수행합니다.
TCP 패킷에는 시퀀스 번호와 승인이 포함되어 있으므로 순서에 맞지 않게 수신된 패킷을 정렬하고 손상된 패킷을 재전송할 수 있습니다.
TCP는 Telnet의 서비스 프로그램 및 클라이언트 프로그램과 같은 상위 수준 응용 프로그램에 정보를 보냅니다. 애플리케이션은 차례로 메시지를 TCP 계층으로 다시 보내고, TCP 계층은 해당 메시지를 IP 계층, 장치 드라이버 및 물리적 미디어로 전달한 다음 마지막으로 수신자에게 전달합니다.
Telnet, FTP, rlogin, X Windows, SMTP 등의 연결 지향 서비스는 높은 수준의 안정성을 요구하므로 TCP를 사용합니다. DNS는 경우에 따라 도메인 이름 데이터베이스를 보내고 받기 위해 TCP를 사용하지만 개별 호스트에 대한 정보를 전달하기 위해 UDP를 사용합니다.
3.UDP
UDP는 TCP와 같은 계층에 있지만 데이터 패킷의 순서가 잘못되었거나 재전송됩니다. 따라서 UDP는 가상 회선을 사용하는 연결 지향 서비스에는 사용되어서는 안 됩니다. UDP는 주로 NFS와 같은 쿼리 응답 지향 서비스에 사용됩니다. FTP나 Telnet에 비해 이러한 서비스에서는 교환되는 정보의 양이 더 적습니다. UDP를 사용하는 서비스에는 NTP(Network Time Protocol)와 DNS(DNS도 TCP를 사용함)가 있습니다.
UDP 패킷 스푸핑은 TCP 패킷 스푸핑보다 쉽습니다. 왜냐하면 UDP는 초기 연결(핸드셰이크라고도 함)을 설정하지 않기 때문입니다(두 시스템 사이에 가상 회선이 없기 때문입니다). 즉 UDP 관련 서비스가 더 큰 위험에 처해 있습니다.
4.ICMP
ICMP는 IP와 동일한 계층에 있으며 IP 제어 정보를 전송하는 데 사용됩니다. 주로 목적지 주소로 이어지는 경로에 대한 정보를 제공하는데 사용됩니다. ICMP '리디렉션' 메시지는 호스트에 다른 시스템에 대한 보다 정확한 경로를 알려주는 반면 '접근할 수 없음' 메시지는 경로에 문제가 있음을 나타냅니다. 또한 ICMP는 경로를 사용할 수 없게 되면 TCP 연결이 "정상적으로" 종료되도록 할 수 있습니다. PING은 가장 일반적으로 사용되는 ICMP 기반 서비스입니다.
5. TCP와 UDP의 포트 구조
TCP와 UDP 서비스는 일반적으로 클라이언트/서버 관계를 가지고 있습니다. 예를 들어 Telnet 서비스 프로세스는 시스템에서 유휴 상태로 시작됩니다. 연결을 기다리고 있습니다. 사용자는 Telnet 클라이언트 프로그램을 사용하여 서비스 프로세스와 연결을 설정합니다. 클라이언트 프로그램은 서비스 프로세스에 정보를 쓰고, 서비스 프로세스는 정보를 읽고 응답을 보내고, 클라이언트 프로그램은 응답을 읽고 사용자에게 보고합니다. 따라서 연결은 이중 방식이며 읽기 및 쓰기에 사용될 수 있습니다.
두 시스템 간의 여러 Telnet 연결은 어떻게 서로를 확인하고 조정합니까? TCP 또는 UDP 연결은 각 메시지의 다음 네 가지 항목을 사용하여 고유하게 식별됩니다.
소스 IP 주소 보내는 패킷의 IP 주소입니다.
대상 IP 주소 수신된 패킷의 IP 주소입니다.
소스 포트 연결이 연결된 소스 시스템의 포트입니다.
대상 포트 대상 시스템의 연결 포트입니다.
포트는 클라이언트 프로그램이나 서비스 프로세스에서 정보를 보내고 받는 데 사용되는 소프트웨어 구조입니다. 포트는 16비트 숫자에 해당합니다. 서비스 프로세스는 일반적으로 고정 포트를 사용합니다. 예를 들어 SMTP는 25를 사용하고 Xwindows는 6000을 사용합니다. 이러한 포트 번호는 특정 호스트나 서비스에 대한 연결을 설정할 때 통신에 필요하기 때문에 '잘 알려진' 주소입니다.