본문 바로가기
공부/computer science

OSI Model (TCP/IP Model) 과 TCP/UDP

by 마자용 2022. 9. 11.

1. OSI Model (TCP / IP Model)

네트워크 상에서 정보를 주고받으려면, 데이터를 어느 경로로 보낼지・어떤 방식으로 보낼지 등 고려해야 할 사항들이 많다. 이러한 것들을 관리하기 위해 하나의 규약만을 정해 놓았다면, 문제가 발생했을 때 전체를 수정해야 하며 이로 인한 새로운 문제가 발생하게 될 수도 있을 것이다.

국제표준화기구(ISO)에서는 이를 해결하기 위해(= 원활한 통신을 위해) 통신이 일어나는 과정을 네트워크 각각의 역할에 맞게 계층 구조로 나눈 통신 규약을 제안했다.

이를 OSI 7 Layer Model 이라고 부른다.

각각의 계층은 모듈 단위로 독립적이지만 상호 유기적인 관계를 가진다.

OSI → 개념적 Model

TCP / IP → 연결을 설정하고 네트워크를 통해 통신하는 실제 Model

 

2. Transport Layer

(1) 특징

요약

  1. 계층 4에 해당
  2. 각 프로세스들을 연결
  3. (→ 이를 위한 제어 기능 제공)
  4. 클라이언트-서버 프로그램 사이의 연락원

설명

전송 계층에서는 응용 프로그램(프로세스) 간의 데이터 전달이 이루어지는데, 이는 source-to-destination, end-to-end 간의 연결을 통한다.

  • 포트 번호로 통신한다.

연결을 통한 전송 중 발생할 수 있는 문제를 해결하기 위해 오류 제어, 흐름 제어, 데이터 순서화 등의 기능이 제공된다.

(2) 프로세스 주소화 (Addressing process)

통신은 어디서 이루어지는가?

전송 계층에서의 데이터 전달은 프로세스 사이에서 이루어지는 것이 아닌, 프로세스의 호스트 사이에서 이루어진다.

호스트 == 집주소

목적지는 어디인가?

전달될 데이터의 목적지가 프로세스인 것이다.

프로세스 == 수신인

정리

IP 주소 (호스트, 32비트) + 포트 번호 (프로세스) 가 합쳐져서 전달된다.

보편적으로 사용되는 서버 프로세스의 경우에는 고정된 포트 번호를 사용한다.

(예시) HTTP 서버 넘버 (80), 메일 서버 넘버 (25)

(3) 세그먼트

PDU (= 전송 계층에서의 프로토콜 데이터 단위)를 말한다.

세그먼트의 전달 과정에서 신뢰성 관련 제어 기능 (오류 제어, 흐름 제어, 데이터 순서화) 이 지원될 수도 있고, 안 될 수도 있다. 이는 프로토콜 (TCP, UDP) 에 따라 다르다.

 

3. TCP

Transmission Control Protocol

전송 계층에서의 신뢰성 있는 데이터 통신을 가능하게 해주는 프로토콜을 말한다.

연결 (Connection) 을 수립하는 과정을 거친다.

데이터의 순차적인 전송을 보장하며, 흐름 제어 / 혼잡 제어 / 오류 감지로 신뢰성을 높인다.

아래와 같이 구성된다.

  1. 포트 번호로 통신 → Source Port, Destination Port
  2. 순차 전송의 신뢰성 보장 → Sequence Number, Acknowledgement Number
  3. 연결 제어, 데이터 관리
    • SYN → 연결 요청 시 사용
    • FIN → 연결 종료 시 사용
    • ACK → 응답을 잘 받았음을 알릴 때 사용
  4. 체크섬 검사
  5. 옵션
  6. 데이터

3-way-handshake

연결을 수립하는 과정을 말한다.

양방향 연결이기 때문에 SYN, ACK를 서로 주고 받는다.

잘 받았다는 의미인 ACK를 보냈을 때 답으로 ACK가 돌아오지 않는다면 다시 보낸다.

→ 신뢰성 있는 통신을 구현할 수 있음

4-way-handshake

연결을 닫는 과정을 말한다.

서버 쪽에서 보내야 할 데이터가 남아 있을 수도 있기 때문에, 완전히 다 보내면 FIN 을 전달한다.

단점

신뢰성 있는 데이터의 전달이 가능하지만, 매번 연결을 만들어줘야 하며 조금만 세그먼트를 손실해도 재전송한다는 점에서 시간 손실이 발생할 수 있다.

 

4. UDP

User Datagram Protocol

전송 계층에서 사용되는 속도가 빠른 프로토콜을 말한다.

비연결 방식으로 통신한다.

때문에 순차 전송, 흐름 제어, 혼잡 제어 기능이 제공되지 않는다. Checksum 으로 최소한의 오류를 잡는다.

아래와 같이 구성된다.

  1. 포트 번호로 통신 → Source Port, Destination Port
  2. 체크섬 검사

통신 과정

확인 없이 데이터 요청에 바로 응답한다. (= 서버에서 소켓을 열어두고 있다)

체크섬은 최소한의 오류만 검사하기 때문에, TCP에 비해 비교적 패킷의 손실이 많다.

 

 


 

다음 시간에는 TCP에서의 신뢰성 보장 방법인 흐름 제어 / 혼잡 제어 / 오류 감지에 대해 정리해보겠습니다~!! 👊

 

아래를 참고하였습니다 🙇‍♀️

컴퓨터네트워크 강의 (서울과학기술대학교 컴퓨터공학과 이길흥 교수님)
KOCW 컴퓨터네트워크 공개 강의 (이화여자대학교 이미정 교수님)

댓글