본문 바로가기

컴퓨터 과학

OSI 7계층(전송 계층)

전송 계층에서 TCP 및 UDP 이해

전송 계층 소개: TCP 및 UDP에 대해 자세히 알아보기 전에 네트워킹에서 전송 계층의 역할을 이해하는 것이 중요한데, 전송 계층은 OSI(개방형 시스템 상호 연결) ​​모델의 네 번째 계층으로, 네트워크를 통해 한 응용 프로그램에서 다른 응용 프로그램으로 데이터를 전달하는 역할을 한다. 이는 데이터가 안정적이고 효율적인 방식으로 전송되도록 보장한다.

전송 제어 프로토콜(TCP):

TCP 개요:

TCP는 연결 지향 프로토콜이다. 즉, 데이터를 전송하기 전에 연결을 설정한다.
웹 브라우징, 이메일, 파일 전송과 같이 안정성이 중요한 애플리케이션에 널리 사용된다.

TCP의 주요 특징:

안정적인 전송: TCP는 데이터가 정확하고 순서대로 전달되도록 보장한다. 패킷이 손실되면 TCP는 이를 재전송한다.
오류 검사: 각 TCP 패킷에는 전송 중에 발생한 손상을 감지하기 위한 체크섬이 포함되어 있다.
흐름 제어: TCP는 네트워크 정체를 방지하기 위해 데이터 흐름을 관리한다. 수신기의 용량에 따라 데이터 전송 속도를 조정한다.
혼잡 제어: TCP는 네트워크 혼잡을 감지하고 데이터 전송 속도를 줄여 혼잡을 완화한다.
순서화된 데이터 전송: TCP는 전송된 순서대로 데이터를 정렬한다.
TCP 작동 방식:

3방향 핸드셰이크: 데이터 전송 전에 TCP는 3방향 핸드셰이크(SYN, SYN-ACK, ACK)라는 프로세스를 사용하여 연결을 설정한다.
데이터 전송: 연결이 설정되면 데이터가 세그먼트로 전송된다. TCP는 올바른 순서를 위해 각 세그먼트에 시퀀스 번호를 할당한다.
종료: 데이터 전송 후 4방향 핸드셰이크 프로세스를 사용하여 연결이 종료된다.

사용자 데이터 그램 프로토콜(UDP):

UDP 개요:

UDP는 비연결 프로토콜이다. 즉, 데이터를 보내기 전에 연결을 설정하지 않는다.
비디오 스트리밍, 온라인 게임, VoIP(Voice over Internet Protocol)와 같이 안정성보다 속도가 더 중요한 애플리케이션에 사용된다.

UDP의 주요 특징:

속도 및 효율성: UDP는 오류 검사가 최소화되고 연결 설정이 없으므로 TCP보다 빠르다.
혼잡 제어 없음: UDP에는 네트워크 혼잡을 관리하는 메커니즘이 없다.
신뢰할 수 없는 전송: 전송된 데이터가 올바른 순서로 또는 전혀 목적지에 도달한다는 보장이 없다.

UDP 작동 방식:

데이터 전송: UDP는 연결을 설정하지 않고 데이터 그램이라는 패킷을 보낸다. 각 데이터 그램은 다른 데이터 그램과 독립적이다.
승인 없음: TCP와 달리 UDP는 데이터 수신을 승인하지 않는다. 보낸 사람은 데이터가 올바르게 도착했는지 알 수 없다.

TCP와 UDP 비교:

사용 사례: TCP는 속도보다 정확성이 더 중요한 애플리케이션에 이상적이지만, UDP는 속도가 더 중요한 애플리케이션에 적합하다.
오버헤드: TCP는 오류 검사 및 제어 메커니즘으로 인해 더 많은 오버헤드를 가지므로 UDP보다 속도가 느리다.
실제 사례: 웹사이트는 일반적으로 데이터 전송에 TCP를 사용하는 반면, 라이브 방송이나 온라인 게임은 UDP를 사용하는 경우가 많다.
결론: TCP와 UDP는 모두 네트워크를 통한 데이터 통신에서 중요한 역할을 하며, 각각은 고유한 특성을 기반으로 다양한 유형의 애플리케이션에 적합하다. TCP와 UDP의 차이점을 이해하는 것은 네트워킹과 관련된 모든 사람에게 필수적이다. 애플리케이션의 요구 사항에 따라 올바른 프로토콜을 선택하는 데 도움이 되기 때문이다.

TCP 3방향 핸드셰이크는 클라이언트와 서버 간의 안정적인 연결을 설정하는 데 사용되는 TCP(전송 제어 프로토콜)의 기본 프로세스이다. 이 핸드셰이크 프로세스는 세 가지 주요 단계로 구성된다.


SYN Sent: 클라이언트는 SYN(동기화 시퀀스 번호) 플래그가 설정된 세그먼트를 전송하여 핸드셰이크를 시작한다. 이 세그먼트는 연결을 설정하려는 클라이언트의 요구를 서버에 전달한다. 클라이언트는 또한 통신의 초기 시퀀스 번호 역할을 하는 임의의 숫자인 시퀀스 번호를 보낸다.
SYN-ACK 수신됨: SYN 세그먼트를 수신하면 서버는 SYN 및 ACK(Acknowledgement) 플래그가 모두 설정된 세그먼트로 응답한다. 이 응답은 클라이언트의 초기 SYN(ACK 부분)을 확인하고 SYN 부분에 서버 고유의 시퀀스 번호도 포함한다. 이 시퀀스 번호는 서버 자체의 초기 시퀀스 번호이다.
ACK 전송됨: 클라이언트는 ACK 세그먼트를 사용하여 서버의 SYN-ACK에 응답한다. 이 최종 승인에는 클라이언트의 다음 시퀀스 번호가 포함된다. 이는 첫 번째 단계에서 전송된 초기 시퀀스 번호에 1을 더한 것입니다. 이 단계에서는 3방향 핸드셰이크가 완료되고 TCP 연결이 설정된다.
이 프로세스는 클라이언트와 서버 간의 시퀀스 번호를 동기화하여 양 당사자가 데이터를 전송할 준비가 되어 있고 연결의 초기 매개변수에 동의했는지 확인하기 때문에 안정적인 연결을 설정하는 데 중요하다. 핸드셰이크는 손실되거나 손상된 패킷을 감지하고 재전송할 수 있는 연결 단계를 설정하므로 TCP의 신뢰성과 적절한 순서 지정의 핵심 기능이다.

반응형

'컴퓨터 과학' 카테고리의 다른 글

인공지능(AI)의 작동 방식  (0) 2024.01.30
OSI 7계층 (전송, 표현, 응용 계층)  (0) 2024.01.28
OSI 7계층 (네트워크 계층)  (0) 2024.01.26
OSI 7계층 (데이터 링크계층)  (0) 2024.01.25
OSI 7계층 (물리계층)  (0) 2024.01.24