기본 인터넷 프로토콜 스택. 스택(네트워크 스위치). 네트워크 장치 설정

소켓에서 장치 드라이버까지

프로토콜 소개

네트워킹에 대한 공식적인 소개에서는 OSI(Open Systems Interconnection) 모델을 언급하지만, 핵심 Linux 네트워킹 스택에 대한 소개에서는 인터넷 모델로 알려진 4계층 모델을 사용합니다(그림 1 참조).

그림 1. 네트워크 스택의 인터넷 모델

스택의 맨 아래에는 데이터 링크 계층이 있습니다. 데이터링크 계층직렬 링크나 이더넷 장치와 같은 여러 미디어로 구성될 수 있는 물리 계층에 대한 액세스를 제공하는 장치 드라이버를 나타냅니다. 채널 위는 네트워크 계층, 패킷을 목적지로 보내는 역할을 담당합니다. 다음 레벨은 수송 P2P 통신(예: 호스트 내)을 담당합니다. 네트워크 계층은 호스트 간의 통신을 관리하고 전송 계층은 해당 호스트 내의 끝점 간의 통신을 관리합니다. 마지막으로 애플리케이션 레이어, 이는 일반적으로 의미론적이며 이동된 데이터를 이해합니다. 예를 들어, HTTP(Hypertext Transfer Protocol)는 서버와 클라이언트 간에 웹 콘텐츠에 대한 요청과 응답을 이동합니다.

본질적으로 네트워크 스택의 계층은 더 알아보기 쉬운 이름으로 사용됩니다. 데이터 링크 계층에서는 가장 일반적인 고속 매체인 이더넷을 찾을 수 있습니다. 이전 링크 계층 프로토콜에는 SLIP(Serial Line Internet Protocol), CSLIP(Compressed SLIP) 및 PPP(Point-to-Point Protocol)와 같은 직렬 프로토콜이 포함됩니다. 가장 일반적인 네트워크 계층 프로토콜은 IP(인터넷 프로토콜)이지만 ICMP(인터넷 제어 메시지 프로토콜) 및 ARP(주소 확인 프로토콜)와 같이 다른 요구 사항을 충족하는 다른 프로토콜도 있습니다. 전송 계층에서는 TCP(전송 제어 프로토콜)와 UDP(사용자 데이터그램 프로토콜)가 있습니다. 마지막으로 애플리케이션 계층에는 표준 웹 프로토콜인 HTTP와 이메일 전송 프로토콜인 SMTP(Simple Mail Transfer Protocol)를 포함하여 우리에게 익숙한 많은 프로토콜이 포함되어 있습니다.

핵심 네트워크 아키텍처

이제 Linux 네트워킹 스택의 아키텍처로 이동하여 이것이 인터넷 모델을 구현하는 방법을 살펴보겠습니다. 그림 2는 Linux 네트워킹 스택의 상위 수준 보기를 보여줍니다. 상단에는 사용자 공간 수준이 있습니다. 애플리케이션 레이어, 네트워크 스택의 사용자를 정의합니다. 아래는 물리적 장치, 네트워크(직렬 또는 이더넷과 같은 고속 네트워크)에 연결하는 기능을 제공합니다. 중앙에 있거나 커널 공간는 이 문서에서 중점적으로 다루는 네트워크 하위 시스템입니다. 네트워킹 스택의 백엔드를 통해 실행되는 것은 소스와 대상 간에 패킷 데이터를 이동하는 소켓 버퍼(sk_buffs)입니다. sk_buff의 구조를 간략하게 보여드리겠습니다.

그림 2. Linux 네트워킹 스택의 상위 수준 아키텍처

먼저 Linux 네트워킹 하위 시스템의 기본 요소에 대한 간략한 개요를 제공하고 다음 섹션에서 더 자세히 설명합니다. 상단(그림 2 참조)에는 시스템 호출 인터페이스라는 시스템이 있습니다. 이는 단순히 사용자 공간 응용 프로그램이 커널의 네트워킹 하위 시스템에 액세스하는 방법을 제공합니다. 다음에는 하위 전송 계층 프로토콜을 사용하는 일반적인 방법을 제공하는 프로토콜 불가지론 계층이 있습니다. 다음은 Linux에 내장된 프로토콜인 TCP, UDP 및 물론 IP를 포함하는 실제 프로토콜입니다. 다음은 사용 가능한 개별 장치 드라이버와 공통 인터페이스를 제공하는 또 다른 독립 계층이며, 마지막에는 해당 드라이버 자체가 이어집니다.

시스템 호출 인터페이스

시스템 호출 인터페이스는 두 가지 관점에서 설명할 수 있습니다. 사용자가 네트워크 호출을 하면 커널에 대한 시스템 호출을 통해 다중화됩니다. 이는 ./net/socket.c의 sys_socketcall에 대한 호출로 끝나고, 의도한 대상에 대한 호출을 역다중화합니다. 시스템 호출 인터페이스를 살펴보는 또 다른 방법은 네트워크 입출력(I/O)에 일반 파일 작업을 사용하는 것입니다. 예를 들어 일반적인 읽기 및 쓰기 작업은 네트워크 소켓(파일 설명자에서 일반 파일로 표시됨)에서 수행될 수 있습니다. 따라서 네트워킹에 특정한 작업(socket을 호출하여 소켓을 생성하고, connect를 호출하여 핸들과 연결하는 등)이 있는 반면, 네트워크 객체에 다음과 같이 적용되는 표준 파일 작업도 많이 있습니다. 그것들은 일반 파일이었습니다. 마지막으로 시스템 호출 인터페이스는 사용자 공간 응용 프로그램과 커널 간에 제어를 전송하는 수단을 제공합니다.

프로토콜에 구애받지 않는 인터페이스

소켓 계층은 다양한 프로토콜을 지원하는 표준 기능 세트를 제공하는 프로토콜에 구애받지 않는 인터페이스입니다. 이 계층은 일반적인 TCP 및 UDP 프로토콜뿐만 아니라 IP, 원시 이더넷 및 SCTP(스트림 제어 전송 프로토콜)와 같은 기타 전송 프로토콜도 지원합니다.

네트워크 스택을 통한 통신은 소켓을 통해 발생합니다. Linux의 소켓 구조는 linux/include/net/sock.h에 정의된 struct sock입니다. 이 대규모 구조에는 소켓이 사용하는 특정 프로토콜과 소켓에서 수행할 수 있는 작업을 포함하여 개별 소켓에 필요한 모든 상태가 포함되어 있습니다.

네트워크 하위 시스템은 해당 기능을 정의하는 특수 구조에서 사용 가능한 프로토콜을 알고 있습니다. 각 프로토콜에는 proto(linux/include/net/sock.h에 있음)라는 구조가 포함되어 있습니다. 이 구조는 소켓 계층에서 전송 계층까지 수행할 수 있는 개별 소켓 작업(예: 소켓 생성 방법, 소켓 연결 설정 방법, 소켓 닫는 방법 등)을 정의합니다.

네트워크 프로토콜

네트워크 프로토콜 섹션에서는 사용 가능한 개별 네트워크 프로토콜(예: TCP, UDP 등)을 정의합니다. 이는 linux/net/ipv4/af_inet.c의 inet_init 함수에서 하루의 시작 부분에 초기화됩니다(TCP와 UDP는 inet 계열 프로토콜에 속하므로). inet_init 함수는 proto_register 함수를 사용하는 각 내장 프로토콜을 등록합니다. 이 함수는 linux/net/core/sock.c에 정의되어 있으며 유효한 프로토콜 목록에 프로토콜을 추가하는 것 외에도 필요한 경우 하나 이상의 슬랩 캐시를 할당할 수 있습니다.

linux/net/ipv4/에 있는 tcp_ipv4.c, udp.c 및 raw.c 파일의 proto 구조를 통해 개별 프로토콜이 어떻게 자신을 식별하는지 확인할 수 있습니다. 이러한 각 프로토콜 구조는 해당 작업에 내장된 프로토콜을 할당하는 inetsw_array에 유형 및 프로토콜로 매핑됩니다. inetsw_array의 구조와 해당 연결은 그림 3에 나와 있습니다. 이 배열의 각 프로토콜은 inet_init에서 inet_register_protosw를 호출하여 inetsw에서 하루 시작 시 초기화됩니다. inet_init 함수는 또한 ARP, ICMP, IP 모듈, TCP 및 UDP 모듈과 같은 다양한 inet 모듈을 초기화합니다.

그림 3. 인터넷 프로토콜 배열 구조

소켓과 프로토콜 상관관계

소켓이 생성될 때 유형과 프로토콜을 정의합니다(예: my_sock = 소켓(AF_INET, SOCK_STREAM, 0) ). AF_INET은 SOCK_STREAM으로 정의된 스트림 소켓을 사용하여 인터넷 주소 계열을 지정합니다(여기 inetsw_array에 표시됨).

소켓에 대한 데이터 이동은 소켓 버퍼(sk_buff)라는 기본 구조를 사용하여 발생합니다. sk_buff에는 프로토콜 스택의 여러 계층에 걸쳐 있는 패킷 데이터와 상태 데이터가 포함되어 있습니다. 보내거나 받은 모든 패킷은 sk_buff에 표시됩니다. sk_buff의 구조는 linux/include/linux/skbuff.h에 정의되어 있으며 그림 4에 나와 있습니다.

그림 4. 소켓 버퍼와 다른 구조에 대한 연결

보시다시피 특정 연결에 대한 여러 sk_buff 구조를 함께 연결할 수 있습니다. 각각은 패킷이 전송되거나 수신되는 장치(net_device)의 구조를 식별합니다. 각 패킷은 sk_buff에 표시되므로 패킷 헤더는 MAC(Media Access Control) 헤더에 대한 포인터 집합(th, iph 및 mac)으로 편리하게 정의됩니다. sk_buff 구조는 소켓 데이터 구성의 핵심이므로 숫자 지원 기능 sk_buff 대기열을 생성, 삭제, 복제 및 관리하는 기능이 있습니다.

소켓 버퍼는 지정된 소켓에 대해 서로 통신하도록 설계되었으며 프로토콜 헤더, 타임스탬프(패킷이 전송되거나 수신된 시기) 및 해당 장치에 대한 참조를 포함하여 많은 양의 정보를 포함합니다.

장치에 구애받지 않는 인터페이스

프로토콜 계층 아래에는 프로토콜을 다양한 기능을 가진 다양한 물리적 장치 드라이버에 연결하는 또 다른 독립 인터페이스 계층이 있습니다. 이 계층은 낮은 수준의 네트워크 장치가 높은 수준의 프로토콜 스택과 상호 작용할 수 있도록 사용하는 표준 기능 세트를 제공합니다.

우선, 장치 드라이버는 Register_netdevice 또는 unregister_netdevice 를 호출하여 커널에 스스로 등록 및 등록 취소할 수 있습니다. 호출 명령은 먼저 net_device 구조를 채운 다음 등록을 위해 전달합니다. 커널은 초기화 함수(정의된 경우)를 호출하고 몇 가지 상태 확인을 수행하고 sysfs 항목을 만든 다음 새 장치를 장치 목록(커널에서 활성화된 장치의 연결된 목록)에 추가합니다. net_device 구조는 linux/include/linux/netdevice.h에서 찾을 수 있습니다. 일부 기능은 linux/net/core/dev.c에 있습니다.

dev_queue_xmit 함수는 프로토콜 계층에서 장치로 sk_buff를 보내는 데 사용됩니다. 적절한 장치 드라이버(net_device 또는 sk_buff의 sk_buff->dev 포인터에 의해 정의된 장치)에 의한 가능한 전달을 위해 sk_buff를 대기열에 넣습니다. dev 구조에는 sk_buff 전송을 초기화하기 위한 드라이버 함수를 저장하는 hard_start_xmit라는 메서드가 포함되어 있습니다.

패킷 수신은 전통적으로 netif_rx 를 사용하여 수행됩니다. 하위 수준 장치 드라이버가 (할당된 sk_buff 내부에 포함된) 패킷을 수신하면 sk_buff는 netif_rx 호출을 사용하여 네트워크 계층으로 올라갑니다. 그런 다음 이 함수는 netif_rx_schedule을 사용하여 추가 처리를 위해 sk_buff를 더 높은 프로토콜 수준으로 대기열에 넣습니다. dev_queue_xmit 및 netif_rx 함수는 linux/net/core/dev.c에 있습니다.

마지막으로 장치 독립적(dev) 계층과 인터페이스하기 위해 새로운 응용 프로그램 인터페이스(NAPI)가 커널에 도입되었습니다. 일부 드라이버는 이를 사용하지만 대다수는 여전히 이전 프레임 획득 인터페이스(7개 중 6개)를 사용하고 있습니다. NAPI는 들어오는 모든 프레임의 중단을 피하면서 과도한 작업 부하에서 더 나은 성능을 제공할 수 있습니다.

장치 드라이버

네트워킹 스택의 맨 아래에는 물리적 네트워크 장치를 제어하는 ​​장치 드라이버가 있습니다. 이 수준의 장치 예로는 직렬 인터페이스를 통한 SLIP 드라이버 또는 이더넷 장치를 통한 이더넷 드라이버가 있습니다.

초기화 중에 장치 드라이버는 net_device 구조에 공간을 할당한 다음 필요한 루틴으로 초기화합니다. 그 중 dev->hard_start_xmit라는 것 중 하나는 최상위 계층이 전송을 위해 sk_buff를 대기열에 추가하는 방법을 지정합니다. sk_buff 로 전달됩니다. 이 기능이 작동하는 방식은 하드웨어에 따라 다르지만 일반적으로 sk_buff에 설명된 패킷은 "하드웨어 링" 또는 "큐"로 이동됩니다. 장치 독립적 계층에 설명된 대로 프레임 도착은 NAPI 호환 네트워크 드라이버에 대한 netif_rx 또는 netif_receive_skb 인터페이스를 사용합니다. NAPI 드라이버는 기본 하드웨어의 기능에 제한을 둡니다. 자세한 내용은 섹션을 참조하세요.

장치 드라이버가 dev 구조에서 인터페이스를 구성한 후,register_netdevice에 대한 호출을 통해 해당 인터페이스를 사용할 수 있게 됩니다. linux/drivers/net에서 네트워크 장치에 특정한 드라이버를 찾을 수 있습니다.

계속하세요

Linux 소스 코드는 네트워크 장치 드라이버를 포함하여 다양한 유형의 장치에 대한 드라이버 설계를 배울 수 있는 좋은 방법입니다. 사용 가능한 커널 API의 설계 및 사용에 차이가 있지만 각 API는 지침이나 새 드라이버의 시작점으로 유용합니다. 네트워크 스택의 나머지 코드는 표준이며 새 프로토콜이 필요할 때까지 사용됩니다. 그러나 그런 경우에도 TCP(스트리밍 프로토콜의 경우) 또는 UDP(메시지 전달 프로토콜의 경우) 구현은 새로운 개발을 시작하는 데 유용한 모델 역할을 합니다.

이 기사에서는 TCP/IP 모델의 기본 사항을 다룰 것입니다. 이해를 돕기 위해 주요 프로토콜과 서비스를 설명합니다. 가장 중요한 것은 시간을 들여 각 사항을 단계별로 이해하려고 노력하는 것입니다. 그것들은 모두 서로 연결되어 있으며, 하나를 이해하지 못하면 다른 하나도 이해하기 어려울 것입니다. 여기에 포함된 정보는 매우 피상적이므로 이 기사는 쉽게 "모형을 위한 TCP/IP 프로토콜 스택"이라고 부를 수 있습니다. 그러나 여기에 있는 많은 것들은 언뜻 보기에 이해하기 어렵지 않습니다.

TCP/IP

TCP/IP 스택은 네트워크에서 데이터 전송을 위한 네트워크 모델로, 장치가 상호 작용하는 순서를 결정합니다. 데이터는 데이터 링크 계층으로 들어가고 위의 각 계층에서 차례로 처리됩니다. 스택은 데이터 처리 및 수신 원리를 설명하는 추상화로 표현됩니다.

TCP/IP 네트워크 프로토콜 스택에는 4가지 수준이 있습니다.

  1. 채널(링크).
  2. 네트워크(인터넷).
  3. 수송.
  4. 애플리케이션.

애플리케이션 레이어

애플리케이션 계층은 애플리케이션과 프로토콜 스택의 다른 계층 간에 상호 작용하는 기능을 제공하고, 들어오는 정보를 분석하고 소프트웨어에 적합한 형식으로 변환합니다. 사용자와 가장 가깝고 직접 상호작용합니다.

  • HTTP;
  • SMTP;

각 프로토콜은 데이터 작업에 대한 자체 순서와 원칙을 정의합니다.

HTTP(HyperText Transfer Protocol)는 데이터 전송을 위해 설계되었습니다. 예를 들어 웹 페이지의 기초로 사용되는 HTML 형식의 문서를 보냅니다. 단순화된 방식으로 작업 계획은 "클라이언트-서버"로 표시됩니다. 클라이언트가 요청을 보내고, 서버는 이를 수락하고, 적절하게 처리하고 최종 결과를 반환합니다.

네트워크를 통해 파일을 전송하기 위한 표준 역할을 합니다. 클라이언트는 특정 파일에 대한 요청을 보내고, 서버는 데이터베이스에서 이 파일을 검색하여 성공적으로 발견되면 응답으로 보냅니다.

이메일을 전송하는데 사용됩니다. SMTP 작업에는 세 가지 순차적 단계가 포함됩니다.

  1. 보낸 사람의 주소를 결정합니다. 이는 편지를 반환하는 데 필요합니다.
  2. 수신자 정의. 여러 수신자를 지정할 때 이 단계를 여러 번 반복할 수 있습니다.
  3. 메시지 내용을 확인하고 전송합니다. 메시지 유형에 대한 데이터는 서비스 정보로 전송됩니다. 서버가 패킷을 수락할 준비가 되었음을 확인하면 트랜잭션 자체가 완료됩니다.

머리글

헤더에는 서비스 데이터가 포함되어 있습니다. 이는 특정 수준에만 사용된다는 점을 이해하는 것이 중요합니다. 이는 패킷이 수신자에게 전송되자마자 동일한 모델에 따라 역순으로 처리된다는 의미입니다. 포함된 헤더는 특정 방식으로만 처리할 수 있는 특수 정보를 전달합니다.

예를 들어 전송 계층에 중첩된 헤더는 반대편의 전송 계층에서만 처리할 수 있습니다. 다른 사람들은 그것을 단순히 무시할 것입니다.

전송 계층

전송 계층에서는 수신된 정보가 내용에 관계없이 단일 단위로 처리됩니다. 수신된 메시지는 여러 세그먼트로 나누어 헤더가 추가되고 전체가 다운스트림으로 전송됩니다.

데이터 전송 프로토콜:

가장 일반적인 프로토콜입니다. 보장된 데이터 전송을 담당합니다. 패킷을 보낼 때 체크섬, 즉 트랜잭션 프로세스가 제어됩니다. 이는 정보가 조건에 관계없이 "안전하고 건전하게" 도착한다는 것을 의미합니다.

UDP(사용자 데이터그램 프로토콜)는 두 번째로 널리 사용되는 프로토콜입니다. 또한 데이터 전송을 담당합니다. 그 특징은 단순함에 있습니다. 패킷은 특별한 연결을 만들지 않고 간단히 전송됩니다.

TCP 또는 UDP?

이러한 각 프로토콜에는 고유한 범위가 있습니다. 작품의 특성에 따라 논리적으로 결정됩니다.

UDP의 가장 큰 장점은 전송 속도입니다. TCP는 검사가 많은 복잡한 프로토콜인 반면, UDP는 더 단순화되어 더 빠른 것으로 보입니다.

단점은 단순성에 있습니다. 검사가 부족하여 데이터 무결성이 보장되지 않습니다. 따라서 정보는 단순히 전송되며 모든 확인 및 유사한 조작은 애플리케이션에 남아 있습니다.

예를 들어 UDP는 비디오를 보는 데 사용됩니다. 비디오 파일의 경우 소수의 세그먼트 손실은 중요하지 않지만 로딩 속도가 가장 중요한 요소입니다.

그러나 비밀번호나 은행 카드 정보를 보내야 한다면 TCP를 사용해야 하는 것은 분명합니다. 가장 작은 데이터 조각이라도 손실되면 치명적인 결과를 초래할 수 있습니다. 이 경우 속도는 안전만큼 중요하지 않습니다.

네트워크 계층

네트워크 계층은 수신된 정보로부터 패킷을 구성하고 헤더를 추가합니다. 데이터에서 가장 중요한 부분은 발신자와 수신자의 IP 및 MAC 주소입니다.

IP 주소(인터넷 프로토콜 주소) - 장치의 논리적 주소입니다. 네트워크상의 장치 위치에 대한 정보가 포함되어 있습니다. 예시 항목: .

MAC 주소(미디어 액세스 제어 주소) - 장치의 물리적 주소입니다. 식별에 사용됩니다. 제조단계에서 네트워크 장비에 배정됩니다. 6바이트 숫자로 표시됩니다. 예를 들어: .

네트워크 계층은 다음을 담당합니다.

  • 배송 경로 결정.
  • 네트워크 간 패킷 전송.
  • 고유한 주소 할당.

라우터는 네트워크 계층 장치입니다. 수신된 데이터를 기반으로 컴퓨터와 서버 사이에 길을 열어줍니다.

이 수준에서 가장 널리 사용되는 프로토콜은 IP입니다.

IP(인터넷 프로토콜)는 네트워크 주소 지정을 위해 설계된 인터넷 프로토콜입니다. 패킷이 교환되는 경로를 구축하는 데 사용됩니다. 무결성을 확인하고 확인할 수 있는 수단이 없습니다. 전달 보장을 제공하기 위해 IP를 전송 프로토콜로 사용하는 TCP가 사용됩니다. 이 트랜잭션의 원리를 이해하면 TCP/IP 프로토콜 스택이 작동하는 방식의 기초가 많이 설명됩니다.

IP 주소 유형

네트워크에는 두 가지 유형의 IP 주소가 사용됩니다.

  1. 공공의.
  2. 사적인.

공개(Public)는 인터넷에서 사용됩니다. 주요 규칙은 절대적인 고유성입니다. 그 사용 예로는 라우터가 있는데, 각 라우터는 인터넷과 상호 작용하기 위한 자체 IP 주소를 가지고 있습니다. 이 주소를 공개라고 합니다.

개인(Private)은 인터넷에서는 사용되지 않습니다. 글로벌 네트워크에서 이러한 주소는 고유하지 않습니다. 예를 들어 로컬 네트워크가 있습니다. 각 장치에는 특정 네트워크 내에서 고유한 IP 주소가 할당됩니다.

인터넷과의 상호 작용은 위에서 언급한 것처럼 자체 공용 IP 주소가 있는 라우터를 통해 수행됩니다. 따라서 라우터에 연결된 모든 컴퓨터는 하나의 공용 IP 주소 이름으로 인터넷에 나타납니다.

IPv4

인터넷 프로토콜의 가장 일반적인 버전입니다. IPv6보다 우선합니다. 기록 형식은 점으로 구분된 4개의 8비트 숫자입니다. 서브넷 마스크는 분수 기호로 표시됩니다. 주소 길이는 32비트입니다. 대부분의 경우 IP 주소에 관해 이야기할 때 IPv4를 의미합니다.

녹음 형식: .

IPv6

이 버전은 이전 버전의 문제를 해결하기 위한 것입니다. 주소 길이는 128비트입니다.

IPv6이 해결하는 주요 문제는 IPv4 주소의 고갈입니다. 전제 조건은 이미 80년대 초반에 나타나기 시작했습니다. 이 문제가 이미 2007~2009년에 심각한 단계에 이르렀음에도 불구하고 IPv6 구현은 매우 느리게 추진력을 얻고 있습니다.

IPv6의 가장 큰 장점은 더 빠른 인터넷 연결입니다. 이는 이 버전의 프로토콜에는 주소 변환이 필요하지 않기 때문입니다. 단순 라우팅이 수행됩니다. 이는 비용이 저렴하므로 IPv4보다 인터넷 리소스에 대한 액세스가 더 빠르게 제공됩니다.

예시 항목: .

IPv6 주소에는 세 가지 유형이 있습니다.

  1. 유니캐스트.
  2. 애니캐스트.
  3. 멀티캐스트.

유니캐스트는 IPv6 유니캐스트의 한 유형입니다. 전송되면 해당 주소에 위치한 인터페이스에만 패킷이 도달합니다.

애니캐스트는 IPv6 멀티캐스트 주소를 나타냅니다. 전송된 패킷은 가장 가까운 네트워크 인터페이스로 이동합니다. 라우터에서만 사용됩니다.

멀티캐스트는 멀티캐스트입니다. 이는 전송된 패킷이 멀티캐스트 그룹에 있는 모든 인터페이스에 도달한다는 것을 의미합니다. 모든 사람에게 방송되는 방송과 달리 멀티캐스트는 특정 그룹에게만 방송됩니다.

서브넷 마스크

서브넷 마스크는 IP 주소에서 서브넷과 호스트 번호를 결정합니다.

예를 들어 IP 주소에는 마스크가 있습니다. 이 경우 녹음 형식은 다음과 같습니다. 숫자 "24"는 마스크의 비트 수입니다. 8비트는 1옥텟과 같으며 바이트라고도 합니다.

보다 구체적으로 서브넷 마스크를 이진수 체계로 표현하면 다음과 같다. 4개의 옥텟이 있고 항목은 "1"과 "0"으로 구성됩니다. 단위 수를 더하면 총 "24"가 됩니다. 다행스럽게도 하나의 옥텟에는 8개의 값이 있으므로 하나씩 셀 필요는 없습니다. 그 중 3개가 1로 채워져 있는 것을 확인하고 이를 더하면 "24"가 됩니다.

서브넷 마스크에 대해 구체적으로 말하면 이진 표현에서는 한 옥텟에 1 또는 0이 있습니다. 이 경우 시퀀스는 1이 있는 바이트가 먼저 나오고 그 다음에는 0이 오는 순서입니다.

작은 예를 살펴보겠습니다. IP 주소와 서브넷 마스크가 있습니다. 우리는 다음을 세고 적습니다: . 이제 마스크를 IP 주소와 일치시킵니다. 모든 값이 1(255)인 마스크 옥텟은 IP 주소의 해당 옥텟을 변경하지 않고 그대로 둡니다. 값이 0이면 IP 주소의 옥텟도 0이 됩니다. 따라서 서브넷 주소 값으로 우리는 .

서브넷 및 호스트

서브넷은 논리적 분리를 담당합니다. 기본적으로 이들은 동일한 로컬 네트워크를 사용하는 장치입니다. IP 주소 범위에 따라 결정됩니다.

호스트는 네트워크 인터페이스(네트워크 카드)의 주소입니다. 마스크를 사용하여 IP 주소에서 확인됩니다. 예를 들어: . 처음 세 옥텟이 서브넷이므로 . 이것은 호스트 번호입니다.

호스트 주소의 범위는 0부터 255까지입니다. 번호가 "0"인 호스트는 실제로 서브넷 자체의 주소입니다. 그리고 호스트 번호 '255'는 방송사입니다.

어드레싱

TCP/IP 프로토콜 스택의 주소 지정에는 세 가지 유형의 주소가 사용됩니다.

  1. 현지의.
  2. 회로망.
  3. 도메인 이름.

MAC 주소를 로컬이라고 합니다. 이더넷과 같은 로컬 네트워크 기술의 주소 지정에 사용됩니다. TCP/IP의 맥락에서 "로컬"이라는 단어는 서브넷 내에서만 작동한다는 의미입니다.

TCP/IP 프로토콜 스택의 네트워크 주소는 IP 주소입니다. 파일을 보낼 때 수신자의 주소는 헤더에서 읽혀집니다. 도움을 받아 라우터는 호스트 번호와 서브넷을 학습하고 이 정보를 기반으로 최종 노드에 대한 경로를 생성합니다.

도메인 이름은 사람이 읽을 수 있는 인터넷 웹사이트 주소입니다. 인터넷상의 웹 서버는 공인 IP 주소를 통해 접속할 수 있습니다. 컴퓨터에서는 성공적으로 처리되지만 사람에게는 너무 불편한 것 같습니다. 이러한 복잡함을 피하기 위해 "도메인"이라는 영역으로 구성된 도메인 이름이 사용됩니다. 이들은 최상위 수준에서 최하위 수준까지 엄격한 계층 구조로 배열되어 있습니다.

최상위 도메인은 특정 정보를 나타냅니다. 일반(.org, .net)은 엄격한 경계로 제한되지 않습니다. 반대 상황은 로컬 상황(.us, .ru)입니다. 일반적으로 현지화되어 있습니다.

하위 수준 도메인은 그 밖의 모든 것입니다. 크기에는 제한이 없고 값의 개수에도 제한이 없습니다.

예를 들어, "www.test.quiz.sg"는 올바른 도메인 이름입니다. 여기서 "sg"는 로컬 첫 번째(최상위) 수준 도메인이고, "quiz.sg"는 두 번째 수준 도메인인 "test.quiz.sg"입니다. 세 번째 수준 도메인입니다. 도메인 이름은 DNS 이름이라고도 합니다.

DNS(Domain Name System)는 도메인 이름과 공용 IP 주소 간의 매핑을 설정합니다. 브라우저에 도메인 이름을 입력하면 DNS가 해당 IP 주소를 감지하여 장치에 보고합니다. 장치는 이를 처리하여 웹페이지로 반환합니다.

데이터링크 계층

링크 계층에서는 장치와 물리적 전송 매체 간의 관계가 결정되고 헤더가 추가됩니다. 데이터를 인코딩하고 물리적 매체를 통해 전송할 프레임을 준비하는 일을 담당합니다. 네트워크 스위치는 이 수준에서 작동합니다.

가장 일반적인 프로토콜:

  1. 이더넷.
  2. WLAN.

이더넷은 가장 일반적인 유선 LAN 기술입니다.

WLAN은 무선 기술을 기반으로 한 로컬 네트워크입니다. 장치는 물리적 케이블 연결 없이 상호 작용합니다. 가장 일반적인 방법의 예로는 Wi-Fi가 있습니다.

정적 IPv4 주소를 사용하도록 TCP/IP 구성

고정 IPv4 주소는 장치 설정에서 직접 할당되거나 네트워크에 연결할 때 자동으로 할당되며 영구적입니다.

영구 IPv4 주소를 사용하도록 TCP/IP 프로토콜 스택을 구성하려면 콘솔에 ipconfig/all 명령을 입력하고 다음 데이터를 찾으십시오.

동적 IPv4 주소를 사용하도록 TCP/IP 구성

동적 IPv4 주소는 한동안 사용되었다가 임대된 후 변경됩니다. 네트워크에 연결되면 자동으로 장치에 할당됩니다.

비영구 IP 주소를 사용하도록 TCP/IP 프로토콜 스택을 구성하려면 원하는 연결의 속성으로 이동하여 IPv4 속성을 열고 표시된 대로 상자를 선택해야 합니다.

데이터 전송 방법

데이터는 세 가지 방법으로 물리적 매체를 통해 전송됩니다.

  • 단순.
  • 반이중.
  • 전이중.

Simplex는 단방향 통신입니다. 전송은 한 장치에서만 수행되고 다른 장치는 신호를 수신합니다. 정보는 한 방향으로만 전송된다고 말할 수 있습니다.

단순 통신의 예:

  • TV 방송.
  • GPS 위성의 신호.

반이중은 양방향 통신입니다. 그러나 한 번에 하나의 노드만 신호를 전송할 수 있습니다. 이러한 유형의 통신에서는 두 장치가 동시에 동일한 채널을 사용할 수 없습니다. 완전한 양방향 통신은 물리적으로 불가능하거나 충돌이 발생할 수 있습니다. 전송매체를 두고 갈등을 빚고 있다고 한다. 이 모드는 동축 케이블을 사용할 때 사용됩니다.

반이중 통신의 예로는 하나의 주파수에서 워키토키를 통한 통신이 있습니다.

전이중 - 완전 양방향 통신. 장치는 동시에 신호를 브로드캐스트하고 수신할 수 있습니다. 전송 매체를 놓고 충돌하지 않습니다. 이 모드는 고속 이더넷 기술과 연선 연결을 사용할 때 사용됩니다.

모바일 네트워크를 통한 전화 통신이 그 예입니다.

TCP/IP 대 OSI

OSI 모델은 데이터 전송 원칙을 정의합니다. TCP/IP 프로토콜 스택의 계층은 이 모델에 직접적으로 대응됩니다. 4계층 TCP/IP와 달리 7계층이 있습니다.

  1. 물리적.
  2. 채널(데이터 링크).
  3. 회로망.
  4. 수송.
  5. 세션.
  6. 프레젠테이션.
  7. 애플리케이션.

현재로서는 이 모델을 너무 깊이 파고들 필요는 없지만 최소한 피상적인 이해는 필요합니다.

TCP/IP 모델의 애플리케이션 계층은 상위 3개 OSI 계층에 해당합니다. 이들은 모두 애플리케이션과 함께 작동하므로 이 조합의 논리를 명확하게 볼 수 있습니다. TCP/IP 프로토콜 스택의 일반화된 구조는 추상화를 더 쉽게 이해할 수 있게 해줍니다.

전송 계층은 변경되지 않습니다. 동일한 기능을 수행합니다.

네트워크 계층도 변경되지 않습니다. 정확히 동일한 작업을 수행합니다.

TCP/IP의 데이터 링크 계층은 마지막 두 OSI 계층에 해당합니다. 데이터 링크 계층은 물리적 매체를 통해 데이터를 전송하기 위한 프로토콜을 설정합니다.

물리적은 실제 물리적 연결(전기 신호, 커넥터 등)을 나타냅니다. TCP/IP 프로토콜 스택에서는 이 두 계층이 모두 물리적 매체를 다루기 때문에 하나로 결합하기로 결정되었습니다.

인터네트워킹을 구성하기에 충분한, 서로 다른 수준에서 합의된 프로토콜 세트를 호출합니다. 프로토콜 스택. 각 수준마다 상위 수준과의 상호 작용을 위해 일련의 쿼리 함수가 정의됩니다. 상호 작용. 두 기계 간의 상호 작용 규칙은 각 수준에 대한 일련의 절차로 설명할 수 있습니다. 프로토콜.

네트워크에서 널리 사용되는 프로토콜 스택이 많이 있습니다. 이는 국제 및 국내 표준인 스택과 특정 회사의 장비 보급으로 인해 널리 보급된 독점 스택입니다. 널리 사용되는 프로토콜 스택의 예로는 Novell의 IPX/SPX 스택, 인터넷과 많은 UNIX 기반 네트워크에서 사용되는 TCP/IP 스택, 국제표준화기구(International Standards Organization)의 OSI 스택, Digital Equipment Corporation의 DECnet 스택 등이 있습니다.

프로토콜 스택은 세 가지 수준으로 나뉩니다.

  • 수송;

    적용된.

네트워크 프로토콜

네트워크 프로토콜은 정보 주소 지정 및 라우팅, 오류 확인, 재전송 요청, 특정 네트워크 환경에서의 상호 작용 규칙 설정 등의 서비스를 제공합니다. 다음은 가장 널리 사용되는 네트워크 프로토콜입니다.

    DDP(DatagramDeliveryProtocol) AppleTalk에서 사용되는 Apple 데이터 전송 프로토콜입니다.

    IP(인터넷 프로토콜 - 인터넷 프로토콜). 주소 지정 및 라우팅 정보를 제공하는 TCP/IP 스택 프로토콜입니다.

    IPX(InternetworkPacketeXchange)는 NWLink의 NovelNetWare 프로토콜로 패킷을 라우팅하고 라우팅하는 데 사용됩니다.

    NetBEUI(NetBIOSExtendedUserInterface – 기본 네트워크 입출력 시스템의 확장된 사용자 인터페이스) . IBM과 Microsoft가 공동으로 개발한 이 프로토콜은 다음에 대한 전송 서비스를 제공합니다. NetBIOS.

전송 프로토콜

전송 프로토콜은 컴퓨터 간에 데이터를 안정적으로 전송하기 위해 다음 서비스를 제공합니다. 다음은 가장 널리 사용되는 전송 프로토콜입니다.

    ATP(AppleTalkProtocol – AppleTalk 트랜잭션 프로토콜) 및 NBP(NameBindingProtocol – 이름 바인딩 프로토콜). AppleTalk 세션 및 전송 프로토콜.

    NetBIOS (기본 네트워크 I/O 시스템) . NetBIOS는 컴퓨터 간의 연결을 설정하고 NetBEUI이 연결에 대한 데이터 서비스를 제공합니다.

    SPX(SequencedPacketeXchange – 순차 패킷 교환)은 데이터 전달을 보장하는 데 사용되는 NWLink.NovelNetWare 프로토콜입니다.

    TCP(TransmissionControlProtocol – 전송 제어 프로토콜) 안정적인 데이터 전달을 담당하는 TCP/IP 스택의 프로토콜입니다.

애플리케이션 프로토콜

애플리케이션 프로토콜은 애플리케이션이 통신하는 방식을 담당합니다. 다음은 가장 널리 사용되는 애플리케이션 프로토콜입니다.

    AFP(Apple Talk 파일 프로토콜 - Apple Talk 파일 프로토콜).

    FTP(파일 전송 프로토콜 - 파일 전송 프로토콜). 파일 전송 서비스를 제공하는 데 사용되는 TCP/IP 스택 프로토콜입니다.

    NCP(NetWare 핵심 프로토콜 - NetWare 기본 프로토콜). NovelNetWare 클라이언트 셸 및 리디렉터.

    SNMP(SimpleNetworkManagementProtocol) 네트워크 장치를 관리하고 모니터링하는 데 사용되는 TCP/IP 스택 프로토콜입니다.

    HTTP(HyperTextTransferProtocol) – 하이퍼텍스트 전송 프로토콜 및 기타 프로토콜.

인터넷 프로토콜 제품군은 데이터의 패키징, 처리, 전송, 라우팅 및 수신 방법을 정의하는 엔드투엔드 데이터 통신을 제공합니다. 이 기능은 관련된 네트워크의 범위에 따라 모든 관련 프로토콜을 분류하는 4개의 추상화 계층으로 구성됩니다. 가장 낮은 계층에서 가장 높은 계층은 단일 네트워크 세그먼트(링크) 내에 남아 있는 데이터에 대한 통신 방법을 포함하는 통신 계층입니다. 독립적인 네트워크 간의 인터네트워킹을 제공하는 인터넷 계층 호스트 간의 통신을 처리하는 전송 계층; 애플리케이션에 프로세스 간 통신을 제공하는 애플리케이션 계층이 있습니다.

TCP/IP 모델의 인터넷 아키텍처 및 프로토콜 개발은 국제 개방형 디자이너 커뮤니티 IETF에 의해 수행됩니다.

이야기

TCP/IP 프로토콜 스택 1972년 Vinton Cerf가 이끄는 개발자 그룹에 의해 NCP(Network Control Protocol)를 기반으로 만들어졌습니다. 1976년 7월 Vint Cerf와 Bob Kahn은 세 가지 다른 네트워크에서 TCP를 사용한 데이터 전송을 처음으로 시연했습니다. 패키지는 샌프란시스코 - 런던 - 서던캘리포니아 대학교 경로를 따랐습니다. 여행이 끝날 때까지 패키지는 단 한 조각도 잃지 않고 150,000km를 이동했습니다. 1978년 서프(Cerf), 존 포스텔(Jon Postel), 대니 코헨 TCP에 두 가지 별도의 기능을 할당하기로 결정했습니다. TCP 및 IP(영어 인터넷 프로토콜,인터네트워크 프로토콜). TCP는 메시지를 데이터그램(영어 데이터그램)으로 나누고 이를 최종 전송 지점에 연결하는 역할을 담당했습니다. IP는 개별 데이터그램의 전송(수신 제어 포함)을 담당했습니다. 이것이 현대 인터넷 프로토콜이 탄생한 방법입니다. 그리고 1983년 1월 1일 ARPANET은 새로운 프로토콜로 전환했습니다. 이 날은 인터넷의 공식적인 탄생일로 간주됩니다.

TCP/IP 스택의 계층

TCP/IP 프로토콜 스택에는 다음 네 가지 계층이 포함됩니다.

이러한 수준의 프로토콜은 OSI 모델의 기능을 완전히 구현합니다. IP 네트워크의 모든 사용자 상호 작용은 TCP/IP 프로토콜 스택을 기반으로 구축됩니다. 스택은 물리적 데이터 전송 매체와 독립적이므로 특히 유선 네트워크와 무선 네트워크 간의 완전히 투명한 상호 작용을 보장합니다.

TCP/IP 모델 수준별 프로토콜 배포
적용된
(애플리케이션 레이어)
예: HTTP, RTSP, FTP, DNS
수송

전송 계층

네트워크(인터넷) 수준

데이터링크 계층

또한 데이터 링크 계층은 데이터 전송 매체(동축 케이블, 연선, 광섬유 또는 무선 채널 등), 이러한 매체의 물리적 특성 및 데이터 전송 원리(채널 분리, 변조, 신호 진폭, 신호 주파수, 전송 동기화 방법, 지연 응답 및 최대 거리).

링크 수준에서 프로토콜 스택을 설계할 때 잡음 방지 코딩이 고려되므로 통신 채널에 대한 잡음 및 간섭의 영향으로 인한 데이터 오류를 감지하고 수정할 수 있습니다.

OSI 모델과의 비교

OSI 모델의 상위 3개 계층인 애플리케이션 계층, 프리젠테이션 계층, 세션 계층은 전송 계층 위에 애플리케이션 계층만 있는 TCP/IP 모델에서는 별도로 구분되지 않습니다. X.400과 같은 일부 순수 OSI 프로토콜 응용 프로그램도 이를 결합하지만 TCP/IP 프로토콜 스택이 전송 계층 위에 모놀리식 아키텍처를 오버레이해야 한다는 요구 사항은 없습니다. 예를 들어, NFS 애플리케이션 프로토콜은 XDR(External Data Representation) 프로토콜을 통해 작동하고, 이는 다시 RPC(원격 프로시저 호출) 프로토콜을 통해 작동합니다. RPC는 안정적인 데이터 전송을 제공하므로 최선의 UDP 전송을 안전하게 사용할 수 있습니다.

다양한 저자들은 TCP/IP 모델을 다양한 방식으로 해석했으며 링크 계층이나 전체 TCP/IP 모델이 OSI 계층 1(물리적 계층) 문제를 포착하거나 하드웨어 계층이 링크 계층 아래에 ​​있다고 가정한다는 데 동의하지 않습니다.

몇몇 저자들은 OSI 모델의 레이어 1과 2를 TCP/IP 모델에 통합하려고 시도했습니다. 왜냐하면 OSI 모델은 최신 표준(예: IEEE 및 ITU)에서 일반적으로 참조되기 때문입니다. 이로 인해 통신 계층 또는 네트워크 액세스 계층이 OSI 모델의 계층 1과 2로 구분되는 5계층 모델이 되는 경우가 많습니다.

IETF 프로토콜 개발 노력은 엄격한 계층화에 관한 것이 아닙니다. 일부 프로토콜은 순수 OSI 모델을 따르지 않을 수 있지만 RFC는 때때로 이를 참조하고 이전 OSI 계층 번호를 사용합니다. IETF는 인터넷 프로토콜과 아키텍처 설계가 OSI 요구 사항을 준수해서는 안 된다고 반복해서 밝혔습니다. 인터넷 아키텍처를 다루는 RFC 3439에는 "유해한 것으로 간주되는 레이어"라는 섹션이 포함되어 있습니다.

예를 들어, OSI 패킷의 세션 및 프리젠테이션 계층은 TCP/IP 패킷의 애플리케이션 계층에 포함되는 것으로 간주됩니다. 세션 계층 기능은 HTTP 및 SMTP와 같은 프로토콜에서 찾을 수 있으며 Telnet 및 SIP(Session Initiation Protocol)와 같은 프로토콜에서 더욱 분명하게 나타납니다. 세션 계층 기능은 TCP/IP 제품군의 전송 계층에 걸쳐 있는 TCP 및 UDP 프로토콜에 대한 포트 번호 지정을 통해 구현됩니다. 프리젠테이션 계층 기능은 데이터 교환을 위한 MIME 표준을 사용하여 TCP/IP 애플리케이션에서 구현됩니다.

ISO 7498/4 관리 프레임워크 또는 ISO 8648 IONL(Internal Organization of the Network Layer)과 같은 해당 모델의 부록이 다루어지지 않은 경우 원래 OSI 모델인 ISO 7498에서도 충돌이 분명합니다. IONL 및 관리 프레임워크 문서를 검토하면 ICMP 및 IGMP가 네트워크 계층에 대한 계층 제어 프로토콜로 정의됩니다. 마찬가지로 IONL은 ARP 및 RARP와 같은 "서브넷 종속 수렴 개체"를 위한 프레임워크를 제공합니다.

GRE(General Routing Encapsulation)와 같은 터널링 프로토콜에서 알 수 있듯이 IETF 프로토콜은 반복적으로 캡슐화될 수 있습니다. GRE는 OSI가 네트워크 계층에서 터널링에 사용하는 것과 동일한 메커니즘을 사용합니다. TCP/IP 모델을 OSI 모델에 맞추는 방법에 대해서는 의견이 분분합니다. OSI 모델의 계층이 동일하지 않기 때문입니다.

또한 OSI 모델은 데이터 링크와 네트워크 계층 사이에 추가 계층인 "인터네트워킹"을 사용하지 않습니다. 논쟁의 여지가 있는 프로토콜의 예로는 ARP 또는 STP가 있습니다.

TCP/IP 프로토콜이 전통적으로 OSI 모델에 적용되는 방식은 다음과 같습니다.

OSI 모델 수준별 프로토콜 배포
TCP/IP OSI
7 적용된 적용된 예: HTTP, SMTP, SNMP, FTP, 텔넷, SSH, SCP, SMB, NFS, RTSP, BGP
6 대표 예: XDR, AFP, TLS, SSL
5 세션 예: ISO 8327/CCITT X.225, RPC, NetBIOS, PPTP, L2TP, ASP
4 수송 수송 예: TCP, UDP, SCTP, SPX, ATP, DCCP, GRE
3 회로망 회로망 예: ICMP, IGMP, CLNP, OSPF, RIP, IPX, DDP, ARP
2 도관 도관 예: 이더넷, 토큰 링, HDLC, PPP, X.25, 프레임 릴레이, ISDN, ATM, SPB, MPLS
1 물리적 예: 전선, 무선 통신, 광섬유 전선, 적외선

일반적으로 TCP/IP 스택에서는 OSI 모델의 상위 3개 계층(애플리케이션, 프리젠테이션 및 세션)이 하나의 애플리케이션으로 결합됩니다. 이러한 스택은 통합 데이터 전송 프로토콜을 제공하지 않으므로 데이터 유형을 결정하는 기능이 애플리케이션으로 전송됩니다.

기술 문헌의 TCP/IP 모델 설명

노트

  1. OSI 및 TCP/IP 모델. 기술 자료 osLogic.ru
  2. TCP/IP 및 OSI 네트워크 모델. 시스코 학습
  3. Vasiliev A. A., Telina I. S., Izbachkov Yu., Petrov V. N.정보 시스템: 대학 교과서. - 세인트 피터스 버그. : 피터, 2010. - 544p. - ISBN 978-5-49807-158-9.
  4. 앤드루 크로치크(Andrew Krowczyk), 비노드 쿠마르(Vinod Kumar), 노만 라가리(Noman Laghari) 등.전문가/트랜스젠더를 위한 .NET 네트워크 프로그래밍. 영어로부터 V. Streltsov. -M .: Lori, 2005. - 400p. - ISBN 1-86100-735-3. - ISBN 5-85582-170-2.

전송 계층(TL)네트워크를 통해 패킷을 전송하기 위한 규칙을 정의합니다. 전송 계층은 개별 패킷의 종단간 전달을 모니터링합니다. 이는 이러한 패킷(동일한 메시지에 속하는 패킷도 포함) 간의 종속성을 고려하지 않습니다. 실제 여부에 관계없이 각 패킷을 각 부분이 별도의 메시지에 속하는 것처럼 처리합니다. 전송 계층 프로토콜은 모든 메시지가 대상에 그대로 도착하고 패킷이 원래 순서대로 정렬되도록 보장합니다. 전송 계층에서는 정보 위반 제어 및 오류 제어가 수행되며 전체 소스-목적지 경로를 따라 흐름 제어가 수행됩니다.

전송 계층은 다음 작업을 수행합니다.

  • 서비스 지점 주소 지정. 컴퓨터는 종종 여러 프로그램을 동시에 실행합니다. 이러한 이유로 소스-대상 전달은 한 컴퓨터에서 다음 컴퓨터로 전달하는 것뿐만 아니라 한 컴퓨터의 지정된 프로세스(실행 중인 프로그램)에서 다른 컴퓨터의 지정된 프로세스(실행 중인 프로그램)로 전달하는 것을 의미합니다. 따라서 전송 계층 헤더에는 서비스 지점 주소(또는 포트 주소)라는 주소 유형이 포함되어야 합니다. 네트워크 계층은 각 패킷을 올바른 컴퓨터 주소로 전달합니다. 전송 계층은 전체 메시지를 해당 컴퓨터의 올바른 프로세스에 전달합니다.
  • 분할 및 재조립. 메시지는 전송 가능한 세그먼트로 나누어지며, 각 세그먼트에는 시퀀스 번호가 포함됩니다. 이 숫자를 통해 전송 계층은 대상에 도달한 후 메시지를 올바르게 재조립하고 전송 중 손실된 패킷을 교체할 수 있습니다.
  • 연결 관리. 전송 계층은 연결 지향(무연결 전송) 또는 연결 지향 전송(데이터그램 모드)일 수 있습니다. 비연결 전송 계층(미리 설정된 가상 연결을 통해)은 각 세그먼트를 독립적인 패킷으로 처리하고 이를 대상 시스템의 전송 계층으로 전달합니다. 연결 지향 전송 계층은 패킷을 전달하기 전에 먼저 대상 컴퓨터의 전송 계층에 대한 연결을 설정합니다. 모든 데이터 전송이 완료되면 연결이 종료됩니다.

    연결 없는 모드에서 전송 계층은 안정적인 전달을 보장하지 않고 단일 데이터그램을 전송하는 데 사용됩니다. 안정적인 데이터 전달을 위해 연결 지향 모드가 사용됩니다.

  • 흐름 제어. 데이터 링크 계층과 마찬가지로 전송 계층도 흐름 제어를 담당합니다. 그러나 이 수준의 흐름 제어는 엔드투엔드(end-to-end)로 수행됩니다.
  • 오류 제어. 데이터 링크 계층과 마찬가지로 전송 계층은 오류 제어를 담당합니다. 전송 전송 계층은 완전한 메시지가 오류(손상, 손실 또는 중복) 없이 수신 전송 계층에 도달하도록 보장합니다. 오류 수정은 일반적으로 재전송을 통해 발생합니다.

세션 레이어 SL- 네트워크 대화 컨트롤러. 통신 시스템 간의 상호 작용을 설정, 유지 및 동기화합니다.

세션 레이어(Session Layer)를 사용하면 당사자 간의 대화가 구성되고, 어느 당사자가 개시자인지, 어느 당사자가 활성 상태인지, 대화가 어떻게 끝나는지 기록됩니다.

세션 계층 작업은 다음과 같습니다.

  • 대화 관리. 세션 레이어두 시스템이 대화를 시작할 수 있습니다. 두 프로세스 간에 메시지를 교환할 수 있습니다. 이 경우 반이중(한 번에 하나의 경로) 또는 전이중(동시에 두 경로) 모드가 가능합니다. 예를 들어, 단말과 메인프레임 간의 대화는 반이중 방식일 수 있습니다.
  • 동기화. 세션 레이어프로세스가 데이터 스트림에 체크포인트(동기화 포인트)를 추가할 수 있도록 합니다. 예를 들어, 시스템이 2,000페이지의 파일을 전송하는 경우 각 100페이지 모듈이 독립적으로 수신되고 인식되도록 하려면 100페이지마다 체크포인트를 삽입하는 것이 바람직합니다. 이 경우 523페이지 전송 중 위반이 발생하면 시스템 복구 후 다시 전송해야 하는 페이지는 501페이지(500번째 페이지 중 첫 번째 페이지) 뿐입니다.

프리젠테이션 레이어정보를 기록하거나 암호화하는 등 하위 수준에 정보를 제공하는 형태를 다룹니다.

프리젠테이션 계층의 작업은 다음과 같습니다.

  • 녹화정보. 두 시스템의 프로세스(실행 중인 프로그램)는 일반적으로 문자열, 숫자 등의 형태로 정보를 교환합니다. 정보는 전송되기 전에 비트 스트림으로 변경되어야 합니다. 컴퓨터마다 다른 인코딩 시스템을 사용하기 때문에 프리젠테이션 레이어이러한 다양한 인코딩 방법 간의 상호 운용성을 담당합니다. 프리젠테이션 레이어송신기에서는 정보를 송신기별 형식에서 일반 형식으로 변경합니다. 프리젠테이션 레이어수신 컴퓨터에서는 공통 형식을 수신기의 형식으로 바꿉니다.
  • 암호화. 민감한 정보를 전달하려면 시스템이 비밀을 보장해야 합니다. 암호화는 전송자가 원본 정보를 다른 형식으로 변환하고 결과 메시지를 네트워크를 통해 보내는 것을 의미합니다. 메시지를 원래 형식으로 다시 변환하려면 디코딩이 원래 프로세스와 정반대여야 합니다.
  • 압축. 데이터 압축은 정보에 포함된 비트 수를 줄입니다. 데이터 압축은 텍스트, 오디오, 비디오와 같은 멀티미디어 전송에서 특히 중요합니다.

애플리케이션 계층(AL)동일한 작업(프로그램)을 구현하는 원격 노드 간에 교환되는 프로토콜 집합입니다. 애플리케이션 레이어사용자(사람 또는 소프트웨어)가 네트워크에 액세스할 수 있도록 합니다. 이는 이메일, 원격 액세스 및 자금 이체, 공용 데이터베이스 관리 및 기타 유형의 분산 정보 서비스와 같은 서비스에 대한 사용자 인터페이스 및 지원을 제공합니다.

애플리케이션 계층에서 제공하는 서비스의 예:

  • 네트워크 가상 터미널. 네트워크 가상 터미널은 물리적 터미널의 소프트웨어 버전으로, 사용자가 원격 호스트에 로그인할 수 있도록 해줍니다. 이를 위해 애플리케이션은 원격 호스트에 터미널의 소프트웨어 에뮬레이션을 생성합니다. 사용자의 컴퓨터는 소프트웨어 터미널과 통신하고, 소프트웨어 터미널은 호스트와 통신하며, 그 반대도 마찬가지입니다. 원격 호스트는 이 연결을 자신의 터미널 중 하나와의 연결로 정의하고 진입을 허용합니다.
  • 파일 전송, 액세스 및 관리. 이 응용 프로그램을 사용하면 사용자는 원격 호스트의 파일에 액세스하여 데이터를 수정하거나 읽을 수 있고, 원격 컴퓨터에서 파일을 검색하여 로컬 컴퓨터에서 사용할 수 있으며, 원격 컴퓨터의 파일을 관리할 수 있습니다.
  • 우편 서비스. 이 애플리케이션은 이메일 전송 및 저장을 위한 기반을 제공합니다.
  • 디렉토리 서비스. 이 애플리케이션은 분산 데이터베이스 소스를 제공하고 다양한 개체 및 서비스에 대한 글로벌 정보에 대한 액세스를 제공합니다.

인터넷 프로토콜 스택

Internet2 프로토콜 스택은 OSI 모델 이전에 개발되었습니다. 따라서 인터넷 프로토콜 스택의 계층은 OSI 모델의 해당 계층과 일치하지 않습니다. 인터넷 프로토콜 스택은 물리적, 데이터 링크, 네트워크, 전송 및 애플리케이션의 5개 계층으로 구성됩니다. 처음 4개 계층은 OSI 모델의 처음 4개 계층에 해당하는 물리적 표준, 네트워크 인터페이스, 인터네트워킹 및 전송 기능을 제공합니다. OSI 모델의 상위 3개 계층은 인터넷 프로토콜 스택에서 애플리케이션 계층이라는 단일 계층으로 표현됩니다. 1.3.


쌀. 1.3.

ARP 주소 확인 프로토콜 주소 찾기 프로토콜
ATM 비동기 전송 모드 비동기 전송 모드
BGP 국경 게이트웨이 프로토콜 에지 라우팅 프로토콜
DNS 도메인 명 시스템 도메인 명 시스템
이더넷 이더넷 네트워크 이더넷 네트워크
FDDI 광섬유 분산 데이터 인터페이스 광섬유 분산 데이터 인터페이스
HTTP 하이퍼 텍스트 전송 프로토콜 하이퍼 텍스트 전송 프로토콜
FTP 파일 전송 프로토콜 파일 전송 프로토콜
ICMP 인터넷 제어 메시지 프로토콜 제어 메시지 프로토콜
IGMP 인터넷 그룹 관리 프로토콜 인터넷 그룹(사용자) 관리 프로토콜
IP 인터넷 프로토콜 인터넷 프로토콜
NFS 네트워크 파일 시스템 네트워크 파일 시스템 액세스 프로토콜
OSPF 최단 경로 먼저 열기 개방형 최단 채널 선호 프로토콜
PDH 다발성 디지털 계층 구조 다발성 디지털 계층
PPP 지점간 프로토콜 지점 간 통신 프로토콜


질문이 있으신가요?

오타 신고

편집자에게 전송될 텍스트: