[인벤기고컬럼 6] TCP, 그리고 UDP 쉽게 알아보는 두 개념과 차이점

벌써 여섯 번째 연재다. 처음에 이렇게 길게 연재할 수 있을까 생각했는데, 인내를 가지고 기회를 주신 인벤 측과 재미도 없는 글을 가끔 들러주는 독자분들께 깊은 감사를 드린다. 이번 칼럼에서는 TCP/IP의 계층화와 게임 구현에 사용되는 TCP 와 UDP 의 차이점에 대한 이야기를 해보겠다.

■ IP. 모든 것의 허리
 
아마 많은 프로그래머들에게 익숙할 이름인 TCP/IP 라는 프로토콜 체계는 나중에 두 개로 분리된 것이 아니라, 인터넷 프로토콜 표준이 제정될 때부터 지금처럼 두 개로 분리되어 제안되었다. David Clark 교수님의 88년 논문은 TCP/IP 를 설계할 때 어떤 우선순위로 설계되었는지에 대해서 설명하고 있는데, 그중에서 “여러 종류의 데이터 전달 방식을 지원할 것 (multiple types of delivery services)” 이라는 목적을 달성하기 위해서 가장 기본이 되는 기능만을 IP 에 포함시키고, 그 위에 TCP 라는 새로운 계층을 얹는 형태가 된 것이다. (관련해서 설명이 더 필요한 분들은 블로그에 별도로 정리한 “인터넷은 어떤 기준으로 설계되었을까” 라는 글과 “모듈화, end-to-end 원칙, 그리고 fate-sharing” 이라는 글을 참고하길 바란다.) 그리고 이를 도식화 하면 TCP/IP의 관계는 다음 그림처럼 모래 시계 모양으로 표시한다.
.
i12467896678.jpg
▲ TCP/IP 모델은 IP 가 허리인 모래시계 형태로 표현된다.(출처 : ifew)

이 그림에서 주의 깊게 바라볼 부분은 잘록한 허리 부분인 IP 다. 이건 후세의 누군가가 꿈보다 좋은 해몽으로 붙여놓은 것도 아니고, 우연의 결과물도 아닌 TCP/IP 의 의도된 디자인인데, 어떤 통신 관련 하드웨어 기술이든 IP 만 구현하면 되고, 어떤 응용 프로그램이든 IP 위에서만 동작하게 하면 된다는 실로 엄청난 의미를 내포한다.

유선 랜 (Ethernet 이라 불림)과 WiFi 모두 IP 주소를 쓰고, 우리가 잘 인식하지는 못하지만, Bluetooth, LTE 나 3G 도 통신을 할 때는 IP 주소를 부여받아 통신한다. 그 덕에 까페의 WiFi 에서나 길을 걸으면서 LTE 상에서도 똑같은 앱을 이용해 스마트폰에서 음악을 들을 수 있다. 즉 어떤 통신 방법이든 IP 를 구현하는 한, IP 위에서 동작하던 응용 프로그램을 지원하는 데 문제가 없으며, 어떤 응용 프로그램이든 IP 로 통신한다는 것을 전제만 하면 IP 를 지원하는 어떤 하드웨어 기술에서도 동작할 수 있다.

인벤기고컬럼 본문 더보기>

답글 남기기

댓글을 게시하려면 다음의 방법 중 하나를 사용하여 로그인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

Google+ photo

Google+의 계정을 사용하여 댓글을 남깁니다. 로그아웃 / 변경 )

%s에 연결하는 중