CS 지식 정리 - TCP / IP 개념 정리

유승선 ·2024년 2월 21일
0

인터뷰, CS 지식

목록 보기
4/4

전 포스팅에서 OSI 7 계층에 대해 적어봤다. OSI 7계층에서는 각 계층마다의 역할이 나뉘어져 있는데 현재 기준 OSI 7 게층에서 TCP / IP 4계층으로 점유율이 많이 높아졌다.

TCP / IP 에 대한 좀 더 깊이 있는 이해도를 위해 TCP / IP 많은 내용을 참고 하였고, TCP 가 무엇인지 또 4계층이 어떻게 이루어져 있는지 자세하게 적어볼 예정이다.


IP (인터넷 프로토콜)

김영한님의 강의를 뒤돌아 보며.. 우리는 복잡한 네트워크로 이루어진 인터넷이라는 세상 속에 살고 있다.
그리고 이 인터넷 세상 속에서 다른 누군가의 컴퓨터에 데이터를 전송하려면 IP 주소가 필요하다.

하지만! IP 주소 하나만으로는 우리가 원하는 인터넷 세상속의 데이터 송수신이 불가능 하다.
왜냐면, IP 프로토콜 하나만으로는 송신하는 데이터의 순서 보장도 할 수 없고, 중간에 유실된다 하더라도 방안이 없기 때문이다.
이를 보안 하고자, TCP 프로토콜이 사용된다.

TCP (전송 제어 프로토콜)

"데이터" 조각은 패킷이라는 단어로 대체한다.

TCP는 패킷 데이터의 전달을 보증하고 보낸 순서대로 받게 해주는 특징을 가지고 있다.
IP 프로토콜 하나만으로는 할 수 없었던 점이 보안되었는데 기본적으로 오류제어, 흐름제어, 혼잡제어의 특징이 있다.

TCP 프로토콜에 대한 깊이 있는 얘기는 또 다른 포스트에서 작성할 예정이지만,
3 way handshake 방법 등으로 전송을 보장해주고, 데이터의 오류가 있는 경우에도 재전송을 통해서 보안해준다.


TCP / IP 4 계층이란?

기존에 OSI 7계층에서 TCP / IP 4계층에서는 일부 계층이 합쳐졌고 명칭 또한 바뀌었다. 각 계층에 대한 설명은 아래와 같다.

Network Layer (OSI 7 계층에서 물리 + 데이터링크 계층)

특징:
1. 신뢰성 있는 데이터 전송을 담당하는 계층이다.
2. OSI 7 계층의 물리 계층과 데이링크 계층의 역할을 하는것이 바로 이 계층이다.
3. 알맞은 하드웨어로 데이터가 전송되도록 MAC 주소를 핸들링 하는것 뿐 아니라, 데이터 패킷을 전기 신호로 변환하여 선로를 통하여 전달 할 수 있게 준비 해준다.

Internet Layer (OSI 7 계층에서 네트워크 계청)

특징:
1. IP를 담당하는 계층
2. IP 를 사용하여 원천지 (origin) 과 목적지 (destination) 에 관한 정보를 첨부한다.
3. IP는 패킷 전달 여부를 보증하지 않고, 경로를 설정하여 빠르게 보내는게 우선이다.

Transport Layer (OSI 7 계층에서 전송 계층)

특징:
1. TCP / UDP를 담당하는 계층
2. TCP는 IP 위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 박데 해준다.
3. 즉, 순서가 맞지 않거나 중간에 빠진 부분을 정검하여 다시 요청하는 일을 담당한다.

Application Laye (OSI 7 계층에서 5,6,7 계층)

특징:
1. HTTP / FTP 를 담당하는 계층
2. OSI 7계층의 5게층부터 7계층까지의 기능을 담당하고 있다.
3. 서버나 클라이언트 응용 프로그램이 이 계층에서 동작한다.


TCP / IP 4계층 동작 순서

기본적으로 TCP / IP 4계층은 송신부는 위에서부터, 수신부는 아래서부터 패킷을 하나씩 감싸거나 여는 방식으로 동작한다고 생각하면 된다.

  1. 송신부 클라이언트의 애플리케이션 계층에서 어느 웹 페이지를 보고 싶다는 HTTP 요청을 보낸다.
  2. 그 다음에 트랜스포트 계층에서는 애플리케이션 계층에서 받은 데이터 (HTTP 메세지)를 통산하기 쉽게 조각내고 안내번호와 포트번호 (TCP 패킷) 을 붙혀서 네트워크 계층에 전달한다.
  3. 네트워크 계층에서는 데이터의 IP 패킷을추가해서 링크 계층을 전달한다.
  4. 링크 게층에서는 수신지 MAC 주소와 이더넷 프레임을 추가한다.
  5. 이로서 모든 패킷의 준비가 끝났다.
  6. 수신측 서버는 링크 계층에서 데이터를 받아들여 애플리케이션 계층까지 도달한다.
  7. 수신부 애플리케이션 계층에 도착하게 되면 클라이언트가 보낸 HTTP 리퀘스트를수신할 수 있다.

네이버 접속 시나리오

  1. 웹 브라우저에 www.naver.com 을 입력
  2. DNS 에서는 해당 도메인에 대한 IP 주소를 할당
  3. 응용계층 (L4) 에서 메세지 데이터 패킹 (HTTP 메세지)
  4. 전송계층 (L3) 에서 PORT 정보 (출발지, 목적지), 전송제어 정보, 순서 정보, 검증정보 패킹 (TCP)
  5. 인터넷 계층 (L2) 에서 IP 정보 (출발지, 목적지) 패킹
  6. 네트워크 액세스 (L1) 계층에서 MAC 주소 패킹
  7. 게이트웨으를 통해 인터넷망 접속
  8. 라우터를 통해 목적지 (네이버 서버)를 찾아 연결.
  9. 네이버 서버에 도착하면 패킷을 하나씩 열어보며 목적 포트에 메세지 데이터 전달하여 다시 응답.
profile
성장하는 사람

0개의 댓글