풀스택 서비스 네트워크(2), OSI Architecture(L1~L3)

2022. 9. 30. 17:16강의 내용 정리/풀스택서비스네트워킹

728x90
반응형

OSI Architecture의 대표적인 예시를 알아보고 어떤 문제가 있는지를 위주로 수업을 진행할 예정


1. 기본적인 단어의 이해

(1) Message

 Medium을 통해 sender와 receiver가 주고 받는 것

 

(2) Sender

보내는 컴퓨터

 

(3) Receiver

받는 컴퓨터

 

(4) Medium

통신을 위한 매개(유무선)

 

(5) Protocol

서로 메세지를 보낼 때 지켜야할 약속으로 메세지에 대한 형식 뿐만 아니라 메세지를 받았을 때의 동작 등등 자세하게 기술해놓는다. 

 


2. MAC 계층(L2)

1) 분류

  • Random access protocols
  • Controlled access protocols
  • channelization protocols

랜덤엑세스 프로토콜은 서버가 가장 많이 사용하는 기술이다. 메세지가 없어질 수 있기에 이를 고려하여 소프트웨어를 짜야한다.

 

(1) SCMA/CD

  • 이더넷, 초코속 인터넷, 광랜, IEEE 802.3 등등으로 표현된다. 
  • 유무선으로 전달할 경우 동시에 내용을 보냈을 때 충돌이 발생할 수 있다. 충돌이 발생했을 때 조절하는 방식 중 하나이다. 이를 검출하기 위해 샌더는 메세지를 보내면서 다른 곳에서 보낸 메세지가 있는지 읽을 수 있어야한다.
  • 충돌이 발생하면 전송하던 것을 멈춘 뒤 신호를 보내서 충돌이 발생한 메세지를 모두 없애고, 시간이 지난 다음에 다시 이를 보낸다.
  • 최근에는 허브나 스위치를 연결해서 하지만 위의 예시는 여러 대의 컴퓨터를 하나의 줄에 연결한 예시를 보여준다. 

 

jamming은 쓸데 없는 신호를 보내서 충돌이 발생한 메세지를 모두 망가트리는 것을 의미한다. 최대 횟수까지 보낼 수 있는지 시도를 한뒤, 그 이후에까지 전송이 실패한다면 이는 버린다. 충돌이 발생한다면 랜덤변수를 사용해 기다렸다가 다시 시작한다. 따라서 충돌이 발생하면 지연이되고, 최대 횟수를 넘어서까지 충돌한다면 이를 버린다. 즉, 에러가 발생할 수 있는 구조이다. 

 

 

(2) CSMA/CA

무선 상에서 충돌이 발생할 때에 이를 검출하고 처리한다. CSMA/CD는 충돌이 발생할 때 메세지를 보내진 않지만 CSMA/CA는 메세지를 보낸다. 메세지를 보낼 때에는 모두가 들을 수 있도록 뿌린다. CTS를 받은 이후에는 다른 장치들은 에러가 발생하지 않도록 쉬고 있다. SIFS는 응답을 보내는 시간인데 굉장히 빠른 시간 내에 이를 보낸다. 

무선은 한 줄에 붙지 않기에 음영 지역이 발생할 수 있다. 거리, 장애물 때문에 통신을 할 수 없는 경우가 발생한다. 결국 무선랜과 광랜은 에러가 발생할 수 밖에 없다.

위와 같이 에러가 발생할 수 있는 문제가 있지만 MAC 계층은 에러 검출 및 복구가 핵심적인 역할 중 하나이다. 따라서 Flow Control, Error Control을 하는 것이 중요하다. CSMA/CD와 CSMA/CA는 모두 시도하다가 안되면 메세지를 버린다.

이는 Based on Best effort라고 할 수 있다. 

 

전통적인 유선 이더넷과 무선랜은 L1 전파 신호 불량 및 L2 충돌 시 손실이 발생할 수 있고, 동시 사용자가 많으면 충돌로 인해 성능(전송 속도와 시간) 저하가 될 수 있다. 무선랜의 경우는 최악의 경우 전송 속도가 0까지 갈 수 있다. 따라서 8명에서 10명 사이의 사용자에서 더 늘어난다면 전송이 불가할 수 있다.

 

cf) 이동통신은 최소한의 품질을 보장하는 네트워크이기에 MMORPG를 할 경우에는 이를 하는 것이 더 좋을 수 있다. 

 

 

 


3. Network 계층(L3)

1) 개념

(1) Packetizing

위에서 내려온 메세지를 패킷화하여 아래 계층으로 넘겨준다. 이때 IP 어드레스를 추가하여 전송하는 것이 매우 중요하다. 

 

(2) Routung과 Forwarding

라우터는 스스로 최적의 경로를 골라서 전송하지만 포워드(스위치)는 그냥 수동적으로 전송한다.

 

ip 프로토콜을 사용해서 라우팅을 사용하는 장비는 본인이 사용하는 메세지 단위로 어디에 보낼지를 결정한다. 따라서 논리적으로 한 줄을 따라 모든 메세지가 한번에 가는 것이 아니기에 이를 connectionless라고 한다. 라우터는 주변 기기와 통신을 하며 상태를 따진 뒤 이를 전송한다. 따라서 도착하는 메세지의 순서는 달라진다. 

 

군대에서 통신을 보낼 때 특정 지점이 날라가더라도 살릴 수 있는 구조를 만들기 위해 만들었던 구조를 활용해 인터넷을 만들었다. 따라서 이는 서바이벌의 철학을 가지고 있다. 느리더라도 메세지를 온전히 보내는 것에 초점이 있다.핵심은 내가 보낸 순서대로 도착하는 메세지의 순서가 달라질 수 있다는 특징이 있다. 

 

(3) IPv4 address

우리나라가 현재 기본적으로 사용하는 IP Address이다. 32비트 주소값으로 Binary나 Dotted decimal, Hexadecimal 등으로 표현할 수 있다. Dotted decimal은 우리가 가장 많이 보는 형태이며 Hexadecimal은 소켓값을 사용하거나 프로그래밍을 할 때 많이 사용된다.

 

(4) IP address 구조

prefix는 컴퓨터를 소유하는 단체 등에게 할당되는 주소값이고, suffix는 그 단체 내에서 어느 장치로 갈 것인지에 대한 것을 의미한다. 

 

(5) CIDR

/ 이후에 있는 숫자는 Prefix의 길이를 의미하여 이는 네트워크의 주소가 얼마나 있는지를 의미한다. n이 작으면 작을수록 쓸 수 있는 것이 많아진다. 따라서 Suffix가 큰 것을 차지하는 것이 관건이다. 따라서 위와 같이 내용을 작성했는데, 현재는 네트워크 어드레스가 부족해지게된다. 따라서 가변적인 네트워크 주소를 사용하여 위의 문제를 해결한다. 

 

 

Network address routing example

라우팅은 32비트를 모두 읽어가며 메세지를 전송하는 것이 아니라 인접한 장치의 네트워크 주소를 보고 해당 부분만 보고 이를 전달하는 역할을 한다. 

 

(6) ID Datagram format

보내는 사람과 받는 사람의 ip 어드레스 등등을 포함한 여러 가지 내용이 들어간다. IPv4를 기준으로 32비트가 최대의 내용으로 들어간다. 이는 비트단위로 해야하기에 통신은 C, C++ 프로그래밍 언어를 사용하는 경우가 많다. 

 

ip 어드레스를 외우기 힘드니 도메인 네임을 사용해 이를 보낸다.

 

(7) DNS(Domain Name System)

기계 주소를 가진 것을 사람이 이해할 수 있는 도메인 네임으로 바꾸는 것을 의미한다. 

 

 

(8) DHCP(Dynamic Host Configuration Protocol)

ip어드레스가 부족하니 사용한 뒤 이를 반납하는 것이 초기 컨셉이었다.전세계 모든 인원이 알 수 있는 ip address는 public ip address라고 한다. 어떤 공간 내부에서만 의미있는 어드레스는 Private ip address라고 한다. 따라서 이는 무선랜 안에 존재해 ip어드레스보다 더 많은 어드레스를 부여할 수 있다. 예전에는 public ip address가 부족하니 이를 줄 때 사용했고, 지금은 애초에 ip address를 private으로 준다. 통신사는 자체적인 ip 체계를 가져서 스마트폰이 켜질 때 private ip 어드레스를 전달한다.  

 

따라서 외부에서는 Public IP Address를 사용하고, 라우터를 통해 내부로 들어오면 이를 Private IP Address로 변환하여 내부에서 사용한다.

 

(9) Network & Port Address Translation(NAT)

모뎀을 설치하여 집 밖의 서버와 연결을 하여, 내부에서만 의미 있는 Private address를 외부에서도 의미가 있는 Public address로 바꿔주는 역할을 한다. 이를 NAT라고 한다. 모뎀은 NAT뿐만아니라 포트넘버도 바꿔주는 PAT의 역할을 한다. 

 

(10) connectionless

connectionless의 특징 때문에 메세지 순서가 중요한 경우에는 4계층 이상에서 재구성해야한다. tcp의 중요한 특징 중 하나가 바로 순서를 맞춰주는 역할을 한다. udp는 순서를 맞추지 않는다. 따라서 내가 만들고자하는 서비스가 어떤 것이 중요한지를 판단한 뒤 tcp, udp 등을 선택해야한다.

 

 

Summary

통신을 하는 단계에서 에러가 발생하는 현상은 존재한다.

728x90
반응형