본문 바로가기
계장/제어 이론

TCP, UDP, IP 통신

by 쪼렙엔지니어 2022. 3. 15.
반응형

오늘은 TCP, UDP, IP통신에 대해서 이야기 해 보려고 합니다.

지난시간에 이더넷통신에 대해서 알아보았었죠? 그 이더넷은 물리적인 하드웨어 규약내용이었다면 오늘 배울 TCP/IP는 소프트웨어적인 규약이라고 생각하시면 좋을듯 합니다.

본격적인 내용에 들어가기에 앞서 지난시간 포스팅을 못보신 분들은 확인해 보시고 오시길 추천드립니다.

https://mech19.tistory.com/135

 

Ethernet 통신 (이더넷 통신)

오늘은 우리가 제일 많이 사용하는 그 통신!! Ethernet(이더넷)통신에 대해서 알아보겠습니다. 이더넷은 일반인들에게는 인터넷선이라고도 불리죠? 일반 가정용으로도 그렇고 산업에서 그렇고 가

mech19.tistory.com

자 그럼 시작해 볼까요?

먼저 나무위키에 좋은 그림이 있어서 가져와 봤습니다.

출처 : 나무위키

위 그림으로 나타낸 표는 네트워크 OSI 7계츨 모델입니다.

이건 지난시간에 알아보았던 내용이죠? 혹시 기억이 안나신다면 위에 링크를 걸어드린 이전 Ethernet포스팅을 먼저 읽고 오시는 것을 추천 드립니다.

위 OSI 7계층 모델로도 보이고 위에서도 언급을 했지만 우리가 Ethernet에 대해 알아볼때 Ethernet이라는 걸 한마디로 정의하긴 힘들지만 간단하게 생각하면 Haredware SPEC.에 가까운 정의가 된다고 이야기 했었죠. 물론 같이 이야기했던 MAC Address는 Software의 영역이긴 하지만... 기본적으로 어떠한 Hardware 규격의 개념으로 접근하면 됩니다.

(정확하진 않습니다. 다만 초보의 입장에서 좀 더 이해가 쉽고 접근하기 편하게 설명하기 위한 방편이라고 생각하면 좋을것 같네요.)

그럼 이 Ethernet이라는 Hardware를 가지고 실제로 Communication(통신)을 하려면 어떻게 해야할까요?

네. 맞습니다. Software가 있어야 겠지요? 그걸 1차적으로 위에서 보는바와 같이 네트워크계층과 전송계층에서 Protocol(규약)이라는 이름으로 정의를 해주고 있고, 그게 바로 오늘 알아볼 TCP, UDP, IP와 같은 내용들인 겁니다.

Ethernet(이더넷)을 이용한 Communication Protocol(통신규약)에는 굉장히 많은 방법들이 존재하지만 가장 대표적으로 사용되는 방법이 바로 TCP, UDP, IP등의 Protocol 입니다. 그래서 오늘은 이 TCP, UDP, IP에 대해서 알아보겠습니다.

(항상 하는 이야기이지만 우리는 학자가 아닙니다. 최대한 간단하게 이해하고 사용법을 익히기 위한 베이스적인 이해만 되면 되기 때문에 어려운 용어에 일일이 목메고 있을 필요가 없으며 감을 잡는 느낌으로 공부를 하시기 바랍니다.)

먼저 TCP, UDP, IP의 마지막 P문자가 Protocol을 의미하는 약자 입니다.

TCP : Transmission Control Protocol

UDP : User Datagram Protocol

IP : Internet Protocol

그럼 하나씩 이야기 해 보겠습니다.

1. IP

먼저 IP (Internet Protocol : 인터넷규약)에 대해서 이야기해 보겠습니다.

다들 인터넷이 뭔지는 아시죠? 우리가 집에서 PC나 노트북으로 인터넷에 접속해서 이렇게 네이버도 보고 유튜브도 보고 하잖아요? 그런데 이렇게 네이버 웹페이지를 열어서 본다던가 유튜브 영상을 본다는 것은 인터넷 망에 연결되어 있는 네이버의 서버나 유튜브서버에 내 PC나 노트북으로 접속하여 데이터를 수신한다는 의미입니다. 물론 접속과정에서 데이터를 송신하기도 하죠. 이렇게 데이터를 송수신하려면 데이터를 보내거나 받기 위해서 데이터의 목적지를 설정해야 하는데 이 데이터의 목적지 주소가 바로 IP입니다.

우리가 흔히 IP Address (IP주소)라고 부르는 바로 그것이지요.

이렇게 IP Address가 있어야 인터넷 상에 접속을 하여 여러 호스트들과 데이터를 주고 받을 수 있게 되는 것입니다. 현재 IP주소의 체계는 IPv4방식과 IPv6방식으로 구성되어 있는데 우리가 주로 사용하는 방식은 IPv4방식입니다. 개개인 PC의 인터넷 설정창에서 아래와 같은 네트워크 속성창을 보신적이 있으실 겁니다.

바로 여기에서 IP 주소를 설정할 수 있습니다. 지금 선택해놓은 "인터넷 프로토콜 버전 4(TCP/IPv4)"보이시죠? 여기에 들어가게 되면 IPv4 규격에 따른 IP 주소를 설정할 수 있는 속성창이 있습니다.

(참고로 "인터넷프로토콜 버전 6(TCP/IPv6)"도 선택 가능한 것을 확인 할 수 있습니다.)

보통 일반적인 가정집에서는 자동으로 할당되는 IP 주소를 사용하기 때문에 위와 같이 "자동으로 IP 주소 받기"가 설정되어 있습니다.

IPv4는 '192.168.123.001'과 같이 숫자와 '.'으로 이루어져 있으며 각각의 칸에는 0 ~ 255까지의 수를 입력 할 수 있습니다. 사용법에 대해서는 다음 포스팅에서 자세히 다룰 예정이니 다음 포스팅을 참조 해 주십시오.

자 이제 IP가 무엇인지 감을 잡으셨으면 다음으로 넘어가 보겠습니다.

이제 IP(Internet Protocol)을 이용하여 IP Address(IP 주소)를 할당하고 나면 이 IP 주소를 가진 호스트들 끼리 어떻게 데이터를 송수신 할 것인가? 에 대한 규격도 필요하겠죠? 그게 바로 TCP와 UDP입니다. 우리가 흔히 평소에는 TCP/IP라고 붙여서 사용하지만 TCP와 IP는 다른 내용이었던 것입니다. 그리고 TCP에 비해 UDP가 간단하기 때문에 UDP에 대해서 먼저 이야기 해 보겠습니다.

2. UDP

UDP는 User Datagram Protocol의 약자라고 이야기 했었습니다. 여기서 Datagram이란 UDP로 주고 받는 데이터의 단위를 의미합니다. 이 Datagram에는 우리가 주고받아야 할 실제 데이터 뿐만 아니라 송신측주소데이터와 수신측주소데이터, 그리고 데이터(패킷)의 순서번호 데이터도 포함하고 있습니다.

여기서 패킷에 대해서 잠깐 이야기 하자면 패킷이란 Package(패키지)와 Bucket(버킷)의 합성어로 우리가 주고받고자 하는 데이터의 최소단위를 이야기 합니다. 우리는 여러가지 영상이나 이미지 데이터를 주고받으려면 해당 영상이나 이미지를 한번에 통째로 받는것이 아닌 패킷단위로 쪼개어서 주고받는 것입니다.

이 UDP방식은 송신측에서 수신측과 연결이 되었는지 또는 전송한 데이터의 수신상태가 양호한지를 확인하지 않고 그 상태에 관계없이 지속적으로 전송만 하는 방식입니다. 즉 데이터를 주고 받을 때 데이터를 보낸다거나 받는다는 사전 신호절차를 거치지 않아서 속도가 매우빠릅니다. 대신에 신뢰성이 낮겠지요. 그래서 빠른 응답성이 필요한 통신에 적합합니다. 예를들어 동영상 스트리밍서비스가 있겠네요.

3. TCP

그럼 이번에는 TCP에 대해서 알아볼까요?

TCP는 Transmission Control Protocol의 약자로 호스트 사이의 통신 표준 및 네트워크 라우팅 및 상호연결에 대한 자세한 규칙을 지정하는 규약으로 UDP보다 훨씬 신뢰성이 뛰어난 것이 장점입니다. 아까 위에서 UDP는 주고 받아야 할 데이터 패킷을 포함하고 송수신주소를 가진 Datagram단위로 데이터를 주고받는다고 하였으나 TCP는 사전에 송신측과 수신측의 연결상태를 체크하고 이 신뢰가 보장된 연결을 바탕으로 데이터를 주고받기 때문에 데이터 패킷단위로 데이터를 송수신 합니다.

(TCP의 데이터 패킷에는 수신측 주소정보와 제어부호를 가지고 있으며 UDP의 Datagram단위처럼 TCP에서는 세그먼트 단위로 불립니다.

TCP를 이용한 통신을 풀어서 보자면 위와 같다고 이야기 할 수 있습니다. UDP라는 다르게 꼼꼼하죠? TCP는 또한 데이터를 주고 받을 때 데이터 패킷의 순서를 보장하고 수신측에서도 받은 패킷을 재조립하여 완성된 데이터로 변환하는 등의 과정을 거치기 때문에 신뢰성이 매우 높아 우리가 일상적으로 사용하는 거의 모든 컴퓨터 통신에 TCP가 사용됩니다. 웹브라우저를 통한 WWW접속 및 이메일, 파일전송 등등.

오늘은 이렇게 Ethernet을 통한 Communication Protocol인 TCP, UDP, IP에 대해서 알아보았습니다.

다음 포스팅에서는 실제 TCP/IP 사용법에 대해서 자세히 이야기 해 보겠습니다.

감사합니다.

 

제 블로그를 방문해 주셔서 감사합니다.

도움이 되셨다면 공감(좋아요) 부탁드리고,

댓글은 다른분들께도 좋은 정보일 수 있으니

공개로 부탁드립니다.

여러분의 작은 정성이 좋은 포스팅을 생산하는

힘이 된답니다. :)

감사합니다.

반응형

댓글