TCP / UDP (OSI 7 Layer, TCP/IP 4 Layer)

HEUKWU·2023년 5월 10일
0

OSI 7계층

OSI 7계층 모델은 네트워크 통신이 일어나는 과정을 7단계로 나눈것이다.따라서 통신이 일어나는 과정을 단계별로 파악하기 용이하다.
덕분에 네트워크 관리자는 어떤 문제의 원인이 어느 계층에서 발생했는지 파악함으로써 원인의 범위를 좁힐 수 있다.
또한 응용프로그램 개발 시 어떤 계층에 작업 필요한지 쉽게 파악할 수 있기 때문에 컴퓨터 프로그래머에게도 도움이 된다.

7계층 - 응용 계층(Application)

가장 위에 있는 계층으로 사용자에게 보이는 부분이다.
7계층에서 작동하는 응용프로그램은 사용자와 직접적으로 상호작용한다. 크롬(Google Chrome), 사파리(Safari) 등 웹 브라우저와 스카이프(Skype), 아웃룩(Outlook) 등의 응용 프로그램이 대표적이다.

  • 사용자와 가장 밀접한 계층(인터페이스 역할)
  • 응용 프로세스 간의 정보 교환 담당
  • 이메일, 인터넷, 동영상 플레이어등의 Application

유저 인터페이스를 제공하는 계층

6계층 - 표현 계층(Presentation)

응용 계층의 데이터 표현에서 독립적이 부분을 나타낸다. 응용프로그램 형식을 준비 또는 네트워크 형식으로 변환하거나 네트워크 형식을 응용프로그램 형식으로 변환하는 것을 나타낸다.
응용 프로그램이나 네트워크를 위해 데이터를 표현하는 것이다. 암호화, 복호화 작업이 대표적이다.

  • 전송하는 데이터의 인코딩, 디코딩, 암호화 등을 수행(전송단위 - Message)

데이터의 변환 작업을 하는 계층

5계층 - 세션 계층(Session)

컴퓨터 간에 통신이 필요하면 세션을 만들어야 하는데 세션 계층에서 해당 작업을 수행한다. 세션 설정, 유지, 종료, 전송 중단시 복구 등의 기능을 수행한다.

  • 통신장치 간 상호작용 및 동기화 제공
  • 연결 세션에서 데이터 교환, 에러 발생시 복구 관리(논리적 연결 담당)

응용 프로그램 간의 연결을 지원해주는 계층

4계층 - 전송 계층(Transport)

최종 시스템 및 호스트 간의 데이터 전송 조율을 담당한다. 데이터의 용량, 속도, 목적지 등을 처리한다. 보통 TCP 프로토콜을 사용하며 기기의 IP주소가 이 계층에서 작동한다.

  • 종단 간에 신뢰성 있고 정확한 데이터 전송을 담당(전송단위 - Segment)

서비스를 구분하고 데이터의 전송 방식을 담당하는 계층(TCP/UDP)

3계층 - 네트워크 계층(NetWork)

여러 라우터를 통한 라우팅(데이터를 목적지까지 가장 안전하고 빠르게 전달하는 기능)을 비롯한 패킷 전달을 담당한다. 경로를 선택하고 주소를 정하고 경로에 따라 패킷을 전달해준다.데이터를 연결하는 다른 네트워크를 통해 전달함으로써 인터넷이 가능하게 만들어준다.(IP주소 사용)

  • 중계 노드를 통해 전송(전송 단위 - Packet)

네트워크를 논리적으로 구분하고 연결하는 계층

노드 간 데이터 전송을 제공하며 물리 계층의 오류 수정을 처리한다. 물리 계층을 통해 송수신되는 정보의 오류와 흐름을 관리하여 안전한 정보의 수행을 도와주는 역할을 한다. 맥주소를 통해 통신한다.

  • 정보의 오류와 흐름을 관리
  • 안정된 정보 전달(전송 단위 - Frame)

물리적 매체에 패킷 데이터를 실어 보내는 계층

1계층 - 물리 계층(Physical)

시스템의 전기적, 물리적 표현을 나타낸다. 네트워크 문제가 발생하면 먼저 물리 계층에서 케이블의 연결 여부를 확인한다.

  • 전기적, 기계적 특성을 이용한 데이터 전송(전송 단위 - bit)
  • 데이터 전달 역할(알고리즘, 오류 제어 기능 X)

신호로 변환하여 전송하는 계층


TCP/IP 4계층

TCP/IP는 현재의 인터넷에서 컴퓨터들이 서로 정보를 주고받는데 쓰이는 통신규약 (프로토콜)의 모음이다. 1960년대 말 미국방성의 연구에서 시작되어 1980년대 초 프로토콜 모델이 공개 되었으며, 하드웨어, 운영체제, 접속매체에 관계없이 동작할 수 있는 개방성을 가진다.

4계층 - 응용 계층(Application)

  • OSI 7 Layer에서 세션계층 , 프레젠테이션계층, 애플리케이션 계층에 해당한다. (5, 6, 7계층)

  • 응용프로그램들이 네트워크서비스, 메일서비스, 웹서비스 등을 할 수 있도록 표준적인 인터페이스를 제공한다.

  • TCP/IP 기반의 응용 프로그램을 구분할 때 사용한다.

  • 프로토콜 : HTTP, FTP, Telnet, DNS, SMTP

3계층 - 전송 계층(Transport)

  • OSI 7 Layer에서 전송계층에 해당한다.

  • 네트워크 양단의 송수신 호스트 사이에서 신뢰성 있는 전송기능을 제공한다.

  •  시스템의 논리주소와 포트를 가지고 있어서 각 상위 계층의 프로세스를 연결해서 통신한다.

  • 정확한 패킷의 전송을 보장하는 TCP와 정확한 전송을 보장하지 않는 UDP 프로토 콜을 이용한다.

  • 데이터의 정확한 전송보다 빠른 속도의 전송이 필요한 멀티미디어 통신에서 UDP 를 사용하면 TCP보다 유용하다.

  • 통신 노드 간의 연결을 제어하고, 자료의 송수신을 담당

  • 프로토콜 : TCP, UDP

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

  • OSI 7 Layer의 네트워크 계층에 해당한다.

  • 인터넷 계층의 주요 기능은 상위 트랜스포트 계층으로부터 받은 데이터에 IP패킷 헤더를 붙여 IP패킷을 만들고 이를 전송하는 것이다.

  • 통신 노드 간의 IP 패킷을 전송하는 기능 및 라우팅 기능을 담당

  • 프로토콜 : IP, ARP, RARP, ICMP, OSPF

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

  • OSI 7 Layer에서 물리계층과 데이터링크 계층에 해당한다.

  • OS의 네트워크 카드와 디바이스 드라이버 등과 같이 하드웨어적인 요소와 관련되 는 모든 것을 지원하는 계층

  • 송신측 컴퓨터의 경우 상위 계층으로부터 전달받은 패킷에 물리적인 주소은 MAC 주소 정보를 가지고 있는 헤더를 추가하여 프레임을 만들고, 프레임을 하위계층인 물 리 계층으로 전달한다.

  • 수신측 컴퓨터의 경우 데이터 링크 계층에서 추가된 헤더를 제거하여 상위 계층인 네트워크 계층으로 전달한다.

  • CSMA/CD, MAC, LAN, X25, 패킷망, 위성 통신, 다이얼 모뎀 등 전송에 사용

  • 프로토콜 : Ehternet(이더넷), Token Ring, PPP


TCP(Transmission Control Protocol)

인터넷상에서 데이터를 메세지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜

컴퓨터가 다른 컴퓨터와 통신하려고 할 때마다 두 컴퓨터 간의 통신은 양호한 연결상태와 신뢰성이 보장 되어야 데이터를 올바르게 수신할 수 있다.

예를 들어, 웹 페이지를 보거나 파일을 다운로드하거나 이메일을 보고 싶을 때 웹 페이지가 누락되지 않은 상태로 손상되지 않고 순서대로 표시되어야 한다.

TCP 전송 제어 프로토콜은 네트워크에서 사용되는 기본 프로토콜 중 하나이며, TCP는 모든 데이터가 수신되는 것을 보장한다.

TCP는 연결 지향 프로토콜이며 기본적으로 통신중인 두 컴퓨터 간의 세션을 먼저 확인한다.

따라서 두 컴퓨터는 통신이 발생하기 전에 연결을 확인하는 과정을 거친다.

3-Way Handshake

3-way handshake는 TCP 프로토콜에서 연결 설정을 위해 사용되는 과정이다. 클라이언트와 서버 간에 신뢰성 있는 연결을 수립하기 위해 세 단계의 통신을 거친다.

1. 클라이언트가 서버에게 연결 요청 (SYN)

클라이언트가 서버에게 연결을 요청하기 위해 SYN 패킷을 보낸다.
SYN(Synchronize Sequence Number) 패킷은 클라이언트가 초기 시퀀스 번호를 지정하고, 연결을 요청한다는 의미를 가지고 있다.
클라이언트는 SYN 패킷을 전송한 후, 연결 요청 상태(SYN_SENT)로 전환된다.

2. 서버가 클라이언트에게 요청 수락 및 확인 (SYN + ACK)

서버는 클라이언트의 연결 요청을 받으면, SYN 패킷을 수락하고 확인하기 위해 ACK(Acknowledgement)와 SYN 패킷을 함께 보낸다.
ACK는 패킷 수신 확인을 의미하며, SYN은 서버의 초기 시퀀스 번호를 설정하는 역할을 한다.
서버는 SYN + ACK 패킷을 전송한 후, 연결 요청을 받아들였으므로 연결 수립 상태로 전환된다.

3. 클라이언트가 서버에게 요청 확인 (ACK)

클라이언트는 서버의 SYN + ACK 패킷을 받으면, 이를 확인하기 위해 ACK 패킷을 서버로 전송한다.
ACK 패킷은 패킷 수신 확인을 의미한다.
클라이언트는 ACK 패킷을 전송한 후, 연결이 성공적으로 수립되어 연결 완료 상태로 전환된다.

이와 같이 TCP는 연결 지향성으로 3-way handshake, 데이터의 흐름제어나 혼잡 제어와 같은 기능을 통해 높은 신뢰성을 보장한다. 하지만 이러한 기능들로 인하여 UDP보다 속도가 느리다.

따라서 TCP는 연속성보다 신뢰성있는 전송이 중요한 서비스(파일 전송)에 자주 사용된다.

또한 연결 지향 방식은 패킷을 전송하기 위한 논리적 경로를 배정한다는 뜻이다. 따라서 3-way handshake과정을 통해 목적지와 수신지를 확실히 하여 정확한 전송을 보장한다.

데이터 흐름제어, 혼잡제어
데이터 흐름 제어는 수신자와 송신자 간의 데이터 전송 속도를 조절하여 수신자의 처리 능력을 초과하지 않도록 하는 메커니즘이다. 이를 통해 네트워크 혼잡을 방지하고, 데이터 손실이나 지연을 최소화하여 신뢰성 있는 데이터 전송을 보장한다.

혼잡 제어는 네트워크의 혼잡 상태를 감지하고 조절하여 네트워크 내의 데이터 전송량을 적절히 제어하는 메커니즘이다. 이를 통해 네트워크 혼잡 상태를 감지하고 데이터 전송량을 조절하여 최적의 전송 성능을 유지한다.

UDP(User Datagram Protocol)

데이터를 데이터그램 단위로 처리하는 프로토콜

UDP는 비연결형 프로토콜이다. 따라서 TCP와 달리 연결을 위해 할당되는 논리적인 경로가 없는데, 그렇기 때문에 각각의 패킷은 다른 경로로 전송되고, 각각의 패킷은 독립적인 관계를 지니게 된다.

데이터그램이 독립적인 관계를 지니는 패킷이라는 뜻이다.

UDP는 비연결형 서비스이기 때문에, 연결을 설정하고 해제하는 과정이 존재하지 않는다. 패킷에 순서를 부여하여 재조립을 하거나 흐름 제어 또는 혼잡 제어와 같은 기능도 처리하지 않기에 TCP보다
속도가 빠르며 네트워크 부하가 적다는 장점이 있다.
하지만 신뢰성있는 데이터의 전송을 보장하지는 못하기 때문에 신뢰성보다는 연속성이 중요한 서비스(streaming)에 자주 사용된다.

출처
https://shlee0882.tistory.com/110
https://ryusae.tistory.com/4
https://mangkyu.tistory.com/15

0개의 댓글

관련 채용 정보