본문 바로가기

(비정기) Dlbo's Post

Design Pattern & Network, 4. 네트워크, 프로토콜.

한주나 지났는데도 몸상태는 쉣이군요.

괴기한 집 구조덕분인듯... 아무래도 자취방이라도 구해서 나가야 하지 않을까 싶습니다 -_-;;

------------------------------------------------------------------------------------------------

이번엔 디자인패턴을 제외해두고 네트워크의 기본구조중 프로토콜에 대해 포스팅하지요.

네트워크는 여러대의 컴퓨터가 일대 일, 혹은 다대 다나 다대 일, 일대 다의 관계로 데이터를

주고받는 영역입니다.

이렇게 여러 컴퓨터가 데이터를 주고 받기 위해서는 일정한 규약이 필요합니다.

규약이 없다면 아마 이리 되겠지요 -_-;;


사용자 삽입 이미지


으흠... 좀 쩌는듯 -_-;

이런 규약을 네트워크에서 프로토콜(Protocol)이라고 부릅니다.

네트워크상에서는 마치 신호등, 혹은 기본적인 대화법이라고 볼 수 있지요.

이 방식에는 여러가지가 있습니다.

1. TCP/IP

네트워크에서는 소통을 하기 위해 소켓(Socket)이라는 것을 씁니다.

포트라는 하나의 컴퓨터 내의 항구 같은 역할을 하는 친구들을 소켓당 하나씩 붙잡고,

소켓이 포트를 관리하면서 다른 컴퓨터와의 대화를 체크하지요.

TCP/IP는 1개의 컴퓨터와 대화할때마다 1개의 소켓을 사용합니다.

포트넘버야 아무래도 같이 쓰기도 하고 혼자 쓰기도 하고 한다지만,

소켓만큼은 1개의 연결에 대해 1개씩은 필요하다는 의미이지요.

이리하여 select모델 등을 사용하여 여러개의 소켓을 관리하는 방법을 써야 다대다, 혹은

일대다의 통신이 가능한 프로토콜이 TCP/IP입니다.

이 TCP/IP 프로토콜은 아래 친구들과 비슷하지요.

사용자 삽입 이미지

....

한번 적을 보면 끝장을 보는 특수부대입니다 -_-a

한개의 연결에 대해서 확실하게 데이터가 오고감을 체크하는 프로토콜이지요.

2. UDP 프로토콜

UDP프로토콜은 TCP/IP와 크게 다르진 않습니다만,

성격이 TCP/IP와 약간 다르다는 면이 있지요.

사용자 삽입 이미지

.....;;;

UDP는 소켓으로 그냥 쏩니다.

-_-;

그리고 그냥 받지요.

"알아서 받아... 귀찮어..." 라는거지요.

TCP/IP가 "나 못받았어 다시 해봐" 라고 패킷응답을 하는 반면,

UDP프로토콜은 그냥 네트워크상에 훽~ 던져놓고는 "내껀가... 가져가자..."

하고 대충 챙겨가는 그런 무심한 녀석이라는 것이지요.

4. 브로드캐스팅, 멀티캐스팅

브로드캐스팅과 멀티캐스팅은 정확히 말하면 프로토콜은 아닙니다.

UDP를 기반으로 한 통신모델이지요.

멀티캐스팅은 몇몇 대상을 잡고 여러 대상에 대해 패킷을 송신하는 방식으로,

일대 다 방식중 선별적인 방법으로 볼 수 있습니다.

이후 TCP/IP처럼 응답패킷 처리를 하면 TCP/IP인것처럼 돌릴 수도 있지요.

반면 브로드캐스팅은 UDP의 특성에 충실하게 그냥 뿌립니다.

마치 TV인양 -_-

한국어로 번역하면 "방송"이라는 말에 맞게

그냥 뿌립니다

ㅡ,.ㅡ;;

다만, 타겟이 정해진것이 아니기 때문에 어느 누구나 브로드캐스팅 방식과

전송되는 포트를 안다면 받아볼 수 있다는 것이 다르지요.

무전기와 비슷한 원리라고 볼 수 있습니다.

---------------------------------------------------------------------------------------------

다음 포스트에서는 TCP/IP 서버의 소스코드와 싱글턴패턴을 써볼 생각입니다.

사실 서버를 통채로 싱글턴패턴으로 쓰는건 아니지만 말이지요... =_= 그건 돌맞을 일이고 ㅋㅋㅋ;;