본문 바로가기

OSI 7계층/[LAYER 4] 전송 계층

TCP와 UDP

"온라인 게임이 버벅버벅 "

"인터넷 하는데 깨짐 현상이"



아 물론 PC가 이상해서 그럴수도 있겠지만 

올바르지 못한 통신방식을 선택한다면 이런 깝깝함을 불러올 수 있어요.

 

그럼 어떤 통신방식을 선택해야 잘했다고 소문이 날까요?



1. TCP 와 UDP

통신방식에는 크게 2가지가 있습니다.


데이터 전송의 신뢰를 보장하는 TCP와

데이터 전송을 보장하진 않지만 처리 속도가 빠른 UDP가 있죠


이 둘은 머리구조부터가 다르게 생겼먹었습니다. 



이 둘에게서 데이터를 받는다면 이런느낌이죠. 



정상적인 패킷은 수신하는데 배송 속도가 넘나느린 TCP

배송 속도는 겁나 빠른데 택배물이 정상적이지 않을 수 있는 UDP 


아 그러니까



TCP는 뭔가 절차대로 챡챡챡 하나하나 꼼꼼하게 스텝바이스텝 밟아서 느린 느낌이라면, 

UDP는 처리속도 끝내주는 개판 느낌이죠.



2. TCP vs UDP
데이터는 최대 1500바이트의 데이터를 실을 수 있는 패킷에 담겨서 날아갑니다. 
데이터 크기가 1500을 넘는 경우엔, 데이터를 쪼게어 여러개의 패킷에 담아 목적지로 전송하죠. 

100명의 학생이 소풍을 가는데, 버스의 최대 탑승가능 인원이 30명인 경우,버스를 여러대 대여하고, 
버스 앞에 OO학교라고 적어 같은 일행임을 표시하는 것과 같아요.

여기까지가 기본적으로 TCP와 UDP에게 주어지는 네트워크 환경입니다.

그 후 이 둘은 머리구조부터가 다르기때문에 각자 다른방식으로 버스를 관리합니다.

TCP 헤더



TCP의 경우 
출발지/목적지 포트 정보 외에 여러 정보를 머릿속에 기억하고 있습니다.
이 내용들이 버스가 정상적으로 모두 잘 도착했는지 확인하는 내용이죠
예를 들어, 1호, 2호, 3호 버스 중에 
1호 버스 도착했군,
3호 버스 도착했군, 어 학생하나가 비는데? 확인하고 다시오세요
2호 버스는 왜 안 오지?
-2호 버스 빨리 오라고 재촉-
2호 버스 도착했군
3호 버스 도착했군

"음 모두 정상적으로 도착했군"

의 과정을 갖습니다.
그렇기 때문에 정확하지만, 처리속도가 UDP에 비교해 느리죠


UDP 헤더



UDP의 경우 
출발지/목적지 정보를 주로 봅니다.
예를 들어, 1호, 2호, 3호 버스 ... 그런 개념도 없습니다.

버스가 도착했는지 확인을 안해기 때문이죠.
그렇기 때문에 정확하진 않지만, 처리속도가 아주 빠릅니다.



3. 사용 사례  
이제 이 둘을 상황에 적용시켜 볼까요

<<게임에 적용>>


초록 머리 캐릭터는 UDP, 검정 가운은 TCP로 비교할 수 있겠네요. 


게임은 실시간으로 변경되는 데이터가 즉각적으로 반영되어야하는데, 

신뢰성을 보장한답시고 1번패킷 왔네 2번은 왜 안오네 하면 사용자 속터지죠 

게임은 패킷이 정상적으로 도착하지 않아 얼굴색 반짝반짝거려도 빨리 움직여야합니다.


즉, 게임처럼 실시간으로 정보가 갱신되어야하는 서비스는 UDP 통신방식을 사용해야합니다. 



<<인터넷 서비스 적용>>


인터넷을 통해 기차를 예약하려고 합니다.

예약 시스템은 속도보다는 정확성이 중요하죠


만약 UDP 통신을 하게 된다면 



정보가 제대로 출력이 되지 않을 수 있죠

그렇기 때문에 속도보다는 정확도를 요구할 수 있는 인터넷 같은 서비스는 TCP를 사용해야 합니다.





'OSI 7계층 > [LAYER 4] 전송 계층' 카테고리의 다른 글

DNS[Domain Name Service]  (0) 2018.10.07
UDP[User Datagram Protocol] WORLD!  (0) 2018.07.08
TCP[Transmission Control Protocol]의 세계  (0) 2018.07.01
포트[PORT]에 대하여  (1) 2018.06.17