tcp ip model with different layers
TCP / IP 모델 계층에 대한 완벽한 가이드 :
우리는 방화벽 보안 이전 튜토리얼에서. 이 튜토리얼에서는 TCP / IP 모델에 대해 알아 봅니다.
TCP / IP 모델은 전송 제어 프로토콜과 인터넷 프로토콜을 의미합니다.
현재 인터넷 모델은 통신 목적으로이 네트워크 모델을 사용하고 있습니다. 읽기 네트워킹에 대한 교육 자습서 개념의 명확한 이해를 위해.
이러한 프로토콜은 단순히 네트워크를 통한 각 통신을 규제하는 규칙의 조합입니다. 이는 차례로 소스와 대상 또는 인터넷 간의 통신을 위해 따라야 할 경로를 결정합니다.
TCP / IP 모델은 전체 통신 프로세스를 마무리하는 4 개의 계층으로 구성됩니다. 이 튜토리얼에서는 각 레이어의 기능에 대해 자세히 살펴 봅니다.
소프트웨어 테스터는 TCP / IP 모델에 공감할 필요가 있습니다. 소프트웨어 애플리케이션은이 모델의 상위 계층, 즉 애플리케이션 계층에서 작동하기 때문입니다.
학습 내용 :
네트워크 아키텍처
4 계층 아키텍처는 다음과 같습니다.
이 네트워킹 모델에 사용되는 프로토콜 및 네트워크는 아래 그림에 나와 있습니다.
아래 다이어그램을 사용하여 TCP / IP 모델에서 각 계층의 프로토콜과 주요 용도를 요약 해 보겠습니다.
TCP / IP 모델에서 각 계층의 기능
다음은 TCP / IP 모델에서 각 계층의 다양한 기능입니다.
네트워크 액세스 계층
네트워크 액세스 계층의 기능은 다음과 같습니다.
- 이것은 TCP / IP 모델의 최하위 계층이며 물리적 계층의 모든 기능과 OSI 참조 모델의 데이터 링크 계층을 포함합니다.
- 따라서 통신에 사용되는 프로토콜, 하드웨어 및 미디어를 특성화합니다.
- 인터넷 계층의 데이터 패킷은 물리적 매체를 통해 대상으로 보내기 위해이 계층으로 전달됩니다.
- 이 계층의 주요 임무는 데이터 바이트를 프레임으로 결합하고 물리적 매체를 통해 IP 데이터 프레임을 전송하기위한 메커니즘을 제공하는 것입니다.
- 지점 간 (PPP)은 임대 회선을 통해 지점 간 링크를 만드는 데 사용되는 프로토콜입니다. 또한 모뎀을 통해 최종 사용자와 인터넷 서비스 공급자 간의 연결을 제공하기 위해 배포됩니다. 또한 PPP 링크를 통한 IP 주소 프로비저닝을 지원합니다.
- 대부분의 최종 사용자는 이더넷 데이터 링크 프로토콜에서만 작동하는 이더넷 링크를 선호합니다. 따라서 캡슐화 된 데이터 프레임이 이더넷 프레임 내부로 전송되도록 허용하는 PPP over Ethernet이 생성됩니다.
- PPPoE는 처음에 라우터 및 ISP 라우터와 같은 최종 사용자 네트워크 장치 사이에 터널을 구축합니다. 그런 다음 터널이 라우터 간의 지점 간 링크로 작동하므로 라우터는 해당 터널을 통해 PPP 프레임을 보냅니다. 이제 데이터는이 기술로 인해 WAN 네트워크를 통해 전송됩니다.
- PPP는 또한 ISP의 데이터 사용에 대한 책임을 확인하기 위해 인증 프로세스를 사용합니다. 방법에는 암호 인증 프로토콜 (PAP) 및 채널 핸드 셰이크 인증 프로토콜 (CHAP)이 포함됩니다.
인터넷 계층
- 맨 아래에서 두 번째 계층은 인터넷 계층입니다.
- 데이터가 데이터 패킷에 해당 헤더를 추가하여 TCP 또는 UDP로 분할되면 추가 통신을 위해 하위 계층으로 전송됩니다.
- 데이터 패킷이 향하는 대상 호스트는 다양한 라우터를 통해 경로에 도달 할 수있는 다른 네트워크에 상주 할 수 있습니다. 논리적 주소를 할당하고 데이터 패킷을 대상 네트워크로 효율적으로 라우팅하는 것이 인터넷 계층의 의무입니다.
- 인터넷 계층 (IP)은이 작업을 수행하는 데 가장 많이 사용되는 프로토콜입니다.
인터넷 프로토콜
이 프로토콜의 목적은 일련의 프로토콜을 따라 패킷 헤더의 정보에 따라 데이터 패킷을 대상으로 라우팅하는 것입니다.
출발지와 목적지의 IP 주소가있는 헤더를 추가하여 TCP 또는 UDP에서 수신 한 세그먼트를 패킷이라고하는 PDU로 변환합니다. 패킷이 라우터에 도착하면 헤더에서 대상 주소를 확인한 다음 그에 따라 패킷을 다음 라우터로 전달하여 대상에 도달합니다.
예를 들어 이해해 보겠습니다.
아래 그림에서 호스트 A가 호스트 B와 통신하기를 원할 때 둘 다 동일한 네트워크 범위에 동일한 세트의 IP 주소를 가지고 있기 때문에 라우팅 프로토콜을 사용하지 않습니다.
그러나 호스트 A가 호스트 C에 패킷을 보내려는 경우 프로토콜의 도움으로 대상 호스트가 다른 네트워크에 속함을 발견합니다. 따라서 위의 형식은 라우팅 테이블을 조회하여 대상에 도달하기위한 다음 홉 주소를 찾습니다.
이 경우 호스트 A는 라우터 A, B 및 C를 통해 호스트 C에 도달합니다. 라우터 C는 스위치를 통해 대상 네트워크에 직접 연결되므로 패킷은 호스트 C로 전달됩니다.
라우터는 IP 헤더 필드에서 모든 라우팅 관련 정보를 가져옵니다. TCP / IP (데이터 링크 계층)의 네트워크 계층은 데이터 패킷의 종단 간 전달을 담당합니다.
인터넷 프로토콜의 패킷 흐름
IPV4 헤더
- 버전: IPV4의 버전 번호는 4입니다.
- 헤더 길이 : 헤더의 크기를 보여줍니다.
- DS 필드 : DS 필드는 차별화 된 서비스 필드를 의미하며 패킷 구성을 위해 배치됩니다.
- 총 길이: 헤더의 크기와 데이터 패킷의 크기를 나타냅니다.
- 신분증: 이 필드는 데이터 패킷의 조각화 및 각 필드 할당에 사용되므로 원본 데이터 패킷을 구성하는 데 도움이됩니다.
- 플래그 : 조각화 절차를 나타내는 데 사용됩니다.
- 조각 오프셋 : 조각화 된 데이터를 올바른 순서로 재정렬하는 데 사용하는 조각 번호 및 소스 호스트를 나타냅니다.
- 떠나야 할 시간: 이것은 소스 호스트 끝에서 설정됩니다.
- 실험 계획안: 데이터 전송에 사용하는 프로토콜을 나타냅니다. TCP의 프로토콜 번호는 6이고 UDP의 프로토콜 번호는 17입니다.
- 헤더 체크섬 : 이 필드는 오류 감지에 사용됩니다.
- 소스 IP 주소 : 소스 엔드 호스트의 IP 주소를 저장합니다.
- 대상 IP 주소 : 대상 호스트의 IP 주소를 저장합니다.
이에 대해서는 다음 튜토리얼에서 자세히 설명하겠습니다.
전송 계층
- 이것은 전체 데이터 전송을 담당하는 맨 아래에서 세 번째 계층이며 소스 및 대상 호스트와 네트워크의 장치간에 종단 간 논리적 연결을 설정하는 데 도움이됩니다.
- 이러한 작업을 수행하기 위해 두 가지 프로토콜이 사용됩니다.
- 첫 번째는 연결 기반의 안정적인 프로토콜 인 전송 제어 프로토콜 (TCP)입니다.
- 두 번째는 비 연결형 프로토콜 인 UDP (User Datagram Protocol)입니다.
- 이 두 프로토콜을 자세히 살펴보기 전에 두 프로토콜에서 사용되는 PORT NUMBER의 개념에 대해 설명합니다.
포트 번호:
네트워크에서 호스트 장치는 여러 소스에서 동시에 트래픽을 보내거나받을 수 있습니다.
이러한 상황에서 시스템은 데이터가 속한 응용 프로그램을 인식하지 못합니다. TCP 및 UDP 프로토콜은 헤더에 포트 번호를 입력하여 이러한 문제를 해결합니다. 잘 알려진 응용 프로그램 계층 프로토콜은 1에서 1024 범위의 포트 번호로 할당됩니다.
소스 끝에서 모든 TCP 또는 UDP 세션에는 임의의 포트 번호가 할당됩니다. 조합에 사용되는 IP 주소, 포트 번호 및 프로토콜 유형은 소스 및 대상 끝에서 소켓을 재구성합니다. 모든 소켓이 배타적이므로 여러 호스트가 동일한 시간 간격으로 트래픽을 보내거나받을 수 있습니다.
아래 표는 전송 계층 프로토콜에 해당하는 여러 애플리케이션 계층 프로토콜에 할당 된 포트 번호를 보여줍니다.
응용 프로토콜 | 전송 프로토콜 | 포트 번호 |
---|---|---|
DNS | TCP, UDP | 53 |
HTTP | TCP | 80 |
HTTPS | TCP | 443 |
FTP (제어) | TCP | 이십 일 |
FTP (데이터) | TCP | 이십 |
SSH | TCP | 22 |
Telnet | TCP | 2. 3 |
SMTP | TCP | 25 |
TFTP | UDP | 69 |
포트 번호를 사용하는 다중 세션
TCP
- 애플리케이션 계층이 방대한 트래픽이나 데이터의 흐름을 순환해야 할 때마다 TCP가 네트워크 간의 모든 종단 간 통신을 수행하는 전송 계층으로 전송합니다.
- TCP는 처음에 소스와 대상 사이에 3 방향 핸드 셰이크 프로세스를 설정 한 다음 데이터를 세그먼트라고하는 작은 청크로 분할하고 모든 세그먼트에 헤더를 포함시킨 다음 인터넷 계층으로 전달합니다.
아래 그림은 TCP 헤더의 형식을 보여줍니다.
- 3 방향 핸드 셰이크 : 네트워크에서 소스와 대상 호스트 사이에 연결을 설정하기 위해 TCP에 의해 배포되는 프로세스입니다. 안정적인 데이터 전송을 수행하는 데 사용됩니다. 작업을 수행하기 위해 TCP 헤더의 코드 비트에 대한 SYN 및 ACK 플래그를 배포합니다. 재전송과 함께 긍정적 인 승인을 수행하여 안정적인 통신을 제공하며 PAR이라고도합니다. PAR을 사용하는 시스템은 ACK를 수신 할 때까지 데이터 세그먼트를 다시 전송합니다. 수신자가 데이터를 버릴 때마다 발신자는 수신자로부터 긍정 ACK를받을 때까지 데이터를 재전송해야합니다.
3 단계 핸드 셰이 킹에는 다음과 같은 3 단계가 있습니다.
- 1 단계: 소스 호스트 A는 대상 호스트 B와 연결을 설정하고 SYN 및 시퀀스 번호가있는 세그먼트를 전송합니다. 이는 호스트 A가 호스트 B와 통신 세션을 시작하기를 원하며 정의 된 시퀀스 번호를 나타냅니다. 그 세그먼트에서.
- 2 단계: 호스트 B는 신호 비트에 설정된 SYN 및 ACK로 호스트 A의 요청에 응답합니다. ACK는 수신 된 세그먼트의 응답을 나타내고 SYN은 시퀀스 번호를 나타냅니다.
- 3 단계 : 호스트 A는 호스트 B의 응답을 확인하고 둘 다 호스트 B 간의 보안 연결을 설정 한 다음이를 통해 데이터 전송을 시작합니다.
아래 그림에서 설명한 것처럼 3 방향 핸드 셰이크 프로세스에서는 먼저 소스 호스트가 SYN 플래그를 설정하여 TCP 헤더를 대상 호스트로 보냅니다. 이에 대한 응답으로 SYN 및 승인 플래그 세트를 다시 가져옵니다. 대상 호스트는 수신 된 시퀀스 번호에 1을 더한 확인 번호를 사용합니다.
TCP IP는 통신 시스템의 클라이언트-서버 모델을 지원합니다.
3 방향 핸드 셰이크 프로세스
- 데이터 분할 :
- 이것은 TCP 프로토콜의 기능 중 하나입니다. 애플리케이션 계층은 전송 계층으로 대상으로 전송하기 위해 엄청난 수의 데이터를 보냅니다. 그러나 전송 계층은 한 번에 전송할 데이터의 크기를 제한합니다. 이것은 데이터를 작은 세그먼트로 분할하여 수행됩니다.
- 데이터 세그먼트의 시퀀스를 인식하기 위해 TCP 헤더에 시퀀스 번호가 사용되며 전체 데이터 세그먼트의 바이트 번호를 설명합니다.
- 흐름 제어 :
- 소스 호스트는 세그먼트 클러스터로 데이터를 보냅니다. 윈도우 비트가있는 TCP 헤더는 한 번의 인스턴스에서 보낼 수있는 세그먼트 수를 알아내는 데 사용됩니다. 목적지 끝에서 중요하지 않은 트래픽을 피하는 데 사용됩니다.
- 세션이 시작되면 창의 크기는 작지만 시간이 지남에 따라 트래픽이 증가하면 창의 크기가 커질 수 있습니다. 대상 호스트는 흐름 제어에 따라 창을 조정할 수 있습니다. 따라서 창을 슬라이딩 창이라고합니다.
- 소스는 창에서 허용하는 세그먼트 수만 전송할 수 있습니다. 더 많은 세그먼트를 보내기 위해 먼저 ACK를 수신 한 후 수신 측에서 승인을 기다린 후 필요에 따라 창 크기를 늘릴 수 있습니다.
- 아래 그림에서 대상 호스트는 ACK를 원본 호스트로 다시 전송 한 후 크기를 500에서 600으로 확장 한 다음 800으로 확장하고 있습니다.
- 안정적인 전달 및 오류 복구 :
- 결정된 윈도우의 마지막 세그먼트가 목적지에 수신 된 후 ACK를 소스 측으로 보내야합니다. ACK 플래그는 TCP 헤더에 설정되고 ACK 번호는 추정되는 후속 바이트의 시퀀스 번호로 설정됩니다. 대상이 적절한 순서로 세그먼트를 수신하지 않으면 ACK를 소스로 다시 전송하지 않습니다.
- 이것은 전송 중에 세그먼트 중 일부가 잘못 배치되어 모든 세그먼트를 재전송한다는 소스를 설명합니다.
- 아래 그림에서는 소스가 SEQ 번호 200의 세그먼트에 대한 ACK를 수신하지 못한 경우 데이터를 재전송하고 ACK를 수신 한 후 데이터 세그먼트의 다음 시퀀스를 전송하는 것을 보여줍니다. 창 크기에 따라.
- 주문 배송 :
- TCP는 데이터가 대상으로 순차적으로 전달되도록합니다. 애플리케이션 계층에서 수신 한 순서대로 데이터를 전달하여 대상 호스트로 전달합니다. 따라서 주문 된 배달을 유지하기 위해 데이터 세그먼트를 전송하는 동안 시퀀스 번호를 사용합니다.
- 연결 종료 :
- 소스와 대상 간의 데이터 전송이 완료되면 TCP는 FIN 및 ACK 플래그를 전송하여 세션을 종료하고 4 방향 핸드 셰이크를 사용하여 세션을 닫습니다.
TCP 슬라이딩 윈도우 및 안정적인 전달
사용자 데이터 그램 프로토콜 (UDP) :
데이터 전송을위한 신뢰할 수없는 비 연결형 프로토콜입니다. 이 프로토콜에서는 TCP와 달리 ACK 플래그를 생성하지 않으므로 소스 호스트는 대상 끝에서 응답을 기다리지 않고 지연없이 데이터를 전송하고 ACK를 기다립니다.
실시간 시나리오에서 UDP는 데이터 패킷의 삭제가 재전송을 위해 패킷을 기다리는 대신 선택되기 때문에 사용됩니다. 따라서 데이터 확인이 문제가되지 않는 게임, 온라인 비디오 시청, 채팅 등에 가장 널리 사용됩니다. 이러한 시나리오에서 오류 검사 및 수정은 응용 프로그램 계층에서 발생합니다.
UDP 헤더 :
- 소스 포트 : 16 비트 크기의 소스 엔드 패킷 정보를 분류합니다.
- 목적지 포트 : 또한 크기가 16 비트이며 대상 노드에서 데이터 서비스 유형을 분류하는 데 사용됩니다.
- 길이 : UDP 데이터 그램의 전체 크기를 나타냅니다. 길이 필드의 최대 크기는 UDP 헤더 자체의 전체 크기 일 수 있습니다.
- 체크섬 : 송신 전 소스 단에서 평가 한 체크섬 값을 저장합니다. 값이 없으면 모든 비트가 0으로 설정됩니다.
UDP 애플리케이션 :
- 데이터 그램을 제공하므로 IP 터널링 및 네트워크 파일 시스템에 적합합니다.
- 사용이 간단하므로 DHCP 및 사소한 파일 전송 프로토콜에서 사용됩니다.
- Stateless는 IPTV와 같은 스트리밍 미디어 애플리케이션에 효율적입니다.
- VoIP 및 실시간 스트리밍 프로그램에도 적합합니다.
- 멀티 캐스트를 지원하므로 Bluetooth 및 라우팅 정보 프로토콜과 같은 브로드 캐스트 서비스에 적합합니다.
응용 계층
(i) 이것은 TCP / IP 모델의 최상위 계층입니다.
(ii) TCP / IP 모델의 세션 계층, 프리젠 테이션 계층 및 응용 계층의 모든 작업을 수행합니다.
(iii) 다양한 응용 프로그램, 데이터 인코딩, 데이터 변환과의 인터페이스 기능을 결합하고 사용자가 다양한 네트워킹 시스템과 통신 할 수 있도록 액세스를 제공합니다.
가장 일반적인 애플리케이션 계층 프로토콜은 다음과 같습니다.
# 1) 텔넷 : 터미널 에뮬레이션 프로토콜을 나타냅니다. 일반적으로 원격 최종 응용 프로그램에 액세스하는 방법을 사용합니다. 호스트 역할을하는 텔넷 서버는 텔넷 서버 애플리케이션을 시작하여 텔넷 클라이언트로 알려진 원격 엔드 호스트와 연결을 설정합니다.
연결이 설정되면 텔넷 서버의 OS에 표시됩니다. 서버 측의 사람들은 키보드와 마우스를 사용하여 TELNET을 통해 상대방 호스트를 작동하고 액세스합니다.
# 2) HTTP : 하이퍼 텍스트 전송 프로토콜을 의미합니다. 월드 와이드 웹 (WWW)의 기반입니다. 이 프로토콜은 서로 다른 시스템간에 하이퍼 텍스트를 교환하는 데 사용됩니다. 요청-응답 프로토콜의 한 유형입니다.
예를 들어, 인터넷 익스플로러 나 모질라와 같은 웹 브라우저는 웹 클라이언트 역할을하고 웹 사이트를 호스팅하는 PC에서 스트리밍되는 애플리케이션은 웹 서버 역할을합니다.
따라서 클라이언트가 요청한 HTML 파일 및 기타 기능과 같은 리소스를 제공하는 서버는 완료 상태 데이터의 내용과 메시지 라인에 요청 된 데이터를 포함하는 응답 메시지를 클라이언트에 반환합니다.
HTTP 리소스는 URI (Uniform Resource Identifier) 메서드 HTTP 및 https를 배포하는 URL (Uniform Resource Locator)에 의해 인식되고 네트워크에 배치됩니다.
# 3) FTP : 파일 전송 프로토콜을 의미합니다. 두 호스트간에 파일을 공유하거나 전송하는 데 사용됩니다. FTP 응용 프로그램을 실행하는 호스트는 FTP 서버로 작동하고 다른 호스트는 FTP 클라이언트로 작동합니다.
파일 공유를 요청하는 클라이언트 호스트는 데이터에 액세스하기 위해 서버의 인증이 필요합니다. 권한이 부여되면 서버에서 모든 유형의 파일에 액세스하고 파일을 보내거나받을 수 있습니다.
# 4) SMTP : 단순 메일 전송 프로토콜은 이메일을 보내는 연습입니다. 이메일을 보내기 위해 호스트를 구성 할 때 SMTP를 사용합니다.
# 5) DNS : 네트워크의 각 호스트 장치에는 IP 주소라는 고유 한 논리 주소가 있습니다. 이미 논의했듯이 IP 주소는 너무 많은 숫자의 그룹이며 암기하기가 쉽지 않습니다. Google.com과 같은 웹 브라우저에 웹 주소를 입력하면 실제로 IP 주소가있는 호스트를 요청하는 것입니다.
그러나 DNS (도메인 이름 서버)가 각 논리 IP 주소에 대해 이름을 매핑하고 저장하므로 요청하는 웹 페이지의 IP 주소를 기억할 필요가 없습니다.
오라클 DBA 인터뷰 질문 및 답변
따라서 웹 페이지의 브라우저에 입력하면 DNS 쿼리를 DNS 서버로 보내 IP 주소를 이름에 매핑합니다. 주소를 받으면 IP 주소로 HTTP 세션이 구축됩니다.
# 6) DHCP : 네트워크의 각 호스트 장치에는 네트워크의 다른 장치와 통신하기위한 IP 주소가 필요합니다. 수동 구성 또는 DHCP (Dynamic Host Configuration Protocol)를 사용하여이 주소를 가져옵니다. DHCP를 사용하는 경우 호스트에 IP 주소가 자동으로 할당됩니다.
네트워크가 10,000 개의 호스트 장치로 구성되어 있다고 가정합니다. 그러면 각 호스트에 수동으로 IP 주소를 할당하는 것은 매우 어렵고 시간도 걸리므로 서브넷 마스크 IP 또는 게이트웨이 IP와 같은 연결된 호스트 장치에 IP 주소 및 기타 정보를 할당하기 위해 DHCP 프로토콜을 사용합니다.
소프트웨어 테스트 프로그램은 최종 사용자가 다양한 서비스를 테스트하고 해당 서비스를 사용하도록 프로비저닝하므로 TCP / IP 모델의이 계층에서 작동합니다.
결론
우리는 TCP / IP 모델의 각 계층에서 사용되는 다양한 프로토콜을 확인하여 계층과 관련된 작업을 수행하고 통신 시스템에서 이점을 얻었습니다.
위에 정의 된 모든 프로토콜은 소프트웨어 도구를 테스트하고 적용하는 데있어 각각의 의미와 역할이 다릅니다.
추천 도서
- 네트워킹 시스템의 레이어 2 및 레이어 3 스위치에 관한 모든 것
- 방화벽에 대한 완전한 가이드 : 보안 네트워킹 시스템을 구축하는 방법
- 라우터에 관한 모든 것 : 라우터 유형, 라우팅 테이블 및 IP 라우팅
- WAN (Wide Area Network)이란 : 라이브 WAN 네트워크 예
- HTTP (Hypertext Transfer Protocol) 및 DHCP 프로토콜이란 무엇입니까?
- 중요한 응용 프로그램 계층 프로토콜 : DNS, FTP, SMTP 및 MIME 프로토콜
- IPv4 vs IPv6 : 정확한 차이점은 무엇입니까
- 내 IP 주소 및 위치는 무엇입니까 (여기에서 실제 IP 확인)