전송 계층 (Transport Layer)

Q. OSI 7게층 중 전송계층에 대해서 설명해주세요.

전송 계층이란 OSI 7계층 중 4번째 계층이며, 상위 계층의 메시지를 하위 계층으로 전송하는 계층입니다. 송신자와 수신자 간의 신뢰성있고 효율적인 데이터를 전송하기 위하여 오류검출 및 복구, 흐름제어와 중복검사 등을 수행합니다. 데이터 전송을 위해서 Port 번호를 사용하고, 헤더에 송수신 포트번호를 포함하여 전달합니다. 보통 TCP와 UDP 프로토콜 중 TCP 프로토콜을 주로 사용하며 TCP는 Segment, UDP는 Datagram 이라는 데이터 전송 단위를 사용합니다.


Q. TCP와 UDP를 사용한다고 했는데, 이 두 프로토콜의 차이점은 무엇인가요?

먼저 TCP는 Transmission Control Protocol의 약자로 전송 제어 프로토콜 이라고 합니다. 인터넷을 통해 디바이스에서 웹 서버로 데이터를 전송하는 네트워크 프로토콜입니다. TCP/IP 프로토콜이라고 불리기도 하며 메신저에서 친구와 채팅을 하거나, 이메일을 보내거나, 웹을 검색할 때 등 많은 곳에서 TCP 프로토콜을 사용합니다. TCP는 연결 기반이므로 데이터를 전송하는 동안 수신자와 발신자 사이에 연결을 설정하고 이를 유지하여 데이터가 완전히 온전하게 도착하도록 보장합니다. UDP는 User Datagram Protocol의 약자로 사용자 데이터그램 프로토콜 이라고 합니다. UDP는 TCP에 비해 안정성은 떨어지지만 더 빠르고 간단합니다. 그래서 스트리밍이나 게임과 같이 빠른 속도가 중요한 상황에서 자주 사용됩니다. UDP는 비연결 방식이므로 두 당사자 간에 사전 연결을 설정하지 않습니다. 그 과정에서 데이터가 손실될 가능성이 있지만, 그 대신 훨씬 빠른 속도를 얻을 수 있습니다.


Q. TCP는 어떻게 작동하나요?

TCP는 3-way Handshake 방식으로 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정하는데 다음과 같은 단계로 이루어집니다.

  1. SYN : 송신자가 연결 요청 메시지(SYN)를 수신자에게 보냅니다.

  2. SYN-ACK : 수신자가 요청을 수락하고 연결 승인 메시지(SYN-ACK)를 송신자에게 보냅니다.

  3. ACK : 송신자가 수신자의 응답을 확인하는 메시지(ACK)를 보내면 연결이 확립됩니다. 이러한 방식으로 연결이 설정되면, TCP는 데이터를 작은 단위(세그먼트)로 나누어 전송합니다. 데이터 전송 중 TCP는 송신자가 수신자의 처리 능력에 맞게 데이터 전송 속도를 조절하거나 오류가 발견하면 재전송합니다. 데이터 전송이 완료되면, 연결을 종료하기 위해 4-way Handshake가 수행됩니다.

  4. FIN : 송신자가 연결 종료 요청(FIN)을 보냅니다.

  5. ACK : 수신자가 요청을 확인하고 응답(ACK)을 보냅니다.

  6. FIN : 수신자도 연결 종료 요청(FIN)을 모냅니다.

  7. ACK : 송신자가 수신자의 요청을 확인하고 응답(ACK)을 보내면 연결이 종료됩니다.

Last updated