인터넷의 원리 PART 9: TCP/IP와 UDP/IP (번외편)

in kr •  7 years ago 

안녕하세요 여러분. 참새입니다.

사실 번외편을 할 생각은 없었는데, 인터넷의 원리 시리즈가 진도를 나갈 수록 어려운 단어도 많이 나오고 어려운 컨셉도 많이 나오기 떄문에 여러 부분 헷갈리는 점이 있으실 거라고 생각합니다. (물론, 저도 그랬었습니다 ^^)

그래서 이번에는 인터넷의 원리 시리즈 ‘번외편’을 준비해 봤습니다. (통신에 관심있는 분들만 읽어주셔도 무방할 것 같습니다!)

TCP/IP는 TCP랑 관련된 것 같고, UDP/IP는 뭔가…TCP/IP의 경쟁 상대같은 느낌이 드시나요? ㅎㅎ 맞습니다!

그래서 이번 번외편에서는 TCP/IP와 UDP/IP의 차이점을 다뤄보도록 하겠습니다.

우선, 기억을 되살려서 TCP/IP를 정리해 보도록 하겠습니다.

TCP는 인터넷의 원리 PART 8에서 다뤘던 내용인데요, TCP란 트랜스미션 컨트롤 프로토콜(Transmission Control Protocol)이라는 인터넷 상에서 가장 유명한 프로토콜들 중 하나이며, ‘배달 확인 서비스’라고 생각하시면 됩니다.

배달 확인 서비스인 TCP는 패킷의 형태로 전달되는 정보들이 제대로 목표 지점까지 도착하는지 확인해주고, 빠진 패킷이 있거나 불량인 패킷이 있으면 다시 배달을 받게 해줍니다. 모든 소포들(패킷들)이 배달이 확실하게 된 것을 확인한 후에

“고객님의 소포들은 안전하게 배달되었습니다.” 라고 알려줍니다 ^^

하지만 호기심이 많으신 우리 스티머분들께서는 이런 생각을 해보셨을 겁니다.

“그럼 TCP/IP는 뭐지? TCP랑 관련된 것 맞나?”
“UDP/IP는 뭐지? TCP/IP랑 다른 건가?”

너무 좋은 질문입니다! 지금 현재 가장 널리 쓰이는 프로토콜인 TCP/IP와 UDP/IP를 확실하게 짚고 넘어가지 않으면 뭔가 마음에 걸리는게 있는 느낌이 계속 들겁니다 ㅎㅎ

TCP와 UDP는 모두 정보를 패킷의 형태로 인터넷상에서 전송할 때 쓰이는 프로토콜입니다. TCP와 UDP는 둘 다 인터넷 프로토콜 (Internet Protocol; IP) 위에 설계된 프로토콜들입니다. 간단히 말하자면,

“IP 주소가 있는 목표 지점으로 정보를 전달하자!” 라는 기초 전제 조건이 있는 상태에서 ‘어떤 방법’으로 정보를 전달해주는지 나타내주는게 TCP와 UDP 이죠.

TCP와 UDP 모두 ‘어떤 방법’으로 정보를 전달해주는지 나타내주는 프로토콜인데, 정보들이 산이나 바다나 저희 친구 집으로 전달될 때 쓰이는 프로토콜이 아.닙.니.다. TCP와 UDP는 정보들이 ‘특정 IP 주소’로 전달될 때 쓰이는 프로토콜들입니다 ^^ (정보를 산이나 바다로 보내는데 인터넷 프로토콜이 쓰일리가 없겠죠 …? ㅎㅎ)

‘특정 IP 주소’로 정보를 보낼 때 ‘어떤 방법’으로 정보를 전달해줄 것인지 결정하는 프로토콜이 TCP와 UDP이기 때문에, 조금 더 구체적으로 표현하자면 ‘TCP/IP’ 와 ‘UDP/IP’라고 표기합니다.

IP 위에서 쓰이는 TCP 프로토콜 = TCP/IP
IP 위에서 쓰이는 UDP 프로토콜 = UDP/IP

간단하죠? ^^ 자, 이제 TCP/IP와 UDP/IP의 차이점을 좀 더 구체적으로 보도록 하겠습니다!

TCP/IP는 인터넷상에서 정보들이 전달될 때 ‘배달 확인 서비스’의 역할을 한다고 배웠습니다. 소포를 배달할 때 우체국 배달부 아저씨께서 소포가 제대로 배달되었는지 확인해 주는 서비스죠. 확실하게 배달이 되길 바라는 소포가 있을 때는 너무 좋은 서비스죠!!

저희가 실제로 택배를 보낼 때 ‘배달 확인 서비스’를 항상 사용하나요? 물론, 중요한 소포를 보낼 때는 배달 확인 서비스가 필수겠지만, 추가 비용이 들기 때문에 싼 소포를 보낼 때는 배달 확인 서비스는 사용하지 않고 그냥 보내버리죠 (“잃어버리든 말든…뭐 운 좋으면 잘 도착하겠지…?”라는 마인드 저와 똑같이 갖고 계신거 다 알고 있습니다 ^^)

TCP/IP는 정보를 ‘받는 사람’이 모든 소포들을 ‘순서대로’ 그리고 ‘모두’ 받을 수 있게 보장을 해줍니다. 예를 들자면, 웹 페이지를 들어갈 때는 웹 서버가 순서대로, 모든 패킷들을 TCP/IP를 통하여 저의 컴퓨터로 보내주기 때문에 웹 페이지가 ‘원래의 형태’로 저의 컴퓨터에 짜잔! 하고 나타나죠. (웹 페이지가 반대로 뒤집어져서 뜨고 그런 적은 없으시죠..?? ㅎㅎ TCP/IP가 옳은 순서대로 정리해주기 때문입니다!)

하지만 TCP/IP 말고도 정보를 전달하는 방법의 프로토콜들은 있습니다. 항상 TCP/IP를 사용하는 것은 아니죠. 그 중의 하나가 ‘UDP/IP’라고 하는데요, UDP는 유저 데이터그램 프로토콜 (User Datagram Protocol)이라고 합니다. UDP는 물론 TCP와 같은 배달 확인 서비스가

없.습.니.다.

그렇다면 UDP/IP를 사용하여서 정보를 전달하면 어떻게 될까요?

간단합니다! 보내는 사람은 받는 사람이 제대로된 패킷(정보)를 받든 말든 신경안쓰고 그냥 계~~~~속 정보를 전송합니다.

패킷이 없어지면 어떡하냐구요? 그냥 무시하고 계속 보냅니다.
패킷이 순서대로 안온다구요? 그냥 무시하고 계속 보냅니다 ^^;;

이렇게 생각하면 UDP는 아무도 안쓸 것 같이 보이시나요? 하지만 정보를 보내는 속도가 중요하고 정보들이 도중에 없어지는게 필요 없는 경우에는 UDP가 TCP보다 훨씬 더 활용적으로 쓰입니다!

웹 페이지가 로딩될 때는 순서대로, 모든 패킷들이 전달이 되어야지만 정보를 받는 사람이 제대로된 웹 페이지를 볼 수 있지만, 라이브 브로드캐스팅(라이브 TV)의 경우를 생각해볼까요?

제가 라이브 TV에서 하고 있는 야구 중계를 시청하고 있는데 실제로 홈런을 치고 1분 뒤에 제 TV에 화면이 뜨면 답답해 미쳐버리겠죠…? ^^;; 차라리 부분 부분 끊기더라도 실시간 중계가 되는게 중요한 라이브 TV에서는 UDP를 사용하는 것이 TCP를 사용하는 것보다 더 효과적일 겁니다.

간단하게라도 TCP/IP와 UDP/IP의 차이점을 꼭 설명해드리고 싶었습니다.

오늘의 포스팅 한 줄 정리:

(1). TCP/IP는 IP 위에서 쓰이는 TCP, UDP/IP는 IP 위에서 쓰이는 UDP
(2). TCP = 배달 확인 서비스, UDP = 배달 확인 서비스 없는 총알 택배
(3). TCP = 정보들이 순서대로, 확실하게 배달되어야할 때 사용, UDP = 끊임없이 정보를 빠르게 보내야하는 경우에 사용

이번 포스팅은 예정에 없던 번외편이라서 정보가 많이 들어가 있었는데요, 궁금하셨던 분들은 즐겨주셨으면 좋겠습니다! 중요한 부분이니까요 ㅎㅎ

다음 포스팅에서 뵈요~

제 포스팅이 유익하였다면 보팅 , 리스팀, 팔로잉 부탁드립니다 ^^

인터넷의 원리 PART.1: 인터넷이란 무엇인가?
https://steemit.com/kr/@kim066/part-1
인터넷의 원리 PART 2: 와이어, 케이블, 그리고 와이파이 (Wifi) - 1
https://steemit.com/kr/@kim066/part-2-wifi-1
인터넷의 원리 PART 3: 와이어, 케이블, 그리고 와이파이 (Wifi) - 2
https://steemit.com/kr/@kim066/part-3-wifi-3
인터넷의 원리 PART 4: IP 주소 & DNS – (1)
https://steemit.com/kr/@kim066/part-4-ip-and-dns-1
인터넷의 원리 PART 5: IP 주소 & DNS – (2)
https://steemit.com/kr/@kim066/part-5-ip-and-dns-2
인터넷의 원리 PART 6: IP 주소 & DNS – (3)
https://steemit.com/kr/@kim066/part-6-ip-and-dns-3
인터넷의 원리 PART 7: 패킷, 라우팅, 그리고 신뢰성 – (1)
https://steemit.com/kr/@kim066/part-7-1
인터넷의 원리 PART 8: 패킷, 라우팅, 그리고 신뢰성 – (2)
https://steemit.com/kr/@kim066/part-8-2

Authors get paid when people like you upvote their post.
If you enjoyed what you read here, create your account today and start earning FREE STEEM!
Sort Order:  

인터넷 용어와 쓰임을 잘 알게 되었습니다
좋은글 감사합니다 ^^*

어려운 내용을 쉬운 비유로 정리 잘 하셨네요. 쏙쏙 잘 들어오네요.
좋은들 잘 보고갑니다! ^_^

시리즈 잘 읽고 있습니다.

그런데 말입니다 ~~^^

모든 내용을 이해하지는 못합니다.

마지막 간추린 내용정도만 기억하셔도 좋을듯 싶습니다 :)

  ·  7 years ago (edited)

예~~^^!
감사합니다.

Screenshot_20180309-070854.jpg

오늘도 재미있게 좋은 글 읽고 갑니다.

즐거운 하루 보내세요

감사합니다 ^^

개발자이시군요. 반갑습니다. ^^
덕분에 저의 지식의 +1 되었네요.
이전 글도 꼼꼼히 살펴볼께요~~ 좋은 글 감사합니다.

잘 읽었습니다. 사실 깊게 공부할 게 아니라면 (3) 정리하나만 잘 기억해놓고 있으면 되는 문제이긴 하죠 ㅎㅎ

great post dear

TCP와 UDP에 대해서 잘 알고 갑니다^^
항상 쓰지만 인터넷에 대해서 잘 몰랐었느데 ㅎㅎ감사합니다!

방문해주셔서 감사드립니다 :)

역시나 공부를 해도 될 내용
감사히 보고 갑니다.ㅎ

좋은 정보글 감사드립니다 !!
블로그 보다 보니깐 좋은글들이 많아서 보팅, 팔로워 눌리고 가요 !
괜찮으시면 맞팔 부탁드릴게요 ㅎ
오늘도 좋은 저녁 되세요 :)

대학교때 TCP/IP 공부했던 기억이 나네요 ㅎ
엄청 디테일하게 정리를 잘 해주셨네요
이 정도는 대학교 강의 수준인데요?
@kim066 님께서 정리해주신 내용만 이해한다면 한 학기 커리큘럼이 끝날듯싶습니다 ㅎㅎ
우연히 구경하다가 들렸는데 팔보하고 갑니다~ 반갑습니다~:)

UDP connections are faster I think and some VPNs use it if UDP ports could be opened from ISPs.

오늘도 엄청 상세하고 자세한 설명을 읽고 갑니다. 매일 매일 소중한 교육자료 너무 너무 재미있습니다.

자세한 설명 감사드립니다^^ tcp와 udp가 이런 것이군요~

그럼 tcp는 직렬프로토콜이고, udp는 병렬프로토콜이다. 이렇게 말해도 되나요? tcp는 일반 문서에 쓰이고, udp는 그래픽 데이터처럼 병렬 방식의 데이터에 쓰이는 건가요? udp는 그래픽 데이터 전송 전용이다. 이렇게 말해도 되나요?

질문이 너무 많네요. ^^ 항상 쓰는 인터넷. 덕분에 기술 정보를 얻게 되네요. 팔로우 합니다.

제가 기술자라 그런지 내용이 너무 쉽네요 ... ㅎㅎ
좋은 글 잘 보았습니다. 감사합니다.

중간 부터 봤는데, 시간 내서 꼭 시리즈의 처음부터 다 읽어봐야겠어요!
좋은 정보 감사합니다!

  ·  7 years ago (edited)

그런데 말입니다 저멘트 너무 좋아요 ^^
오늘도 잘보고 갑니다 .

감사합니다 @eunstar 님 ^^

안녕하세요, 좋은 글 잘 읽었습니다. 저도 지난 주에 스팀잇에 가입하여 처음으로 글을 포스팅해 보았습니다. 주로 IT에 관해 글을 써볼 예정으로 좋은 인연 이어가시죠 팔로우 부탁 드립니다!

TCP/IP와 UDP/IP가 뭘까 어려울 것 같다고 생각하며 포스팅을 봤는데, 마지막에 예시가 정말 이해하는데 딱 와닿았던 것 같습니다. 아무리 어렵고 좋은 정보라도 모든 사람이 쉽게 이해할 수 있게 설명하는게 정말 중요한 능력이 아닌가 생각하고 가네요. 잘보고 갑니다 ^^