인터넷 통신의 계층 간 상호작용을 설명하는 모델에는 여러 종류가 있습니다.
초기 인터넷 호스트 요구사항을 정의한 RFC 1122에선 링크 계층, IP 계층, 전송 계층, 응용 계층, 이렇게 4개의 계층으로 구분합니다.
OSI 7 계층에서는 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 응용 계층, 이렇게 7개의 계층으로 구분합니다.
각 계층은 저마다 자기 윗단 계층을 지원하기 위해 수행해야 하는 역할이 있습니다.
(예시)
- 윗단 계층에서 데이터 블록을 수신합니다.
- 계층 헤더를 추가해 패킷을 꾸립니다.
- 데이터를 아랫단 계층으로 전달해송신 과정을 계속해 나갑니다.
- 헤더를 제거하여 수산된 데이터의 패킷을 풉니다.
- 수신된 데이터를 윗단 계층으로 전달해 수신 처리를 계속해 나갑니다.
각 층별로 역할을 간단히 정리하도록 하겠습니다.

1. 물리 계층 :
계층 구조의 아래로 가장 기본적인 하드웨어 전송을 지원합니다. 물리 계층의 역할은 네트워크로 연결된 컴퓨터, 즉 호스트 사이의 물리적 연결을 책임지는 것 입니다.
2. 링크 계층 :
물리적으로 연결된 호스트 사이의 통신 수단을 제공하는 것 입니다. 송신 호스트가 정보를 꾸려 물리 계층을 통해 정보를 보낼 수 있는 수단입니다.
링크 계층의 송수신 단위는 프레임이라고 합니다. 각 호스트는 링크 계층을 통해 서로에게 프레임을 주고 받습니다. 링크 계층의 역할을 나눠보면 다음과 같습니다.
- 특정 목적지에 주소를 부여해서 각 프레임에 기재토록 하여 호스트를 식별할 수단을 제공 합니다.
- 수신 측 주소와 데이터를 담을 수 있는 프레임의 포맷 정의를 합니다.
- 한 번에 데이터를 얼마까지 보낼 수 있는지 윗단 계층에서 알 수 있게끔 프레임의 최대 길이를 정의합니다.
- 물리 계층을 거쳐 전달된 신호를 의도된 호스트가 수신할 수 있게 프레임을 물리적인 전기신호로 변환하는 방법을 정의합니다.
의도된 호스트에 프레임이 전달될지 아닐지는 확률적으로 결정됩니다. 다양한 변수에 의해서 프레임이 아예 전달이 되지 않을 수도 부분적으로 전달될 수 도있습니다. 이와 같은 이유로 링크 계층을 비신뢰성 통신이라고 말합니다. 보다 상위 프로토콜에서 데이터의 전송을 보장하려면 (신뢰성을 얻으려면) 다시 보내는 등의 적절한 메커니즘을 직접 구현하여야 합니다.
2 - 1. 이더넷 / 802.3 :
여러 호스트를 식별하기 위해서 이더넷에선 MAC 주소를 사용합니다. MAC 주소를 가진 장비들을 NIC라고 부릅니다.
이더넷 표준은 페이로드의 최대 길이를 1,500바이트로 정의해 두었습니다. 이를 최대 전송 유닛(MTU)라고 하며, 한 번 전송에 최대한 담을 수 있는 데이터의 양을 뜻합니다. 페이로드는 프레임에 담겨 전송되는 데이터 그 자체를 뜻합니다. 대개 원하는 호스트로 전달하고 싶은 네트워크 계층 패킷이 담겨있습니다.
3. 네트워크 계층 :
링크 계층으론 인터넷을 보다 작은 네트워크망으로 나눌 수 없습니다. 링크 계층 위에 별도의 주소 체계를 두어, 하나의 링크 프로토콜과 다른 링크 프로토콜이 서로 통신할 방법을 규정할 필요가 있습니다.
네트워크 계층의 역할은 링크 계층 위에 논리 주소 체계 인프라를 구축하는 것 입니다. 이렇게 하면 주소 걱정 없이 쉽게 호스트 하드웨어를 구성할 수 있고, 여러 호스트를 그룹으로 묶어 서브네트워크로 격리하거나, 멀리 떨어진 서브네트워크 사이에 링크 계층 프로토콜이나 물리적 매체가 각기 다르더라도 서로 통신 할 수 있습니다.
3 - 1. IPv4 :
네트워크 계층에 필요한 기능을 구현하는데 가장 널리 이용되는 프로토콜은 IPv4입니다. IPv4에선 논리 주소 체계로 각 호스트마다 개별적인 주소를 부여하며, 서브넷 체계로 주소 공간의 논리적 부분 집합을 나누어 물리적 서브네트워크를 정의하는데 사용합니다. 또한 라우팅 체계로 서브넷 사이에서 데이터를 서로 전달합니다.
IPv4의 핵심은 바로 32비트의 숫자로 이루어진 IP 주소입니다.
- IPv4 헤더 구조

3 - 2. IPv6 :
IPv4는 32비트 주소 체계로 약 42억 개의 고유 IP 주소를 배당할 수 있습니다. 하지만 오랜 시간동안 많은 양이 사용 되어서 주소 고갈 문제 및 비효율성 해소를 위해 IPv6가 생겨났습니다.
IPv6의 특징은 IP 주소의 길이가 128비트라는 점 입니다. 첫 64비트는 보통 네트워크를 나타내며 Network prefix라 칭합니다. 나머지 64 비트는 개별 호스트를 나타내어 Interface identifer라 합니다.
'C++,C# > 공부' 카테고리의 다른 글
[C# 공부] 면접에 자주 묻는 기본 질문 (0) | 2023.01.16 |
---|---|
[C# 공부] 각종 유용한 사이트 모음 (0) | 2023.01.12 |
[C# 공부] Unity UniTask (0) | 2023.01.09 |
댓글