반응형

1. Transport Layer(전송 계층)

: End Point 간 신뢰성있는 Data 전송을 담당하는 계층

 

신뢰성 : Data의 순차적, 안정적인 전달 보장
전송 : 목적지 Port 번호에 해당하는 Process에 Data 전달

 

1.2. Transport Layer의 중요성

만약, 전송 계층이 없다면 ?
  • Data의 순차 전송이 원활히 이루어지지 않음
    e.g., 송신자가 1 2 3의 순서로 Data를 전송했을 때 수신자는 Data 수신 시 2 3 1 등의 순서로 전송받을 수 있다.
  • Flow 문제(흐름 문제) 발생
    Flow 문제의 원인 : 송·수신자 간의 Data 처리 속도의 차이
    e.g., 수신자가 처리할 수 있는 Data의 양을 초과하는 경우 그 이후에 송신되는 Data의 경우 누락될 수 있다.
  • Congestion 문제(혼잡 문제) 발생
    Congestion 문제의 원인 : Network(e.g. Router)의 Data 처리 속도
    e.g., 송신자가 계속 Data를 저송하더라도 Network가 혼잡해 수신자에게 제대로 전달되지 않을 수 있다.

∴ Data의 손실이 발생할 수 있다.

 

2. TCP(Transmission Control Protocol)

: 신뢰성있는 Data 통신을 가능하게 해주는 Protocol

  • Data 전송 전 Connection 연결이 필요하다. (3-Way Handshake : 양방향 통신)
  • Data의 순차 전송을 보장한다.
  • Flow Control (흐름 제어)
  • Congestion Control (혼잡 제어)
  • Error Detection (오류 감지)
    ☞ Checksum 이용

 

2.1. Segment

: TCP의 PDU(Protocol Data Unit, 프로토콜 데이터 단위)

Application 계층에서 Data를 전송하면 TCP Protocol 안에서 내부적으로 Data를 잘라 TCP Header와 Data를 결합한다.

 

 

2.2. TCP Header의 구조

 

  • Source Port : 송신자 Port 번호
  • Destination Port : 수신자 Port 번호
  • Sequence Number, Acknowledgment Number : 순차 전송 담당
  • Flag Field : TCP 연결 제어 및 Data 관리
  • Checksum : Error 검출

 

2.3. 3-Way Handshake (Connection 연결)

   ① Client가 SYN 비트를 1로 설정해 Server에 Packet 송신

   ② Server가 SYN, ACK 비트를 1로 설정해 Client에 Packet 송신

       ☞ ACK 비트로 Data를 받았음을 알림

   ③ Client가 ACK 비트를 1로 설정해 Server에 Packet 송신

   ④ 열결 완료 후 Data 송수신

 

2.4. Data 전송 방식

   ① Client가 Server에 Packet 송신

   ② Server가 ACK 비트를 1로 설정해 Client에게 Packet 송신

   ③ Client가 ACK를 받지 못하면 Packet 재전송

       ☞ 신뢰성 있는 통신 보장

 

2.5. 4-Way Handshake (Connection Close)

   ① Data를 전부 전송한 Client가 FIN 비트를 1로 설정해 Server에 Packet 송신

   ② Server가 ACK 비트를 1로 설정해 Client에 Packet 송신

   ③ Server에서 남은 패킷 송신 (Client는 일정 시간 대기)

   ④ Server가 FIN 비트를 1로 설정해 Client에 Packet 송신

   ⑤ Client가 ACK 비트를 1로 설정해 Server에 Packet 송신

 

 

2.6. 문제점

  • 전송의 신뢰성은 보장하지만 매번 Connection을 연결해 시간 손실이 발생한다. (3-Way Handshake)
  • Packet을 조금만 손실해도 재전송한다.

 

3. UDP(User Datagram Protocol)

: TCP에 비해 신뢰성은 떨어지지만 전송 속도가 일반적으로 빠른 Protocol

  • Connectionless (3-Way HandShake 과정이 없다 : 단방향 통신)
  • 순차 전송, 흐름 제어, 혼잡 제어 기능이 없다.
  • Error Detection
    ☞ Checksum 이용
  • 비교적 Data의 신뢰성이 중요하지 않을 때 사용된다.
    e.g., 영상 스트리밍

 

3.1. User Datagram

: UDP의 PDU(Protocol Data Unit, 프로토콜 데이터 단위)

  • Application 계층에서 Data가 전송되면 Data에 UDP Header를 추가해 만들어진다.
    ☞ Segment는 Data를 쪼갰으나 Datagram은 Data를 쪼개지 않는다.

 

3.2. UDP Header

 

  • Source Port : 송신자 Port 번호
  • Destination Port : 수신자 Port 번호
  • Checksum : Error 검출

 

3.3. UDP의 Data 전송 방식

 

   ① Client가 Packet 송신

 

 

[참고]

https://youtu.be/ikDVGYp5dhg

 

https://diy-multitab.tistory.com/27

 

컴퓨터 네트워크 - Transport Layer

Transport layer application layer 바로 밑에 있는 계층으로 transport layer 관점에서는 logical End-End transport 단위로 그중간에 있는 과정은 관심이 없다. app message를 Header과 Data로 이루어진 Segment..

diy-multitab.tistory.com

 

반응형

+ Recent posts