[네트워크] OSI 7계층
·
공부/네트워크
✅ OSI 7계층 국제 표준화 기구인 ISO(International Organization for Standardization)에서 지정한 것으로 통신을 7단계로 나누고 그것을 표준화한 것이다. 7️⃣ Application Layer (애플리케이션 계층) 6️⃣ Presentation Layer (프레젠테이션 계층) 5️⃣ Session Layer (세션 계층) 4️⃣ Transport Layer (트랜스포트 계층) 3️⃣ Network Layer (네트워크 계층) 2️⃣ Data Link Layer (데이터 링크 계층) 1️⃣ Physical Layer (피지컬 계층) 통신을 단계별로 나누면 데이터 흐름이 한눈에 보인다. 우리가 데이터를 보내기 시작한 애플리케이션 계층에서부터 피지컬 계층까지 데이터가..
[네트워크] 토큰링(Token Ring)이란?
·
공부/네트워크
✅ 토큰링(Token Ring) 말 그대로 토큰을 가진 노드만이 데이터를 전송할 수 있게 하는 데이터 네트워크 방식이다. 초기 토큰링은 물리적으로 링(Ring) 형태를 띠어야만 토큰링을 구성할 수 있었지만 지금은 버스형에서도 사용 가능하다. 그림은 하나의 MSAU(MAU와 같은 것)에 노드(네트워크에 속한 컴퓨터나 장비)를 연결한 모습과 여러 MSAU에 노드를 연결한 모습이다. 보통 한 네트워크 당 토큰은 하나다. 1️⃣ 토큰을 갖고 데이터 전송을 마친 PC는 바로 옆 PC에게 토큰을 건넨다. 2️⃣ 전송할 데이터가 없는 PC라면 그대로 옆 PC에게 토큰을 건넨다. 토큰 링 박식에서는 모든 노드가 전송 기회를 균등하게 갖고 과부하가 걸려도 성능이 떨어지지 않는다. 충돌이 일어나지 않고 데이터를 실시간으로..
[네트워크] 이더넷(Ethernet)과 CSMA/CD
·
공부/네트워크
✅ 이더넷(Ethernet) LAN 환경에서 네트워크를 구성하는 방법 중 가장 대중적인 것이다. 이더넷의 가장 큰 특징은 CSMA/CD 통신 방식을 사용한다는 것이다. ✅ CSMA/CD (Carrier Sense Multiple Access/Collision Detection) 한국어로 해석하자면 다중 충돌 접근 기법이다. LAN은 이용자가 채널을 공동으로 이용하기 때문에 채널에 접근하는 사람을 제어할 방법이 필요하다. CSMA/CD는 모든 노드가 동시에 접근하여 충돌하는 것을 막지 않고 눈치로 통신하는 방식이다. 1️⃣ CSMA/CD(이더넷)를 사용하는 PC나 서버는 자신이 통신을 하기 전 먼저 네트워크상 통신이 일어나는가를 확인한다. 2️⃣ 누군가 통신 중이라면 자신의 데이터를 보내지 않고 기다린다...
[게임 서버] SetBuffer를 RecvBuffer, SendBuffer로 따로 빼내기 #1
·
공부/게임 서버
패킷 단위로 데이터를 주고 받기 위해서 해야 할 첫 관문은 server 내에 있는 recvBuff를 따로 빼서 관리하는 것이다. 기존 프로그램에서는 SetBuffer를 통해 버퍼 크기, offset을 미리 설정해준 다음에 어떤 변화도 없이 쭉 그대로 사용해왔다. 이렇게 사용하게 되면 문제가 발생한다. TCP 특성상 클라이언트가 보낸 내용이 한 번에 다 오지 않을 수 있다. 앞서 보낸 데이터 중 일부가 버퍼에 데이터가 남아있을 경우 남은 데이터와 새로 보낼 데이터를 함께 보내는데 이때 매우 곤란한 상황이 펼쳐진다. 변화값인 offset을 0으로 설정했기 때문에 남은 데이터를 무시하고 그 위에 새로운 데이터를 덮어쓰게 되는 것이다. 문제를 방지하기 위해서 앞으로는 SetBuffer를 사용하지 않고 RecvB..