본문 바로가기

C#

[C#] Network Programming - Communication Model

한 컴퓨터에서 다른 컴퓨터로 "Hello World!"를 전송하기 위해

네트워크 상에서는 어떤 과정을 거칠까?


 

 

 

네트워크 통신은 택배 배송 시스템과 유사하다.

 

 

다음과 같은 정보로 택배를 배송한다고 가정하자

From. A아파트 201호

To. B아파트 101호

 

택배를 배송하는 방법을 다음과 같이 이루어진다.

상품 - 배송 정책 - 최종 주소 - 단지 경로 - 택배 운송

 

A아파트 201호 - A아파트 경비실 - 택배 배송센터  - B아파트 경비실 - B아파트 101호 

 

 

네트워크 통신도 이와 비슷하게 운영된다.

TCP/IP 모델: 어플리케이션 - 트랜스포트 - 네트워크 - 데이터 링크 - 피지컬

 

 

A아파트 201호의 관점에서 보았을 때

B아파트 101호까지의 택배 배송 방법은

네트워크 통신에서의 5가지 계층이 왼쪽 어플리케이션부터 순서대로 이루어지는 것과 같다.

 

반대로 B아파트 101호의 관점에서 보면

피지컬 - 데이터 링크 - 네트워크 - 트랜스포트 - 어플리케이션 의 역순으로

패킷(포장)을 열게 된다.

 

 

 

 

어플리케이션

: 유저 인터페이스.

ex) HTTP, FTP, DNS.

 

트랜스포트

: 전송 확인 및 오류 해결.

ex) TCP, UDP.

 

네트워크

: 네트워크 간 경로 설정.

ex) IPv4, IPv6.

관련 장치: 라우터

 

데이터 링크

: 네트워크 내 경로 설정.

ex) 이더넷, PPP

관련 장치: 스위치

 

피지컬

: 신호 처리.

ex) 케이블, 허브.

 

 

 

 

 

이전에는 '7계층 주소'라는 보편적인 OSI 7계층 모델을 채택했다.

 

OSI 모델: 어플리케이션 - 프레젠테이션 - 세션 - 트랜스포트 - 네트워크 - 데이터 링크 - 피지컬

(왼쪽부터 7~1계층으로 불린다)

 

7계층 주소는 도메인을 의미하며

3계층 주소는 네트워크 주소인 IP를 의미하고, 라우터 장치와 관련이 있다.

2계층 모델은 MAC address이며, 스위치 장치와 관련이 있다.

 

 

이러한 각각의 계층 장치는 서로 다른 제조 업체에서 생산되기에,

만약 어떤 단말기가 고장나 수리를 하게 될 경우

업체에서는 수리를 위해 몇 가지 테스트를 거치는데

 

이는 해당 단말기가 어떤 계층에서 문제를 보이고 있는지를

테스트하면서 알아내고자 하는 것이다.


 

 

 

결론적으로, 우리가 "Hello World!"라는 10자의 문자열을 전송할 때

단순히 Hello World라는 간단한 정보만 존재하는 게 아니라,

 

보내는 사람의 주소, 받는 사람의 주소, 찾아가는 경로 등...

각 패킷이 조금씩 추가되어 보내진다.

 

따라서 실제로 네트워크의 흐름을 생각해 보면

우리 눈에는 보이지 않는 몇 가지 정보가 계속해서 추가되기 때문에

 

10byte를 보냈다고 해서 실제 10byte의 양만 네트워크 통신이 이루어지는 것이 절대 아니므로

이다음 더 방대한 양의 데이터를 전송하려 할 경우

네트워크 통신 데이터까지 고려해 조심히 사용해야 한다!

 

 

 

 

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버