본 포스팅은 널널한 개발자님의 네트워크 강의를 보고 정리한 내용입니다.
process에서 네트워크 통신을 위해 TCP/IP로 데이터를 송신하는 경우 socket을 이용한다는 사실을 배웠습니다.
socket은 그 본질이 file이며 따라서 취급하는 데이터는 Stream이죠. Stream은 끝이 정해져있지 않다는 특징이 있고, 따라서 송신하게 되는 경우 데이터를 일정 크기(MSS)로 분해하여 사용한다고 배웠습니다.
이런 분해 과정을 segmentation, 분해된 결과물을 segment라고 부르죠. 패킷은 segment를 한번 더 감싸는 과정을 거칩니다. encapsulation이라고도 부르죠.
packet은 일반적으로 1500byte이며 이를 MTU(Maximum Transmission Unit)이라고 부른다고 했습니다. packet은 header와 payload로 나뉘어지며 header는 다시 IP, TCP 헤더로 구성됩니다. segment는 payload에 해당하죠.
IP와 TCP 헤더는 별 일이 없으면 20byte이므로 payload의 크기는 일반적으로 1460byte이며 이것은 MSS(Maximum Segment Size) 라고 불립니다.
Segmentation의 결과로 나온 segment에 필요한 header를 붙여 encapsulation을 하면 packet이 나오게 되죠. 이러한 packet은 택배를 생각하면 편합니다.
header정보는 송장에 해당합니다. packet을 운반하는 사람은 안의 내용물은 신경쓰지 않고 송장만으로 택배를 전달하게 됩니다. 우리가 process에서 전달한 데이터인 segment는 payload로 안에서 보관되게 됩니다.
header에는 IP address, Port 번호 등의 내용이 들어있어 올바른 곳으로 찾아갈 수 있게 도와주죠.
이런 packet을 Ethernet 수준에서 다루기 위해선 한번 더 encapsulation이 필요합니다. 이렇게 탄생한 데이터 단위를 Frame이라고 부르죠. Frame은 택배트럭을 생각하면 편리합니다.
택배트럭은 택배 배송을 위해 물류센터로 이동하도록 되어있죠. Frame도 마찬가지로 Mac address와 같은 header정보가 들어있습니다.
이렇게 이해할 수 있습니다.
L2 switch는 48bit크기의 mac address를 가지고 스위치를 진행합니다. 윈도우를 기준으로 ipconfig /all 명령어를 사용하면 물리적 주소가 표시되는데 이것이 mac address이며 일반적으로 유니크 합니다.
네트워크는 일반적으로 스위치의 집합체이죠. L2 스위치가 어떻게 존재하는지 살펴보겠습니다.
일반적으로 PC들은 NIC을 통해 L2 Access Switch와 연결되어 있습니다. 그리고 이러한 L2 Access Switch는 L2 Distribution Switch와 연결되어 있으며, L2 Distribution Switch는 일반적으로 L3 Router와 연결되어 있습니다. 라우터는 게이트웨이 역할을 하며 인터넷과 연결되어있죠.
따라서 일반적으로 L2 Switch는 2가지로 구분됩니다.
L2 Access Switch를 방, L2 Distribution Switch를 건물의 한 층, L3 라우터를 입구 정도로 비유할 수 있습니다.
같은 방에 있는 컴퓨터들을 L2 Access Switch에 연결한 뒤 이들을 L2 Distribution을 통해 층의 네트워크를 만들 수 있고, 건물마다 있는 라우터 게이트웨이를 통해 인터넷과 연결되어 있는 것이죠. (물론 이해를 위한 예시입니다)
uplink는 상위 네트워크로 연결되는 개념을 의미합니다. 그림의 빨간색으로 표현된 내용이죠. 이와 관련해서 헷갈리는 단어 몇가지를 정리하겠습니다.
단어를 혼동하지 않도록 주의합시다.
<출처>