[네트워크] TCP/IP, 네트워크 계층 모델

play·2022년 7월 13일

Network

목록 보기
1/2

Chapter1. TCP/IP

1-1. 네트워크의 시작
1-2. IP/IP Packet
1-3. TCP/UDP

Chapter2. 네트워크 계층 모델

2-1. OSI 7계층 모델
2-2. TCP/IP 4계층 모델

Chapter1. TCP/IP

📌 네트워크의 시작

IP 기반의 네트워크는 미 국방성에서 1969년 진행했던 아르파넷(ARPANET) 프로젝트에서 시작. 이때 기존에 사용되었던 회선교환 방식이 아닌 패킷교환 방식으로 네트워크를 구축 -> 이를 토대로 현재의 인터넷 통신 방식의 기반이 세워짐

  • 회선교환 방식 : 발신자와 수신자 사이에 데이터를 전송할 전용선을 미리 할당하고 둘을 연결
    • 단점 : 즉시성이 떨어짐
  • 패킷교환 방식 : 패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식.

📌 IP/IP Packet

IP : IP 주소(IP address)에 패킷이라는 통신 단위로 데이터를 전달
Packet : pack + bucket 합쳐진 단어. 소포로 비유 가능, IP 패킷은 이를 데이터 통신에 적용한 것.
IP Packet : 우체국 송장처럼 전송 데이터를 무사히 전송하기 위해 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다.

IP 프로토콜 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도 패킷 전송
  • 비신뢰성
    • 중간에 패킷이 사라질 수 있음
    • 패킷의 순서를 보장할 수 없음

📌 TCP/UDP

네트워크 프로토콜 계층은 2개로 나뉨

  • OSI 7계층
  • TCP/IP 4 계층 : OSI 7 계층보다 먼저 개발됨. 실제 네트워크 표준은 업계표준을 따르는 TCP/IP 4 계층에 가깝다.

TCP/IP 패킷정보

  • TCP 세그먼트 : IP 패킷의 출발지 IP, 목적지 IP 정보를 보완할 수 있는 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등을 포함

TCP 특징

전송 제어 프로토콜
TCP는 장치들 사이에 논리적인 접속을 성립을 중시하는 연결지향형 프로토콜

  • 연결 지향 - TCP 3 way handshake(가상 연결)
    1. 클라이언트 → 서버 : 접속을 요청하는 SYN 패킷 전송
    2. 서버는 SYN 요청 받고 → 요청을 수락한다는 ACK와 SYN가 설정된 패킷을 발송 → 클라이언트가 ACK로 응답하길 기다림
    3. 클라이언트가 서버에게 ACK 보내면 연결 성립. 데이터 전송 가능
    • SYN(Synchronize), ACK(Acknowledgment)
  • 데이터 전달 보증
    • TCP는 데이터 전송이 성공적으로 이루어진다면 서버가 이에 대한 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완
  • 순서 보장
    • 만약 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 서버는 다시 패킷 전송을 요청할 수 있다
  • 신뢰할 수 있는 프로토콜

UDP 특징

사용자 데이터그램 프로토콜
IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜

  • 신뢰성은 낮지만 3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도를 보장
  • 기능이 거의 없음
  • 데이터 전달 보증 X, 순서 보장 X
  • 신뢰성보단 연속성이 중요한 서비스(실시간 스트리밍 등)에 자주 사용됨

TCP vs UDP

Chapter2. 네트워크 계층 모델

📌 OSI 7계층 모델

ISO(International Organization for Standardization) 국제표준화기구에서 1984년에 제정한 표준 규격으로 네트워크를 이루고 있는 구성요소들을 7단계로 나누고, 각 계층의 표준을 정함.

목적

  1. 표준화를 통하여 포트, 프로토콜의 호환 문제를 해결하고, 네트워크 시스템에서 일어나는 일을 해당 계층 모델을 이용해 쉽게 설명할 수 있다.
  2. 네트워크 관리자가 문제 발생 원인 범위를 좁혀 쉽게 파악할 수 있다. 즉 사이트에 접속되지 않는다고 해서 무작정 컴퓨터를 껐다 키는 일을 피할 수 있다.

✨ 1계층 - 물리계층(Physical Layer)

  • 시스템 간의 물리적인 연결과 전기 신호를 변환 및 제어하는 계층
  • 목적 : 전기 신호를 전달하는데 초점을 두고, 들어온 전기 신호를 그대로 잘 전달
    e.g. 디지털 또는 아날로그로 신호 변경
  • 이 계층에서 사용되는 통신 단위 : 비트(Bit)이며 이것은 1과 0으로 나타내어지는, 즉 전기적으로 On, Off 상태
  • 장비 : 통신 케이블, 리피터, 허브 등
  • 네트워크 기기 간의 데이터 전송 및 물리주소(e.g. MAC 주소)를 결정하는 계층
  • 물리 계층에서 들어온 전기 신호를 모아 알아볼 수 있는 데이터 형태로 처리
  • 주소 정보를 정의하고 출발지와 도착지 주소를 확인한 후, 데이터 처리를 수행
    e.g. 브리지 및 스위치, MAC 주소
  • 이 계층에서 전송되는 단위 : 프레임(Frame)
  • 장비 : 브리지, 스위치, 이더넷 등(여기서 MAC주소를 사용)

✨ 3계층 - 네트워크 계층(Network Layer)

  • OSI 7 계층에서 가장 복잡한 계층 중 하나
  • 데이터를 목적지까지 가장 안전하고 빠르게 전달
  • 라우터(Router)를 통해 경로를 선택하고 주소를 정하고(IP) 경로(Route)에 따라 패킷을 전달 -> IP 헤더 붙음
    이 계층에서 전송되는 단위 : 패킷(Packet)
    장비 : 라우터

💡 1~3계층 : 신호와 데이터를 올바른 위치로 보내고 신호를 만드는데 집중


✨ 4계층 - 전송 계층(Transport Layer)

  • 컴퓨터간 신뢰성 있는 데이터를 서로 주고받을 수 있도록 하는 서비스를 제공하는 계층
  • 해당 데이터들이 실제로 정상적으로 보내지는지 확인하는 역할
  • 네트워크 계층에서 패킷이 유실되거나 순서가 바뀌는 경우, 이를 바로 잡아주는 역할 담당
  • port 번호, 전송방식(TCP/UDP) 결정 > TCP 헤더 붙음

✨ 5계층 - 세션 계층(Session Layer)

  • 세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 수행하는 계층
  • 양 끝 단의 프로세스가 연결을 성립하도록 도와주고, 작업을 마친 후에는 연결을 끊는 역할
  • TCP/IP 세션 체결, 포트번호를 기반으로 통신 세션 구성
  • API, Socket

✨ 6계층 - 표현 계층(Presentation Layer)

  • 응용 계층으로 전달하거나 전달받는 데이터를 인코딩 또는 디코딩하는 계층
  • 전송하는 데이터의 표현방식을 결정(ex. 문자코드, 압축, 암호화 등의 데이터 변환)
  • JPEF, MPEG, GIF, ASCII 등

✨ 7계층 - 응용 계층(Application Layer)

  • 사용자와의 인터페이스를 제공하는 계층
  • 최종 목적지로, 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행(ex. explore, chrome 등)
  • 클라이언트와 서버 모두 응용 계층에서 동작

정리

  • 각 계층은 독립적이므로 데이터가 전달되는 동안에 다른 계층의 영향을 받지 않는다
  • 데이터를 전송하는 쪽은 상위 계층에서 하위 계층으로 데이터를 전달
    • 데이터를 상대방에게 보낼 때 각 계층에서 필요한 정보를 데이터에 추가하는데 이 정보를 헤더(데이터링크 계층에서는 트레일러)라고 함.
    • 캡슐화 : 이 헤더를 붙여나가는 것
    • 역캡슐화 : 상위 계층으로 데이터를 전달하며 각 계층에서 헤더를 제거해 나가는 것
      • 역캡슐화를 거쳐 마지막 응용 계층에 도달하면 드디어 전달하고자 했던 원본 데이터만 남게 된다.
  • 마지막 물리 계층에 도달하며 송신 측의 데이터링크 계층에서 만들어진 데이터가 전기 신호로 변환되어 수신 측에 전송

📌 TCP/IP 4계층 모델

OSI 모델을 기반으로 실무적으로 이용할 수 있도록 현실에 맞춰 단순화된 모델.
쉽게 말해 OSI 7계층 이론을 실제 사용하는, 즉 실용성에 기반을 둔 현대의 인터넷 표준

❄️ 1계층: 네트워크 인터페이스 계층

  • OSI 7계층의 물리계층(1)과 데이터 링크 계층(2)에 해당
  • TCP/IP 패킷을 네트워크 매체로 전달하는 것과 네트워크 매체에서 TCP/IP 패킷을 받아들이는 과정을 담당
  • 에러 검출 기능(Detecting errors), 패킷의 프레임화(Fraimg packets)
  • 네트워크 접근 방법, 프레임 포맷, 매체에 대해 독립적으로 동작하도록 설계.
  • 물리적 주소로 MAC 사용
  • LAN, 패킷망, 등에 사용됨

❄️ 2계층: 인터넷 계층

  • OSI 7계층의 네트워크 계층(3)에 해당
  • 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅을 담당
  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됨.
  • 프로토콜 종류 – IP, ARP, RARP

❄️ 3계층: 전송 계층

  • OSI 7계층의 전송 계층(4)에 해당
  • 통신 노드간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당
  • IP와 Port를 이용하여 프로세스와 통신
  • 프로토콜 종류 – TCP, UDP

❄️ 4계층: 어플리케이션 계층

  • OSI 7계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당
  • 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳
  • TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
  • 프로토콜 종류 – FTP, HTTP, SSH
profile
블로그 이사했습니다 🧳

0개의 댓글