센로그

2. OSI Architecture (L1~L3) 본문

CS/풀스택서비스네트워킹

2. OSI Architecture (L1~L3)

seeyoun 2023. 9. 7. 13:13

※ 참고 포스팅

https://grace7040.tistory.com/17

 

Chapter 12. MULTIPLE ACCESS

◆ Data Link - Sublayer 데이터 링크 계층의 두 부계층(sublayer) ㆍDLC(Data Link Control sublayer) 흐름 및 오류를 제어하는 부분 ㆍMAC(Media Access Control sublayer) : 실제 매체에 접근하는 부분 Chapter 10~11까지 DLC에

grace7040.tistory.com

 


◆ 통신을 위한 기본 용어

 

  • Sender(Transmitter) : 수신자 컴퓨터
  • Receiver : 송신자 컴퓨터
  • Medium : (유/무선) 통신 매체 
  • Message(Packet) : 매체를 통해 주고받는 내용물
  • Protocol : 서로 메세지를 보내거나 받을 때 해야하는 동작 및 규칙

 


◆ [L2] Multiple-Access Protocols

여러 사람이 매체를 공유하며 사용할 때 생기는 문제(방해, 충돌 등)들을 해결하기 위한 방법에 대한 규정

L2는 다음 두 부계층으로 나뉜다. 

ㆍDLC(Data Link Control sublayer)

흐름 및 오류를 제어하는 부분

 

MAC(Media Access Control sublayer) :

실제 매체에 접근하는 것을 제어하 부분

 

 

 

L2에서 서비스 개발과 관련해 알아야 할 부분이라고 한다면, 단연 MAC 계층에 관한 부분일 것이다.

MAC 계층에서 다중 접근을 제어하는 프로토콜에 관한 내용을 살펴볼 것이다.

 

 

 

많이 사용되는 두가지- CSMA/CD(유선랜), CSMA/CA(무선랜)- 에 관해서 알아볼 것임.

둘다 Random-Access Protocol에 속하며, 어느 타임에 매체에 접근할지를 Random적으로 결정한다는 의미이다.

 


◆ [L2] Multiple-Access Protocols - CSMA/CD

유선LAN(이더넷)에서 사용. IEEE 802.3번 기술.
"둘이 동시에 전송하면 둘다 즉시 손 떼고, 랜덤하게 기다렸다가 다시 보내는 방식"

 

< 동작 원리 >

  • 메세지를 보내기 전에 누군가 매체를 사용하고 있는지 검사하다가, 안 쓰는 걸 알게되면(idle 상태) 보내기 시작한다.
  • 전송 도중 충돌이 난 된 경우, 즉시 전송을 중단하고 jamming signal을 보내 충돌이 났음을 확실히 알린다.
  • 이후 랜덤 변수를 사용해 일정 시간 기다렸다가 다시 시도한다. 
  • 단, 어느 정도 재전송을 시도했음에도 끝내 안되면 전송을 포기한다. (모두가 끊임없이 재전송만 시도하면 결국 다 죽기 때문)

 

 

 

< 서비스 개발 시 주의사항 >

  • 이런 기술들은 시간이 지남에 따라 바뀐다!!! 
    케이블 가격이 떨어지고 광케이블이 등장하면서 한 매체에 두대 이상의 컴퓨터를 연결하는 것이 일반적이지 않게 됨.
    광케이블은 너무 빨라서 충돌 즉시 멈추고 이런거 없다. 걍 바로 충돌난 상태로 보내지는 것.
    따라서 유선인 경우 이런 CSMA/CD에 따른 에러 검출은 거의 유명무실해짐.
  • HTTP3에서는, 기존에 쓰던 TCP 대신에, 에러 검출을 안하는 UDP를 HTTP밑에다 넣음.
    서버실 안에서 한 줄에 여러대의 컴퓨터를 붙이는 행위는 더 이상 존재하지 않기 때문에, 컴퓨터 ↔ 컴퓨터 사이에서 물리적인 에러가 발생할 확률은 굉장히 작다고 판단했기 때문. 그래서 L2나 L4의 에러 검출 기능을 확 줄임.
    → 전송 속도가 빨라짐!!
  • CSMA 방식에서는 최대 횟수까지 반복한 후에, 안되면 그냥 버린다. 
    이말은 즉슨, 어플리케이션에서 보냈다 해서 무조건 전송이 성공한다는 보장은 없다는 의미.
    아래 계층의 동작에 따라 버려질 수도 있는 것.
    →   서비스 개발시에, L1이나 L2가 신뢰할 수 있는지 확인하고, 신뢰성있는 sw를 만들기 위해 위 계층에서 보강을 해야 할 것이다.

◆ [L2] Multiple-Access Protocols - CSMA/CA

무선 LAN (WiFi)에서 사용. IEEE 802.11번 기술.
RTS, CTS : "둘이서만 얘기하고 싶으니, 둘이서 얘기하겠다고 소리를 질러 알리자!"

 

< 동작 원리 >

CSMA/CD와 비슷하나, 매체가 유선이 아닌 무선이므로 살짝 달라지는 부분이 있음.

A가 B한테 보내고 싶어도, 같은 방 안에 C D 가 있으면 어쩔 수 없이 걔네도 들을 수 있을 것.

  • 그래서 RTS, CTS 신호를 사용해 내 목소리를 들을 수 있는 모두가 듣도록 소리를 지른다.
A >>> "B야 나 너랑 말할 게 있어!!!! (Request To Send)"
B >>> "알겠어 A야 나한테 보내!!!!! (Clear To Send)"

 

그러면 A의 RTS 신호나 B의 CTS 신호를 들은 C나 D는 둘의 대화에 끼어들지 않을 것임. (NAV 상태)

→ 무선 매체 특성상 충돌을 감지하기는 힘드니까, 애초에 최대한 조심해서 보내자~ 라는 것.

 

  • 제대로 받았으면 받았다는 의미로 ACK도 소리지름.
  • 이후로 둘 사이 별 얘기가 안들린다? 그러면 그제서야 보낼 거 있으면 보내는거임.
  • 얘도 어느 정도 기다렸음에도 끝내 안되면 전송을 포기한다. 

 

 

< 서비스 개발 시 주의사항 >

  • 무선랜은 동시 사용자가 많아지면 성능이 저하(제때 못 보내니 전송 속도 저하)되다가, 쩔수없이 불능상태에 들어감
    L1 전파 신호 불량이나, L2 충돌시 손실이 발생하기도 함.
    무선랜 장비는 많이 있을수록 좋다? ㄴㄴ아님. 가까운 무선랜 AP간의 간섭을 일으킴.
  • Best Effort이다. 충돌 회피를 위해 최선은 다하지만, 충돌이 날 수도 있는거임.
    또 너무 많은 사용자로 인해 결국 전송을 못할 수도 있는 것. 
    → 서비스 개발시, L1/L2의 특성을 이해함으로 서비스 품질을 증가시키도록 해야 한다.

 


◆ [L3] Packetizing 및 Routing & Forwarding

L3의 큰 역할로는 두가지가 있다.

  • Packetizing
    :source 컴퓨터의 ip 주소, destination 컴퓨터의 ip 주소 등을 포함해 패킷을 만든다.
  • Routing & Forwarding
    :source와 destination 사이에 수많은 컴퓨터들이 있을 건데, 어떤 길로 어떻게 전달해야 최종적으로 destination에 도달할 수 있을지 결정하고 패킷을 보내야 한다. 

 

< 라우터에서 IP 패킷을 처리하는 방법 >

  • 라우터는 패킷을 보내는 길을 결정하는 네트워크 장치를 의미한다. 

  • 라우터는 패킷을 받아서, destination ip 주소를 보고 어디로 보낼지를 라우팅 테이블을 기반으로 결정함.

 

  • 이때 패킷 단위로 그때그때 최적의 경로를 결정하기 때문에, 도착하는 메세지의 순서가 바뀔 수 있다!

 

 

< 서비스 개발 시 주의사항 >

  • 메세지의 순서가 바뀔 수 있음
    → 어플리케이션에 짤 때 순서가 중요한지 고려하고, 중요하다면 윗 계층에서 재구성하도록 서비스를 짜야 한다.
  • 여기서도 패킷이 버려질 수 있다는 점을 유의해야 한다.
    예를 들어 여러 패킷이 라우터로 몰리는 현상이 발생할 수 있다. 그러면 버퍼를 두고 대기를 해야 하는데, 만약 버퍼 사이즈가 작아서 안들어가면 패킷을 그냥 버려버린다. 

 


◆ [L3] IPv4 Addressing

IPv4 Address는 32비트를 사용하는 숫자로, 컴퓨터를 식별하는 기본적인 주소값이라고 볼 수 있다.

 

 

  • 각각의 바이트들을 점으로 찍어서 구분함.
  • 점 찍은 십진법(dotted decimal)로 표현하면 우리가 알기 쉽게 표현됨
    ex) 192.168.xxx.xxx
  • 십육진법은 프로그래밍할 때 많이 사용한다.

  • IP address는 prefixsuffix로 나뉜다.
    - prefix는 해당 컴퓨터가 위치한 network id이고, suffix는 각 컴퓨터의 user id

 

  • CIDR : ip 주소에서, 어디까지가 prefix 길이(네트워크 id 길이)인지 알려준다.

 


◆ [L3] NAT(Network Address Translation)

네트워크 주소 변환 장치. 

< 필요한 이유 >

  • IPv4주소는 최대 2³²개 까지만 나오기 때문에, 매우 부족하다. 그런데 통신해야 되는 컴퓨터들은 엄청 많음.ㅜㅜ
    → 인터넷 어디서나 접속할 수 있는 공인IP가 아닌, 로컬 네트워크 내에서만 의미를 가진 사설IP를 도입하여 통신하도록 한다.

 

< 동작 원리 >

  • 한 네트워크 안에 있는 컴퓨터들 끼리는 사설IP만으로 통신할 수 있다.
  • NAT는 자신의 네트워크 내부에 있는 Source 컴퓨터가 외부로 패킷을 보낼 때, 해당 패킷에 붙은 사설 주소 정보를 외부와 통신 가능한 공인 주소로 매핑하여 바꿔준 후 내보냄.

 

※ 이때 DHCP 서버를 통해, 필요한 애가 생기면 (사설)IP 주소를 주고, 필요 없어지면 회수하는 방식을 사용함.

'CS > 풀스택서비스네트워킹' 카테고리의 다른 글

6. HTTP/1.1  (0) 2023.10.16
5. ZeroMQ  (1) 2023.10.15
4. Socket  (0) 2023.09.30
3. OSI Arghitecture L4  (0) 2023.09.30
1. OSI_Architecture_Overall  (0) 2023.09.05
Comments