Study/Network

멀티 플레이어 프로그래밍(2)

wnwnovo 2024. 8. 20. 16:42

인터넷

서킷 스위칭(구)

- 송수신 단말 사이에 회로 연결을 해두고 정보 전달

- 송수신이 끝날 때까지 계속 연결 상태를 유지함

- 높은 정보 전달 품질, 하지만 한 번에 하나의 통신 전용으로만 회선을 사용해야하므로 가용성 면에서 제한적임

 

패킷 스위칭(신)

- 회선 자체는 공유하되, 송수신 내용을 패킷이라는 작은 뭉치로 나눈 뒤 저장 후 전달

- 각각의 노드는 수신한 패킷을 저장 후 목적지에 가까운 노드로 전달

- 한 번에 많은 송수신 패킷 처리 가능!

 

 

이더넷

 

- MAC(매체 접근 제어 주소) 사용

- MAC : 이론 상 고유한 48비트 숫자, 네트워크에 연결 가능한 장비 하나하나 고유한 값으로 부여

-> 이러한 장비를 NIC라고 부름(메인보드에 내장되어있다)

- 모든 이더넷 패킷은 총 8바이트의 16진수로 시작함. 이를 프리앰블과 SFD 라고 함

- 길이/종류 필드는 오버로드하여 둘 중 하나로 사용.

- 페이로드 : 프레임에 담겨 전송되는 데이터 자체

길이 : 프레임에 포함된 페이로드의 길이를 바이트 단위로 나타냄

종류 : 이더타입 고유 식별자 값을 기록해 페이로드 내 데이터를 어떻게 해석해야하는지 표시

 

- MTU : 최대 전송 유닛, 한 번 전송에 최대한 담을 수 있는 데이터의 양. (0x0600, 1536)

- 길이/종류 필드 값이 1500 미만 -> 길이, 1536 이상 -> 종류로 판단

 

IPv4

- 논리 주소 체계로 각 호스트마다 개별적인 주소 부여

- 서브넷 체계로 주소 공간의 논리적 부분 집합을 나누어 물리적 서브네트워크를 정의

핵심 : IP 주소. 32비트로 네 개의 8비트 숫자를 마침표로 구분하여 사용

- 인터넷상 호스트마다 고유한 IP 주소를 부여해두면, 발신 호스트가 패킷 헤더에 목적 호스트의 IP 주소를 기록하기만 하면 됨

 

Version : IP 종류 (IPv4라면 4)

 

Header Length : 헤더의 길이를 32비트 워드로 표시. 뒷부분에 옵션이 여러개 붙을 수 있으니 가변적임

헤더 길이 필드는 4비트에 불과하므로 최대 15까지 값을 가질 수 있음

- 헤더가 15개의 32비트 워드, 즉 60바이트로 되어 있음.

- 모든 패킷 헤더는 4바이트의 배수 길이가 되므로 마지막 2비트는 항상 0. 이 점을 이용해 2비트 절약 가능

- 반드시 20바이트의 필수 정보가 포함되어야 하므로 5보다 작을 수 없음

 

Service : 혼잡 제어나 서비스 식별자 등 다양한 용도로 사용

 

Total Length : 전체 패킷의 길이를 바이트 단위로 표시. 헤더 + 페이로드.

16비트 최대숫자인 65535에서 헤더 최소 길이가 20이므로 페이로드의 최대 길이는 65515

 

 

 

주소 결정 프로토콜

- A가 B에게 네트워크 계층 패킷을 보내려고 할 때, 이더넷 모듈은 IP 주소로는 패킷 전달 불가능

IP 주소는 링크 계층이 아닌 네트워크 계층의 개념이기 때문

-> 주소 결정 프로토콜(ARP)를 통해 MAC 주소로 변환해야함

ARP는 링크 계층 프로토콜만으로 보기보단 네트워크-링크 계층의 다리 역할 느낌

 

ARP 과정

- 먼저 B의 IP 주소에 대응하는 MAC 주소를 ARP 테이블에서 찾아봄

-> 찾았을 경우: IP 모듈은 해당 MAC 주소를 포함한 링크 계층 프레임을 만들어 링크 계층 모듈에 전달하여 발신

-> 못 찾은 경우 :

1. ARP 모듈이 링크 계층 네트워크에서 도달 가능한 모든 호스트에 ARP 패킷을 발신하여 올바른 MAC 주소를 찾기 위해 시도하게 됨.

2. 이상한 사람이 받은 경우 : IP 주소가 패킷상 목적지 프로토콜과 다르기 때문에 응답 X

B가 받은 경우 : B가 자신의 ARP 패킷을 하나 만들어 응답(자기 주소를 발신지, A의 주소를 목적지로)

3. A가 이 패킷을 받으면 새로 받은 주소로 ARP 테이블의 B MAC 주소 갱신, 기다리던 IP 패킷을 이더넷 프레임에 포함하여 B의 MAC 주소로 보냄

 

서브넷과 간접 라우팅

라우터

- 특수 형태의 호스트

- 라우터 한 대에 NIC가 여러 개 장착되며, 각 NIC마다 고유 IP 주소가 배정됨

 

서브넷 마스크

- 32비트 숫자(IP 주소와 같이 숫자 네 개를 마침표로 구분해서 씀)

- 두 사람의 IP 주소를 서브넷 마스크와 비트 AND 연산하여 그 결과가 같다면 -> 같은 서브넷에 있다고 침

- 마스크와 네트워크 주소만 있다면 특정 서브넷 지칭 가능

- CIDR : 서브넷 마스크를 이진수로 썼을 때 1이 n개 나온 뒤 0이(32 - n)개 붙는 형식

 

'Study > Network' 카테고리의 다른 글

멀티 플레이어 게임 프로그래밍(1)  (0) 2024.08.20