네트워크 통신을 일곱 층으로 나눈 모델. 실무에서 실제로 손에 잡히는 것은 각 계층의 데이터 단위와 식별자다.

계층이 직렬화된 구조

계층 구조는 통신의 성질이 아니라 이해를 돕기 위한 도식화다. 구성 요소들 사이의 관계를 표현하려고 이렇게 그린다.

규칙은 하나인데 의존이 두 방향으로 걸린다. 기능에 관해서는 상위가 하는 일이 하위가 해주는 일 위에 얹힌다. 존립에 관해서는 상위가 존재하려면 하위가 반드시 전제되어야 한다. 뒤쪽이 더 강한 조건이다. 물리적인 1계층 없이 그 위 계층이 존재할 수 있느냐고 물으면 답은 없다. 이렇게 계층이 직렬화된 구조를 Layered 구조라고 부른다.

대화에 빗댄 계층

네트워크는 관계이고 네트워킹은 상호작용이다. 사람과 대화하는 상황으로 옮겨보면 계층이 그대로 나온다. 소리가 공기를 타고 전달되어야 하고 거리도 가까워야 한다. 그 위에 말이라는 수단이 얹히고 다시 그 위에 한국어라는 약속이 얹힌다. 공기가 없으면 말이 전달되지 않고 말이 없으면 언어가 의미를 갖지 못한다. 이 모든 것이 협의되어야 상호작용이 시작된다. 그렇게 협의해서 정한 규칙을 프로토콜이라고 부른다.

계층별 데이터 단위와 식별자

계층데이터 단위식별자크기
L2FrameMAC 주소48비트, 16진수 표기
L3PacketIP 주소IPv4 기준 32비트, 8비트씩 점으로 구분
L4Segment포트 번호16비트 양의 정수

식별자란 무언가를 구별하려고 붙이는 것이다. 사람으로 치면 주민등록번호에 해당한다. MAC 주소는 L2에서 NIC(랜카드)를 식별한다. NIC는 전기 신호가 들어오면 데이터 형태로 바꾸고 목적지 MAC 주소를 확인한다. IP 주소는 L3에서 호스트를 식별한다. 포트 번호는 보는 관점에 따라 뜻이 갈리는데, L2 하드웨어에서는 케이블 꽂는 단자를, L3와 L4 네트워크에서는 서비스를, 엔드포인트에서는 프로세스를 식별한다.

호스트와 엔드포인트

호스트는 컴퓨터에 네트워크가 더해진 것, 인터넷에 연결된 컴퓨터를 말한다. 한쪽에는 네트워크 그 자체를 이루는 인프라인 스위치와 라우터, 보안 스위치가 있고, 다른 쪽에는 그 인프라를 이용하는 주체인 클라이언트와 서버, P2P의 피어가 있다. 뒤쪽을 엔드포인트라고 부른다.

캡슐화

캡슐화는 택배 박스를 포장하는 일과 같다. 포장하면서 단위로 나눠 집어넣고 나면 열기 전까지 내용물을 알 수 없다. L2 Frame의 Payload가 L3 Packet 전체가 되는 식으로 상위 계층의 데이터가 통째로 하위 계층의 내용물이 된다. Packet 자체도 Header와 Payload로 나뉜다. 가장 중요한 출발지와 목적지 정보는 Header에 들어 있다.

택배에 빗댄 전달 과정

패킷이 오가는 과정도 택배와 나란히 놓으면 그대로 대응된다. 책을 박스에 포장하듯 데이터를 Packet으로 만들고, 현관으로 나가듯 인터페이스로 나가고, 택배 기사에게 건네듯 게이트웨이에 전달한다. 물류 체계가 모아 분류하는 자리에서 게이트웨이가 라우팅을 하고, 목적지 IP까지 간 다음에는 받는 사람 이름을 보고 물건을 건네듯 포트 번호를 보고 프로세스에 넘긴다.

MTU와 단편화

Frame과 Packet은 작다. L2 Frame이 보통 1514바이트이고 점보 프레임으로 가야 10KB 정도다. L3 Packet의 최대 크기는 MTU(Maximum Transmission Unit)라고 부르는데 보통 1500바이트다.

큰 데이터를 보내려면 잘게 쪼개야 한다. 이것을 단편화라고 한다. 파일 하나를 보내는 데 패킷 수천 개가 오간다.

관련

출처