TCP/UDP

2. TCP/UDP

2.1 TCP 전송 제어 프로토콜

2.1.1 TCP개요

  • 인터넷 상에서 데이터를 메세지의 형태(TCP 세그먼트)로 보내기 위해 IP와 함께 사용하는 프로토콜
  • IP와 함께 TCP/IP라는 명칭으로 불린다. IP가 주소를 통해 데이터의 배달을 한다면 TCP는 패킷을 추적 및 관리하는 역할을 한다.

2.1.2 TCP특징

  • 연결형 서비스로 연결이 성공해야지만 통신 가능(3 & 4 way Handshaking : 연결설정, 연결해제)
  • 데이터의 경계를 구분하지 않음
  • 신뢰성이 있다
    • 패킷손실, 중복 순서바뀜을 보장 -> 정확한 데이터 전달 가능
  • 흐름제어 및 혼잡제어를 제공
    • 흐름제어 : 송신처와 수신처의 데이터 처리속도를 조절하여 수신자의 버퍼 오버플로우를 방지
      • 수신측의 처리속도보다 송신속도가 빠를경우 도착한 데이터가 손상될 가능성이 존재
      • 수신자가 송신자에게 자신의 상태를 feedback 해서 속도를 조절한다.
    • 혼잡제어 : 네트워크 내의 패킷수가 넘치지 않도록 방지
      • 낮은속도로 전송하기 시작해서 속도를 올림
  • Full-Duplex(전송이 양방향으로 동시에 일어날 수 있음), Point to Point(연결이 정확히 2개의 종단점을 가지고 있음)
  • ex) 파일전송

2.2 UDP 사용자 데이터그램 프로토콜

2.2.1 UDP개요

  • 데이터를 데이터그램 단위로 처리하는 프로토콜 -> 전송계층
  • 비연결형, 신뢰성 없는 전송 프로토콜이다.

2.2.2 UDP특징

  • 전송방식이 매우 단순해서 빠르다 -> 최소한의 오류만 검출한다.
  • 신뢰성이 낮다 -> 전송하는 데이터의 순번이 바뀌거나 누락될 가능성이 존재한다.
  • 비연결형 서비스이다
    • 논리적인 경로가 없기 때문에 각각의 패킷은 다른 경로로 전송되고 독립적인 관계를 가진다.
  • ex) 실시간 서비스 : 영상통화 등등

2.3 TCP UDP 차이


출처 : soosungp33.log [CS] 📕 Network

OSI 모델

1. OSI 모델이란?

컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다. 각 계층은 하위 계층의 기능만을 이용하고, 상위 계층에게 기능을 제공한다. 일반적으로 하위 계층들은 하드웨어로, 상위 계층들은 소프트웨어로 구현된다.

1.1 7계층으로 나눈 이유

통신이 일어나는 과정을 단계별로 파악할수 있고, 특정한 곳에 이상이 생기면 이상을 탐지하기 쉽고, 이상이 생긴 단계만 고칠수 있기 때문이다

1.2. 계층단계

  1. 물리 계층
    • 네트워크의 기본 하드웨어 전송기술로 구성
    • 높은 수준의 기능의 논리데이터 구조를 기초로 한다
    • 하드웨어 기술이 접목되어있어 OSI 아키텍쳐중 가장 복잡한 계층이며 필수적이다
    • 전송단위는 Bit이다
    • 리피터, 케이블, 허브
  2. 데이터 링크 계층
    • Point to Point 간 신뢰성 있는 전송을 보장하기 위한 계층
    • 네트워크 위의 개체들 간 데이터를 전달한다.
    • 물리계층에서 발생할 수 있는 오류를 찾아내고 수정하는데 필요한 기능적, 절차적 수단을 제공한다.
    • 주소값은 물리적으로 할당받는다.(MAC address)
    • 네트워크 브릿지나 스위치 등이 이계층에서 동작한다. (Ethernet)
    • 전송단위는 Frame
  3. 네트 워크 계층
    • 여러개의 노드를 거칠때마다 경로를 찾아주는 역할을 하는 계층으로 다양한 길이의 데이터를 네트워크들을 통해 전달하고, 그 과정에서 전송 계층이 요구하는 서비스 품질(QoS)을 제공하기 위한 기능적, 절차적 수단을 제공
    • 라우팅, 흐름 제어, 세그멘테이션(segmentation/desegmentation), 오류 제어, 인터네트워킹(Internetworking) 등을 수행한다
    • IP부여, 경로설정(Route)
    • 전송단위는 Datagram(Packet)
  4. 전송 계층
    • 양 끝단(End to end)의 사용자들이 신뢰성있는 데이터를 주고 받을 수 있도록 해 주어, 상위 계층들이 데이터 전달의 유효성이나 효율성을 생각하지 않도록 해준다.
    • TCP/UDP프로토콜을 사용한다.
    • 전송 단위는 Segment이다.
    • 여기까지가 물리 계층이라고 한다.
  5. 세션 계층
    • 양 끝단의 응용 프로세스가 통신을 관리하기 위한 방법을 제공한다.
    • TCP/IP 세션을 만들고 없애는 책임을 진다.
    • 통신을 하기 위한 세션을 확립/유지/중단
  6. 표현 계층
    • 코드 간의 번역을 담당하여 사용자 시스템에서 데이터의 형식상 차이를 다루는 부담을 응용 계층으로부터 덜어 준다.
    • 인코딩이나 암호화등의 동작이 이루어진다.
    • 송신층과 수신측 사이에서 데이터의 형식(png, jpg, webp 등등) 을 정해준다.
  7. 응용 계층
    • 응용 계층(Application layer)은 응용 프로세스와 직접 관계하여 일반적인 응용 서비스를 수행한다.
    • DHCP, DNS, FTP, HTTP