[네트워크]TCP/IP 와 계층모델 정리

쫀구·2022년 7월 13일
0
post-custom-banner

📞 패킷교환 & IP

인터넷 프로토콜, 즉 IP 기반의 네트워크는 미 국방성에서 1969년 진행했던 아르파넷(ARPANET) 프로젝트에서 시작되었다. 회선교환 방식을 사용했는데, 사진처럼 발신자와 수신자를 연결해 주는 방식이다.
선을 매번 연결, 중요한 정보를 전달해야 되는 상황에서 상대가 통화 중이라면 계속 기다려야 하는 등 문제점이 많다.

이를 해결하기위해 패킷교환 방식으로 전환하게된다.
패킷교환 방식은 소포를 보내듯, 패킷이라는 단위로 데이터를 잘게 나누어 전송하는 방식이다.

특징 :

  • 출발지와 목적지 정보가 있어서 효율적이며, 전용선이 필요없어서 빠르게 데이터를 전송할 수 있다.
  • 오늘날 인터넷 프로토콜인 IP는 출발지와 목적지의 정보를 IP 주소라는 특정한 숫자값으로 표기하고 패킷(통신단위)으로 데이터를 전송하게 되었다.

수많은 서버 컴퓨터가 있는데, 출발지에서 목적지까지 데이터가 무사히 전달되기 위해선 규칙이 필요하다.
클라이언트 : IP주소(IP Address)를 컴퓨터에 부여하여 패킷(Packet)이라는 통신 단위로 데이터 전달한다.
서버 : 무사히 데이터르 전송받았다면 , IP패킷을 이용해 클라이언트에게 응답한다.

IP 프로토콜과 패킷 방식의 단점
비연결성

  • 만약 패킷을 받을 대상이 없거나 서비스 불능 상태여도 클라이언트는 서버의 상태를 파악할 방법이 없기 때문에 패킷을 그대로 전송한다.

비신뢰성

  • 중간에 있는 서버가 데이터를 전달하던 중 장애가 생겨 패킷이 중간에 소실되더라도 클라이언트는 이를 파악할 방법이 없다.
  • 다른 노드를 통해 패킷이 전달 될수가 있어서 비순서대로 도착한다.

🔌 TCP & UDP

TCP 특징
연결지향 프로토콜 , 데이터 전달 보증, 전송 순서 보장 , 신뢰성이 높으나 느린 속도

  • TCP는 데이터 전송이 성공적으로 이루어진다면 이에 대한 응답을 돌려주기 때문에 IP 패킷의 한계인 비연결성을 보완할 수 있다.
  • 만약 패킷이 순서대로 도착하지 않는다면 TCP 세그먼트에 있는 정보를 토대로 다시 패킷 전송을 요청할 수 있다.

3번 확인한다

이를 통해 IP 패킷의 한계인 비신뢰성(순서를 보장하지 않음)을 보완할 수 있다.

클라이언트가 SYN 패킷을 보낸다 -> 서버가 요청을받고 수락한다는 의미로 ACK와 SYN을 패킷을 발송한다
-> 클라이언트가 ACK로 응답하면 연결이 성립되어 데이터를 전송할 수 있게된다.
SYN 패킷을 보낼때 서버가 미응답시 데이터를 보내지 않는다.

UDP 특징
IP 프로토콜에 PORT, 체크섬 필드 정보만 추가된 단순한 프로토콜이다.
비연결지향형 프로토콜 , 데이터 전달 보증X , 순서보장X , 신뢰성 낮지만 빠른속도
3 way handshake 방식을 사용하지 않기 때문에 TCP와 비교해 빠른 속도 보장

TCP는 좋은 기능이 다 들어있는 무거운 라이브러리이고 UDP는 필요한 기능만 들어있는 가벼운 라이브러리로 비교할 수 있다.

OSI7계층 & TCP/IP 4계층

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

TCP/IP 4계층 모델은 OSI 모델을 기반으로 실무적으로 이용할 수 있도록 현실에 맞춰 단순화된 모델이다.
실용성에 기반을 둔 현대의 인터넷 표준이 TCP/IP 4계층이다.

  • 송신자는 데이터를 보내기 위해서 상위 계층에서 하위 계층으로 데이터를 전달한다.
    데이터를 상대방에게 보낼 때 각 계층에서 필요한 정보를 데이터에 추가하는데 이 정보를 헤더(데이터링크 계층에서는 트레일러)라고 한다. 그리고 이렇게 헤더를 붙여나가는 것을 캡슐화라고 한다.

  • 수신자는 하위 계층에서 상위 계층으로 각 계층을 통해 전달된 데이터를 받게된다.
    위 계층으로 데이터를 전달하며 각 계층에서 헤더를 제거해 나가는 것을 역캡슐화라고 한다. 역캡슐화를 거쳐 마지막 응용 계층에 도달하면 드디어 전달하고자 했던 원본 데이터만 남게 된다.

✔️ 응용 계층
응용 계층은 이메일, 파일 전송, 웹 사이트 조회 등 어플리케이션에 대한 서비스를 사용자에게 제공하는 계층이다 클라이언트와 서버 모두 응용 계층에서 동작한다.

profile
Run Start 🔥
post-custom-banner

0개의 댓글