본문 바로가기
NETWORK

4.TCP, UDP / 3.전송 계층

by 정리1023 2023. 10. 8.

 

TCP와 UDP는 OSI 7 계층들 중 전송계층에서 사용되는 프로토콜
전송계층에서는 송신자와 수신자를 연결하는 통신서비스를 제공하는 계층

TCP란 Transmission Control Protocol의 약자로 전송을 제어하는 규약이라는 뜻
UDP(User Datagram Protocol)는 전송계층의 비연결 지향적 프로토콜을 뜻

이름에서도 알수 있듯이 TCP는 연결 UDP는 비연결을 지향합니다.

TCP는 데이터를 전송할떄 무조건 먼저 통신을 연결해야 하고 순서와 수선여부를 보장하기 위해 여러 절차를 거칩니다.
이러한 과정때문에 데이터의 전송속도가 UDP보다 상대적으로 느립니다.

반면 UDP는 통신을 연결안해도 데이터를 전달합니다. 수신자의 상태와 상관없이 발신자가 일방적으로 데이터를 보냅니다.
또한, 전송순서, 수신확인을 보장하지 않기 때문에 여러 절차를 거치지 않아서 TCP에 비해 속도가 빠릅니다


Source port, Destination port
세그먼트의 출발지와 목적지를 나타내는 필드로, 각각 16 bits 를 할당받는다. 이때 출발지와 목적지의 주소를 판별하기 위해서는 IP 주소와 포트 번호가 필요하다.


Sequence Number
시퀀스 번호는 전송하는 데이터의 순서를 의미하며, 32 bits를 할당받는다. 최대 2의 32 승 4,294,967,296 까지의 수를 담을 수 있기 때문에 시퀀스 번호가 그리 쉽게 중복되지는 않는다.
이 시퀀스 번호 덕분에, 수신자는 쪼개진 세그먼트의 순서를 파악하여 올바른 순서로 데이터를 재조립할 수 있게 된다.

Acknowledgment넘버 승인번호
승인번호는 수신자의 입장에서 송신자로부터 앞으로 받아야할 다음 데이터의 Sequence 번호입니다

window size(윈도우 크기)

TCP 연결에서 데이터 전송 속도와 효율성을 제어 합니다.. 이 값은 TCP 헤더의 16비트 필드 중 하나로 표시됩니다.
통해 네트워크 병목 현상을 최소화하고 데이터 전송의 효율성을 높일 수 있습니다.



Acknowledgment넘버 승인번호 송신자가 다음에 보내줘야하는 데이터의 시작점
만약 300바이트의 데이터를 보내야 하는데 이때 맥스 세그먼트 사이즈 MMS가 100이라고 가정해보겠습니다.
시퀀스 번호가 0 100 200인 3개의 세그먼트를 전송합니다.
이때 2번때 세그먼트 조각이 손실되었으면 수신자는 2번째 세그먼트를 다시 받기 위헤 발신자에게 승인번호로 100을 전송합니다.
그러면 발신자는 2번째 세그먼트를 받지 못했다는 것을 인지하고 시퀀스 넘버가 100인 데이터부터 재전송을 합니다,.




UDP length : UDP 헤더와 User Data의 크기를 더한 전체 패킷의 크기

TCP에서 CHECKSUM은 전체 TCP 패킷을 대상
데이터의 무결성을 보장하기 위해 전송되기 전에 생성됩니다.
반면에 UDP는 헤더와 페이로드만 대상으로 CHECKSUM이 생성됩니다.

UDP의 CHECKSUM은 데이터 패킷 전체 대신, UDP 헤더와 페이로드만을 대상