클라이언트: 사람이 만지는 컴퓨터
서버: 많은 사람들이 만지는 단말기에 서비스를 제공하는 무인 컴퓨터
-> 클라이언트에서 오는 데이터를 받아서 처리한 후 그 결과를 클라이언트에 회신
OSI 모델: 컴퓨터 네트워크 통신에 대한 국제 표준
-> 이 표준만 잘 지키면 어떤 기기든, 어떤 형태의 통신 선로를 사용하든 컴퓨터 간 통신을 할 수 있음
- 계층 1: 물리계층
- 계층 2: 데이터 링크 계층
- 계층 3: 네트워크 계층
- 계층 4: 전송 계층
- 계층 5: 세션 계층
- 계층 6: 표현 계층
- 계층 7: 응용 계층
OSI 모델의 계층 2
- 각 단말기는 고유한 주소를 가짐
- 단말기는 데이터를 프레임이라는 단위로 주고 받음
보다 많은 컴퓨터를 연결할 때의 문제점
- 스위치 하나가 연결할 수 있는 단말기 수가 제한되어 있음
- 단말기들 각각의 주소를 모두 고유하게 만들기 어려움
- 서로 다른 네트워크 기기간을 연결하여 해결 가능
- 이렇게 서로 다른 LAN이 맞물려 연결된 것을 광역 통신망 혹은 WAN이라고 함
OSI 모델의 계층 3
- WAN의 모든 단말기는 OSI 모델의 계층3에서 요구하는 형식의 주소를 가짐
- WAN에서 직접 데이터를 건네는 것이 아니라, 계층적으로 데이터를 건네주는 방식으로 작동, 이러한 일을 담당하는 네트워크 기기를 라우터라고 함
스트림 형식
- 스트림: 데이터의 흐름
- 헤더를 붙이는 방식: 첫 2바이트에는 보낼 데이터의 크기를 담음, 이어서 보낼 데이터를 담음
- 구분자를 쓰는 방식: 보낼 데이터를 담음, 이어서 구분자를 담음
단편화
- 프로그램이 매우 긴 스트림을 송신할 때 운영체제는 이를 IP패킷의 크기 제한에 맞추어 여러 조각을 냄
- 각 조각은 IP 패킷 하나하나가 되어 받는 쪽에 송신
- 받는 쪽에서는 이 조각들을 받아 조립한 후 스트림 형태로 복원하며, 이 과정도 운영체제 안에서 진행
- 조립된 스트림은 프로그램으로 넘어가 처리
네트워크 품질을 저해하는 것들
스위치나 라우터에 자신이 처리할 수 있는 한계를 넘는 데이터가 수신되면
- 자기가 처리할 수 있는 것 이상을 그냥 버림 - 패킷 유실이 일어남
- 아직 처리하지 못한 것들을 메모리에 누적
데이터는 유선이나 무선 회선으로 나가는 과정에서 일정 진폭이나 주파수의 전기(유선) 신호나 전자기파(무선) 신호로 변경되어 방출됨
-> 디지털 정보를 아날로그 신호로 바꾼 것으로, 이 일은 OSI 모델의 계층 1에서 일어남
수신자는 아날로그 신호를 받으면 진폭, 주파수 등을 파악하여 디지털 정보로 바꾸고 이를 OSI 모델의 계층 2 처리 모듈로 넘기면 이후 계층 3 모듈로 넘어감
이 과정에서 아날로그 신호에 변화가 생길 수 있음(오류 발생)
-> 네트워크 기기에 데이터가 가는 동안 잡음이 섞이면 프레임이나 패킷은 그냥 버려짐
#체크섬
: 중복 검사의 한 형태, 송신된 자료의 무결성을 보호하는 단순한 방법
통신에서 CRC, 즉 순환 중복 검사를 체크섬이라고도 말하는데 엄밀히 따지면 체크섬은 나열된 데이터를 더하여 체크섬 숫자를 알고, 정해진 비트 수의 모듈러로 정해진 비트 수로 재구성
전송 속도와 전송 지연 시간
- 전송 속도: 두 기기 간에 초당 전송될 수 있는 최대 데이터망 의미, 보통 초당 비트수 혹은 바이트 수로 표현
- 레이턴시: 두 기기 간에 데이터를 최소량 전송할 때 걸리는 시간 의미
네트워크 품질 기준 세가지
- 전송속도(스루풋): 높을수록 좋음
- 패킷 유실률: 낮을수록 좋음
- 레이턴시: 낮을수록 좋음
무선 네트워크
- 와이파이에서 데이터를 전송할 때
- 데이터를 전파로 변환하여 보내기 직전에 안테나를 통해 다른 전파가 감지되는지 확인
- 전파가 감지되는 것이 없으면 전파를 보냄
- 전파가 감지되면 잠시 기다렸다가 1~2 과정 반복
- 신호 보낸 후 상대방에게서 '신호를 받았음' 응답이 오는지 체크
- 응답이 일정 시간 동안 없으면 보냈던 신호를 다시 보냄
CSMA(Carrier Sense Multiple Access)
: 각 지국이 전송하기 이전에 먼저 매체에 귀를 기울일 것(또는 매체의 상태 확인)을 요구하고 있음, 다시 말해 "전송 이전에 감지" 또는 "말하기 이전에 듣기" 원칙에 기반을 둠
패킷 유실 시
- UDP: 데이터그램이 유실됨
- TCP: 중간에 지연 시간 발생
UDP -> 보통 캐릭터 이동, 기관총 난사, 음성이나 화상 데이터 전송에 사용 / 대전 격투 게임이나 실시간 전략 시뮬레이션 게임(RTS), 그 외는 거의 TCP
메타데이터를 이용하면 하위 호환성 측면에서 유리
- 서버에서 메시지 안에 원하는 내용 일부가 있는지 없는지에 따라 작동을 다르게 만들어 주면 버전1과 버전2의 클라이언트를 동시에 처리할 수 있음
- 모바일 앱에서는 메타데이터 방식이 유리(웹서버 시스템 그대로 사용 가능 - HTML/JSON 등)
- MMORPG는 바이너리 방식 사용 (대역폭 낭비 적고, 변환 불필요)
네트워크 주소 변환
: 다른 단말기로 전송되던 패킷의 송신자 주소나 수신자 주소가 다른 것으로 변환되는 과정, NAT 변환을 하는 기기를 NAT라우터라고 함
NAT 라우터가 주로 하는 일은 IP주소 1개를 여러 기기가 공용하도록 만들어 주는 것
'Old > Network' 카테고리의 다른 글
게임 네트워킹 (0) | 2023.07.27 |
---|---|
게임 서버와 클라이언트 (0) | 2023.07.24 |
Socket Programming (0) | 2023.07.24 |
Multi Threading (0) | 2023.07.24 |
REST / REST API (0) | 2023.02.11 |