전체 흐름
데이터 통신의 전체 흐름과 OSI 각 계층에서 무슨 일이 일어나는지 살펴보자. 이 글에서의 데이터통신은 표준 프로토콜인 OSI 7계층을 기반으로 하며 2계층에서는 Ethenet을 3계층에서는 IP를 4계층에서는 TCP를 사용한다고 생각한다. OSI 각 계층의 핵심 기능은 아래와 같다.
- 응용 계층(세션, 표현 계층 포함) : 응용 계층의 프로토콜 정의
- 전송 계층 : 종단 간 데이터 전송의 오류 제어, 흐름 제어
- 네트워크 계층 : 라우팅
- 데이터링크 계층 : 네트워크 장비 간의 오류 제어, 흐름 제어
- 물리 계층 : 비트 변환, 비트 전송
네트워크 구성도
아래의 네트워크가 있다. 총 세 개의 사설 네트워크 192.168.1.0/24, 192.168.10.0/24 ,172.168.0.0/16로 구성되어 있다.
위의 네트워크에서 호스트가 웹 서버로 요청을 보내면 아래와 같이 데이터가 전송되면서 캡슐화와 역캡슐화가 진행된다. 각 장치별로 어떤 일이 일어나는지 살펴보자.
호스트
호스트에서 진행되는 과정이다. 캡슐화가 이뤄지고 시그널로 변환되어 전송된다.
스위치 A
스위치 A에서 진행되는 과정이다. 스위치는 목적지 MAC주소를 보고 이더넷 프레임을 전송한다.
라우터 A
라우터 A에서 진행되는 과정이다. 라우터는 목적지 IP 주소를 보고 패킷을 라우팅한다. NAT 장치(라우터 A)에 의해 출발지 IP 주소가 변환된다.
라우터 B
라우터 B에서 진행되는 과정이다. 라우터는 목적지 IP 주소를 보고 패킷을 라우팅한다. NAT 장치(라우터 B)에 의해 출발지 IP 주소가 변환된다.
스위치 B
스위치 B에서 진행되는 과정이다. 스위치는 목적지 MAC주소를 보고 이더넷 프레임을 전송한다.
웹 서버
웹 서버에서 진행되는 과정이다. 역캡슐화가 이뤄지고 최종적으로 메시지가 웹 서버 프로세스로 전송된다. OSI 7 계층, TCP/IP 스택에 의해 체계적으로 데이터 통신이 이루어진다.
마무리
응용 프로그램을 만드는 프로그래머가 위 복잡한 과정을 자세히 알 필요는 없다. 그저 네트워크 계층의 IP주소와 전송 계층, 응용 계층의 프로토콜만 알아두면 소켓 프로그래밍(네트워크 프로그래밍) 하기에 충분하다. 그 외 작업은 운영체제, 기타 네트워크 장비들이 알아서 해주기 때문이다. 웹 개발의 경우 웹 브라우저, 웹 서버 등의 프로그램을 사용하기 때문에 소켓 프로그래밍도 할 필요 없다.
'Computer Science > Network' 카테고리의 다른 글
[데이터통신 - 11] 응용 계층 (0) | 2022.09.17 |
---|---|
[데이터통신 - 10] 전송 계층 (0) | 2022.09.07 |
DMZ (0) | 2022.09.02 |
사설망, NAT (0) | 2022.08.30 |
[데이터통신 - 9] 네트워크 계층 (2) (0) | 2022.08.17 |