네트워크 - bckkingkkang/kahyun_javaStudy4 GitHub Wiki

네트워크

컴퓨터 네트워킹 : 컴퓨터를 서로 연결하여 컴퓨터 간의 통신 및 데이터 교환을 가능하게 하는 방식, 일반적으로 컴퓨터 네트워크는 두 대 이상의 컴퓨터로 구성된 집합이다.

  • 개방형 시스템 : 네트워크에 연결되어 통신이 가능한 시스템
  • 폐쇄형 시스템 : 네트워크에 연결되지 않아 통신이 불가능한 시스템

컴퓨터 네트워크의 작동 방법

  • 컴퓨터 네트워크의 기본 구성 요소는 노드링크이다.
    • 네트워크 노드는 모뎀, 라우터 등과 같은 데이터 통신을 위한 장비 또는 두 대 이상의 컴퓨터를 연결하는 것과 같은 데이터 터미널의 장비로 설명될 수 있다.
    • 컴퓨터 네트워크의 링크는 전선이나 케이블 또는 무선 네트워크의 여유 공간으로 정의할 수 있다.
  • 컴퓨터 네트워크의 작동은 컴퓨터 네트워크의 통신을 허용하는 링크를 통해 데이터를 보내고 받는 데 도움이 되는 규칙 또는 프로토콜로 간단히 정의할 수 있다. 각 장치에는 장치를 식별하는 데 도움이 되는 IP 주소가 있다.

컴퓨터 네트워크의 기본 용어

  • 네트워크 : 통신 및 데이터 교환을 가능하게 하기 위해 함께 연결되는 컴퓨터 및 장치의 모음
  • 노드 : 네트워크에 연결된 장치, 여기에는 컴퓨터, 서버, 프린터, 라우터, 스위치 및 기타 장치가 포함될 수 있다.
  • 프로토콜 : 네트워크를 통해 데이터가 전송되는 방식을 제어하는 일련의 규칙 및 표준, 프로토콜의 예로는 TCP/IP, HTTP 및 FTP가 있다.
  • 토폴로지 : 네트워크에 있는 노드의 물리적, 논리적 배열을 나타낸다. 일반적인 네트워크 토폴로지에는 버스, 스타, 링, 메시 및 트리가 포함된다.
  • 서비스 제공업체 네트워크 : 이러한 네트워크는 제공업체로부터 용량 및 기능을 임대할 수 있는 권한을 부여한다. 무선 통신, 데이터 매체 등이 포함된다.
  • IP 주소 : 네트워크의 모든 장치에 할당되는 고유한 숫자 식별자, 장치를 식별하고 장치 간 통신을 활성화하는 데 사용
  • DNS : Domain Name System, 사람이 읽을 수 있는 도메인 이름(ex)www.google.com)을 컴퓨터가 이해할 수 있는 IP 주소로 변환하는 데 사용되는 프로토콜
  • 방화벽 : 들어오고 나가는 네트워크 트래픽을 모니터링하고 제어하는 데 사용되는 보안장치로 무단 액세스 및 기타 보안 위협으로부터 네트워크를 보호하는 데에 사용된다.

기업 컴퓨터 네트워크 유형

  1. LAN (Local Area Network, 근거리 통신망)
    • 사무실이나 집과 같은 소규모 지역을 포괄하는 네트워크
    • 일반적으로 건물이나 캠퍼스 내의 컴퓨터와 기타 장치를 연결하는 데 사용
  2. WAN (Wide Area Network)
    • 도시, 국가 또는 전 세계와 같은 넓은 지리적 영역을 포괄하는 네트워크
    • LAN을 서로 연결하는 데 사용되며 일반적으로 장거리 통신에 사용
  3. 클라우드 네트워크
    • 공용 또는 사설 클라우드 서비스 제공 업체에서 호스팅 할 수 있고 수요가 있는 경우 클라우드 네트워크를 사용할 수 있으므로 WAN(광역 네트워크)으로 시각화 할 수 있다.
    • 클라우드 네트워크는 가상 라우터, 방화벽 등으로 구성된다.

컴퓨터 네트워크 아키텍처의 유형

  • 클라이언트-서버 아키텍처 : 노드가 서버 또는 클라이언트가 될 수 있는 컴퓨터 네트워크 아키텍처의 한 유형으로 여기서 서버 노드는 클라이언트 노드 동작을 관리할 수 있다.
  • Peer-to-Peer 아키텍처 : P2P 아키텍처에는 중앙 서버라는 개념이 없다. 각 장치는 클라이언트 또는 서버로 작동하며 무료이다.

네트워크 장치

  • 데이터나 미디어를 전송/수신하기 위해 여러 경로를 사용하여 연결된 호스트라고도 하는 여러 장치의 상호 연결
  • 컴퓨터 네트워크에는 서로 다른 두 장치 간의 통신을 돕는 여러 장치/매체가 포함될 수도 있다. 이를 네트워크 장치라고 한다.

image

네트워크 토폴로지

  • 네트워크에 있는 다양한 장치의 레이아웃 배열
  • 일반적인 예로는 bus, star, mesh, ring 및 daisy chain이 있다.

image

OSI 모델

  • 개방형 시스템 상호 연결 (Open System Interface)
  • 통신 프로토콜의 표준과 각 계층의 기능을 지정하는 참조 모델
  • OSI는 국제표준화기구에서 개발한 7계층 아키텍처로 OSI의 각 계층에는 서로 다른 기능이 있으며 각 계층은 서로 다른 프로토콜을 따라야 한다.
  1. 물리층
    • 전기신호, 광신호 같은 물리적인 특성을 다룸
  2. 데이터링크층
    • 오류 감지, 프레임의 흐름을 관리해서 네트워크 간에 직접적인 연결을 제공
  3. 네트워크 계층
    • 여러 네트워크 간의 데이터 전송 관리
  4. 전송 계층
    • 데이터의 전송을 보장하고 에러 복구 수행
  5. 세션 계층
    • 통신 세션의 설정 유지 종료를 관리하고 데이터 교환을 동기화
  6. 표현 계층
  7. 애플리케이션(응용) 계층

Protocol (규약)

  • 두 entity가 네트워크를 통해 통신할 수 있는 방법을 정의하는 규칙 또는 알고리즘 집합
  • OSI 모델의 각 계층에는 서로 다른 프로토콜이 정의되어 있다.
  • 이러한 프로토콜에는 TCP, IP, UDP, ARP, DHCP, FTP 등이 있다.

네트워크의 고유 식별자

  • 호스트 이름
    • 네트워크의 각 장치는 호스트 이름이라는 고유한 장치 이름과 연결된다.
    • 명령 프롬프트에 hostname을 입력하면 컴퓨터의 호스트 이름이 표시된다.
  • IP 주소 (인터넷 프로토콜 주소)
    • 논리 주소라고도 하는 IP 주소는 네트워크를 통한 시스템의 네트워크 주소이다.
    • 월드 와이드 웹(WWW)에서 각 장치를 식별하기 위해 인터넷의 각 장치에 고유 식별자로 할당한다.
    • 명령 프롬프트에 ipconfig를 입력하면 장치의 IP 주소가 제공된다.
  • MAC 주소 (미디어 액세스 제어 주소)
    • 물리적 주소라고도 하는 MAC 주소는 각 호스트의 고유 식별자이며 해당 NIC(네트워크 인터페이스 카드)와 연결되며 MAC 주소는 NIC 제조 시 할당된다.
    • 명령 프롬프트에 ipconfig/all을 입력하면 MAC 주소가 제공된다.
  • 포트(port)
    • 애플리케이션과 데이터를 주고 받을 수 있는 논리적 채널이라고 할 수 있다.
    • 모든 호스트에는 여러 개의 애플리케이션이 실행될 수 있으며 이러한 각 애플리케이션은 실행 중인 포트 번호를 사용하여 식별된다.
    • 명령 프롬프트에 netstat -a를 입력하면 사용 중인 모든 포트가 나열된다.
  • 소켓(socket)
    • IP 주소와 포트 번호의 고유한 조합

출처 : https://www.geeksforgeeks.org/


OSI 7계층

컴퓨터 간 데이터 전송 프로세스를 설명하는 참조 프레임워크로 특수한 네트워크 기능을 수행하기 위해 함께 작동하는 7개의 레이어로 나누어져 있다.
개방형 시스템 상호 연결(Open Systems Interconnection)을 의미하며 개방형은 비독점적이라는 의미이다. ISO(국제 표준화 기구)에 의해 개발되었으며 네트워크 통신을 이해하기 위한 이론적 기반을 제공한다.
일반적으로 실제 네트워킹 하드웨어나 소프트웨어에서는 전체적으로 구현되지 않는 대신 효율적인 데이터 전송 및 네트워킹 작업을 촉진하기 위해 OSI 모델에 설명된 원칙을 기반으로 특정 프로토콜과 기술이 설계되는 경우가 많다.

단계별 흐름

  • 애플리케이션(응용) 계층
    • 애플리케이션이 데이터를 생성
    • 이메일 작성
  • 표현 계층
    • 데이터가 형식화되고 암호화됨
    • 메일 애플리케이션이 데이터를 암호화하고 전송을 위해 포맷을 하는 등 데이터 전송을 준비
  • 세션 계층
    • 연결이 설정되고 관리됨
    • 인터넷에서 수신자와 발신자 사이에 연결이 설정
  • 전송 계층
    • 안정적인 전달을 위해 데이터가 세그먼트로 분할
    • 이메일 데이터가 더 작은 세그먼트로 나뉘고 정보의 신뢰성을 유지하기 위해 일련번호와 오류 검사 정보 추가
  • 네트워크 계층
    • 세그먼트는 패킷으로 패키징되어 라우팅됨
    • 전송을 위한 최적의 경로를 찾기 위해 패킷 주소 지정 수행
  • 데이터 링크 계층
    • 패킷이 프레이밍되어 다음 장치로 전송됨
    • 데이터 패킷이 프레임으로 캡슐화되고, 로컬 장치에 MAC 주소가 추가된 후 오류 감지를 통해 오류 확인
  • 물리 계층
    • 프레임을 비트로 변환하여 물리적으로 전송
    • 프레임이 물리적 네트워크 매체를 통해 전기/광 신호로 전송됨. 수신자에게 도둘달 후 클라이언트에 표시
- 네트워크 계층, 데이터 링크 계층, 물리적 계층(, 전송계층)은 하위 계층 또는 하드웨어 계층이라고 한다.
- 세션 계층, 표현 계층, 응용 계층을 상위 계층 또는 소프트웨어 계충이라고 한다.

1. 물리 계층(Physical Layer)

OSI 참조 모델의 가장 낮은 계층, 장치 간의 실제 물리적 연결을 담당한다.
비트 형태의 정보가 포함되며 한 노드에서 다음 노드로 개별 비트를 전송하는 역할을 담당하며 데이터 수신 시 수신된 신호를 가져와 0과 1로 변환한 후 데이터 링크 계층으로 보내 프레임을 다시 결합한다.

기능

  • 비트 동기화 : clock을 제공하여 비트 동기화를 제공한다. clock은 송신자와 수신자를 모두 제어하여 비트 수준에서 동기화를 제공한다.
  • 비트율 제어 : 전송 속도(초당 전송되는 비트 수)를 정의
  • 물리적 토폴로지 : bus, star 또는 mesh topology와 같이 네트워크에서 다양한 장치/노드가 배열되는 방식을 지정한다.
  • 전송 모드 : 연결된 두 장치 간에 데이터가 흐르는 방식을 정의한다.
- 물리적 계층 장치 : 허브, 리피터, 모뎀 및 케이블

2. 데이터 링크 계층(Data Link Layer)

메시지의 노드 간 전달을 담당한다. 주요 기능은 물리적 계층을 통해 한 노드에서 다른 노드로의 데이터 전송에 오류가 없는지 확인하는 것이다.
패킷이 네트워크에 도착하면 MAC 주소를 사용하여 호스트에 패킷을 전송한다.

데이터 링크 계층은 두 개의 하위 계층으로 나뉜다.

  • 논리 링크 제어
  • 미디어 액세스 제어(MAC)

네트워크 계층에서 수신한 패킷은 NIC(Network Interface Card)의 프레임 크기에 따라 다시 프레임으로 나뉘어진다. 데이터 링크 계층은 또한 헤더에 송신자와 수신자의 MAC 주소를 캡슐화한다.
수신기의 MAC 주소는 IP 주소의 소유자를 묻는 ARP(주소 확인 프로토콜) 요청을 회선에 배치하여 얻는다. 대상 호스트는 MAC 주소로 응답한다.

기능

  • Framing : 송신자가 수신자에게 의미있는 비트 세트를 전송하는 방법을 제공한다. 프레임의 시작과 끝 부분에 특수 비트 패턴을 첨부하여 수행할 수 있다.
  • 물리적 주소 지정 : 프레임을 생성한 후 데이터 링크 계층은 각 프레임의 헤더에 맞는 송신자 및/또는 수신자의 물리적 주소(MAC)를 추가한다.
  • 오류 제어 : 데이터 링크 계층은 손상되거나 손실된 프레임을 감지하고 재전송하는 오류 제어 메커니즘을 제공한다.
  • 흐름 제어 : 데이터 속도가 양쪽에서 일정하지 않은 경우 데이터가 손상될 수 있기 때문에 승인을 받기 전에 전송할 수 있는 데이터의 양을 조정한다.
  • 액세스 제어 : 단일 통신 채널이 여러 장치에 의해 공유되는 경우 데이터 링크 계층의 MAC 하위 계층은 주어진 시간에 어느 장치가 채널을 제어할 수 있는지 결정하는 데 도움이 된다.
- 데이터 링크 계층의 패킷을 프레임이라고 한다.
- 데이터 링크 계층은 NIC와 호스트 시스템의 장치 드라이버에 의해 처리된다.
- 데이터 링크 계층 장치 : Switch, Bridge

3. 네트워크 계층(Network Layer)

한 호스트에서 다른 네트워크에 있는 다른 호스트로 데이터를 전송하는 데 사용된다. 또한 패킷 라우팅, 즉 사용 가능한 경로 수 중에서 패킷을 전송할 최단 경로를 선택하는 작업도 처리한다.
발신자와 수신자의 IP 주소는 네트워크 계층에 의해 헤더에 배치된다.

기능

  • 라우팅(Routing) : 네트워크 계층 프로토콜은 소스에서 대상까지 어떤 경로가 적합한지 결정한다. 이 기능을 라우팅이라고 한다.
  • 논리적 주소 지정 : 각 장치간 네트워크를 고유하게 식별하기 위해 네트워크 계층에서는 주소 지정 체계를 정의한다. 발신자와 수신자의 IP 주소는 네트워크 계층에 의해 헤더에 배치되고 이러한 주소는 각 장치를 고유하고 보편적으로 구별한다.
- 네트워크 계층의 세그먼트(segment)를 패킷(packet)이라고 한다.
- 네트워크 계층은 라우터, 스위치 등의 네트워킹 장치로 구현된다.

4. 전송 계층(Transport Layer)

애플리케이션 계층에 서비스를 제공하고 네트워크 계층에서 서비스를 가져온다. 전송 계층의 데이터를 segment라고 하며 완전한 메시지의 종단 간 전달을 담당한다.
또한 성공적인 데이터 전송에 대한 승인을 제공하고 오류가 발견되면 데이터를 다시 전송한다.

  • 송신자 측
전송 계층은 상위 계층으로부터 형식화된 데이터를 수신하고, 분할을 수행하며, 적절한 데이터 전송을 보장하기 위해 흐름 및 오류 제어도 구현한다.
또한 헤더에 소스 및 대상 포트 번호를 추가하고 분할된 데이터를 네트워크 계층으로 전달한다.
  • 수신자 측
전송 계층은 헤더에서 포트 번호를 읽고 수신한 데이터를 해당 애플리케이션에 전달한다. 또한 분할된 데이터의 순서를 지정하고 재조립하는 작업도 수행한다.

기능

  • 분할 및 재조립 : 이 계층은 (세션)계층의 메시지를 받아들이고 메시지를 더 작은 단위로 나눈다. 생성된 각 세그먼트에는 연관된 헤더가 있다. 목적지 스테이션의 전송 계층은 메시지를 재조립한다.
  • 서비스 지점 주소 지정 : 메시지를 올바른 프로세스에 전달하기 위해 전송 계층 헤더에는 서비스 지점 주소 또는 포트 주소라는 주소 유형이 포함된다. 이 주소를 지정함으로써 전송 계층은 메시지가 올바른 프로세스로 전달되도록 한다.
  • 전송 계층에서 제공하는 서비스
    • 연결 지향 서비스(Connection-Oriented Service) : 이러한 유형의 전송에서 수신 장치는 패킷 또는 패킷 그룹이 수신된 후 소스로 다시 확인을 보낸다. 이러한 유형의 전송은 안정적이고 안전하다.
      • 다음의 순서를 포함하는 3단계 프로세스
        1. 연결 설정
        2. 데이터 전송
        3. 종료/연결 해제
    • 비연결 서비스(Connectionless Service) : 1단계 프로세스이며 데이터 전송을 포함한다. 이러한 유형의 전송에서는 수신자가 패킷 수신을 확인하지 않는다. 이 접근 방식을 사용하면 장치 간 통신이 훨씬 빨라진다. 연결 지향 서비스는 비연결 서비스보다 더 안정적이다.
- 전송 계층의 데이터를 segment라고 한다.
- 전송 계층은 운영체제에 의해 운영된다. OS의 일부이며 시스템 호출을 통해 애플리케이션 계층과 통신한다.
- OSI 모델의 핵심
- 전송 계층의 장치 또는 프로토콜 사용 : TCP, UDP NetBIOS, PPTP

5. 세션 계층(Session Layer)

연결 설정, 세션 유지 및 인증을 담당하고 보안도 보장한다.

사용자가 브라우저에서 실행되는 일부 메신저 애플리케이션에서 메시지를 보내려는 시나리오를 생각해봤을 때, 여기서 메시지는 사용자에게 데이터를 생성할 수 있는 인터페이스를 제공하는 애플리케이션 계층 역할을 한다. 이 메시지 또는 소위 데이터는 압축되고 선택적으로 암호화되며(데이터가 민감한 경우) 전송될 수 있도록 비트(0과 1)로 변환된다.

기능

  • 세션 설정, 유지 관리 및 종료 : 계층을 통해 두 프로세스가 연결을 설정, 사용 및 종료할 수 있다.
  • 동기화 : 이 계층을 사용하면 프로세스가 데이터의 동기화 지점으로 간주되는 체크포인트를 추가할 수 있다. 이러한 동기화 지점은 오류를 식별하여 데이터가 적절하게 재동기화되고 메시지 끝이 조기에 잘리지 않아 데이터 손실을 방지하는 데 도움이 된다.
  • 대화 컨트롤러 : 세션 계층을 사용하면 두 시스템이 반이중 또는 전이중으로 서로 통신을 시작할 수 있다.
- 아래의 3개 계층(세션, 표현, 응용 계층)은 모두 TCP/IP 모델에서 Application Layer라는 단일 계층으로 통합된다.
* 이 3개 계층의 구현은 네트워크 애플리케이션 자체에서 수행된다.
- 장치 또는 프로토콜 사용 : NetBIOS, PPTP

6. 표현 계층(Presentation Layer)

표현 계층은 **번역 계층(레이어)**라고도 한다. 표현 계층의 데이터는 여기에서 추출되어 네트워크를 통해 전송하는 데 필요한 형식에 따라 조작된다.

기능

  • 번역 : 예) ASCII -> EBCDIC
  • 암호화/복호화
  • 압축 : 네트워크에서 전송해야 하는 비트 수를 줄인다.
장치 또는 프로토콜 사용 : JPEG, MPEG, GIF

7. 응용 계층(Application Layer)

네트워크 애플리케이션에 의해 구현되는 응용 계층, 이러한 응용 프로그램은 네트워크를 통해 전송될 데이터를 생성한다.
이 계층은 또한 응용 프로그램 서비스가 네트워크에 액세스하고 수신된 정보를 사용자에게 표시하는 창 역할을 한다.
예) 애플리케이션 - 브라우저, Skype, 메신저 등

기능

  • NVT(Network Virtual Terminal) : 사용자가 원격 호스트에 로그온 할 수 있도록 해준다.
  • FTAM(파일 전송 액세스 및 관리) : 이 응용 프로그램을 사용하면 사용자는 원격 호스트의 파일에 액세스, 파일 검색을 하고 원격 컴퓨터에서 파일을 제어하거나 관리할 수 있다.
  • 메일 서비스 : 이메일 서비스를 제공한다.
  • 디렉터리 서비스 : 이 응용 프로그램은 분산 데이터베이스 소스와 다양한 개체 및 서비스에 대한 전역 정보에 대한 액세스를 제공한다.
- 응용 프로그램 계층은 데스크톱 계층이라고도 한다.
- 장치 또는 프로토콜 사용 : SMTP

계층 아키텍처(Layer Architecture)

계층 번호 계층 이름 Responsibility(책임) 정보 양식(데이터 단위) 장치 또는 프로토콜
7 Application Layer(응용 계층) 클라이언트를 식별하고 통신을 동기화 Message SMTP
6 Presentation Layer(표현 계층) 응용 계층의 데이터가 전송에 필요한 형식으로 추출되고 조작됨 Message JPEG, MPEG, GIF
5 Session Layer(세션 계층) 연결 설정, 유지 관리, 인증 보장 및 보안을 보장 Message(or encrypted message) Gateway
4 Transport Layer(전송 계층) 네트워크 계층에서 서비스를 가져와 응용 계층에 제공 Segment 방화벽
3 Network Layer(네트워크 계층) 한 호스트에서 다른 네트워크에 있는 다른 호스트로 데이터를 전송 Packet Router
2 Data Link Layer(데이터 링크 계층) 노드 간 메시지 전달 Frame Switch, Bridge
1 Physical Layer(물리 계층) 장치 간의 물리적 연결 설정 Bits Hub, Repeater(중계기), Modem, Cables

출처 : https://www.geeksforgeeks.org/open-systems-interconnection-model-osi/


TCP/IP

1960년대 국방부(DoD)에서 설계 및 개발되었으며 표준 프로토콜을 기반으로 한다. 이는 전송 제어 프로토콜/인터넷 프로토콜을 의미한다.
TCP/IP 모델은 OSI 모델의 간결한 버전으로 OSI 모델의 7개 계층과 달리 4개의 계층이 포함되어 있다.
층의 수는 5개 또는 4개로 지칭되며 4계층 참조에서는 물리 계층과 데이터 링크 계층을 '물리 계층' 또는 '네트워크 인터페이스 계층'으로 하나의 단일 계칭으로 지칭한다.

TCP/IP의 역할

TCP/IP의 주요 작업은 컴퓨터의 데이터를 한 장치에서 다른 장치로 전송하는 것이다. 이 프로세스의 주요 조건은 수신자가 발신자가 보낸 것과 동일한 정보를 수신할 수 있도록 데이터를 신뢰할 수 있고 정확하게 만드는 것이다. 각 메시지가 최종 목적지에 정확하게 도달하도록 하기 위해 TCP/IP 모델은 데이터를 패킷으로 나누고 다른 쪽 끝에서 결합하므로 한 쪽 끝에서 다른 쪽 끝으로 전송하는 동안 데이터의 정확성을 유지하는 데 도움이 된다.

TCP와 IP의 차이점

특징 TCP (전송 제어 프로토콜) IP(인터넷 프로토콜)
목적 애플리케이션 간에 안정적이고 순서적이며 오류가 확인된 데이터 전달을 보장한다. 네트워크 전반에 걸쳐 패킷의 주소 지정 및 라우팅을 제공한다.
유형 연결 지향 비연결
기능 장치 간 데이터 전송을 관리하여 데이터 무결성과 순서를 보장한다. IP 주소를 기반으로 소스에서 대상으로 데이터 패킷을 라우팅한다.
오류 처리 오류 검사 및 복구 메커니즘이 포함 IP 자체는 오류를 처리하지 않으며 TCP와 같은 상위 계층 프로토콜에 의존
흐름 제어 흐름 제어 메커니즘 포함 X
혼잡 제어 네트워크 정체 관리 X
데이터 세분화 데이터를 더 작은 패킷으로 나누고 대상에서 재조립한다. 데이터를 패킷으로 나누지만 재조립을 처리하지는 않는다.
헤더 크기 20-60 바이트 일반적으로 20바이트
신뢰도 안정적인 데이터 전송 제공 delivery, order, 신뢰성을 보장하지 않는다.
전송 승인 데이터 패킷 수신 확인 X

TCP/IP 모델 작동 방법

인터넷을 통해 무언가를 보내려고 할 때마다 TCP/IP 모델은 송신자 측에서 데이터를 패킷으로 나누고, 수신자 측에서는 동일한 패킷을 다시 결합하여 동일한 데이터를 구성해야 한다. 4계층 절차에 따라 순서대로 이 계층에 들어가고 다시 역순으로 수신자 측에서 동일한 방식으로 구성된다.

TCP/IP 모델의 계층

  • 애플리케이션 계층
    • 프로세스 간 수준에서 특정 데이터 통신 서비스에 대한 프로토콜 제공
  • 전송 계층(TCP/UDP)
    • 장치 간 안정적인 데이터 전송 보장
  • 네트워크/인터넷 레이어(IP)
    • 네트워크 전체의 데이터 패킷 라우팅 관리
  • 네트워크 액세스 계층
    • 네트워크를 통한 데이터의 물리적 전송 처리

image

1. 네트워크 액세스 계층 (Network Access Layer)

  • 네트워크 통신이 필요한 애플리케이션 그룹
  • 데이터를 생성하고 연결을 요청하는 역할을 담당
    • 발신자를 대신하여 작동하고 네트워크 액세스 계층은 수신자를 대신하여 작동한다.
  • 패킷의 네트워크 프로토콜 유형은 네트워크 액세스 계층에 의해 식별된다.
    • 오류 방지 및 framing도 이 계층에서 제공된다.

2. 인터넷 계층 (Network Layer)

  • OSI의 네트워크 계층 기능과 유사, 전체 네트워크를 통한 데이터의 논리적 전송을 담당하는 프로토콜을 정의한다.
  • Network Layer의 주요 프로토콜
  • IP : IP는 인터넷 프로토콜을 의미하며 패킷 헤더의 IP 주소를 확인하여 소스 호스트에서 대상 호스트로 패킷을 전달하는 역할을 한다. IP에는 IPv4와 IPv6의 두 가지 버전이 있다.
  • ICMP : 인터넷 제어 메시지 프로토콜을 나타낸다. IP 데이터그램 내에 캡슐화되어 있으며 호스트에게 네트워크 문제에 대한 정보를 제공하는 역할을 한다.
  • ARP : 주소 확인 프로토콜을 나타낸다. 알려진 IP 주소에서 호스트의 하드웨어 주소를 찾는다.
  • 인터넷 계층은 인터넷을 정의하는 프로토콜 집한인 인터넷 프로토콜(IP) 제품군의 계층이다. 인터넷 계층은 네트워크를 통해 한 장치에서 다른 장치로 데이터 패킷을 라우팅하는 역할을 담당한다. 이는 각 장치에 고유한 IP 주소를 할당함으로써 수행된다. 이 주소는 장치를 식별하고 패킷이 해당 장치에 도달해야 하는 경로를 결정하는데 사용된다.

3. 전송 계층 (Transport Layer)

  • 데이터 수신 확인을 교환하고 누락된 패킷을 재전송하여 패킷이 오류없이 순서대로 도착하는지 확인한다. End-To-End 통신을 이와 같이 지칭하며 TCP(전송 제어 프로토콜) 및 사용자 데이터그램 프로토콜은 이 수준(UDP)의 전송 계층 프로토콜이다.
  • TCP : 애플리케이션은 회선으로 물리적 연결된 것처럼 TCP를 사용하여 서로 상호작용 할 수 있다. TCP는 별도의 패킷이 아닌 문자별 전송과 유사한 방법으로 데이터를 전송한다. 연결을 설정하는 시작점, 바이트 순서의 전체 전송 및 연결을 닫는 종료점이 이 전송을 구성한다.
  • UDP : 데이터그램 전달 서비스는 다른 전송 계층 프로토콜인 UDP에 의해 제공된다. 수신 호스트와 송신 호스트 간의 연결은 UDP로 확인되지 않는다. 적은 양의 데이터를 전송하는 애플리케이션은 TCP 대신 UDP를 사용한다. UDP를 사용하면 연결 설정 및 유효성 검사 프로세스가 필요하지 않기 때문이다.

4. 애플리케이션 계층 (Application Layer)

  • 애플리케이션 계층은 OSI 모델의 전송 계층과 유사하다. End-To-End 통신과 오류 없는 데이터 전달을 담당한다. 이는 데이터 복잡성으로부터 상위 계층 애플리케이션을 보호한다.
  • 주요 프로토콜
    • HTTP/HTTPS : HTTP는 하이퍼텍스트 전송 프로토콜을 나타낸다. World Wide Web에서 웹 브라우저와 서버 간의 통신을 관리하는 데 사용된다. HTTPS는 보안을 의미하며 HTTP와 SSL(Secure Socket Layer)을 결합한 것이다. 브라우저가 양식을 작성하고, 로그인, 인증하는 경우에 효율적이다.
    • SSH : Secure Shell을 의미한다. 터미널 에뮬레이션 소프트웨어로 SSH가 선호되는 이유는 암호화된 연결을 유지하는 기능 때문이다. TCP/IP 연결을 통해 보안 세션을 설정한다.
    • NTP : 네트워크 시간 프로토콜, 컴퓨터의 시계를 하나의 표준 시간 소스와 동기화 하는 데 사용된다.
host-to-host 게층은 네트워크 호스트(컴퓨터 또는 기타 장치) 간의 통신을 제공하는 OSI 모델의 계층이다.(전송 계층이라고도 한다.)
호스트 간 계층의 몇 가지 일반적인 사용 사례
1. 안정적인 데이터 전송
    - 오류 수정 및 흐름 제어와 같은 기술을 사용하여 호스트 간에 데이터가 안정적으로 전송되도록 보장한다.
    - 전송 중에 데이터 패킷이 손상된 경우 호스트 간 계층은 모든 데이터가 올바르게 수신되도록 패킷을 재전송하도록 요청할 수 있다.
2. 분할 및 재조립
    - 큰 데이터 블록을 네트워크를 통해 전송할 수 있는 더 작은 segment로 분할한 다음 대상에서 데이터를 재조립하는 일을 담당한다.
    - 데이터를 보다 효율적으로 전송할 수 있으며 네트워크 과부하를 방지하는 데 도움이 된다.
3. 다중화 및 역다중화
    - 여러 소스의 ㅓ데이터를 단일 네트워크 연결로 다중화한 다음 대상에서 데이터를 역다중화하는 일을 담당한다.
    - 여러 장치가 동일한 네트워크 연결을 공유할 수 있으며 네트워크 활용도를 향상시킨다.
4. 종단 간 통신(End-To-End Communication)
    - 중간 장치가 개입할 필요 없이 호스트가 종단 간 통신할 수 있도록 하는 연결 지향 서비스

기타 일반적인 인터넷 프로토콜

TCP/IP 모델은 많은 인터넷 프로토콜을 포괄한다. 이러한 인터넷 프로토콜의 주요 규칙은 데이터의 유효성을 검사하고 인터넷을 통해 전송하는 방법이다.

  • HTTP(하이퍼텍스트 전송 프로토콜) : HTTP는 웹 브라우저와 웹 사이트를 관리한다.
  • FTP(파일 전송 프로토콜) : 인터넷을 통해 파일을 전송하는 방법을 관리한다.
  • SMTP(Simple Mail Transfer Protocol) : 데이터를 보내고 받는 데 사용된다.

TCP/IP 모델의 장점과 단점

장점 단점
상호 운용성, 서로 다른 유형의 컴퓨터와 네트워크가 서로 통신할 수 있도록 하여 다양한 시스템 간의 호환성과 협력을 촉진한다. 복잡한 구성, TCP/IP 네트워크 설정 및 관리는 특히 많은 장치가 있는 대규모 네트워크의 경우 복잡할 수 있다. 이러한 복잡성으로 인해 구성 오류가 발생할 수 있다.
확정성, 확장성이 뛰어나 LAN부터 WAN에 이르기까지 소규모 및 대규모 네트워크 모두에 적합하다. 보안 문제, TCP/IP는 보안을 염두에 두고 설계되지 않았기 때문에 현재 사용할 수 있는 보안 프로토콜(ex.SSL/TLS)은 기본 TCP/IP 모델 위에 추가되어 취약성을 초래할 수 있다.
표준화, 개방형 표준 및 프로토콜을 기반으로 하여 다양한 장치와 소프트웨어가 호환성 문제 없이 함께 작동할 수 있도록 보장한다. 소규모 네트워크의 비효율성, 매우 작은 네트워크의 경우 TCP/IP 모델의 오버헤드와 복잡성이 더 단순한 네트워킹 프로토콜에 비해 불필요하고 비효율적일 수 있다.
유연성, 다양한 라우팅 프로토콜, 데이터 유형 및 통신 방법을 지원하므로 다양한 네트워킹 요구 사항에 적응할 수 있다. 주소 공간으로 인한 제한, IPv6가 이 문제를 해결하지만 이전 IPv4 시스템에는 주소 공간이 제한되어 있어 대규모 네트워크에서 주소 고갈 문제가 발생할 수 있다.
신뢰성, 장거리 및 다양한 네트워크 조건에서도 안정적인 데이터 전송을 보장하는 오류 검사 및 재전송 기능이 포함되어 있다. 데이터 오버헤드, 전송 프로토콜인 TCP에는 안정적인 전송을 보장하기 위해 상당한 양의 오버헤드가 포함된다. 이는 특히 작은 데이터 패킷이나 속도가 중요한 네트워크의 경우 효율성을 감소시킬 수 있다.
TCP/IP 모델은 현대 인터넷 통신의 중추로서 다양한 장치와 네트워크를 연결하고 정보를 안정적으로 공유할 수 있게 해준다. 
일부 복잡성과 보안 문제에도 불구하고 유연성, 확장성 및 광범위한 채택으로 인해 소규모 및 대규모 네트워크 모두에 필수적이다. 
전반적으로 TCP/IP 모델은 효율적이고 효과적인 네트워크 통신을 보장하는 데 중요하다.

TCP/IP와 OSI 모델의 차이점

TCP/IP OSI
전송 제어 프로토콜 개방형 시스템 상호 연결
애플리케이션 계층 자체에서 세션 계층과 표현 계층을 모두 사용한다. 다양한 세션 및 표현 계층을 사용한다.
무연결 수평적 접근 방식 수직적 접근 방식
전송 계층은 패킷 전달을 보장하지 않는다. 전송 계층은 패킷 전달을 보장한다.
프로토콜을 쉽게 교체할 수 없다. 프로토콜이 더 잘 다루어지며 기술 변화로 쉽게 교체할 수 있다.
네트워크 계층은 비연결(IP) 서비스만 제공한다. 전송 계층(TCP)은 연결을 제공한다. 비연결 및 연결 지향 서비스는 OSI 모델의 네트워크 계층에서 제공된다.

DNS

출처 : https://www.cloudflare.com/en-gb/learning/dns/what-is-dns/


HTTP, HTTPS


SSL


HandShake


WebSocket