[이전 글]
[Network] Packet Switching (패킷 스위칭)
TCP/IP 스택은 앞서 패킷 스위칭에서 언급했듯, 네트워크의 각 노드가 어떻게 데이터 패킷을 꾸릴지, 어떻게 네트워크를 통해 보낼지 등을 정형화해둔 프로토콜들이 발전한 것이라고 했습니다. 프로토콜은 컴퓨터 내부에서, 또는 컴퓨터끼리의 데이터를 교환할 때 그 방식을 정의한 규칙입니다. 정리하면, 네트워크에서 데이터를 송수신하는 데에 필요한 규칙들을 모아놓은 것이 TCP/IP입니다.
TCP/IP 스택의 계층은 링크 계층, 인터넷 계층, 전송 계층, 응용 계층이라는 4개의 계층으로 구분됩니다. 이들은 하위 계층의 기능을 이용해 상위 계층에게 기능을 제공합니다. 일반적으로 하위 계층은 하드웨어로, 상위 계층은 소프트웨어로 구현됩니다.
TCP/IP 스택의 계층은 OSI 7 계층과 연관이 많습니다. OSI 7 계층은 국제 표준화 기구에서 만든 것으로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층이라는 7개의 계층으로 나눈 것입니다. 아래는 그 둘의 상관관계를 그림으로 나타낸 것입니다.
모든 계층을 다 알면 좋겠지만! 게임 개발에 연관이 큰 물리 계층, 링크 계층, 네트워크 계층, 전송 계층, 응용 계층을 중점적으로 파헤쳐보겠습니다.
물리 계층
가장 기본적인 하드웨어 전송을 지원하는 계층입니다. 어떤 네트워크로 연결된 컴퓨터들 사이의 물리적 연결을 책임집니다. 대표적으로 랜 케이블, 전화선, 광섬유 케이블, 전파, 모뎀 등이 있습니다.
링크 계층
링크 계층은 물리적으로 연결된 장치들 사이의 통신 수단을 제공합니다. 다른 말로, 정보를 송신하는 수단과 정보를 수신하는 수단을 제공하는 계층입니다. 링크 계층에서 데이터의 송수신 단위인 프레임(frame)을 각 장치들은 링크 계층을 통해 주고받습니다. 이 프레임이 장치를 식별할 수단을 제공하고, 수신측의 주소와 데이터를 담을 수 있는 프레임을 정의하며, 프레임의 최대 길이와 의도된 장치가 수신할 수 있게 프레임을 물리적인 전기 신호로 바꾸는 방법을 정의하는 계층입니다. 대표적으로 이더넷 프로토콜이 있습니다.
네트워크 계층
여러 대의 라우트를 바탕으로 데이터를 패킷 단위로 쪼개어 전송하는 계층입니다. 라우팅, 패킷 포워딩을 담당하는 계층입니다. 즉, 링크 계층 위에서 논리 주소 체계를 구축해 서로 다른 서브네트워크 사이에서 통신할 수 있게 합니다. 대표적으로 인터넷 프로토콜인 IPv4, IPv6가 있습니다.
전송 계층
네트워크 계층에서 서로 떨어진 장치들 사이의 통신을 가능할 수 있게 했습니다. 그렇다면 이런 통신으로 받은 패킷을 어떤 프로세스가 처리해야할까요? 이를 처리하는 계층이 전송 계층입니다. 전송 계층은 개별 프로세스 사이의 통신을 가능하게 해줍니다. 전송 프로토콜의 대표적인 것들이 바로 TCP와 UDP입니다.
응용 계층
응용 프로세스와 통신 프로세스 사이의 연결을 지원하는 계층입니다. 전송 계층과 상호작용할 수 있도록 해주고, 사용자가 네트워크에 접근할 수 있도록 인터페이스를 제공하는 역할을 수행합니다. 대표적으로 HTTP, DNS 등이 있습니다. 네트워크 게임 프로그래밍에서 작성할 코드도 응용 계층에 포함됩니다.
잘못된 점 있으면 댓글로 알려주세요! 감사합니다.
'Network > Network' 카테고리의 다른 글
[Network] 레이턴시 (0) | 2022.05.26 |
---|---|
[Network] 네트워크 토폴로지 (0) | 2022.05.19 |
[Network] Packet Switching (패킷 스위칭) (0) | 2022.04.26 |