● TCP와 UDP

두 프로토콜 모두 OSI 7 계층 중 전송계층(L4)에서 사용된다. 데이터 전송을 위해 IP 주소를 사용한다. 

 

더보기

※ 전송 계층에서는 데이터 전송 방식을 정하고 서비스 주소(Port 번호)를 구분한다. 또한 필요에 따라 단편화 작업을 수행하여 크기가 큰 데이터를 쪼개어 보낸다.

● TCP (Transmission Control Protocol)

데이터를 전달했을 때, 상대방이 확실하게 받았는지를 확인하여 신뢰성을 높인다. 주로 중요한 데이터를 정확하게 전달할 때 사용한다. 

EX) FTP의 TCP 20,21번 포트, HTTP의 TCP 80번 포트

- TCP의 특징 3가지

1. 연결 지향

<연결 설정 → 데이터 전송 → 연결 종료>의 순서로 진행된다. 

3 WHS(3-Way-HandShake)를 이용해 논리적인 연결을 구성하고, 데이터 전송 후 4 WHS(4-Way-HandShake)를 이용해 연결을 종료한다. 

 

<연결 설정>

3 WHS란 데이터 전송을 위해 상대 서버 또는 클라이언트와 세션 연결을 수립하는 과정이다. 

서버에 ACK 패킷을 보낸 후에는 데이터 전송이 이루어진다. 

3WHS의 과정

 

<연결 종료>

4 WHS는 3 WHS와 반대로 연결된 세션을 종료하기 위한 과정이다. 데이터 전송을 마친 후에 이루어진다. 

4WHS의 과정

더보기

* TCP 상태 천이 다이어그램

TCP 상태 천이 다이어그램

쉽게 말하자면 <3 WHS + 데이터 전송 + 4 WHS>로 구성되어있다. 

 

2. 신뢰성 보장

TCP 헤더의 Sequence Number와  Acknowledge Number를 이용해 데이터를 순서를 표기하여 순차적으로 전송할 수 있다. 이를 이용하여 누락된 패킷을 재전송해달라고 요청할 수 있다. 

Seq Num과 Ack Num에 대해서는 이후에 Wireshark를 이용하여 헤더 구조와 함께 더 자세하게 다룰 예정이다.

 

3. 흐름 제어

송신자가 너무 빠르게 데이터를 보내어 수신자가 그 속도를 따라가지 못하면 버퍼 오버플로우가 발생한다. 수신자의 버퍼가 받지 못하면 그대로 데이터의 손실로 이어진다. 이를 막기 위해 Sliding Window방법을 사용하여 해결한다.

Sliding Window란 송신자가 설정한 window size만큼의 데이터에 대해 ACK를 받지 않아도 여러 패킷을 보낼 수 있도록 하는 알고리즘이다. 즉, 송신받는 데이터의 양을 조절하는 방식이다. 

 

- TCP의 확인 응답 3가지

1. 일반 확인 응답 

Segment : ACK = 1 : 1

수신자가 하나의 Segment를 전달하면 반드시 송신자로부터 ACK를 받아야 한다. ACK를 받은 후에 다음 순서의 데이터를 전송한다.

 

2. 누적 확인 응답

Segment : ACK = N : 1

TCP 연결 시 한 번에 보낼 수 있는 Segment양을 정한다. 정해진 양만큼의 Segment는 ACK가 없어도 계속 전송한다. 송신 측에서는 정해진 양의 Segment를 받았을 때 하나의 ACK를 보낸다.

 

3. 선택적 확인 응답

누적 확인 응답 방식은 중간에 Segment의 손실이 발생하면 정상 수신한 Segment까지 재전송해야 하는 문제점이 있다. 이를 해결하기 위해 손실 발생 시 재전송이 필요 없는 Segment의 정보를 함께 알려 불필요한 재전송을 방지한다. 

 

 

● UDP (User Datagram Protocol)

데이터 전송의 신뢰성보다는 빠른 속도를 보장한다. 주로 빠른 통신 속도가 필요한 서비스(실시간 통신, 음성 서비스)에 이용된다. 

EX) DNS의 UDP 53번 포트, DHCP의 UDP 67,68번 포트, TFTP의 69번 포트

 

- UDP의 특징 3가지

1. 비 신뢰성

빠른 속도를 위해 수신자가 데이터를 받았는지 확인하지 않는다. 오직 빠른 전송과 데이터의 연속성만이 중요하다...

 

2. 비 연결 지향성

연결 없이도 통신이 가능하다.

 

3. 최소화된 헤더

4개의 필드를 가지며 크기는 총 8 byte이다. 20~60 byte의 크기를 가지는 TCP 헤더에 비해 헤더의 크기가 작으며 필드의 수 또한 매우 적어 구조가 간단하다. 

'정리 > 용어정리' 카테고리의 다른 글

ARP와 ARP Spoofing  (2) 2020.06.27

+ Recent posts