컴퓨터 프로그래밍 공부/네트워크 서버

네트워크 미시적으로 살펴보기

뽀또치즈맛 2024. 10. 27. 13:37

 

이번에 학습한 개념은 크게 세 가지 이다.

 

통신 과정에서 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미하는 프로토콜

통신이 일어나는 구조를 계층화한 네트워크 참조 모델

통신 과정에서 이루어지는 캡슐화(역캡슐화)이다.

 

프로토콜

네트워크에도 언어와 유사한 개념이 바로 프로토콜이다. 

언어가 정보를 주고받기 위해 사회적으로 합의돈 의사소통 방식이라면,

프로토콜은 노드 간에 정보를 올바르게 주고받기 위해 합의된 규칙이나 방법을 의미한다.

 

현대 인터넷은 호스트 간 패킷을 교환하는 방식으로 대부분 패킷 교환 방식을 사용한다.

패킷은 택배와 유사한 개념으로, 

 

1. 우선 페이로드를 담고

2. 도착지 정보인 헤더를 작성하고 첨부

3. 네트워크 장비를 통해 발송

 

과정을 거친다.

 

즉, 서로 다른 통신 장치들이 정보를 주고받으려면 프로토콜이 통해야 한다.

 

IP는 패킷을 수신지까지 전달하기 위해 사용되는 프로토콜이다.

 

위 문장에서 IP는 프로토콜이라는 것처럼, IP라는 규칙으로 정보를 주고받음으로써

패킷을 수신지까지 올바르게 전달할 수 있음을 의미한다.

 

ARP는 192.168.1.1과 같은 형태의 'IP 주소'를 A1:B2:C3:D4:E5:F6과 같은 형태의

'MAC 주소'로 대응하기 위해 사용되는 프로토콜이다.

 

위 문장에서 ARP는 프로토콜이다.

IP 주소를 MAC 주소로 대응하기 위해서는

ARP라는 규칙으로 정보를 주고받아야 함을 의미한다.

 

TCP는 UDP에 비해 일반적으로 느리지만 신뢰성이 높은 프로토콜이다.

 

위 문장에서 TCP와 UDP는 모두 프로토콜이다.

TCP라는 규칙으로 정보를 주고받는 것은 UDP라는 규칙으로

정볼르 주고받는 것이 비해 데이터를 더 확실하게 전송할 수 있다고 짐작할 수 있다.

 

TCP와 UDP의 헤더를 비교하면

TCP는 좀 더 상세한 데이터를 많이 담고 있다.

 

이처럼 프로토콜의 종류는 매우 다양하다.

 

네트워크 계층

 

OSI 모델

 

osi 모델은 국제 표준화 기구에서 만든 네트워크 참조 모델이다.

통신 단계를 7개의 계층으로 나누는데, 최하위 계층에서 최상위 계층순으로 각각

물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이다.

 

 

1. 물리 계층

 

물리 계층은 OSI 모델의 최하단에 있는 계층으로,

1과 0으로 표현되는 비트 신호를 주고받는 계층이다.

가장 근원적인 통신이 이루어지는 계층이라 할 수 있습니다.

컴퓨터는 기본적으로 0과 1만 이해한다. 

이렇듯 0과 1로 이루어진 비트를 통신 메체에 맞는 신호로

운반되도록 비트 데이터의 변환이 이루어지고 통신 매체를 통한

송수신이 이루어지는 계층이 바로 물리 계층이다.

 

 

2. 데이터 링크 계층

 

데이터 링크 계층은 네트워크 내 주변 장치 간의 정보를 올바르게 주고받기 위한 계층이다.

이더넷을 비롯한 많은 LAN 기술이 데이터 링크 계층에 녹아 있다.

여기서 물리 계층을 통해 주고받은 정보에 오류가 없는지 확인하고,

MAC 주소라는 주소 체계를 통해 네트워크 내 송수신지를 특정할 수 있다.

때로는 전송 과정에서 발생할 수 있는 충돌 문제를 해결하는 계층이기도 하다.

 

 

3. 네트워크 계층

 

네트워크 계층은 메시지를 수신지까지 전달하는 계층이다.

데이터 링크 계층에서 네트워크 내 주변 장치 간의 통신이 이루어진다면,

네트어크 계층에서 네트워크 간의 통신이 이루어진다.

예컨대 네트워크 계층은 인터넷을 가능하게 하는 계층이라고 할 수 있다.

네트워크 계층에서는 IP주소라는 주소 체계를 통해 통신하고자 하는 수신지 호스트와

네트워크를 식별하고, 원하는 수신지에 도달하기 위한 최적의 경로를 설정한다.

 

 

4. 전송 계층

 

전송 계층은 신뢰성이 있고 안전성 있는 전송을 해야 할 때 필요한 계층이다.

패킷이 정상적으로 보내졌는지, 중간에 유실된 정보는 없는지, 여러 개의 패킷을 보낼 때

순서가 뒤바뀐 것은 없는지 등을 확인해야 할 때가 있다.

이때 전송 계층에서는 패킷의 흐름을 제어하거나 전송 오류를 점검해 신뢰성 있고

안정적인 전송이 이루어지도록 한다.

이 외에도 포트라는 정보를 통해 실행 중인 응용 프로그램의 식별이 이루어지기도 한다.

 

 

5. 세션 계층

 

세션 계층은 이름 그대로 세션을 관리하기 위해 존재하는 계층이다.

세션이라는 용어는 다양한 상황에서 폭넓게 사용되지만,

일반적으로 통신을 주고받는 호스트의 응용 프로그램 간 연결 상태를 의미한다.

세션 계층에서는 이러한 연결 상태를 생성하거나 유지하고, 종료되었을 때 끊어 주는 역할을 담당한다.

 

 

6. 표현 계층

 

표현 계층은 마치 번약가와 같은 역할을 하는 계층이다.

사람이 이해할 수 있는 언어인 문자를 컴퓨터가 이해할 수 있는 코드로 변환하거나,

압축, 암호화와 같은 작업이 표현 계층에서 이루어진다.

 

 

7. 응용 계층

 

응용 계층은 OSI 참조 모델 최상단에 있는 계층으로

사용자 및 사용자가 이용하는 응용 프로그램과 가장 밀접히 맞닿아 있는 계층이다.

응용 계층은 사용자가 이용할 응용 프로그램에 다양한 네트워크 서비스를 제공한다.

예를 들어 윕 브라우저 프로그램에 웹 페이즈를 제공하거나

이메일 클라이언트 프로그램에 송수신된 이메일을 제공하는 등

실질적인 네트워크 서비스가 제공되는 계층이 바로 응용 계층이다.

응용 프로그램에 다양한 서비스가 제공될 수 있는 만큼 타 계층에 비해 응용 계층에 속한 프로토콜이 많다.

 

 

TCP/IP 모델

 

OSI 모델은 주로 네트워크 이론적으로 기술하고 이해할 때 사용하는 반면에

TCP/IP 모델은 이론 보다는 구현에 중점을 둔 네트워크 참조 모델이다.

OSI 모델의 목적이 '이상적 설계'에 가깝다면, TCP/IP 모델은 '실용적 구현'에 가깝다.

 

1. 네트워크 액세스 계층

 

네트워크 엑세스 계층은 링크 계층 또는 네트워크 인터페이스 계층이라고 부른다.

이 계층은 OSI 모델의 데이터 링크 계층과 유사하다.

 

전통적인 TCP/IP 모델에서 최하위 계층은 OSI 모델과

TCP/IP 모델을 대응하여 설명하기 위해 TCP/IP 모델에 물리 계층을 추가해

TCP/IP 모델을 5계층으로 확장하여 기술하기도 한다.

 

2. 인터넷 계층

 

인터넷 계층은 OSI 모델에서의 네트워크 계층과 유사하다.

 

3. 전송 계층

 

전송 계층은 OSI 모델에서의 전송 계층과 유사하다.

 

4. 응용 계층

 

응용 계층은 OSI 모델의 세션 계층, 표현 계층, 응용 계층을 합친 것과 유사하다.

 

 

캡슐화와 역캡슐화

 

패킷은 송신 과정에 캡슐화가 이루어지고, 수신 과정에서 역캡슐화가 이루어진다.

 

캡슐화

패킷 교환 네트워크에서 메시지는 패킷 단위로 송수신된다.

송신 과정에서 헤더 및 트레일러를 추가해 나가는 과정을 캡슐화라고 부른다.

혹은 영어 그대로 인캡슐레이션이라고도 한다.

 

역캡슐화

역캡슐화는 받는 입장에서 생각해 보면 된다.

네트워크에서 어떤 메시지를 수신할 떄는 캡슐화 과정에서 붙였던 헤더(및 트레일러)를

각 계층에서 확인한 뒤 제거한다.

이를 역캡슐화라고 한다.

영문 그대로 디캡슐레이션이라고도 부른다.

 

PDU

각 계층에서 송수신되는 메시지의 단위를 PDU라고 한다.

즉, 상위 계층에서 전달받은 데이터에 현재 계층의 프로토콜 헤더를 추가하면

현재 계층의 PDU가 된다.

 

PDU는 주로 전송 계층 이하의 메시지를 구분하기 위해서 사용한다.