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

전형호·2023년 3월 6일
0

✏️ 학습 목표

  • 패킷교환 방식의 이점에 대해 이해한다.
  • IP의 비순서성, 비신뢰성에 대해 이해한다.
  • TCP의 3 way handshake 및 그와 비교되는 UDP에 대해 이해한다.
  • 네트워크 통신을 계층별로 나눈 이유에 대해 이해한다.
  • 통신 과정에서 일어나는 데이터 캡슐화에 대해 이해한다.

🔊 IP/IP Packet

✅ IP

  • 정한 IP 주소에 패킷이라는 통신 단위로 데이터 전달을 한다.
  • 복잡한 인터넷 망 사이에서도 정확한 목적지로 패킷을 전송할 수 있다.

✅ IP Packet

  • 전송 데이터를 무사히 전송하기 위해,
  • 출발지 IP, 목적지 IP와 같은 정보가 포함되어 있다.
  • 패킷 단위로 전송을 하면 노드들은 목적지 IP에 도달하기 위해 서로 데이터를 전달한다.

✅ IP의 한계

  • 비연결성
    • 패킷을 받을 대상이 없거나 서비스 불능 상태여도,
    • 클라이언트는 서버의 상태를 파악할 방법이 없기 때문에 패킷을 그대로 전송하게 된다.
  • 비신뢰성
    • 중간에 있는 서버가 데이터를 전달하던 중 장애가 생겨,
    • 패킷이 중간에 소실되더라도 클라이언트는 이를 파악할 방법이 없다.


🔊 TCP/UDP

✅ TCP

  • 같은 계층에 속한 UDP에 비해 상대적으로 신뢰할 수 있는 프로토콜이다.
  • IP 패킷의 출발지 IP와 목적지 IP 정보를 보완할 수 있는,
  • 출발지 PORT, 목적지 PORT, 전송 제어, 순서, 검증 정보 등을 포함한다.

✅ TCP 특징

* 연결지향 - TCP 3 way handshake(가상 연결)

  • 클라이언트는 서버에 접속을 요청하는 SYN 패킷을 보내고,
  • 서버는 SYN요청을 받고 클라이언트에게 요청을 수락한다는,
  • ACK 와 SYN가 설정된 패킷을 발송하고 클라이언트가 다시 ACK으로 응답 하기를 기다린다.
  • 클라이언트가 서버에게 ACK을 보내면 이 이후로부터 연결이 성립되며 데이 터를 전송할 수 있다.
  • 만약 서버가 꺼져있다면 클라이언트가 SYN을 보내고,
  • 서버에서 응답이 없기 때문에 데이터를 보내지 않는다.

* 데이터 전달 보증

  • 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에,
  • IP 패킷의 한계인 비연결성을 보완할 수 있다.

* 순서 보장

  • 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로,
  • 다시 패킷 전송을 요청할 수 있다.
  • 이를 통해 IP 패킷의 한계인 비신뢰성을 보완할 수 있다.

✅ UDP

  • IP에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다.

✅ UDP의 특징

  • 기능이 거의 없음
  • 비 연결지향 - 3 way handshake
    • TCP와 비교해 빠른속도를 보장한다.
  • 데이터 전달 보증 X
  • 순서 보장 X
  • 신뢰성보다는 연속성이 중요한 서비스에 사용된다.



🔊 네트워크 계층 모델

  • 크게 OSI 7계층 모델과 TCP/IP 4계층으로 나뉜다.

✅ OSI 7계층 모델

  • 목적은 표준화를 통하여 포트, 프로토콜의 호환 문제를 해결하고,
  • 네트워크 시스템에서 일어나는 일을 해당 계층 모델을 이용해 쉽게 설명할 수 있다.
  • 네트워크 관리자가 문제가 발생 했을 때,
  • 이것이 물리적인 문제인지, 응용 프로그램과 관련이 있는지,
  • 원인이 어디에 있는지 범위를 좁혀 문제를 쉽게 파악할 수 있다.
    업로드중..

* 1계층 - 물리 계층

  • OSI 모델의 맨 밑에 있는 계층으로서, 시스템 간의 물리적인 연결과 전 기 신호를,변환 및 제어하는 계층이다.
  • 주로 물리적 연결과 관련된 정보를 정의하며,
  • 주로 전기 신호를 전달하는데 초점을 두고, 들어온 전기 신호를 그대로 잘 전달하는 것이 목적이다.
    • e.g. 디지털 또는 아날로그로 신호 변경

* 2계층 - 데이터링크 계층

  • 네트워크 기기 간의 데이터 전송 및 물리주소(e.g. MAC 주소)를 결정하 는 계층이다.
  • 물리 계층에서 들어온 전기 신호를 모아 알아 볼 수 있는 데이터 형태로 처리 한다.
  • 주소 정보를 정의하고 출발지와 도착지 주소를 확인한 후, 데이터 처리를 수행한다.
    • e.g. 브리지 및 스위치, MAC 주소

* 3계층 - 네트워크 계층

  • OSI 7 계층에서 가장 복잡한 계층 중 하나로서 실제 네트워크 간에 데이터 라우팅을 담당한다.
    • e.g. IP 패킷 전송

* 4계층 - 전송 계층

  • 컴퓨터간 신뢰성 있는 데이터를 서로 주고받을 수 있도록 하는 서비스를 제공하는 계층이다.
  • 전송 계층에서는 해당 데이터들이 실제로 정상적으로 보내지는지 확인하는 역할을 한다.
  • 네트워크 계층에서 사용되는 패킷은 유실되거나 순서가 바뀌는 경우가 있는 데, 이를 바로 잡아주는 역할도 담당한다.
    • e.g. TCP/UDP 연결

* 5계층 - 세션 계층

  • 세션 연결의 설정과 해제, 세션 메시지 전송 등의 기능을 수행하는 계층이다.
  • 양 끝 단의 프로세스가 연결을 성립하도록 도와주고,
  • 작업을 마친 후에는 연결을 끊는 역할을 한다.

* 6계층 - 표현 계층

  • 응용 계층으로 전달하거나 전달받는 데이터를 인코딩,디코딩하는 계층이다. * 일종의 번역기 같은 역할을 수행하는 계층이라고 볼 수 있다.
    • e.g. 문자 코드, 압축, 암호화 등의 데이터 변환

* 7계층 - 응용 계층

  • 최종적으로 사용자와의 인터페이스를 제공하는 계층이다.
  • 사용자가 실행하는 응용 프로그램들이 해당 계층에 속한다.

✅ 데이터 캡슐화

업로드중..

  • 데이터를 상대방에게 보낼 때 각 계층에서 필요한 정보를 데이터에 추가하는데,
  • 이 정보를 헤더라고 한다.
  • 이렇게 헤더를 붙여나가는 것을 캡슐화라고 한다.
  • 데이터를 받는 쪽은 상위 계층으로 데이터를 전달하는데,
  • 각 계층에서 헤더를 제거해 나가는 것을 역캡슐화라고 한다.
  • 역캡슐화를 거쳐 응용 계층에 도달하면 전달하고자 했던 원본 데이터만 남게 된다.

✅ TCP/IP 4계층 모델

  • OSI 모델을 기반으로 실무적으로 이용할 수 있도록 현실에 맞춰 단순화된 모델이다.업로드중..

* 4계층: 어플리케이션 계층

  • OSI 계층의 세션 계층, 표현 계층, 응용 계층에 해당한다.
  • TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
    • e.g. FTP, HTTP, SSH

* 3계층: 전송 계층

  • OSI 계층의 전송 계층에 해당한다.
  • 통신 노드간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
    • e.g. TCP/UDP

* 2계층: 인터넷 계층

  • OSI 계층의 네트워크 계층에 해당한다.
  • 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅을 담당한다.
    • e.g. IP, ARP, RARP

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

  • OSI 계층의 물리 계층과 데이터 링크 계층에 해당한다.
  • 물리적인 주소로 MAC을 사용한다.
    • e.g. LAN, 패킷망 등에 사용됨
profile
코드스테이츠 블로그

0개의 댓글