TCP/IP 4계층

솜솜이·2023년 3월 30일
0

네트워크

목록 보기
7/21

IP (인터넷 프로토콜)

  • 지정한 IP 주소에 데이터의 조각들을 패킷(Packet)이라는 통신 단위로 최대한 빨리 목적지로 보내는 역할.
  • 조각들의 순서가 뒤바뀌거나 일부가 누락되더라도 크게 상관하지 않고 보내는 데 집중을 한다.
  • 그래서 IP 프로토콜은 패킷의 순서 보장도 할 수 없고 패킷이 중간에 유실되도 이에대한 방안이 없다

TCP (전송 제어 프로토콜)

  • 패킷 데이터의 전달을 보증하고 보낸 순서대로 받게 해준다
  • 도착한 조각을 점검하여 줄을 세우고 망가졌거나 빠진 조각을 다시 요청하는 식으로 순서를 보증.
  • TCP는 데이터를 상대방에게 확실하게 보내기 위해서 3 way 핸드쉐이킹이라는 방법을 사용하고 있다.
    이 방법은 패킷을 보내고 잘 보내졌는지 여부를 상대에게 확인하러 간다.
  • 여기에서 고유의 'SYN'와 'ACK'라는 TCP 플래그를 사용한다. (일종의 확인 마크 정도로 이해하면 된다)
  • 한마디로 TCP는 IP의 문제를 보완해주는 녀석이라고 보면 된다

TCP 3 way handshake

본격적으로 상대 클라이언트와 연결되기 전에 가상 연결을 해서 패킷으로 보내서 확인하는 동작이다.

SYN : 접속 요청
ACK : 요청 수락
이름 의미
SYN 연결을 생성할 때 클라이언트가 서버에 시퀀스 번호를 보내는 패킷
SYN-ACK 시퀀스 번호를 받은 서버가 ACK 값을 생성하여 클라이언트에게 응답하는 패킷
ACK ACK 값을 사용하여 응답하는 패킷

1. 클라이언트 → 서버 : SYN패킷 전송
2. 서버 → 클라이언트 : SYN + ACK패킷 전송
3. 클라이언트 → 서버: ACK + 데이터 패킷 전송
4. 데이터 패킷 전송

TCP 순서 보장 방법

  1. 클라이언트에서 패킷1, 패킷2, 패킷3 순서로 전송
  2. 서버에서 패킷1, 패킷3, 패킷2 순서로 받음
  3. 서버에서 패킷2번부터 다시 보내라고 클라이언트에게 요청(TCP 기본 동작)

이렇게 패킷을 순서대로 제어를 할 수 있는 이유는 TCP 데이터 안에 전송 제어, 순서, 정보들이 있기 때문이다.
그래서 TCP는 신뢰할 수 있는 프로토콜이라고 얘기한다.

TCP/IP

  • TCP/IP는 IP(인터넷 프로토콜)와 TCP(전송 조절 프로토콜)의 묶음을 의미한다.
  • 즉, 두 가지 프로토콜 방식을 조합하여 인터넷 통신하는 것을 TCP/IP 라고 부르는 것입니다.
    송신자가 수신자에게 IP 를 사용하여 최대한 빠르게 패킷을 전송하면 TCP 를 활용해 패킷을 정상적으로 수신 받습니다.

TCP/IP 4계층

TCP/IP 4계층는 TCP/IP(인터넷 통신을 위한 표준 프로토콜 스위트)에서 사용하는 모델이다.
TCP/IP 4계층의 구조는 네트워크 연결 계층(Network Access Layer), 인터넷 계층(Internet Layer), 전송 계층(Transport Layer), 애플리케이션 계층(Application Layer)으로 구성되어 있다. 이런 식의 구분을 통해 각 기능들은 서로 간의 간섭을 최소화 할 수 있어, 유지와 보수에 있어 편리하다는 이점이 있다

TCP/IP 4계층의 캡슐화, 역캡슐화

  • TCP/IP 4계층은, 위 그림과 같이 애플리케이션 계층, 전송 계층, 인터넷 계층, 네트워크 접근 계층으로 이루어져있다.

  • 데이터 전송 시, 데이터는 상위 계층에서 하위 계층으로 이동하고, 계층 이동 마다 필요한 정보(헤더)가 추가돤다.
    • 이를, 캡슐화라고 한다.
  • 데이터 수신 시, 데이터는 하위 계층에서 상위 계층으로 이동하고, 계층 이동 마다 추가된 헤더를 읽고 알맞은 행동을 취한 후, 헤더를 제거한다.

    • 이를, 역캡슐화라고 한다.
  • 계층 별로 추가되는 헤더는 아래와 같다.

TCP/IP 4계층

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

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

    노드 간의 신뢰성 있는 데이터 전송을 담당하며, 논리적인 주소가 아닌 물리적인 주소인 MAC을 참조해 장비간 전송을 하고, 기본적인 에러 검출과 패킷의 Frame화를 담당한다.

2계층 - 인터넷 계층(Internet Layer)

  • OSI 7계층의 네트워크 계층(3)에 해당
  • IP를 담당하는 계층
  • 어드레싱(addressing), 패키징(packaging), 라우팅(routing) 기능을 제공
  • 네트워크상 최종 목적지까지 정확하게 연결되도록 연결성을 제공하게 됨.
  • 패킷은 Segment를 목적지에 전송하기 위해 시작&목적지의 논리주소를 붙인 단위이다.
  • 프로토콜 종류 – IP, ARP, RARP

    단말을 구분하기 위해 논리적인 주소로 IP 주소를 할당하게 되고 이 IP 주소로 네트워크 상의 컴퓨터를 식별하여 주소를 지정할 수 있도록 해준다.
    네트워크끼리 연결하고 데이터를 전송하는 기기인 '라우터'라고 하며, 라우터에 의한 네트워크 간의 전송을 '라우팅'이라고 한다. 이 라우터가 내부의 라우팅 테이블(Routing Table)을 통해 경로 정보를 등록하여 데이터 전송을 위한 최적의 경로를 찾는데, 이렇게 출발지와 목적지 간의 데이터 전송 과정을 가리켜 End-to-End 통신이라고 부른다.

3계층 - 전송 계층(Transport Layer)

  • OSI 7계층의 전송 계층(4)에 해당
  • IP와 Port를 이용하여 프로세스와 통신
  • 애플리케이션 계층의 세션과 데이터그램(datagram) 통신서비스 제공
  • 통신 노드 간의 연결을 제어하고, 신뢰성 있는 데이터 전송을 담당한다.
  • End-to-End의 신뢰성을 확보
  • 프로토콜 종류 – TCP, UDP

    통신 노드 간의 데이터 전송 및 흐름에 있어 신뢰성을 보장한다. 이는 다시 말해 데이터를 적절한 어플리케이션에 제대로 전달되도록 배분함을 의미하며 다른 말로 End-to-End의 신뢰성을 확보 한다고도 표현할 수 있다.

4계층 - 응용 계층(Application Layer)

  • OSI 7계층의 세션 계층(5), 표현 계층(6), 응용 계층(7)에 해당한다.
  • 프로그램(브라우저)가 직접 인터액트하는 레이어. 데이터를 처음으로 받는곳
  • 다른 계층의 서비스에 접근할 수 있게 하는 애플리케이션을 제공
  • 애플리케이션들이 데이터를 교환하기 위해 사용하는 프로토콜을 정의
  • HTTP, SMTP등의 프로토콜을 가진다.
  • TCP/UDP 기반의 응용 프로그램을 구현할 때 사용한다.
  • 프로토콜 종류 – FTP, HTTP, SSH

TCP/IP 4계층 동작 순서


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

현재 OSI 7계층보다는 TCP/IP 4계층이 더 많이 활용되고 있다.

OSI 7계층과 TCP/IP 4계층 비교

  • OSI 7계층은, 컴퓨터와 간 패킷 통신을 위해 거쳐야하는 7개의 계층을 의미한다.
  • TCP/IP 4계층은, TCP/IP 프로토콜 통신 과정에 초점을 맞추어, OSI 7계층을 좀 더 단순화 시킨 계층을 의미한다.
  • 이러한 계층적인 구조는 아래와 같은 특징을 가지고 있다.
    • 각 계층별 처리 역할이 다르기 때문에, 계층별 간섭을 최소화할 수 있다.
    • 특정 계층에서 문제가 생기면, 해당 계층을 살펴보면 되기 때문에, 유지 보수가 편리하다.
    • 다른 계층끼리는 데이터의 전달 과정을 구체적으로 알 필요가 없기 때문에, 데이터의 캡슐화와 은닉이 가능하다

TCP / IP와 OSI 모델의 주요 차이점

  • TCP / IP는 클라이언트 - 서버 모델입니다. 즉, 클라이언트가 서비스를 요청하면 서버가 제공한다. 반면 OSI는 개념 모델이다.
  • TCP / IP는 인터넷을 포함한 모든 네트워크에 사용되는 표준 프로토콜이지만 OSI는 프로토콜이 아니라 시스템 아키텍처를 이해하고 설계하는 데 사용되는 참조 모델이다.
  • TCP/IP는 인터넷 개발 이후 계속 표준화되어 신뢰성이 우수

참고
https://inpa.tistory.com/329
https://abangpa1ace.tistory.com/147
https://velog.io/@dyunge_100/Network-TCPIP-4%EA%B3%84%EC%B8%B5%EC%97%90-%EB%8C%80%ED%95%98%EC%97%AC
https://amber-chaeeunk.tistory.com/130
https://wooono.tistory.com/507
https://inpa.tistory.com/329

0개의 댓글